{"id":426568,"date":"2024-07-18T15:00:15","date_gmt":"2024-07-18T15:00:15","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=426568"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=426568","title":{"rendered":"<span>\u041f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439 \u0438\u0437 Oracle Database (LogMiner)<\/span>"},"content":{"rendered":"<div><!--[--><!--]--><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-2\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<p>\u0415\u0441\u0442\u044c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u043e\u0432 \u0437\u0430\u0445\u0432\u0430\u0442\u0430 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439 \u0438\u0437\u00a0\u0421\u0423\u0411\u0414 Oracle Database (\u0434\u0430\u043b\u0435\u0435\u00a0\u2014 \u00abOracle\u00bb), \u0441\u0430\u043c\u044b\u043c\u0438 \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0435\u043d\u043d\u044b\u043c\u0438 \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f API LogMiner \u0438 API XStream. \u0412\u00a0\u0434\u0430\u043d\u043d\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c API LogMiner.<\/p>\n<p><strong>\u0412 \u0441\u0442\u0430\u0442\u044c\u0435 \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u043d\u043e:<\/strong><\/p>\n<p>\u041d\u0435\u043c\u043d\u043e\u0433\u043e \u0442\u0435\u043e\u0440\u0438\u0438<br \/><a href=\"#1\" rel=\"noopener noreferrer nofollow\">\u041e\u0442\u043a\u0443\u0434\u0430 LogMiner \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f<\/a><br \/><a href=\"#2\" rel=\"noopener noreferrer nofollow\">System change number<\/a><br \/><a href=\"#3\" rel=\"noopener noreferrer nofollow\">Redo log<\/a><br \/>\u2014 <a href=\"#4\" rel=\"noopener noreferrer nofollow\">Online redo log<\/a><br \/>\u2014 \u2014 <a href=\"#5\" rel=\"noopener noreferrer nofollow\">\u0420\u043e\u0442\u0430\u0446\u0438\u044f online redo log<\/a><br \/>\u2014 <a href=\"#6\" rel=\"noopener noreferrer nofollow\">Archive redo log<\/a><br \/><a href=\"#7\" rel=\"noopener noreferrer nofollow\">Dictionary<\/a><\/p>\n<p>\u0411\u0435\u0437 \u0447\u0435\u0433\u043e \u043d\u0435\u043b\u044c\u0437\u044f \u043d\u0430\u0447\u0438\u043d\u0430\u0442\u044c \u0440\u0430\u0431\u043e\u0442\u0443 \u0441 LogMiner<br \/><a href=\"#8\" rel=\"noopener noreferrer nofollow\">\u0418\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f LogMiner<\/a><br \/><a href=\"#9\" rel=\"noopener noreferrer nofollow\">\u041d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0435 \u043f\u0440\u0438\u0432\u0438\u043b\u0435\u0433\u0438\u0438 \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 LogMiner<\/a><br \/><a href=\"#10\" rel=\"noopener noreferrer nofollow\">\u041c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0435 \u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0436\u0443\u0440\u043d\u0430\u043b\u0430<\/a><\/p>\n<p>\u0422\u0435\u043e\u0440\u0438\u044f \u0431\u0435\u0437 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0438 \u043c\u0435\u0440\u0442\u0432\u0430&#8230;<br \/><a href=\"#11\" rel=\"noopener noreferrer nofollow\">\u041f\u0440\u0430\u043a\u0442\u0438\u043a\u0430<\/a><br \/>\u2014 <a href=\"#12\" rel=\"noopener noreferrer nofollow\">\u0417\u0430\u0431\u043e\u0440 \u0442\u0435\u043a\u0443\u0449\u0438\u0445 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439<\/a><br \/>\u2014 <a href=\"#13\" rel=\"noopener noreferrer nofollow\">\u041f\u0440\u043e\u0441\u0442\u044b\u0435 DML \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438<\/a><br \/>\u2014 <a href=\"#14\" rel=\"noopener noreferrer nofollow\">\u0414\u043b\u0438\u043d\u043d\u044b\u0435 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438<\/a><br \/>\u2014 <a href=\"#15\" rel=\"noopener noreferrer nofollow\">\u0422\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u0438<\/a><br \/>\u2014 \u2014 <a href=\"#16\" rel=\"noopener noreferrer nofollow\">\u041f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439 \u0437\u0430\u0444\u0438\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u0439<\/a><br \/>\u2014 \u2014 <a href=\"#17\" rel=\"noopener noreferrer nofollow\">\u041f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439 \u043d\u0435\u0437\u0430\u0444\u0438\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u0439<\/a><br \/>\u2014 \u2014 <a href=\"#18\" rel=\"noopener noreferrer nofollow\">\u041f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u0438 \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u043e\u0442\u043a\u0430\u0442\u0438\u043b\u0438<\/a><br \/>\u2014 \u2014 <a href=\"#19\" rel=\"noopener noreferrer nofollow\">\u041f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u0438 \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u0447\u0430\u0441\u0442\u0438\u0447\u043d\u043e \u043e\u0442\u043a\u0430\u0442\u0438\u043b\u0438<\/a><br \/>\u2014 <a href=\"#20\" rel=\"noopener noreferrer nofollow\">DML \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u0441 LOB \u043f\u043e\u043b\u044f\u043c\u0438<\/a><br \/>\u2014 \u2014 <a href=\"#21\" rel=\"noopener noreferrer nofollow\">\u0413\u0430\u0440\u0430\u043d\u0442\u0438\u044f \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438<\/a><br \/>\u2014 \u2014 <a href=\"#22\" rel=\"noopener noreferrer nofollow\">\u041f\u043e\u0447\u0435\u043c\u0443 \u043d\u0435 \u0432\u0441\u0435\u0433\u0434\u0430 \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c SEQUENCE#<\/a><br \/>\u2014 <a href=\"#23\" rel=\"noopener noreferrer nofollow\">\u041f\u0435\u0440\u0435\u0438\u043c\u0435\u043d\u043e\u0432\u0430\u043d\u0438\u0435 \u043f\u043e\u043b\u0435\u0439 \u0442\u0430\u0431\u043b\u0438\u0446<\/a><br \/>\u2014 <a href=\"#24\" rel=\"noopener noreferrer nofollow\">\u0421\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u043a\u0430 \u0432 V$LOGMNR_CONTENTS<\/a><br \/>\u2014 <a href=\"#25\" rel=\"noopener noreferrer nofollow\">\u041e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u044f \u043d\u0435\u043f\u0440\u0435\u0440\u044b\u0432\u043d\u043e\u0433\u043e \u0441\u0431\u043e\u0440\u0430 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439<\/a><\/p>\n<h2>\u0422\u0435\u0440\u043c\u0438\u043d\u044b<\/h2>\n<p>\u041e\u043f\u0435\u0440\u0430\u0446\u0438\u044f\u00a0\u2014 SQL \u043a\u043e\u043c\u0430\u043d\u0434\u0430, \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u043d\u0430\u044f \u0434\u043b\u044f\u00a0\u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f, \u0432\u0441\u0442\u0430\u0432\u043a\u0438, \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0438\u043b\u0438\u00a0\u0443\u0434\u0430\u043b\u0435\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445 \u0432\u00a0\u0431\u0430\u0437\u0435 \u0434\u0430\u043d\u043d\u044b\u0445.<\/p>\n<p>\u0422\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044f\u00a0\u2014 \u043d\u0430\u0431\u043e\u0440 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439 \u0434\u043b\u044f\u00a0\u0440\u0430\u0431\u043e\u0442\u044b \u0441\u00a0\u0431\u0430\u0437\u043e\u0439 \u0434\u0430\u043d\u043d\u044b\u0445.<\/p>\n<p>\u0417\u0430\u0445\u0432\u0430\u0442 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439\u00a0\u2014 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 SQL \u043a\u043e\u043c\u0430\u043d\u0434\u044b, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043f\u043e\u0432\u043b\u0438\u044f\u043b\u0430 \u043d\u0430\u00a0\u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 \u0432\u00a0\u0431\u0430\u0437\u0435 \u0434\u0430\u043d\u043d\u044b\u0445, \u043d\u043e\u00a0\u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0438\u043c\u0435\u044e\u0442 \u0432\u0435\u0441\u044c \u043d\u0430\u0431\u043e\u0440 \u0434\u0430\u043d\u043d\u044b\u0445 \u043a\u0430\u043a \u0434\u043e, \u0442\u0430\u043a \u0438 \u043f\u043e\u0441\u043b\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f (\u0434\u0430\u043b\u0435\u0435 \u2013 \u00ab\u0418\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f\u00bb).<\/p>\n<p><a class=\"anchor\" name=\"1\" id=\"1\"><\/a><\/p>\n<h2>\u041e\u0442\u043a\u0443\u0434\u0430 LogMiner \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f<\/h2>\n<p>\u0412 Oracle \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d \u043d\u0430\u0431\u043e\u0440 \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u0439 \u043a\u00a0\u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u043e\u043d\u043d\u044b\u043c \u0431\u0430\u0437\u0430\u043c \u0434\u0430\u043d\u043d\u044b\u0445, \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u044b\u0439 \u043a\u0430\u043a\u00a0ASID. \u041e\u0434\u043d\u043e \u0438\u0437\u00a0\u043a\u043b\u044e\u0447\u0435\u0432\u044b\u0445 \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u0439\u00a0\u2014 \u044d\u0442\u043e durability. Durability (\u043d\u0430\u0434\u0435\u0436\u043d\u043e\u0441\u0442\u044c)\u00a0\u2014 \u0433\u0430\u0440\u0430\u043d\u0442\u0438\u0440\u0443\u0435\u0442, \u0447\u0442\u043e\u00a0\u0435\u0441\u043b\u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u043f\u043e\u043b\u0443\u0447\u0438\u043b \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043d\u0438\u0435 \u043e\u0442\u00a0\u0441\u0438\u0441\u0442\u0435\u043c\u044b (\u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0430), \u043e\u043d \u043c\u043e\u0436\u0435\u0442\u00a0\u0431\u044b\u0442\u044c \u0443\u0432\u0435\u0440\u0435\u043d, \u0447\u0442\u043e\u00a0\u0441\u0434\u0435\u043b\u0430\u043d\u043d\u044b\u0435 \u0438\u043c \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u043d\u0435\u00a0\u0431\u0443\u0434\u0443\u0442 \u043e\u0442\u043c\u0435\u043d\u0435\u043d\u044b \u0438\u0437\u2011\u0437\u0430 \u043a\u0430\u043a\u043e\u0433\u043e\u2011\u043b\u0438\u0431\u043e \u0441\u0431\u043e\u044f.<\/p>\n<p>\u041e\u0431\u044a\u044f\u0441\u043d\u044e \u044d\u0442\u043e\u0442 \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u043e\u0447\u0435\u043d\u044c \u0443\u043f\u0440\u043e\u0449\u0435\u043d\u043d\u043e. \u0427\u0442\u043e\u0431\u044b \u0433\u0430\u0440\u0430\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044e \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u0438, \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0432\u00a0\u0441\u0430\u043c\u043e\u043c \u0438\u0434\u0435\u0430\u043b\u044c\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0437\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0432\u043d\u0435\u0441\u0435\u043d\u043d\u044b\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0432\u00a0\u0441\u0430\u043c \u0444\u0430\u0439\u043b \u0431\u0430\u0437\u044b \u0434\u0430\u043d\u043d\u044b\u0445. \u041d\u043e\u00a0\u044d\u0442\u043e \u0434\u043e\u0440\u043e\u0433\u043e\u0435 \u0443\u0434\u043e\u0432\u043e\u043b\u044c\u0441\u0442\u0432\u0438\u0435 \u0432\u00a0\u043f\u043b\u0430\u043d\u0435 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438. \u0421\u0430\u043c\u043e\u0435 \u043f\u0440\u043e\u0441\u0442\u043e\u0435\u00a0\u2014 \u044d\u0442\u043e \u0437\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0444\u0430\u0439\u043b \u0432 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0439 \u043f\u0440\u043e\u043c\u0435\u0436\u0443\u0442\u043e\u0447\u043d\u044b\u0439 \u0436\u0443\u0440\u043d\u0430\u043b (Redo log file) \u0438 \u0443\u0436\u0435 \u043f\u043e\u0437\u0436\u0435, \u043f\u0440\u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0438 \u0441\u043e\u0431\u044b\u0442\u0438\u044f \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044c\u043d\u043e\u0439 \u0442\u043e\u0447\u043a\u0438 (checkpoint), \u0437\u0430 \u0440\u0430\u0437 \u043f\u0435\u0440\u0435\u043d\u0435\u0441\u0442\u0438 \u0433\u0440\u044f\u0437\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u0432 \u0444\u0430\u0439\u043b \u0431\u0430\u0437\u044b \u0434\u0430\u043d\u043d\u044b\u0445.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/02a\/376\/b00\/02a376b00743689e393b2d1f75283c1d.png\" width=\"5310\" height=\"1010\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/02a\/376\/b00\/02a376b00743689e393b2d1f75283c1d.png\"\/><\/figure>\n<blockquote>\n<p>LogMiner \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0441 redo log files \u043c\u0438\u043d\u0443\u044f \u0441\u0430\u043c\u0438 \u0444\u0430\u0439\u043b\u044b \u0431\u0430\u0437\u044b \u0434\u0430\u043d\u043d\u044b\u0445.<\/p>\n<\/blockquote>\n<p><a class=\"anchor\" name=\"2\" id=\"2\"><\/a><\/p>\n<h2>System change number<\/h2>\n<p>\u0414\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 LogMiner \u0432\u0430\u0436\u043d\u043e \u043f\u043e\u043d\u0438\u043c\u0430\u0442\u044c, \u0447\u0442\u043e\u00a0\u0442\u0430\u043a\u043e\u0435 System Change Number (SCN)\u00a0\u2014 \u044d\u0442\u043e \u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f \u043c\u0435\u0442\u043a\u0430, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u0430\u044f Oracle \u0434\u043b\u044f \u0443\u043f\u043e\u0440\u044f\u0434\u043e\u0447\u0438\u0432\u0430\u043d\u0438\u044f \u0441\u043e\u0431\u044b\u0442\u0438\u0439, \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u044f\u0449\u0438\u0445 \u0441 \u0431\u0430\u0437\u043e\u0439 \u0434\u0430\u043d\u043d\u044b\u0445. \u0414\u043b\u044f \u043f\u043e\u043d\u0438\u043c\u0430\u043d\u0438\u044f, \u043b\u0443\u0447\u0448\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0435\u0433\u043e \u043a\u0430\u043a Unix Time Stamp \u0432 \u0440\u0430\u0437\u0440\u0435\u0437\u0435 \u0441\u0435\u0440\u0432\u0435\u0440\u0430 Oracle.<\/p>\n<p>\u0422\u0435\u043a\u0443\u0449\u0438\u0439 SCN \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0439 \u043a\u043e\u043c\u0430\u043d\u0434\u043e\u0439:<\/p>\n<pre><code class=\"sql\">SELECT TIMESTAMP_TO_SCN(SYSDATE) AS CURRENT_SCN FROM DUAL;  CURRENT_SCN ----------- 2000<\/code><\/pre>\n<p>\u041c\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438 SCN \u0434\u043b\u044f \u0442\u0435\u043a\u0443\u0449\u0435\u0433\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438, \u0442\u0430\u043a \u0436\u0435 \u044d\u0442\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0432 \u043e\u0431\u0440\u0430\u0442\u043d\u0443\u044e \u0441\u0442\u043e\u0440\u043e\u043d\u0443:<\/p>\n<pre><code class=\"sql\">SELECT SCN_TO_TIMESTAMP(2000) AS TIMESTAMP_SCN FROM DUAL;            TIMESTAMP_SCN ----------------------- 2024-01-01 00:00:00.000<\/code><\/pre>\n<p><a class=\"anchor\" name=\"3\" id=\"3\"><\/a><\/p>\n<h2>Redo log<\/h2>\n<p>Redo log\u00a0\u2014 \u044d\u0442\u043e \u0444\u0430\u0439\u043b\u044b, \u0432\u00a0\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0445\u0440\u0430\u043d\u044f\u0442\u0441\u044f \u0432\u0441\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f, \u0432\u043d\u0435\u0441\u0435\u043d\u043d\u044b\u0435 \u0432\u00a0\u0431\u0430\u0437\u0443 \u0434\u0430\u043d\u043d\u044b\u0445 \u043f\u043e\u00a0\u043c\u0435\u0440\u0435 \u0438\u0445 \u0432\u043e\u0437\u043d\u0438\u043a\u043d\u043e\u0432\u0435\u043d\u0438\u044f. \u0421\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u0434\u0432\u0430 \u0432\u0438\u0434\u0430 redo log:<\/p>\n<ul>\n<li>\n<p>Online redo log \u0441\u043e\u0441\u0442\u043e\u0438\u0442 \u0438\u0437\u00a0\u0434\u0432\u0443\u0445 \u0438\u043b\u0438\u00a0\u0431\u043e\u043b\u0435\u0435 \u043f\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0432\u044b\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0445 \u0444\u0430\u0439\u043b\u043e\u0432, \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0449\u0438\u0435 \u0442\u0435\u043a\u0443\u0449\u0438\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f. \u041a\u0430\u043a\u00a0\u0440\u0430\u0437 \u0441\u00a0\u044d\u0442\u0438\u043c \u0432\u0438\u0434\u043e\u043c \u043b\u043e\u0433\u043e\u0432 \u0438 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0421\u0423\u0411\u0414 \u0434\u043b\u044f\u00a0\u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0430\u043d\u0438\u044f \u043d\u0430\u0434\u0435\u0436\u043d\u043e\u0441\u0442\u0438;<\/p>\n<\/li>\n<li>\n<p>Archive redo log\u00a0\u2014 \u044d\u0442\u043e \u0442\u0435\u00a0\u0436\u0435 \u0444\u0430\u0439\u043b\u044b, \u043d\u043e\u00a0\u0445\u0440\u0430\u043d\u044f\u0442 \u0432\u00a0\u0441\u0435\u0431\u0435 \u0431\u043e\u043b\u0435\u0435 \u0440\u0430\u043d\u043d\u0438\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f.<\/p>\n<\/li>\n<\/ul>\n<blockquote>\n<p>Online redo log \u0437\u0430\u0447\u0430\u0441\u0442\u0443\u044e \u0445\u0440\u0430\u043d\u0438\u0442\u0441\u044f \u043d\u0430\u00a0\u0431\u043e\u043b\u0435\u0435\u00a0\u0431\u044b\u0441\u0442\u0440\u044b\u0445 \u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044f\u0445, \u043d\u043e\u00a0\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 archive redo log \u043c\u0435\u043d\u044c\u0448\u0435 \u0432\u043b\u0438\u044f\u0435\u0442 \u043d\u0430 \u0421\u0423\u0411\u0414.<\/p>\n<\/blockquote>\n<p>\u0422\u0430\u043a \u0436\u0435 \u0441\u0442\u043e\u0438\u0442 \u043e\u0442\u043c\u0435\u0442\u0438\u0442\u044c, \u0447\u0442\u043e \u0443 \u0432\u0430\u0441 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0441\u043e\u0432\u0435\u0440\u0448\u0435\u043d\u043d\u043e \u0434\u0440\u0443\u0433\u043e\u0439 \u043d\u0430\u0431\u043e\u0440 online redo log \u0444\u0430\u0439\u043b\u043e\u0432, \u0438 \u043c\u043e\u0436\u0435\u0442 \u043d\u0435 \u0431\u044b\u0442\u044c \u0432\u043e\u0432\u0441\u0435 archive redo log \u0444\u0430\u0439\u043b\u043e\u0432.<\/p>\n<p><a class=\"anchor\" name=\"4\" id=\"4\"><\/a><\/p>\n<h3>Online redo log<\/h3>\n<pre><code class=\"sql\">SELECT   T.MEMBER AS FILE_NAME,   T.FIRST_CHANGE AS FIRST_CHANGE,   T.NEXT_CHANGE AS NEXT_CHANGE,   T.STATUS FROM (   SELECT     F.MEMBER,     L.FIRST_CHANGE#,     L.NEXT_CHANGE#,     L.STATUS,     ROW_NUMBER() OVER(PARTITION BY F.GROUP# ORDER BY F.GROUP#) AS GROUP   FROM V$LOGFILE F     JOIN V$LOG L       ON L.GROUP# = F.GROUP#   WHERE F.TYPE = 'ONLINE' ) T WHERE T.GROUP = 1;         FILE_NAME FIRST_CHANGE          NEXT_CHANGE   STATUS  ---------------- ------------ -------------------- -------- \/path\/redo01.log 1700         1800                 INACTIVE \/path\/redo02.log 1800         1900                 INACTIVE \/path\/redo03.log 1900         18446744073709551615 CURRENT<\/code><\/pre>\n<p>\u0412 \u0434\u0430\u043d\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0432\u044b\u0434\u0435\u043b\u0435\u043d\u043e \u0442\u0440\u0438 online redo log \u0444\u0430\u0439\u043b\u0430. \u041e\u0434\u0438\u043d \u0438\u0437 \u043d\u0438\u0445 \u0442\u0435\u043a\u0443\u0449\u0438\u0439, \u0443 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e STATUS CURRENT. \u041c\u043e\u0436\u043d\u043e \u0443\u0432\u0438\u0434\u0435\u0442\u044c \u043d\u0430\u0447\u0430\u043b\u043e \u0438 \u043a\u043e\u043d\u0435\u0446 \u043f\u043e SCN (FIRST_CHANGE &lt;= SCN &lt; NEXT_CHANGE) \u0432 \u043a\u0430\u0436\u0434\u043e\u043c \u0438\u0437 \u0444\u0430\u0439\u043b\u043e\u0432, \u0438 \u043a\u0430\u043a \u043e\u043d\u0438 \u0447\u0435\u0440\u0435\u0434\u0443\u044e\u0442\u0441\u044f \u043c\u0435\u0436\u0434\u0443 \u0441\u043e\u0431\u043e\u0439.<\/p>\n<p><a class=\"anchor\" name=\"5\" id=\"5\"><\/a><\/p>\n<h4>\u0420\u043e\u0442\u0430\u0446\u0438\u044f online redo log<\/h4>\n<p>\u0417\u0430\u043f\u0438\u0441\u044c \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u043f\u043e \u043a\u0440\u0443\u0433\u0443. \u041a\u0430\u043a \u0442\u043e\u043b\u044c\u043a\u043e \u0442\u0435\u043a\u0443\u0449\u0438\u0439 online redo log \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0437\u0430\u043f\u043e\u043b\u043d\u0438\u0442\u0441\u044f, \u0435\u0433\u043e \u043c\u0435\u0441\u0442\u043e \u0437\u0430\u0439\u043c\u0435\u0442 \u0441\u0430\u043c\u044b\u0439 \u0440\u0430\u043d\u043d\u0438\u0439 online redo log \u043f\u043e FIRST_CHANGE. \u0410 \u0442\u0430\u043a \u0436\u0435, \u0437\u0430\u043c\u0435\u043d\u0435\u043d\u043d\u044b\u0439 online redo log \u0444\u0430\u0439\u043b \u0431\u0443\u0434\u0435\u0442 \u0430\u0440\u0445\u0438\u0432\u0438\u0440\u043e\u0432\u0430\u043d, \u0442\u043e \u0435\u0441\u0442\u044c \u043f\u043e\u044f\u0432\u0438\u0442\u0441\u044f \u0442\u043e\u0447\u043d\u043e \u0442\u0430\u043a\u043e\u0439 \u0436\u0435 archive redo log \u0444\u0430\u0439\u043b. \u041f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0440\u043e\u0442\u0430\u0446\u0438\u0438:<\/p>\n<pre><code class=\"sql\">       FILE_NAME FIRST_CHANGE          NEXT_CHANGE   STATUS  ---------------- ------------ -------------------- -------- \/path\/redo01.log 2200         18446744073709551615 CURRENT \/path\/redo02.log 1800         1900                 INACTIVE \/path\/redo03.log 1900         2200                 INACTIVE<\/code><\/pre>\n<p><a class=\"anchor\" name=\"6\" id=\"6\"><\/a><\/p>\n<h3>Archive redo log<\/h3>\n<pre><code class=\"sql\">SELECT   AL.NAME AS FILE_NAME,   AL.FIRST_CHANGE# AS FIRST_CHANGE,   AL.NEXT_CHANGE# AS NEXT_CHANGE,   AL.DICTIONARY_BEGIN,   AL.DICTIONARY_END FROM V$ARCHIVED_LOG AL   JOIN V$ARCHIVE_DEST_STATUS ADS     ON ADS.DEST_ID = AL.DEST_ID WHERE AL.STATUS = 'A'   AND ADS.STATUS = 'VALID'   AND ADS.TYPE = 'LOCAL';                       FILE_NAME FIRST_CHANGE NEXT_CHANGE DICTIONARY_BEGIN DICTIONARY_END  ------------------------------ ------------ ----------- ---------------- -------------- \/path\/arch1_214_1161333401.dbf 1100         1200        NO               NO \/path\/arch1_215_1161333401.dbf 1200         1300        YES              YES \/path\/arch1_216_1161333401.dbf 1300         1400        NO               NO \/path\/arch1_217_1161333401.dbf 1400         1500        NO               NO \/path\/arch1_218_1161333401.dbf 1500         1600        YES              NO \/path\/arch1_219_1161333401.dbf 1600         1700        NO               YES \/path\/arch1_220_1161333401.dbf 1700         1800        NO               NO \/path\/arch1_221_1161333401.dbf 1800         1900        NO               NO<\/code><\/pre>\n<p>\u0421\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435 archive redo log \u0444\u0430\u0439\u043b\u0430 \u0442\u0430\u043a\u043e\u0435 \u0436\u0435, \u043a\u0430\u043a \u0438 \u0432 online redo log \u0444\u0430\u0439\u043b\u0430. \u041d\u043e archive redo log \u043c\u043e\u0436\u0435\u0442 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u044c \u0432 \u0441\u0435\u0431\u0435 \u0447\u0430\u0441\u0442\u0438\u0447\u043d\u043e \u0438\u043b\u0438 \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e dictionary (\u0441\u043b\u043e\u0432\u0430\u0440\u044c), \u043e \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u043c\u044b \u043f\u043e\u0433\u043e\u0432\u043e\u0440\u0438\u043c \u043f\u043e\u0437\u0436\u0435.<\/p>\n<p>\u0412\u0435\u0440\u043d\u0435\u043c\u0441\u044f \u043a \u0440\u043e\u0442\u0430\u0446\u0438\u0438 online redo log. \u041f\u043e\u0441\u043b\u0435 \u0440\u043e\u0442\u0430\u0446\u0438\u0438 \u043f\u043e\u044f\u0432\u0438\u0442\u0441\u044f \u043d\u043e\u0432\u044b\u0439 archive redo log \u0444\u0430\u0439\u043b, \u043f\u0440\u0438\u043c\u0435\u0440:<\/p>\n<pre><code class=\"sql\">                     FILE_NAME FIRST_CHANGE NEXT_CHANGE DICTIONARY_BEGIN DICTIONARY_END  ------------------------------ ------------ ----------- ---------------- -------------- \/path\/arch1_222_1161333401.dbf 1900         2200        NO               NO<\/code><\/pre>\n<p><a class=\"anchor\" name=\"7\" id=\"7\"><\/a><\/p>\n<h2>Dictionary<\/h2>\n<p>LogMiner \u0442\u0440\u0435\u0431\u0443\u0435\u0442 dictionary (\u0441\u043b\u043e\u0432\u0430\u0440\u044c) \u0434\u043b\u044f \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u043e\u0432 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 \u0432 \u0438\u043c\u0435\u043d\u0430 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 \u043f\u0440\u0438 \u0432\u043e\u0437\u0432\u0440\u0430\u0442\u0435 \u0432\u0430\u043c \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439.<\/p>\n<p>LogMiner \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0442\u0440\u0438 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u0430 \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0441\u043b\u043e\u0432\u0430\u0440\u044f:<\/p>\n<ul>\n<li>\n<p><strong>Online Catalog<\/strong> \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u0442\u0441\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c, \u0435\u0441\u043b\u0438 \u0432\u044b \u0438\u043c\u0435\u0435\u0442\u0435 \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0439 \u0431\u0430\u0437\u0435 \u0434\u0430\u043d\u043d\u044b\u0445, \u0438\u0437 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0431\u044b\u043b\u0438 \u0441\u043e\u0437\u0434\u0430\u043d\u044b redo log \u0444\u0430\u0439\u043b\u044b. \u0410 \u0442\u0430\u043a \u0436\u0435, \u0435\u0441\u043b\u0438 \u043d\u0435 \u0431\u0443\u0434\u0443\u0442 \u0432\u043d\u0435\u0441\u0435\u043d\u044b \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0432 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u044f \u043f\u043e\u043b\u0435\u0439 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0443\u044e\u0449\u0438\u0445 \u0442\u0430\u0431\u043b\u0438\u0446;<\/p>\n<\/li>\n<li>\n<p><strong>\u0421\u043b\u043e\u0432\u0430\u0440\u044c \u0438\u0437 archive redo log<\/strong> \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u0442\u0441\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c, \u0435\u0441\u043b\u0438 \u0432\u044b \u043d\u0435 \u043f\u043b\u0430\u043d\u0438\u0440\u0443\u0435\u0442\u0435 \u0438\u043c\u0435\u0442\u044c \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0439 \u0431\u0430\u0437\u0435 \u0434\u0430\u043d\u043d\u044b\u0445, \u0438\u0437 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0431\u044b\u043b\u0438 \u0441\u043e\u0437\u0434\u0430\u043d\u044b redo log \u0444\u0430\u0439\u043b\u044b. \u0410 \u0442\u0430\u043a \u0436\u0435, \u0435\u0441\u043b\u0438 \u0432\u044b \u043f\u0440\u0435\u0434\u043f\u043e\u043b\u0430\u0433\u0430\u0435\u0442\u0435, \u0447\u0442\u043e \u0431\u0443\u0434\u0443\u0442 \u0432\u043d\u0435\u0441\u0435\u043d\u044b \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0432 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u044f \u043f\u043e\u043b\u0435\u0439 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0443\u044e\u0449\u0438\u0445 \u0442\u0430\u0431\u043b\u0438\u0446;<\/p>\n<\/li>\n<li>\n<p><strong>\u0421\u043b\u043e\u0432\u0430\u0440\u044c \u0432 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e\u043c \u0444\u0430\u0439\u043b\u0435<\/strong> \u0440\u0430\u0441\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u0442\u044c\u0441\u044f \u043d\u0435 \u0431\u0443\u0434\u0435\u0442.<\/p>\n<\/li>\n<\/ul>\n<p>\u041e \u043d\u0430\u043b\u0438\u0447\u0438\u0438 \u0441\u043b\u043e\u0432\u0430\u0440\u044f \u0432 \u0442\u043e\u043c \u0438\u043b\u0438 \u0438\u043d\u043e\u043c archive redo log \u0444\u0430\u0439\u043b\u0435 \u0433\u043e\u0432\u043e\u0440\u044f\u0442 \u043d\u0430\u043c \u043f\u043e\u043b\u044f DICTIONARY_BEGIN \u0438 DICTIONARY_END.<\/p>\n<p>\u041f\u0440\u0438\u043c\u0435\u0440, \u043a\u043e\u0433\u0434\u0430 \u0441\u043b\u043e\u0432\u0430\u0440\u044c \u0438\u0437 archive redo log \u0444\u0430\u0439\u043b\u0430 \u0431\u0443\u0434\u0435\u0442 \u043e\u0442\u0434\u0430\u043d \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e:<\/p>\n<pre><code class=\"sql\">                     FILE_NAME FIRST_CHANGE NEXT_CHANGE DICTIONARY_BEGIN DICTIONARY_END  ------------------------------ ------------ ----------- ---------------- -------------- \/path\/arch1_215_1161333401.dbf 1200         1300        YES              YES<\/code><\/pre>\n<pre><code class=\"sql\">                     FILE_NAME FIRST_CHANGE NEXT_CHANGE DICTIONARY_BEGIN DICTIONARY_END  ------------------------------ ------------ ----------- ---------------- -------------- \/path\/arch1_218_1161333401.dbf 1500         1600        YES              NO \/path\/arch1_219_1161333401.dbf 1600         1700        NO               YES<\/code><\/pre>\n<p><a class=\"anchor\" name=\"8\" id=\"8\"><\/a><\/p>\n<h2>\u0418\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f LogMiner<\/h2>\n<p>\u041f\u0440\u0438 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 LogMiner \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0443\u043a\u0430\u0437\u0430\u0442\u044c redo log \u0444\u0430\u0439\u043b\u044b \u0438 \u043e\u043f\u0446\u0438\u0438. \u0416\u0435\u043b\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c LogMiner \u043a\u0430\u0436\u0434\u044b\u0439 \u0440\u0430\u0437 \u043f\u0440\u0438 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0438 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439.<\/p>\n<pre><code class=\"sql\">BEGIN   DBMS_LOGMNR.ADD_LOGFILE('NAME_REDO_LOG_FILE_1', DBMS_LOGMNR.NEW);   [     DBMS_LOGMNR.ADD_LOGFILE('NAME_REDO_LOG_FILE_2', DBMS_LOGMNR.ADDFILE);     | DBMS_LOGMNR.ADD_LOGFILE('NAME_REDO_LOG_FILE_3', DBMS_LOGMNR.ADDFILE);     | ...   ]   DBMS_LOGMNR.START_LOGMNR(     STARTSCN=>SCN_\u041d\u0410\u0427\u0410\u041b\u0410_\u0421\u0427\u0418\u0422\u042b\u0412\u0410\u041d\u0418\u042f_\u0424\u0410\u0419\u041b\u0410,     ENDSCN=>SCN_\u041a\u041e\u041d\u0426\u0410_\u0421\u0427\u0418\u0422\u042b\u0412\u0410\u041d\u0418\u042f_\u0424\u0410\u0419\u041b\u0410,     OPTIONS=>       [         DBMS_LOGMNR.DICT_FROM_ONLINE_CATALOG         | DBMS_LOGMNR.DICT_FROM_REDO_LOGS       ]       + DBMS_LOGMNR.COMMITTED_DATA_ONLY       + DBMS_LOGMNR.PRINT_PRETTY_SQL       + DBMS_LOGMNR.NO_SQL_DELIMITER       + DBMS_LOGMNR.NO_ROWID_IN_STMT       + DBMS_LOGMNR.DDL_DICT_TRACKING   ); END;<\/code><\/pre>\n<ul>\n<li>\n<p><strong>ADD_LOGFILE<\/strong><\/p>\n<ul>\n<li>\n<p><strong>DBMS_LOGMNR.NEW<\/strong> \u2013 \u043f\u0435\u0440\u0432\u044b\u0439 redo log \u0444\u0430\u0439\u043b\u0430<\/p>\n<\/li>\n<li>\n<p><strong>DBMS_LOGMNR.ADDFILE<\/strong> \u2013 \u043f\u043e\u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 redo log \u0444\u0430\u0439\u043b\u044b<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p><strong>START_LOGMNR<\/strong> \u2013 \u043a\u043e\u043c\u0430\u043d\u0434\u0430 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 LogMiner<\/p>\n<ul>\n<li>\n<p><strong>STARTSCN<\/strong> \u2013 SCN \u043d\u0430\u0447\u0430\u043b\u0430 \u0441\u0447\u0438\u0442\u044b\u0432\u0430\u043d\u0438\u044f \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439<\/p>\n<\/li>\n<li>\n<p><strong>ENDSCN<\/strong> \u2013 SCN \u043a\u043e\u043d\u0446\u0430 \u0441\u0447\u0438\u0442\u044b\u0432\u0430\u043d\u0438\u044f \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439<\/p>\n<\/li>\n<li>\n<p><strong>OPTIONS<\/strong> \u2013 \u043e\u043f\u0446\u0438\u0438 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 LogMiner<\/p>\n<ul>\n<li>\n<p><strong>DICT_FROM_ONLINE_CATALOG<\/strong> \u2013 \u0431\u0443\u0434\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d \u0441\u043b\u043e\u0432\u0430\u0440\u044c Online catalog<\/p>\n<\/li>\n<li>\n<p><strong>DICT_FROM_REDO_LOGS<\/strong> \u2013 \u0441\u043b\u043e\u0432\u0430\u0440\u044c \u0431\u0443\u0434\u0435\u0442 \u0438\u0437\u0432\u043b\u0435\u0447\u0435\u043d \u0438\u0437 archive redo log \u0444\u0430\u0439\u043b\u043e\u0432<\/p>\n<\/li>\n<li>\n<p><strong>COMMITTED_DATA_ONLY<\/strong> \u2013 \u0431\u0443\u0434\u0443\u0442 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u044b \u0442\u043e\u043b\u044c\u043a\u043e \u0437\u0430\u0444\u0438\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u0438<\/p>\n<\/li>\n<li>\n<p><strong>PRINT_PRETTY_SQL<\/strong> \u2013 \u043e\u0444\u043e\u0440\u043c\u043b\u0435\u043d\u0438\u0435 \u0432\u044b\u0432\u043e\u0434\u0438\u043c\u044b\u0445 SQL \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432<\/p>\n<\/li>\n<li>\n<p><strong>NO_SQL_DELIMITER<\/strong> \u2013 \u0443\u0431\u0440\u0430\u0442\u044c ; \u0438\u0437 \u043a\u043e\u043d\u0446\u0430 SQL \u0437\u0430\u043f\u0440\u043e\u0441\u0430<\/p>\n<\/li>\n<li>\n<p><strong>NO_ROWID_IN_STMT<\/strong> \u2013 \u0443\u0431\u0440\u0430\u0442\u044c ROW_ID \u0438\u0437 SQL \u0437\u0430\u043f\u0440\u043e\u0441\u0430<\/p>\n<\/li>\n<li>\n<p><strong>DDL_DICT_TRACKING<\/strong> \u2013 \u0430\u043a\u0442\u0443\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u043b\u043e\u0432\u0430\u0440\u044c \u0432\u0441\u0442\u0440\u0435\u0447\u0430\u0435\u043c\u044b\u043c\u0438 DDL \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f\u043c\u0438 (\u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u0441 DICT_FROM_REDO_LOGS)<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>\u0412 \u043d\u0430\u0447\u0430\u043b\u0435 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0443\u043a\u0430\u0437\u0430\u0442\u044c redo log \u0444\u0430\u043b\u044b \u0432 \u0440\u0430\u043c\u043a\u0430\u0445 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043c\u044b \u0445\u043e\u0442\u0438\u043c \u043f\u043e\u043b\u0443\u0447\u0430\u0442\u044c \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f FIRST_CHANGE &lt;= SCN \u0418\u0417\u041c\u0415\u041d\u0415\u041d\u0418\u042f &lt; NEXT_CHANGE.<\/p>\n<p>\u0412 \u043f\u0440\u0438\u043c\u0435\u0440\u0430\u0445 \u0431\u0443\u0434\u0435\u0442 \u044f\u0441\u043d\u043e, \u043a\u0430\u043a\u0438\u0435 \u043e\u043f\u0446\u0438\u0438 \u0432 \u043a\u0430\u043a\u0438\u0445 \u0443\u0441\u043b\u043e\u0432\u0438\u044f\u0445 \u043b\u0443\u0447\u0448\u0435 \u0432\u0441\u0435\u0433\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c.<\/p>\n<p><a class=\"anchor\" name=\"9\" id=\"9\"><\/a><\/p>\n<h2>\u041d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0435 \u043f\u0440\u0438\u0432\u0438\u043b\u0435\u0433\u0438\u0438 \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 LogMiner<\/h2>\n<p>LogMiner \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 redo log \u0444\u0430\u0439\u043b\u0430\u043c\u0438 \u0438 \u0438\u0445 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u044b\u043c. \u0412 \u0440\u0430\u043c\u043a\u0430\u0445 \u0434\u0430\u043d\u043d\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0438 \u043f\u043e\u043d\u0430\u0434\u043e\u0431\u0438\u0442\u0441\u044f \u044d\u0442\u043e\u0442 \u043d\u0430\u0431\u043e\u0440 \u043f\u0440\u0438\u0432\u0438\u043b\u0435\u0433\u0438\u0439:<\/p>\n<pre><code class=\"sql\">GRANT LOGMINING TO ...  GRANT EXECUTE ON DBMS_LOGMNR TO ... GRANT EXECUTE ON DBMS_LOGMNR_D TO ...  GRANT SELECT ON V$LOG TO ... GRANT SELECT ON V$LOGMNR_LOGS TO .... GRANT SELECT ON V$LOGMNR_CONTENTS TO ... GRANT SELECT ON V$LOGFILE TO ... GRANT SELECT ON V$ARCHIVED_LOG TO ... GRANT SELECT ON V$ARCHIVE_DEST_STATUS TO ...<\/code><\/pre>\n<p><a class=\"anchor\" name=\"10\" id=\"10\"><\/a><\/p>\n<h2>\u041c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0435 \u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0436\u0443\u0440\u043d\u0430\u043b\u0430<\/h2>\n<p>\u041d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0432\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0435 \u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0436\u0443\u0440\u043d\u0430\u043b\u0430 \u0432 \u0440\u0430\u0437\u0440\u0435\u0437\u0435 \u0431\u0430\u0437\u044b \u0434\u0430\u043d\u043d\u044b\u0445.<\/p>\n<pre><code class=\"sql\">SELECT SUPPLEMENTAL_LOG_DATA_MIN FROM V$DATABASE;  SUPPLEMENTAL_LOG_DATA_MIN ------------------------- NO  ALTER DATABASE ADD SUPPLEMENTAL LOG DATA;  SELECT SUPPLEMENTAL_LOG_DATA_MIN FROM V$DATABASE;  SUPPLEMENTAL_LOG_DATA_MIN ------------------------- YES<\/code><\/pre>\n<p>\u0422\u0430\u043a \u0436\u0435 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0432\u043a\u043b\u044e\u0447\u0430\u0442\u044c \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0435 \u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0436\u0443\u0440\u043d\u0430\u043b\u0430 \u043d\u0430 \u043a\u0430\u0436\u0434\u0443\u044e \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0443\u044e\u0449\u0443\u044e \u0442\u0430\u0431\u043b\u0438\u0446\u0443.<\/p>\n<pre><code class=\"sql\">ALTER TABLE ... ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS;<\/code><\/pre>\n<p><a class=\"anchor\" name=\"11\" id=\"11\"><\/a><\/p>\n<h2>\u041f\u0440\u0430\u043a\u0442\u0438\u043a\u0430<\/h2>\n<p>\u0412 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0435 \u0431\u0443\u0434\u0435\u0442 \u043e\u0445\u0432\u0430\u0442\u044b\u0432\u0430\u0442\u044c\u0441\u044f \u043a\u0430\u043a \u043c\u043e\u0436\u043d\u043e \u0431\u043e\u043b\u044c\u0448\u0435 \u043a\u0435\u0439\u0441\u043e\u0432 \u0438 \u0431\u0443\u0434\u0443\u0442 \u0441\u0434\u0435\u043b\u0430\u043d\u044b \u0432\u044b\u0432\u043e\u0434\u044b, \u043a\u0430\u043a \u043b\u0443\u0447\u0448\u0435 \u043f\u043e\u043b\u0443\u0447\u0430\u0442\u044c \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0432 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0445 \u0443\u0441\u043b\u043e\u0432\u0438\u044f\u0445.<\/p>\n<blockquote>\n<p>\u0421\u043e\u0432\u0435\u0442\u0443\u044e \u043f\u043e\u0432\u0442\u043e\u0440\u044f\u0442\u044c \u0432\u0441\u0435 \u043f\u0440\u0438\u043c\u0435\u0440\u044b \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u043e \u0441\u043e \u0441\u0442\u0430\u0442\u044c\u0435\u0439, \u0442\u043e\u043b\u044c\u043a\u043e \u0442\u0430\u043a \u0431\u0443\u0434\u0435\u0442 \u044f\u0441\u043d\u043e \u043a\u0430\u043a \u0432\u0441\u0435 \u044d\u0442\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442.<\/p>\n<\/blockquote>\n<p><a class=\"anchor\" name=\"12\" id=\"12\"><\/a><\/p>\n<h3>\u0417\u0430\u0431\u043e\u0440 \u0442\u0435\u043a\u0443\u0449\u0438\u0445 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439<\/h3>\n<p>\u0414\u043b\u044f \u0434\u0430\u043b\u044c\u043d\u0435\u0439\u0448\u0435\u0433\u043e \u0438\u0437\u0443\u0447\u0435\u043d\u0438\u044f LogMiner \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043d\u0430\u0443\u0447\u0438\u0442\u044c\u0441\u044f \u043f\u043e\u043b\u0443\u0447\u0430\u0442\u044c \u0442\u0435\u043a\u0443\u0449\u0438\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f. \u0414\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430 \u0441\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u0442\u0430\u0431\u043b\u0438\u0446\u0443 \u0438 \u0432\u043a\u043b\u044e\u0447\u0438\u043c \u0443 \u043d\u0435\u0435 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0435 \u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0436\u0443\u0440\u043d\u0430\u043b\u0430 \u0434\u043b\u044f \u0432\u0441\u0435\u0445 \u043f\u043e\u043b\u0435\u0439:<\/p>\n<pre><code class=\"sql\">CREATE TABLE SC.TEST (   ID INTEGER,   COL1 VARCHAR2(4000),   COL2 INTEGER );  ALTER TABLE SC.TEST ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS;<\/code><\/pre>\n<p>\u0414\u0430\u043d\u043d\u0443\u044e \u0442\u0430\u0431\u043b\u0438\u0446\u0443 \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0438 \u0432 \u0434\u0430\u043b\u044c\u043d\u0435\u0439\u0448\u0438\u0445 \u043f\u0440\u0438\u043c\u0435\u0440\u0430\u0445.<\/p>\n<p>\u0414\u0430\u043b\u0435\u0435 \u0437\u0430\u043f\u043e\u043c\u043d\u0438\u043c \u0442\u0435\u043a\u0443\u0449\u0438\u0439 SCN (CURRENT_SCN) \u0438 \u0434\u043e\u0431\u0430\u0432\u0438\u043c \u0437\u0430\u043f\u0438\u0441\u044c \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0443:<\/p>\n<pre><code class=\"sql\">SELECT TIMESTAMP_TO_SCN(SYSDATE) AS CURRENT_SCN FROM DUAL;  CURRENT_SCN ----------- 2001  INSERT INTO SC.TEST (ID, COL1, COL2) VALUES (0, 'TEXT', 1); COMMIT;<\/code><\/pre>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u043f\u043e\u043b\u0443\u0447\u0438\u043c \u0441\u043f\u0438\u0441\u043e\u043a redo log \u0444\u0430\u0439\u043b\u043e\u0432 \u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 SCN \u0431\u043e\u043b\u044c\u0448\u0435 \u043d\u0430\u0448\u0435\u0433\u043e \u0442\u0435\u043a\u0443\u0449\u0435\u0433\u043e CURRENT_SCN, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043c\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438 \u0440\u0430\u043d\u0435\u0435:<\/p>\n<pre><code class=\"sql\">SELECT   T.NAME AS FILE_NAME FROM (   SELECT     F.MEMBER AS NAME,     ROW_NUMBER() OVER(PARTITION BY F.GROUP# ORDER BY F.GROUP#) AS GROUP   FROM V$LOGFILE F     JOIN V$LOG L       ON L.GROUP# = F.GROUP#   WHERE F.TYPE = 'ONLINE' ) T WHERE T.GROUP = 1   AND 2001 >= T.FIRST_CHANGE;         FILE_NAME FIRST_CHANGE          NEXT_CHANGE  STATUS  ---------------- ------------ -------------------- ------- \/path\/redo03.log 1900         18446744073709551615 CURRENT<\/code><\/pre>\n<blockquote>\n<p>\u0412 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u043c \u0441\u043e\u0432\u0435\u0442\u0443\u044e \u043f\u043e\u043b\u0443\u0447\u0430\u0442\u044c \u043d\u0435\u0437\u0430\u0444\u0438\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u0438.<\/p>\n<\/blockquote>\n<p>\u0418\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u043c LogMiner \u0441 redo log \u0444\u0430\u0439\u043b\u043e\u043c, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438 \u0440\u0430\u043d\u0435\u0435 \u0438 \u0441 STARTSCN, \u0440\u0430\u0432\u043d\u044b\u043c \u043d\u0430\u0448\u0435\u043c\u0443 CURRENT_SCN:<\/p>\n<pre><code class=\"sql\">BEGIN   DBMS_LOGMNR.ADD_LOGFILE('\/path\/redo03.log', DBMS_LOGMNR.NEW);   DBMS_LOGMNR.START_LOGMNR(     STARTSCN=>2001,     OPTIONS=>       DBMS_LOGMNR.DICT_FROM_ONLINE_CATALOG       + DBMS_LOGMNR.PRINT_PRETTY_SQL       + DBMS_LOGMNR.NO_SQL_DELIMITER       + DBMS_LOGMNR.NO_ROWID_IN_STMT   ); END;<\/code><\/pre>\n<p>\u0412\u044b\u0437\u043e\u0432\u0435\u043c \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435 V$LOGMNR_CONTENTS \u0438 \u043e\u0442\u0444\u0438\u043b\u044c\u0442\u0440\u0443\u0435\u043c \u0435\u0433\u043e \u043f\u043e\u0434 \u043d\u0430\u0448\u0443 \u0442\u0430\u0431\u043b\u0438\u0446\u0443:<\/p>\n<pre><code class=\"sql\">SELECT   SCN,   OPERATION,   SEG_OWNER,   TABLE_NAME,   SQL_REDO,   ROW_ID FROM V$LOGMNR_CONTENTS WHERE SEG_OWNER = 'SC'   AND TABLE_NAME = 'TEST';   SCN OPERATION SEG_OWNER TABLE_NAME                SQL_REDO             ROW_ID   ---- --------- --------- ---------- ----------------------- ------------------ 2002 INSERT    SC        TEST       insert into \"SC\".\"TEST\" AAAUkcAAHAAAAHeAAA                                      values                                         \"ID\" = 0,                                         \"COL1\" = 'TEXT',                                         \"COL2\" = 1<\/code><\/pre>\n<blockquote>\n<p>\u0421\u043e\u0432\u0435\u0442\u0443\u044e \u0444\u0438\u043b\u044c\u0442\u0440\u043e\u0432\u0430\u0442\u044c \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435 V$LOGMNR_CONTENTS \u043f\u043e \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0443\u044e\u0449\u0438\u043c \u043d\u0430\u043c \u0442\u0430\u0431\u043b\u0438\u0446\u0430\u043c \u0438\u043b\u0438 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044f\u043c.<\/p>\n<\/blockquote>\n<p>\u041f\u043e\u0437\u0434\u0440\u0430\u0432\u043b\u044f\u044e, \u043c\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438 \u043f\u0435\u0440\u0432\u044b\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f)<\/p>\n<p>\u0410\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u0442\u0435\u043a\u0443\u0449\u0438\u0445 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439 \u0442\u0430\u043a\u043e\u0439:<\/p>\n<ol>\n<li>\n<p>\u041f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 \u0442\u0435\u043a\u0443\u0449\u0435\u0433\u043e SCN.<\/p>\n<\/li>\n<li>\n<p>\u0421\u043e\u0432\u0435\u0440\u0448\u0438\u0442\u044c DML \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044e.<\/p>\n<\/li>\n<li>\n<p>\u041f\u043e\u043b\u0443\u0447\u0438\u0442\u044c redo log \u0444\u0430\u0439\u043b\u044b \u043f\u043e\u043a\u0440\u044b\u0432\u0430\u044e\u0449\u0438\u0435 \u0442\u0435\u043a\u0443\u0449\u0438\u0439 SCN.<\/p>\n<\/li>\n<li>\n<p>\u0418\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c LogMiner.<\/p>\n<\/li>\n<li>\n<p>\u0412\u044b\u0437\u0432\u0430\u0442\u044c \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435 V$LOGMNR_CONTENTS.<\/p>\n<\/li>\n<\/ol>\n<blockquote>\n<p>\u0414\u0430\u043b\u0435\u0435 \u043d\u0443\u0436\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0439 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c, \u0447\u0442\u043e\u0431\u044b \u0434\u043e\u0431\u0438\u0442\u044c\u0441\u044f \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u043e\u0432 \u043a\u0430\u043a \u0432 \u043f\u0440\u0438\u043c\u0435\u0440\u0430\u0445, \u043d\u043e \u0431\u0443\u0434\u0443\u0442 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f (\u043e \u043d\u0438\u0445 \u044f \u0431\u0443\u0434\u0443 \u0441\u043e\u043e\u0431\u0449\u0430\u0442\u044c).<\/p>\n<\/blockquote>\n<p><a class=\"anchor\" name=\"13\" id=\"13\"><\/a><\/p>\n<h3>\u041f\u0440\u043e\u0441\u0442\u044b\u0435 DML \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438<\/h3>\n<p>\u0414\u043e\u0431\u0430\u0432\u0438\u043c \u0437\u0430\u043f\u0438\u0441\u044c \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0443, \u043e\u0431\u043d\u043e\u0432\u0438\u043c \u0438 \u0443\u0434\u0430\u043b\u0438\u043c \u0435\u0435. \u041f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043a\u0430\u043a \u0431\u0443\u0434\u0443\u0442 \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u0442\u044c \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f:<\/p>\n<pre><code class=\"sql\">SELECT TIMESTAMP_TO_SCN(SYSDATE) AS CURRENT_SCN FROM DUAL;  CURRENT_SCN ----------- 2005  INSERT INTO SC.TEST (ID, COL1, COL2) VALUES (1, 'IVAN', 18); UPDATE SC.TEST SET COL1 = 'IVAN2' WHERE ID = 1; DELETE FROM SC.TEST WHERE ID = 1; COMMIT;<\/code><\/pre>\n<p>\u041f\u043e\u043b\u0443\u0447\u0438\u043c redo log \u0444\u0430\u0439\u043b\u044b \u0438 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u043c LogMiner. \u0412\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u0441\u044f \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435\u043c V$LOGMNR_CONTENTS \u0434\u043b\u044f \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439, \u0438 \u043e\u0442\u0444\u0438\u043b\u044c\u0442\u0440\u0443\u0435\u043c \u0434\u0430\u043d\u043d\u044b\u0435 \u043f\u043e\u0434 \u043d\u0443\u0436\u043d\u0443\u044e \u043d\u0430\u043c \u0442\u0430\u0431\u043b\u0438\u0446\u0443:<\/p>\n<pre><code class=\"sql\">SELECT   SCN,   COMMIT_SCN,   COMMIT_TIMESTAMP,   ROLLBACK,   OPERATION,   INFO,   SEG_OWNER,   TABLE_NAME,   SQL_REDO,   CSF,   ROW_ID,   XIDUSN,   XIDSLT,   XIDSQN FROM V$LOGMNR_CONTENTS WHERE SEG_OWNER = 'SC'   AND TABLE_NAME = 'TEST';   SCN COMMIT_SCN COMMIT_TIMESTAMP ROLLBACK OPERATION INFO SEG_OWNER TABLE_NAME                 SQL_REDO CSF             ROW_ID XIDUSN XIDSLT XIDSQN  ---- ---------- ---------------- -------- --------- ---- --------- ---------- ------------------------ --- ------------------ ------ ------ ------ 2006 NULL       NULL             0        INSERT    NULL SC        TEST       insert into \"SC\".\"TEST\"  0   AAAUkcAAHAAAAHeAAA 10     13     14218                                                                                values                                                                                   \"ID\" = 1,                                                                                   \"COL1\" = 'IVAN',                                                                                   \"COL2\" = 18 2006 NULL       NULL             0        UPDATE    NULL SC        TEST       update \"SC\".\"TEST\"       0   AAAUkcAAHAAAAHeAAA 10     13     14218                                                                                 set                                                                                   \"COL1\" = 'IVAN2'                                                                                 where                                                                                    \"ID\" = 1 and                                                                                    \"COL1\" = 'IVAN' and                                                                                   \"COL2\" = 18 2006 NULL       NULL             0        DELETE    NULL SC        TEST       delete from \"SC\".\"TEST\"  0   AAAUkcAAHAAAAHeAAA 10     13     14218                                                                                where                                                                                   \"ID\" = 1 and                                                                                    \"COL1\" = 'IVAN2' and                                                                                   \"COL2\" = 18<\/code><\/pre>\n<p>\u0412\u043e\u0442 \u0442\u0430\u043a \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u043a\u0430\u0436\u0434\u0430\u044f \u0438\u0437 DML \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439 \u043a\u0430\u043a \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435. \u0412\u043d\u0435 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442 DML \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438, \u0443 \u043d\u0438\u0445 \u0432\u0441\u0435\u0433\u0434\u0430 \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u043b\u043d\u044b\u0439 \u043d\u0430\u0431\u043e\u0440 \u043f\u043e\u043b\u0435\u0439, \u043a\u0440\u043e\u043c\u0435 LOB \u043f\u043e\u043b\u0435\u0439 (\u043e\u0431 \u044d\u0442\u043e\u043c \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u0437\u0436\u0435). \u0422\u0430\u043a \u0436\u0435, \u0443 \u044d\u0442\u0438\u0445 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439 \u0432\u0430\u043b\u0438\u0434\u043d\u044b\u0439 ROW_ID \u0438 \u043a\u0430\u0436\u0434\u0430\u044f \u0438\u0437 \u043d\u0438\u0445 \u0441\u0447\u0438\u0442\u0430\u0435\u0442\u0441\u044f \u0437\u0430\u043a\u043e\u043d\u0447\u0435\u043d\u043d\u043e\u0439. \u041f\u0440\u043e\u0439\u0434\u0435\u043c\u0441\u044f \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u043f\u043e \u043f\u043e\u043b\u044f\u043c \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044f V$LOGMNR_CONTENTS:<\/p>\n<ol>\n<li>\n<p><strong>SCN<\/strong>\u00a0\u2014 \u043c\u0435\u0442\u043a\u0430 \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0441\u043e\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u044f \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438;<\/p>\n<\/li>\n<li>\n<p><strong>COMMIT_SCN<\/strong>\u00a0\u2014 \u043c\u0435\u0442\u043a\u0443 \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0441\u043e\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u044f \u0444\u0438\u043a\u0441\u0430\u0446\u0438\u0438 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u0438. \u0423\u00a0DML \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439 \u043e\u043d\u0430 \u0431\u0443\u0434\u0435\u0442 \u0442\u043e\u043b\u044c\u043a\u043e, \u0435\u0441\u043b\u0438 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f LogMiner \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0430 \u0441\u00a0\u043e\u043f\u0446\u0438\u0435\u0439 COMMITTED_DATA_ONLY, \u0430\u00a0\u0442\u0430\u043a \u0431\u0443\u0434\u0435\u0442 \u0432\u0441\u0442\u0440\u0435\u0447\u0430\u0442\u044c\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u0443\u00a0\u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 COMMIT;<\/p>\n<\/li>\n<li>\n<p><strong>COMMIT_TIMESTAMP<\/strong>\u00a0\u2014 \u0432\u044b\u0432\u043e\u0434\u0438\u0442 \u0434\u0430\u0442\u0443 \u0438 \u0432\u0440\u0435\u043c\u044f \u0441\u043e\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u044f \u0444\u0438\u043a\u0441\u0430\u0446\u0438\u0438 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u0438. \u0423\u0441\u043b\u043e\u0432\u0438\u044f \u043f\u043e\u044f\u0432\u043b\u0435\u043d\u0438\u044f \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u0443\u00a0\u0434\u0430\u043d\u043d\u043e\u0433\u043e \u043f\u043e\u043b\u044f \u0442\u0430\u043a\u0438\u0435\u00a0\u0436\u0435, \u043a\u0430\u043a\u00a0\u0438 \u0443\u00a0\u043f\u043e\u043b\u044f COMMIT_SCN;<\/p>\n<\/li>\n<li>\n<p><strong>ROLLBACK<\/strong>\u00a0\u2014 \u0444\u043b\u0430\u0433 \u043e\u0442\u043c\u0435\u043d\u044b DML \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438, \u0435\u0441\u043b\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u043e\u043b\u044f 1, \u0442\u043e \u0434\u0430\u043d\u043d\u0430\u044f DML \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044f \u0441\u043b\u0443\u0447\u0438\u0442 \u0434\u043b\u044f\u00a0\u043e\u0442\u043c\u0435\u043d\u044b \u0440\u0430\u043d\u0435\u0435 \u0441\u043e\u0432\u0435\u0440\u0448\u0435\u043d\u043d\u043e\u0439 DML \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438;<\/p>\n<\/li>\n<li>\n<p><strong>OPERATION<\/strong>\u00a0\u2014 \u0442\u0438\u043f \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 (\u0431\u0443\u0434\u0443\u0442 \u0432\u0441\u0442\u0440\u0435\u0447\u0430\u0442\u044c\u0441\u044f \u0443\u0436\u0435 \u0437\u043d\u0430\u043a\u043e\u043c\u044b\u0435 DML \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438, \u0442\u0430\u043a \u0438 COMMIT, ROLLBACK, INTERNAL (\u0441\u0438\u0441\u0442\u0435\u043c\u043d\u0430\u044f \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044f \u0421\u0423\u0411\u0414));<\/p>\n<\/li>\n<li>\n<p><strong>INFO<\/strong>\u00a0\u2014 \u0432\u00a0\u043e\u0441\u043d\u043e\u0432\u043d\u043e\u043c \u043f\u043e\u043b\u0435 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043f\u043e\u00a0\u043e\u0442\u043a\u043b\u043e\u043d\u0435\u043d\u0438\u044e \u0440\u0430\u0431\u043e\u0442\u044b LogMiner, \u043a\u00a0\u043f\u0440\u0438\u043c\u0435\u0440\u0443 \u0432\u0441\u0435\u00a0\u043b\u0438 \u043f\u043e\u043b\u044f\u00a0\u0431\u044b\u043b\u0438 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e \u0438\u043d\u0442\u0435\u0440\u043f\u0440\u0435\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u044b \u0441\u043b\u043e\u0432\u0430\u0440\u0435\u043c \u0438 \u0442.\u0434;<\/p>\n<\/li>\n<li>\n<p><strong>SEG_OWNER<\/strong>\u00a0\u2014 \u0441\u0445\u0435\u043c\u0430 \u0442\u0430\u0431\u043b\u0438\u0446\u044b;<\/p>\n<\/li>\n<li>\n<p><strong>TABLE_NAME<\/strong>\u00a0\u2014 \u0438\u043c\u044f \u0442\u0430\u0431\u043b\u0438\u0446\u044b;<\/p>\n<\/li>\n<li>\n<p><strong>SQL_REDO<\/strong>\u00a0\u2014 SQL \u0437\u0430\u043f\u0440\u043e\u0441 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438;<\/p>\n<\/li>\n<li>\n<p><strong>CSF<\/strong>\u00a0\u2014 \u0444\u043b\u0430\u0433 \u0437\u0430\u043a\u043e\u043d\u0447\u0435\u043d\u043d\u043e\u0441\u0442\u0438 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u0432\u00a0\u043f\u043e\u043b\u0435 SQL_REDO. \u0415\u0441\u043b\u0438 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044f \u0434\u043b\u0438\u043d\u043d\u0430\u044f \u0438 \u043d\u0435\u00a0\u043f\u043e\u043c\u0435\u0449\u0430\u0435\u0442\u0441\u044f \u0432\u00a0SQL_REDO, \u0442\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u043e\u043b\u044f 1\u00a0\u0433\u043e\u0432\u043e\u0440\u0438\u0442 \u043e\u00a0\u0442\u043e\u043c, \u0447\u0442\u043e\u00a0\u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044f \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0435\u043d\u0430 \u0432\u00a0\u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0439 \u0437\u0430\u043f\u0438\u0441\u0438 \u0432\u00a0\u043f\u043e\u043b\u0435 SQL_REDO;<\/p>\n<\/li>\n<li>\n<p><strong>ROW_ID<\/strong>\u00a0\u2014 \u044d\u0442\u043e \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0439 \u0430\u0434\u0440\u0435\u0441 \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u043d\u0430\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u044f \u0441\u0442\u0440\u043e\u043a\u0438 \u0432\u00a0\u0444\u0430\u0439\u043b\u0435, \u043f\u043e\u043b\u0435\u0437\u043d\u043e \u0434\u043b\u044f\u00a0\u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u043d\u0443\u0436\u043d\u043e \u043e\u0442\u043a\u0430\u0442\u0438\u0442\u044c;<\/p>\n<\/li>\n<li>\n<p><strong>XIDUSN<\/strong>, <strong>XIDSLT<\/strong>, <strong>XIDSQN<\/strong>\u00a0\u2014 \u0441\u043e\u0441\u0442\u0430\u0432\u043d\u043e\u0439 \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u0438.<\/p>\n<\/li>\n<\/ol>\n<blockquote>\n<p>\u041d\u0435 \u0431\u043e\u0439\u0442\u0435\u0441\u044c, \u0435\u0441\u043b\u0438 \u0432\u044b \u0447\u0442\u043e-\u0442\u043e \u043d\u0435 \u043f\u043e\u043d\u044f\u043b\u0438, \u0434\u0430\u043b\u0435\u0435 \u0432 \u043f\u0440\u0438\u043c\u0435\u0440\u0430\u0445 \u0431\u0443\u0434\u0435\u0442 \u043d\u0430\u0433\u043b\u044f\u0434\u043d\u043e \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u043e, \u0437\u0430 \u0447\u0442\u043e \u043e\u0442\u0432\u0435\u0447\u0430\u0435\u0442 \u0442\u043e \u0438\u043b\u0438 \u0438\u043d\u043e\u0435 \u043f\u043e\u043b\u0435.<\/p>\n<\/blockquote>\n<p>\u0412\u0430\u043b\u0438\u0434\u043d\u044b\u043c (VALID) ROW_ID \u044f \u0431\u0443\u0434\u0443 \u043d\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u0432 \u0442\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435, \u0435\u0441\u043b\u0438 \u043e\u043d\u043e \u043e\u0434\u043d\u043e\u0437\u043d\u0430\u0447\u043d\u043e \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u0446\u0438\u0440\u0443\u0435\u0442 \u0441\u0442\u0440\u043e\u043a\u0443 \u0432 \u0431\u0430\u0437\u0435 \u0434\u0430\u043d\u043d\u044b\u0445.<\/p>\n<p>\u0428\u0430\u0431\u043b\u043e\u043d \u043f\u0440\u043e\u0441\u0442\u044b\u0445 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439:<\/p>\n<pre><code class=\"sql\">OPERATION        SQL_REDO             ROW_ID  --------- --------------- ------------------ INSERT    insert into ... VALID  UPDATE    update ...      VALID  DELETE    delete from ... VALID<\/code><\/pre>\n<p><a class=\"anchor\" name=\"14\" id=\"14\"><\/a><\/p>\n<h3>\u0414\u043b\u0438\u043d\u043d\u044b\u0435 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438<\/h3>\n<p>\u0414\u043b\u0438\u043d\u043d\u044b\u0435 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438\u00a0\u2014 \u044d\u0442\u043e DML \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0435 \u043f\u043e\u043c\u0435\u0449\u0430\u044e\u0442\u0441\u044f \u0432 \u0440\u0430\u043c\u043a\u0430\u0445 \u043e\u0434\u043d\u043e\u0439 \u0437\u0430\u043f\u0438\u0441\u0438 \u0432 \u043f\u043e\u043b\u0435 SQL_REDO \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044f V$LOGMNR_CONTENTS  \u0438 \u043f\u043e\u043c\u0435\u0447\u0430\u044e\u0442\u0441\u044f CSF \u0440\u0430\u0432\u043d\u043e\u0433\u043e 1.<\/p>\n<p>\u0414\u043e\u0431\u0430\u0432\u0438\u043c \u0442\u0430\u043a\u0443\u044e \u0437\u0430\u043f\u0438\u0441\u044c \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0443:<\/p>\n<pre><code class=\"sql\">SELECT TIMESTAMP_TO_SCN(SYSDATE) AS CURRENT_SCN FROM DUAL;  CURRENT_SCN ----------- 2010  INSERT INTO SC.TEST (ID, COL1, COL2) VALUES (0, DBMS_RANDOM.STRING('U', 4000), 20); COMMIT;<\/code><\/pre>\n<p>\u041a\u0430\u043a \u0438 \u0432 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0438\u0445 \u043f\u0440\u0438\u043c\u0435\u0440\u0430\u0445, \u043f\u043e\u043b\u0443\u0447\u0438\u043c redo log \u0444\u0430\u0439\u043b\u044b \u0438 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u043c LogMiner. \u0422\u0435\u043f\u0435\u0440\u044c \u043f\u043e\u043b\u0443\u0447\u0438\u043c \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f:<\/p>\n<pre><code class=\"sql\">SELECT   SCN,   COMMIT_SCN,   COMMIT_TIMESTAMP,   ROLLBACK,   OPERATION,   INFO,   SEG_OWNER,   TABLE_NAME,   SQL_REDO,   CSF,   ROW_ID,   XIDUSN,   XIDSLT,   XIDSQN FROM V$LOGMNR_CONTENTS WHERE SEG_OWNER = 'SC'   AND TABLE_NAME = 'TEST';   SCN COMMIT_SCN COMMIT_TIMESTAMP ROLLBACK OPERATION INFO SEG_OWNER TABLE_NAME                SQL_REDO CSF             ROW_ID XIDUSN XIDSLT XIDSQN  ---- ---------- ---------------- -------- --------- ---- --------- ---------- ----------------------- --- ------------------ ------ ------ ------ 2012 NULL       NULL             0        INSERT    NULL SC        TEST       insert into \"SC\".\"TEST\" 1   AAAUkcAAHAAAAHeAAA 4      20     2108                                                                                values                                                                                   \"ID\" = 0,                                                                                   \"COL1\" = 'ASDSFG... 2012 NULL       NULL             0        INSERT    NULL SC        TEST       ...ASDFKJBZDKSDFSFFKG', 0   AAAUkcAAHAAAAHeAAA 4      20     2108                                                                                   \"COL2\" = 20<\/code><\/pre>\n<p>\u0412 \u043f\u0440\u0438\u043c\u0435\u0440\u0435 \u0432\u0438\u0434\u043d\u043e, \u0447\u0442\u043e \u043f\u043e\u043b\u0435 CSF \u0440\u0430\u0432\u043d\u043e 1, \u044d\u0442\u043e \u0433\u043e\u0432\u043e\u0440\u0438\u0442 \u043d\u0430\u043c \u043e \u0442\u043e\u043c, \u0447\u0442\u043e \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044f \u043d\u0435 \u043f\u043e\u043c\u0435\u0441\u0442\u0438\u043b\u0430\u0441\u044c \u0432 \u043f\u043e\u043b\u0435 SQL_REDO. \u0412 \u0442\u0430\u043a\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043a\u043e\u043d\u043a\u0430\u0442\u0435\u043d\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0437\u0430\u043f\u0438\u0441\u0438 \u043f\u043e \u043f\u043e\u043b\u044e SQL_REDO \u043f\u043e\u043a\u0430 \u043f\u043e\u043b\u0435 CSF \u043d\u0435 \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0432\u043d\u044b\u043c 0.<\/p>\n<p>\u0428\u0430\u0431\u043b\u043e\u043d \u0434\u043b\u0438\u043d\u043d\u043e\u0439 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439:<\/p>\n<pre><code class=\"sql\">OPERATION        SQL_REDO CSF             ROW_ID  --------- --------------- --- ------------------ INSERT    insert into ... 1   VALID INSERT    ...             1   VALID INSERT    ...             0   VALID  UPDATE    update ...      1   VALID UPDATE    ...             0   VALID  DELETE    delete from ... 1   VALID DELETE    ...             0   VALID<\/code><\/pre>\n<p><a class=\"anchor\" name=\"15\" id=\"15\"><\/a><\/p>\n<h3>\u0422\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u0438<\/h3>\n<p>\u0412 \u0434\u0430\u043d\u043d\u043e\u0439 \u0433\u043b\u0430\u0432\u0435 \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u043e \u043a\u0430\u043a LogMiner \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0432 \u0440\u0430\u0437\u0440\u0435\u0437\u0435 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u0439.<\/p>\n<p><a class=\"anchor\" name=\"16\" id=\"16\"><\/a><\/p>\n<h4>\u041f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439 \u0437\u0430\u0444\u0438\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u0439<\/h4>\n<p>\u0427\u0442\u043e\u0431\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u0437\u0430\u0444\u0438\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0439 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u0438, \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c LogMiner \u0441 \u043e\u043f\u0446\u0438\u0435\u0439 COMMITTED_DATA_ONLY:<\/p>\n<pre><code class=\"sql\">BEGIN   DBMS_LOGMNR.ADD_LOGFILE('\/path\/redo03.log', DBMS_LOGMNR.NEW);   DBMS_LOGMNR.START_LOGMNR(     STARTSCN=>2020,     OPTIONS=>       DBMS_LOGMNR.DICT_FROM_ONLINE_CATALOG       + DBMS_LOGMNR.COMMITTED_DATA_ONLY       + DBMS_LOGMNR.PRINT_PRETTY_SQL       + DBMS_LOGMNR.NO_SQL_DELIMITER       + DBMS_LOGMNR.NO_ROWID_IN_STMT   ); END;<\/code><\/pre>\n<p>\u0412 \u0434\u0430\u043d\u043d\u043e\u043c \u043f\u0440\u0438\u043c\u0435\u0440\u0435 \u0431\u0443\u0434\u0435\u043c \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0432 \u0434\u0432\u0443\u0445 \u0441\u0435\u0441\u0441\u0438\u044f\u0445. \u0412 \u043f\u0435\u0440\u0432\u043e\u0439 \u0441\u0435\u0441\u0441\u0438\u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u043c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u043a\u043e\u0434 \u0438 \u0434\u0430\u043d\u043d\u0443\u044e \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044e \u043d\u0435 \u0437\u0430\u0444\u0438\u043a\u0441\u0438\u0440\u0443\u0435\u043c (\u0431\u0435\u0437 COMMIT):<\/p>\n<pre><code class=\"sql\">SELECT TIMESTAMP_TO_SCN(SYSDATE) AS CURRENT_SCN FROM DUAL;  CURRENT_SCN ----------- 2020  INSERT INTO SC.TEST (ID, COL1, COL2) VALUES (1, 'PAVEL', 20); UPDATE SC.TEST SET COL1 = 'PAVEL 2' WHERE ID = 1;<\/code><\/pre>\n<p>\u0412\u043e \u0432\u0442\u043e\u0440\u043e\u0439 \u0441\u0435\u0441\u0441\u0438\u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u043c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u043a\u043e\u0434, \u043d\u043e \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044e \u0437\u0430\u0444\u0438\u043a\u0441\u0438\u0440\u0443\u0435\u043c (\u0441 COMMIT):<\/p>\n<pre><code class=\"sql\">INSERT INTO SC.TEST (ID, COL1, COL2) VALUES (2, 'DMITRY', 25); COMMIT;<\/code><\/pre>\n<p>\u041f\u043e\u043b\u0443\u0447\u0438\u043c \u0442\u0435\u043a\u0443\u0449\u0438\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f:<\/p>\n<pre><code class=\"sql\">SELECT   SCN,   COMMIT_SCN,   COMMIT_TIMESTAMP,   ROLLBACK,   OPERATION,   INFO,   SEG_OWNER,   TABLE_NAME,   SQL_REDO,   CSF,   ROW_ID,   XIDUSN,   XIDSLT,   XIDSQN FROM V$LOGMNR_CONTENTS WHERE SEG_OWNER = 'SC'   AND TABLE_NAME = 'TEST';   SCN COMMIT_SCN        COMMIT_TIMESTAMP ROLLBACK OPERATION INFO SEG_OWNER TABLE_NAME                SQL_REDO CSF             ROW_ID XIDUSN XIDSLT XIDSQN  ---- ---------- ----------------------- -------- --------- ---- --------- ---------- ----------------------- --- ------------------ ------ ------ ------ 2024 2026       2024-01-01 00:00:10.000 0        INSERT    NULL SC        TEST       insert into \"SC\".\"TEST\" 0   AAAUkcAAHAAAAHeAAB 10     13     14218                                                                                       values                                                                                          \"ID\" = 2,                                                                                          \"COL1\" = 'DMITRY',                                                                                          \"COL2\" = 25<\/code><\/pre>\n<p>\u0417\u0430\u043f\u0438\u0441\u0438, \u0433\u0434\u0435 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044f \u0431\u044b\u043b\u0430 \u043d\u0435 \u0437\u0430\u0444\u0438\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u0430 \u043c\u044b \u043d\u0435 \u0432\u0438\u0434\u0438\u043c, \u0432\u0438\u0434\u0438\u043c \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u0437\u0430\u0444\u0438\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0439 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u0438. \u0417\u0430\u0444\u0438\u043a\u0441\u0438\u0440\u0443\u0435\u043c \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044e \u0438\u0437 \u043f\u0435\u0440\u0432\u043e\u0439 \u0441\u0435\u0441\u0441\u0438\u0438:<\/p>\n<pre><code class=\"sql\">COMMIT;<\/code><\/pre>\n<p>\u0418 \u0437\u0430\u043d\u043e\u0432\u043e \u0432\u044b\u0437\u043e\u0432\u0435\u043c \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435 V$LOGMNR_CONTENTS:<\/p>\n<pre><code class=\"sql\">SELECT   SCN,   COMMIT_SCN,   COMMIT_TIMESTAMP,   ROLLBACK,   OPERATION,   INFO,   SEG_OWNER,   TABLE_NAME,   SQL_REDO,   CSF,   ROW_ID,   XIDUSN,   XIDSLT,   XIDSQN FROM V$LOGMNR_CONTENTS WHERE SEG_OWNER = 'SC'   AND TABLE_NAME = 'TEST';   SCN COMMIT_SCN        COMMIT_TIMESTAMP ROLLBACK OPERATION INFO SEG_OWNER TABLE_NAME                 SQL_REDO CSF             ROW_ID XIDUSN XIDSLT XIDSQN  ---- ---------- ----------------------- -------- --------- ---- --------- ---------- ------------------------ --- ------------------ ------ ------ ------ 2022 2028       2024-01-01 00:00:12.000 0        INSERT    NULL SC        TEST       insert into \"SC\".\"TEST\"  0   AAAUkcAAHAAAAHeAAA 8      15     1263                                                                                       values                                                                                          \"ID\" = 1,                                                                                          \"COL1\" = 'PAVEL',                                                                                          \"COL2\" = 20 2023 2028       2024-01-01 00:00:12.000 0        UPDATE    NULL SC        TEST       update \"SC\".\"TEST\"       0   AAAUkcAAHAAAAHeAAA 8      15     1263                                                                                        set                                                                                          \"COL1\" = 'PAVEL 2'                                                                                        where                                                                                           \"ID\" = 1 and                                                                                           \"COL1\" = 'PAVEL' and                                                                                          \"COL2\" = 20 2024 2026       2024-01-01 00:00:10.000 0        INSERT    NULL SC        TEST       insert into \"SC\".\"TEST\"  0   AAAUkcAAHAAAAHeAAB 10     13     14218                                                                                       values                                                                                          \"ID\" = 2,                                                                                          \"COL1\" = 'DMITRY',                                                                                          \"COL2\" = 25<\/code><\/pre>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u0435\u0441\u0442\u044c \u0432\u0441\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0438\u0437 \u0434\u0432\u0443\u0445 \u0441\u0435\u0441\u0441\u0438\u0439. \u0421\u0442\u043e\u0438\u0442 \u043e\u0431\u0440\u0430\u0442\u0438\u0442\u044c \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u043d\u0430 \u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u043a\u0443 \u043f\u043e SCN \u0438 \u043f\u043e COMMIT_SCN.<\/p>\n<p>\u0414\u043e\u043f\u0443\u0441\u0442\u0438\u043c, \u043c\u044b \u0445\u043e\u0442\u0438\u043c \u043f\u0440\u043e\u0447\u0438\u0442\u0430\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044e UPDATE \u0438\u0437 \u043f\u0435\u0440\u0432\u043e\u0439 \u0441\u0435\u0441\u0441\u0438\u0438. \u0418\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u043c LogMiner \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c:<\/p>\n<pre><code class=\"sql\">BEGIN   DBMS_LOGMNR.ADD_LOGFILE('\/path\/redo03.log', DBMS_LOGMNR.NEW);   DBMS_LOGMNR.START_LOGMNR(     STARTSCN=>2023,     ENDSCN=>2028,     OPTIONS=>       DBMS_LOGMNR.DICT_FROM_ONLINE_CATALOG       + DBMS_LOGMNR.COMMITTED_DATA_ONLY       + DBMS_LOGMNR.PRINT_PRETTY_SQL       + DBMS_LOGMNR.NO_SQL_DELIMITER       + DBMS_LOGMNR.NO_ROWID_IN_STMT   ); END;<\/code><\/pre>\n<p>\u0412 \u0434\u0430\u043d\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043c\u044b \u043d\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u043c \u043d\u0438\u0447\u0435\u0433\u043e:<\/p>\n<pre><code class=\"sql\">SELECT   SCN,   COMMIT_SCN,   COMMIT_TIMESTAMP,   ROLLBACK,   OPERATION,   INFO,   SEG_OWNER,   TABLE_NAME,   SQL_REDO,   CSF,   ROW_ID,   XIDUSN,   XIDSLT,   XIDSQN FROM V$LOGMNR_CONTENTS WHERE SEG_OWNER = 'SC'   AND TABLE_NAME = 'TEST';   SCN COMMIT_SCN        COMMIT_TIMESTAMP ROLLBACK OPERATION INFO SEG_OWNER TABLE_NAME                SQL_REDO CSF             ROW_ID XIDUSN XIDSLT XIDSQN  ---- ---------- ----------------------- -------- --------- ---- --------- ---------- ----------------------- --- ------------------ ------ ------ ------ <\/code><\/pre>\n<p>\u0412 \u0440\u0435\u0436\u0438\u043c\u0435 COMMITTED_DATA_ONLY \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044e \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u0430\u0442\u043e\u043c\u0430\u0440\u043d\u043e, \u0442\u043e \u0435\u0441\u0442\u044c \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e.<\/p>\n<p>\u042d\u0442\u043e\u0442 \u043c\u0435\u0442\u043e\u0434 \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u043f\u0440\u0438\u0432\u043b\u0435\u043a\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u0432 \u043f\u043b\u0430\u043d\u0435 \u043f\u043e\u0441\u0442 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u0445 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439, \u043d\u043e \u0443  \u0434\u0430\u043d\u043d\u043e\u0433\u043e \u043f\u043e\u0434\u0445\u043e\u0434\u0430 \u0435\u0441\u0442\u044c \u043f\u0430\u0440\u0443 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0445 \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043a\u043e\u0432:<\/p>\n<ul>\n<li>\n<p>\u0421\u043b\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0432 \u043e\u0442\u0441\u043b\u0435\u0436\u0438\u0432\u0430\u043d\u0438\u0438 \u0434\u043e\u043b\u0433\u0438\u0445 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u0439;<\/p>\n<\/li>\n<li>\n<p>\u0427\u0442\u0435\u043d\u0438\u0435 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u0439 \u0430\u0442\u043e\u043c\u0430\u0440\u043d\u043e (\u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0437\u043d\u0430\u0442\u044c \u043d\u0430\u0447\u0430\u043b\u043e \u0438 \u043a\u043e\u043d\u0435\u0446 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u0438).<\/p>\n<\/li>\n<\/ul>\n<p>\u0412 \u043a\u0430\u043a\u0438\u0445 \u0441\u043b\u0443\u0447\u0430\u044f\u0445 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0439 \u043c\u0435\u0442\u043e\u0434 \u044f \u0440\u0430\u0441\u0441\u043a\u0430\u0436\u0443 \u043f\u043e\u0437\u0436\u0435.<\/p>\n<p><a class=\"anchor\" name=\"17\" id=\"17\"><\/a><\/p>\n<h4>\u041f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439 \u043d\u0435\u0437\u0430\u0444\u0438\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u0439<\/h4>\n<p>\u0414\u043e\u0431\u0430\u0432\u0438\u043c \u0434\u0432\u0435 \u0437\u0430\u043f\u0438\u0441\u0438 \u0438 \u043f\u043e\u043a\u0430 \u0447\u0442\u043e \u043d\u0435 \u0437\u0430\u0444\u0438\u043a\u0441\u0438\u0440\u0443\u0435\u043c \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044e:<\/p>\n<pre><code class=\"sql\">SELECT TIMESTAMP_TO_SCN(SYSDATE) AS CURRENT_SCN FROM DUAL;  CURRENT_SCN ----------- 2030  INSERT INTO SC.TEST (ID, COL1, COL2) VALUES (3, 'FEDOR', 20); INSERT INTO SC.TEST (ID, COL1, COL2) VALUES (4, 'ALEXANDER', 30);<\/code><\/pre>\n<p>\u041f\u043e\u043b\u0443\u0447\u0438\u043c \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f:<\/p>\n<pre><code class=\"sql\">SELECT   SCN,   COMMIT_SCN,   COMMIT_TIMESTAMP,   ROLLBACK,   OPERATION,   INFO,   SEG_OWNER,   TABLE_NAME,   SQL_REDO,   CSF,   ROW_ID,   XIDUSN,   XIDSLT,   XIDSQN FROM V$LOGMNR_CONTENTS WHERE SEG_OWNER = 'SC'   AND TABLE_NAME = 'TEST';   SCN COMMIT_SCN        COMMIT_TIMESTAMP ROLLBACK OPERATION INFO SEG_OWNER TABLE_NAME                         SQL_REDO CSF             ROW_ID XIDUSN XIDSLT XIDSQN  ---- ---------- ----------------------- -------- --------- ---- --------- ---------- -------------------------------- --- ------------------ ------ ------ ------ 2032 NULL       NULL                    0        START     NULL NULL      NULL       set transaction read write       0   AAAUomAAAAAAAAAAAA 10     27     14783 2032 NULL       NULL                    0        INSERT    NULL SC        TEST       insert into \"SC\".\"TEST\"          0   AAAUomAAHAAAAWvAAA 10     27     14783                                                                                        values                                                                                           \"ID\" = 3,                                                                                           \"COL1\" = 'FEDOR',                                                                                           \"COL2\" = 20 2032 NULL       NULL                    0        INSERT    NULL SC        TEST       insert into \"SC\".\"TEST\"          0   AAAUomAAHAAAAWvAAB 10     27     14783                                                                                        values                                                                                           \"ID\" = 4,                                                                                           \"COL1\" = 'ALEXANDER',                                                                                           \"COL2\" = 30<\/code><\/pre>\n<p>\u041c\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438 \u0433\u0440\u044f\u0437\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435. \u041f\u043e\u0441\u043b\u0435 \u0442\u043e\u0433\u043e, \u043a\u0430\u043a \u0437\u0430\u0444\u0438\u043a\u0441\u0438\u0440\u0443\u0435\u043c \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044e \u043f\u043e\u044f\u0432\u0438\u0442\u0441\u044f \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044f COMMIT:<\/p>\n<pre><code class=\"sql\"> SCN COMMIT_SCN        COMMIT_TIMESTAMP ROLLBACK OPERATION INFO SEG_OWNER TABLE_NAME                         SQL_REDO CSF             ROW_ID XIDUSN XIDSLT XIDSQN  ---- ---------- ----------------------- -------- --------- ---- --------- ---------- -------------------------------- --- ------------------ ------ ------ ------ 2038 2038       2024-01-01 00:00:20.000 0        COMMIT    NULL NULL      NULL       commit                           0   AAAAAAAAAAAAAAAAAA 10     27     14783<\/code><\/pre>\n<p><a class=\"anchor\" name=\"18\" id=\"18\"><\/a><\/p>\n<h4>\u041f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u0438 \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u043e\u0442\u043a\u0430\u0442\u0438\u043b\u0438<\/h4>\n<p>\u0414\u043e\u0431\u0430\u0432\u0438\u043c \u0437\u0430\u043f\u0438\u0441\u044c \u0438 \u043e\u0442\u043a\u0430\u0442\u0438\u043c \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044e:<\/p>\n<pre><code class=\"sql\">SELECT TIMESTAMP_TO_SCN(SYSDATE) AS CURRENT_SCN FROM DUAL;  CURRENT_SCN ----------- 2040  INSERT INTO SC.TEST (ID, COL1, COL2) VALUES (5, 'ALEKSEY', 20); ROLLBACK;<\/code><\/pre>\n<p>\u041f\u043e\u043b\u0443\u0447\u0438\u043c \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u0438:<\/p>\n<pre><code class=\"sql\">SELECT   XIDUSN,   XIDSLT,   XIDSQN FROM V$LOGMNR_CONTENTS WHERE SEG_OWNER = 'SC'   AND TABLE_NAME = 'TEST';  XIDUSN XIDSLT XIDSQN  ------ ------ ------ 10     13     14229<\/code><\/pre>\n<p>\u041f\u043e\u043b\u0443\u0447\u0438\u043c \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u043f\u043e \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u0438:<\/p>\n<pre><code class=\"sql\">SELECT   SCN,   COMMIT_SCN,   COMMIT_TIMESTAMP,   ROLLBACK,   OPERATION,   INFO,   SEG_OWNER,   TABLE_NAME,   SQL_REDO,   CSF,   ROW_ID,   XIDUSN,   XIDSLT,   XIDSQN FROM V$LOGMNR_CONTENTS WHERE XIDUSN = 10   AND XIDSLT = 13   AND XIDSQN = 14229;   SCN COMMIT_SCN COMMIT_TIMESTAMP ROLLBACK OPERATION INFO SEG_OWNER TABLE_NAME                         SQL_REDO CSF             ROW_ID XIDUSN XIDSLT XIDSQN  ---- ---------- ---------------- -------- --------- ---- --------- ---------- -------------------------------- --- ------------------ ------ ------ ------ 2042 NULL       NULL             0        START     NULL NULL      NULL       set transaction read write       0   AAAUkcAAAAAAAAAAAA 10     13     14229 2042 NULL       NULL             0        INSERT    NULL SC        TEST       insert into \"SC\".\"TEST\"          0   AAAUkcAAHAAAAHdAAA 10     13     14229                                                                                values                                                                                   \"ID\" = 5,                                                                                   \"COL1\" = 'ALEKSEY',                                                                                   \"COL2\" = 20 2045 NULL      NULL              1        DELETE    NULL SC        TEST       delete from \"SC\".\"TEST\"                                                                                where                                                                                   ROWID = 'AAAUkcAAHAAAAHdAAA' 0   AAAUkcAAHAAAAHdAAA 10     13     14229 2046 NULL      NULL              0        ROLLBACK NULL  NULL      NULL       rollback                         0   AAAAAAAAAAAAAAAAAA 10     13     14229<\/code><\/pre>\n<p>\u0428\u0430\u0431\u043b\u043e\u043d \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u0438 \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u043e\u0442\u043a\u0430\u0442\u0438\u043b\u0438:<\/p>\n<pre><code class=\"sql\">ROLLBACK OPERATION                   SQL_REDO  -------- --------- -------------------------- 0        START     set transaction read write 0        INSERT    insert ... 0        INSERT    insert ... ... 1        DELETE    delete ... 1        DELETE    delete ... ...          ROLLBACK  rollback<\/code><\/pre>\n<p><a class=\"anchor\" name=\"19\" id=\"19\"><\/a><\/p>\n<h4>\u041f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u0438 \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u0447\u0430\u0441\u0442\u0438\u0447\u043d\u043e \u043e\u0442\u043a\u0430\u0442\u0438\u043b\u0438<\/h4>\n<p>\u041d\u0430\u0434\u0435\u044e\u0441\u044c \u0432\u044b \u0437\u043d\u0430\u043a\u043e\u043c\u044b \u0441 savepoint, \u043e\u043d\u0430 \u0436\u0435 \u00ab\u200e\u0442\u043e\u0447\u043a\u0430 \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f\u00bb. \u0412\u044b\u043f\u043e\u043b\u043d\u0438\u043c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u043a\u043e\u043c\u0430\u043d\u0434\u044b:<\/p>\n<pre><code class=\"sql\">SELECT TIMESTAMP_TO_SCN(SYSDATE) AS CURRENT_SCN FROM DUAL;  CURRENT_SCN ----------- 2050  INSERT INTO SC.TEST (ID, COL1, COL2) VALUES (6, 'ILYA', 20); SAVEPOINT S1; INSERT INTO SC.TEST (ID, COL1, COL2) VALUES (7, 'LEV', 30); ROLLBACK TO SAVEPOINT S1; INSERT INTO SC.TEST (ID, COL1, COL2) VALUES (8, 'ARTHUR', 40); COMMIT;<\/code><\/pre>\n<p>\u0412 \u0434\u0430\u043d\u043e\u043c \u043f\u0440\u0438\u043c\u0435\u0440\u0435 \u043c\u044b \u043e\u0442\u043a\u0430\u0442\u0438\u043b\u0438 \u043d\u0430\u0448\u0443 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044e \u0434\u043e \u0442\u043e\u0447\u043a\u0438 \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0438 \u0437\u0430\u0444\u0438\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043b\u0438 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044e. \u041f\u043e\u043b\u0443\u0447\u0438\u043c \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u0438:<\/p>\n<pre><code class=\"sql\">SELECT   XIDUSN,   XIDSLT,   XIDSQN FROM V$LOGMNR_CONTENTS WHERE SEG_OWNER = 'SC'   AND TABLE_NAME = 'TEST';  XIDUSN XIDSLT XIDSQN  ------ ------ ------ 3      16     2004<\/code><\/pre>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c, \u043a\u0430\u043a \u044d\u0442\u043e \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0432 \u0440\u0430\u0437\u0440\u0435\u0437\u0435 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u0438:<\/p>\n<pre><code class=\"sql\">SELECT   SCN,   COMMIT_SCN,   COMMIT_TIMESTAMP,   ROLLBACK,   OPERATION,   INFO,   SEG_OWNER,   TABLE_NAME,   SQL_REDO,   CSF,   ROW_ID,   XIDUSN,   XIDSLT,   XIDSQN FROM V$LOGMNR_CONTENTS WHERE XIDUSN = 3   AND XIDSLT = 16   AND XIDSQN = 2004;   SCN COMMIT_SCN        COMMIT_TIMESTAMP ROLLBACK OPERATION INFO SEG_OWNER TABLE_NAME                         SQL_REDO CSF             ROW_ID XIDUSN XIDSLT XIDSQN  ---- ---------- ----------------------- -------- --------- ---- --------- ---------- -------------------------------- --- ------------------ ------ ------ ------ 2052 NULL       NULL                    0        START     NULL NULL      NULL       set transaction read write       0   AAAUkcAAAAAAAAAAAA 3      16     2004 2052 NULL       NULL                    0        INSERT    NULL SC        TEST       insert into \"SC\".\"TEST\"          0   AAAUkcAAHAAAAHfAAA 3      16     2004                                                                                       values                                                                                          \"ID\" = 6,                                                                                          \"COL1\" = 'ILYA',                                                                                          \"COL2\" = 20 2052 NULL       NULL                    0        INSERT    NULL SC        TEST       insert into \"SC\".\"TEST\"          0   AAAUkcAAHAAAAHfAAB 3      16     2004                                                                                       values                                                                                          \"ID\" = 7,                                                                                          \"COL1\" = 'LEV',                                                                                          \"COL2\" = 30 2052 NULL       NULL                    1        DELETE    NULL SC        TEST       delete from \"SC\".\"TEST\"          0   AAAUkcAAHAAAAHfAAB 3      16     2004                                                                                       where                                                                                          ROWID = 'AAAUkcAAHAAAAHfAAB' 2052 NULL       NULL                    0        INSERT    NULL SC        TEST       insert into \"C##DBO\".\"TEST\"      0   AAAUkcAAHAAAAHfAAB 3      16     2004                                                                                       values                                                                                          \"ID\" = 8,                                                                                          \"COL1\" = 'ARTHUR',                                                                                          \"COL2\" = 40 2054 2054       2024-01-01 00:00:30.000 0        COMMIT    NULL NULL       NULL      commit                           0   AAAAAAAAAAAAAAAAAA<\/code><\/pre>\n<p>\u041e\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u043d\u0430 \u043f\u043e\u043b\u0435 ROW_ID \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u043e\u0442\u043a\u0430\u0442\u0438\u043b\u0438 \u0438 \u043d\u0430 ROW_ID \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0438\u0434\u0435\u0442 \u0434\u0430\u043b\u0435\u0435. \u041e\u043f\u0435\u0440\u0430\u0446\u0438\u044f \u0432\u0441\u0442\u0430\u0432\u043a\u0438 \u043d\u043e\u0432\u043e\u0439 \u0437\u0430\u043f\u0438\u0441\u0438 \u0437\u0430\u043d\u044f\u043b\u0430 \u043c\u0435\u0441\u0442\u043e \u0437\u0430\u043f\u0438\u0441\u0438 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u043e\u0442\u043a\u0430\u0442\u0438\u043b\u0438. \u042d\u0442\u043e \u0432\u0430\u0436\u043d\u044b\u0439 \u043d\u044e\u0430\u043d\u0441 \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u0430 \u0437\u0430\u043f\u0438\u0441\u0438 ROW_ID, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u0438\u0437 \u0435\u0433\u043e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f.<\/p>\n<p>\u041f\u043e\u043f\u0440\u043e\u0431\u0443\u0435\u043c \u0432\u044b\u0440\u0430\u0437\u0438\u0442\u044c \u0432\u0441\u0435 \u044d\u0442\u043e \u0432 \u0448\u0430\u0431\u043b\u043e\u043d\u0435:<\/p>\n<pre><code class=\"sql\">OPERATION ROLLBACK                         SQL_REDO CSF             ROW_ID  --------- -------- -------------------------------- --- ------------------ START     0        set transaction read write       0     INSERT    0        insert into ...                  0     INSERT    0        insert into ...                  0    DELETE    1        delete from ...                  0     INSERT    0        insert into ...                  0   PREVIOUS ROW_ID  COMMIT    0        commit                           0   <\/code><\/pre>\n<p><a class=\"anchor\" name=\"20\" id=\"20\"><\/a><\/p>\n<h3>DML \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u0441 LOB \u043f\u043e\u043b\u044f\u043c\u0438<\/h3>\n<p>\u0421\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u0442\u0430\u0431\u043b\u0438\u0446\u0443 \u0441 LOB \u043f\u043e\u043b\u0435\u043c \u0438 \u0432\u043a\u043b\u044e\u0447\u0438\u043c \u0443 \u043d\u0435\u0435 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0435 \u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0436\u0443\u0440\u043d\u0430\u043b\u0430 \u0434\u043b\u044f \u0432\u0441\u0435\u0445 \u043f\u043e\u043b\u0435\u0439:<\/p>\n<pre><code class=\"sql\">CREATE TABLE SC.TEST_LOB (   ID INTEGER,   COL1 VARCHAR2(4000),   COL2 INTEGER,   TEXT1 CLOB );  ALTER TABLE SC.TEST_LOB ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS;<\/code><\/pre>\n<p>\u0414\u043e\u0431\u0430\u0432\u0438\u043c \u0437\u0430\u043f\u0438\u0441\u044c \u0441 \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u0438\u043c LOB \u043a\u043e\u043d\u0442\u0435\u043d\u0442\u043e\u043c \u0438 \u043e\u0431\u043d\u043e\u0432\u0438\u043c \u0435\u0435:<\/p>\n<pre><code class=\"sql\">SELECT TIMESTAMP_TO_SCN(SYSDATE) AS CURRENT_SCN FROM DUAL;  CURRENT_SCN ----------- 2060  INSERT INTO SC.TEST_LOB (ID, COL1, COL2, TEXT1) VALUES (1, 'TEXT', 10, DBMS_RANDOM.STRING('U', 10)); UPDATE SC.TEST_LOB SET COL1 = 'TEXT_UPDATE' WHERE ID = 1;  COMMIT;<\/code><\/pre>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u043f\u043e\u043b\u0443\u0447\u0438\u043c redo log \u0444\u0430\u0439\u043b\u044b \u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0435\u0441\u0442\u044c \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u043f\u043e \u043d\u0430\u0448\u0435\u043c\u0443 SCN, \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u043c LogMiner \u0438 \u043f\u043e\u043b\u0443\u0447\u0438\u043c \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u0438 \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u043c\u044b \u043f\u0440\u043e\u0432\u0435\u043b\u0438:<\/p>\n<pre><code class=\"sql\">SELECT DISTINCT   XIDUSN,   XIDSLT,   XIDSQN FROM V$LOGMNR_CONTENTS WHERE SEG_OWNER = 'SC'   AND TABLE_NAME = 'TEST_LOB';  XIDUSN XIDSLT XIDSQN  ------ ------ ------ 9      10     2331<\/code><\/pre>\n<p>\u0418 \u043f\u043e\u043b\u0443\u0447\u0438\u043c \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u043e\u0439 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u0438:<\/p>\n<pre><code class=\"sql\">SELECT   SCN,   COMMIT_SCN,   COMMIT_TIMESTAMP,   ROLLBACK,   OPERATION,   INFO,   SEG_OWNER,   TABLE_NAME,   SQL_REDO,   CSF,   ROW_ID,   XIDUSN,   XIDSLT,   XIDSQN FROM V$LOGMNR_CONTENTS WHERE XIDUSN = 9   AND XIDSLT = 10   AND XIDSQN = 2331;   SCN COMMIT_SCN        COMMIT_TIMESTAMP ROLLBACK OPERATION INFO SEG_OWNER TABLE_NAME                    SQL_REDO CSF             ROW_ID XIDUSN XIDSLT XIDSQN  ---- ---------- ----------------------- -------- --------- ---- --------- ---------- --------------------------- --- ------------------ ------ ------ ------ 2062 NULL       NULL                    0        START     NULL NULL      NULL       set transaction read write  0   AAAAAAAAAAAAAAAAAA 9      10     2331 2062 NULL       NULL                    0        INSERT    NULL SC        TEST_LOB   insert into \"SC\".\"TEST_LOB\" 0   AAAAAAAAAAAAAAAAAA 9      10     2331                                                                                       values                                                                                          \"ID\" = 1,                                                                                          \"COL1\" = 'TEXT',                                                                                          \"COL2\" = 10,                                                                                          \"TEXT1\" = EMPTY_CLOB()  2064 NULL       NULL                    0        UPDATE    NULL SC        TEST_LOB   update \"SC\".\"TEST_LOB\"      0   AAAUoIAAHAAAMl\/AAB 9      10     2331                                                                                        set                                                                                          \"TEXT1\" = 'ENWNSJMDJG'                                                                                        where                                                                                           \"ID\" = 1 and                                                                                           \"COL1\" = 'TEXT' and                                                                                          \"COL2\" = 10 2066 NULL       NULL                    0        UPDATE    NULL SC        TEST_LOB   update \"SC\".\"TEST_LOB\"      0   AAAUoIAAHAAAMl\/AAB 9      10     2331                                                                                       set                                                                                         \"TEXT1\" = 'TEXT_UPDATE'                                                                                       where                                                                                          \"ID\" = 1 and                                                                                          \"COL1\" = 'TEXT' and                                                                                         \"COL2\" = 10 2068 2068       2024-01-01 00:00:40.000 0        COMMIT    NULL NULL      NULL       commit                      0   AAAAAAAAAAAAAAAAAA 9      10     2331<\/code><\/pre>\n<p>\u041a\u0430\u043a \u0432\u0438\u0434\u043d\u043e, INSERT \u043d\u0435 \u0438\u043c\u0435\u0435\u0442 \u0432\u0430\u043b\u0438\u0434\u043d\u044b\u0439 ROW_ID \u0438 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 &#171;TEXT1&#187; = EMPTY_CLOB(), \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u043d\u0430 LOB \u043f\u043e\u043b\u0435. \u0414\u0430\u043b\u0435\u0435 \u0438\u0434\u0435\u0442 UPDATE\u00a0\u2014 \u044d\u0442\u043e UPDATE LOB \u043f\u043e\u043b\u044f. \u041a\u0430\u043a \u0432\u0438\u0434\u043d\u043e, \u0443 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 INSERT ROW_ID \u043d\u0435 \u0432\u0430\u043b\u0438\u0434\u043d\u044b\u0439 (\u043a\u0430\u043a \u0431\u044b\u043b\u043e \u0432 \u043f\u0440\u043e\u0441\u0442\u044b\u0445 \u043f\u0440\u0438\u043c\u0435\u0440\u0430\u0445), \u0430 \u0443\u0436\u0435 \u0443 UPDATE LOB \u043f\u043e\u043b\u044f ROW_ID \u0432\u0430\u043b\u0438\u0434\u043d\u044b\u0439 \u0438 \u043f\u0440\u0438\u043d\u0430\u0434\u043b\u0435\u0436\u0438\u0442 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 INSERT.<\/p>\n<p>\u041c\u044b \u043d\u0435 \u0431\u0443\u0434\u0435\u043c \u0432\u0438\u0434\u0435\u0442\u044c \u0432 \u0431\u0443\u0434\u0443\u0449\u0438\u0445 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f\u0445 LOB \u043f\u043e\u043b\u0435, \u043f\u043e\u043a\u0430 \u043e\u043d\u043e \u0441\u0430\u043c\u043e \u043d\u0435 \u0431\u0443\u0434\u0435\u0442 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u043e.<\/p>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c, \u043f\u043e \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0438 \u0441 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0438\u043c \u043f\u0440\u0438\u043c\u0435\u0440\u043e\u043c, \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0437\u0430\u043f\u0438\u0441\u044c, \u043d\u043e \u0442\u0435\u043f\u0435\u0440\u044c \u0441 \u0431\u043e\u043b\u044c\u0448\u0438\u043c LOB \u043a\u043e\u043d\u0442\u0435\u043d\u0442\u043e\u043c:<\/p>\n<pre><code class=\"sql\">SELECT TIMESTAMP_TO_SCN(SYSDATE) AS CURRENT_SCN FROM DUAL;  CURRENT_SCN ----------- 2070  INSERT INTO SC.TEST_LOB (ID, COL1, COL2, TEXT1) VALUES (2, 'TEXT', 20, DBMS_RANDOM.STRING('U', 20000)); COMMIT;<\/code><\/pre>\n<p>\u041f\u043e\u043b\u0443\u0447\u0438\u043c \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u0438, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u043c\u044b \u043f\u0440\u043e\u0432\u0435\u043b\u0438 \u0438 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043d\u0430 \u043d\u0435\u0435:<\/p>\n<pre><code class=\"sql\">SELECT   SCN,   COMMIT_SCN,   COMMIT_TIMESTAMP,   ROLLBACK,   OPERATION,   INFO,   SEG_OWNER,   TABLE_NAME,   SQL_REDO,   CSF,   ROW_ID,   XIDUSN,   XIDSLT,   XIDSQN FROM V$LOGMNR_CONTENTS WHERE XIDUSN = 10   AND XIDSLT = 3   AND XIDSQN = 14629;   SCN COMMIT_SCN        COMMIT_TIMESTAMP ROLLBACK       OPERATION   INFO SEG_OWNER TABLE_NAME                    SQL_REDO CSF             ROW_ID XIDUSN XIDSLT XIDSQN  ---- ---------- ----------------------- -------- --------------- ------ --------- ---------- --------------------------- --- ------------------ ------ ------ ------ 2072 NULL       NULL                    0        START           NULL   NULL      NULL       set transaction read write  0   AAAAAAAAAAAAAAAAAA 10     3      14629 2072 NULL       NULL                    0        INSERT          NULL   SC        TEST_LOB   insert into \"SC\".\"TEST_LOB\" 0   AAAAAAAAAAAAAAAAAA 10     3      14629                                                                                                values                                                                                                   \"ID\" = 2,                                                                                                   \"COL1\" = 'TEXT',                                                                                                   \"COL2\" = 20,                                                                                                   \"TEXT1\" = EMPTY_CLOB() 2074 NULL       NULL                    0        INTERNAL        NULL   NULL      NULL       NULL                        0   AAAUoJAAAAAAAAAAAA 10     3      14629 2074 NULL       NULL                    0        SEL_LOB_LOCATOR LOB... SC        TEST_LOB   DECLARE ...                 0   AAAAAAAAAAAAAAAAAA 10     3      14629 2074 NULL       NULL                    0        INTERNAL        NULL   SC        TEST_LOB   NULL                        0   AAAAAAAAAAAAAAAAAA 10     3      14629 2074 NULL       NULL                    0        LOB_WRITE       LOB... SC        TEST_LOB   buf_c := 'ODWCBXRAIEGQQW... 0   AAAAAAAAAAAAAAAAAA 10     3      14629 2074 NULL       NULL                    0        LOB_WRITE       LOB... SC        TEST_LOB   buf_c := 'NHJGNONUXGBBBS... 0   AAAAAAAAAAAAAAAAAA 10     3      14629 2074 NULL       NULL                    0        INTERNAL        NULL   SC        TEST_LOB   NULL                        0   AAAAAAAAAAAAAAAAAA 10     3      14629 2074 NULL       NULL                    0        INTERNAL        NULL   SC        TEST_LOB   END;                        0   AAAAAAAAAAAAAAAAAA 10     3      14629 2076 NULL       NULL                    0        INTERNAL        NULL   NULL      NULL       NULL                        0   AAAUoIAAHAAAMl\/AAC 10     3      14629 2078 2078       2024-01-01 00:00:50.000 0        COMMIT          NULL   NULL      NULL       commit                      0   AAAAAAAAAAAAAAAAAA 10     3      14629<\/code><\/pre>\n<p>\u041a\u0430\u043a \u0432\u0438\u0434\u043d\u043e, INSERT \u0442\u0430\u043a \u0436\u0435 \u043d\u0435 \u0438\u043c\u0435\u0435\u0442 \u0432\u0430\u043b\u0438\u0434\u043d\u044b\u0439 ROW_ID \u0438 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 &#171;TEXT1&#187; = EMPTY_CLOB(), \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u043d\u0430 LOB \u043f\u043e\u043b\u0435. \u0414\u0430\u043b\u0435\u0435 \u0438\u0434\u0443\u0442 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 SEL_LOB_LOCATOR \u0438 LOB_WRITE:<\/p>\n<ul>\n<li>\n<p><strong>SEL_LOB_LOCATOR<\/strong> \u2014 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044f, \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0449\u0430\u044f \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440 LOB \u043f\u043e\u043b\u044f, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u0432\u043e\u0434\u0438\u0442\u044c\u0441\u044f \u0432\u00a0\u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c LOB_WRITE.<\/p>\n<\/li>\n<li>\n<p><strong>LOB_WRITE<\/strong>\u00a0\u2014 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044f, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435 LOB \u043f\u043e\u043b\u044f.<\/p>\n<\/li>\n<\/ul>\n<p>\u0412\u0430\u043b\u0438\u0434\u043d\u044b\u0439 ROW_ID \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442\u0441\u044f \u0432 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0439 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 INTERNAL. \u0422\u0443\u0442 \u043c\u043e\u0436\u043d\u043e \u0441\u043a\u0430\u0437\u0430\u0442\u044c, \u0447\u0442\u043e \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044f \u0434\u043b\u0438\u043b\u0430\u0441\u044c \u043e\u0442 SCN 2072 \u0434\u043e SCN 2076 (\u0434\u0430\u043b\u0435\u0435 \u044f \u043e\u0431\u044c\u044f\u0441\u043d\u044e \u0437\u0430\u0447\u0435\u043c \u044d\u0442\u043e \u0437\u043d\u0430\u0442\u044c).<\/p>\n<p>\u0412 \u043e\u0434\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044f \u0441 LOB \u043f\u043e\u043b\u044f\u043c\u0438 \u0437\u0430\u043a\u0430\u043d\u0447\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u043d\u0430 UPDATE, \u0430 \u0432 \u0434\u0440\u0443\u0433\u043e\u043c \u043d\u0430 INTERNAL.<\/p>\n<p>\u0422\u0430\u043a \u0436\u0435 \u0432 \u043e\u0434\u043d\u043e\u0439 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e LOB \u043f\u043e\u043b\u0435\u0439, \u0432\u0435\u0441\u0442\u0438 \u043e\u043d\u0438 \u0441\u0435\u0431\u044f \u0431\u0443\u0434\u0435\u0442 \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u043e.<\/p>\n<p>\u0428\u0430\u0431\u043b\u043e\u043d \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u0441 LOB \u043f\u043e\u043b\u044f\u043c\u0438:<\/p>\n<pre><code class=\"sql\">      OPERATION               SQL_REDO       ROW_ID --------------- ---------------------- ------------ INSERT          insert into ...        NO VALID UPDATE          update ...             VALID  INSERT          insert into ...        NO VALID SEL_LOB_LOCATOR ...                    NO VALID LOB_WRITE       ...                    NO VALID INTERNAL        ...                    VALID  INSERT          insert into ...        NO VALID UPDATE          update ...             NO VALID SEL_LOB_LOCATOR ...                    NO VALID LOB_WRITE       ...                    NO VALID INTERNAL        ...                    VALID  INSERT          insert into ...        NO VALID SEL_LOB_LOCATOR ...                    NO VALID LOB_WRITE       ...                    NO VALID UPDATE          update ...             VALID<\/code><\/pre>\n<p><a class=\"anchor\" name=\"21\" id=\"21\"><\/a><\/p>\n<h4>\u0413\u0430\u0440\u0430\u043d\u0442\u0438\u044f \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438<\/h4>\n<p>\u0418\u0437 \u043f\u0440\u043e\u0448\u043b\u043e\u0433\u043e \u043f\u0440\u0438\u043c\u0435\u0440\u0430 \u0432\u0438\u0434\u043d\u043e, \u0447\u0442\u043e \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044f \u043d\u0430\u0447\u0430\u043b\u0430\u0441\u044c \u0441 SCN 2072 \u0438 \u0434\u043b\u0438\u043b\u0430\u0441\u044c \u0434\u043e SCN 2076. \u0410 \u0447\u0442\u043e \u0435\u0441\u043b\u0438 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c LogMiner \u0441 STARTSCN 2076:<\/p>\n<pre><code class=\"sql\">BEGIN   DBMS_LOGMNR.ADD_LOGFILE('\/path\/redo03.log', DBMS_LOGMNR.NEW);   DBMS_LOGMNR.START_LOGMNR(     STARTSCN=>2076,     OPTIONS=>       DBMS_LOGMNR.DICT_FROM_ONLINE_CATALOG       + DBMS_LOGMNR.PRINT_PRETTY_SQL       + DBMS_LOGMNR.NO_SQL_DELIMITER       + DBMS_LOGMNR.NO_ROWID_IN_STMT   ); END;<\/code><\/pre>\n<p>\u041f\u043e\u043b\u0443\u0447\u0438\u043c \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f:<\/p>\n<pre><code class=\"sql\">SELECT   SCN,   COMMIT_SCN,   COMMIT_TIMESTAMP,   ROLLBACK,   OPERATION,   INFO,   SEG_OWNER,   TABLE_NAME,   SQL_REDO,   CSF,   ROW_ID,   XIDUSN,   XIDSLT,   XIDSQN FROM V$LOGMNR_CONTENTS WHERE XIDUSN = 10   AND XIDSLT = 3   AND XIDSQN = 14629;   SCN COMMIT_SCN        COMMIT_TIMESTAMP ROLLBACK       OPERATION   INFO SEG_OWNER TABLE_NAME                    SQL_REDO CSF             ROW_ID XIDUSN XIDSLT XIDSQN  ---- ---------- ----------------------- -------- --------------- ------ --------- ---------- --------------------------- --- ------------------ ------ ------ ------ 2076 NULL       NULL                    0        INSERT          NULL   SC        TEST_LOB insert into \"SC\".\"TEST_LOB\"   0   AAAUoIAAHAAAMl\/AAC 10     3      14629                                                                                             values                                                                                                \"ID\" = 2,                                                                                                \"COL1\" = 'TEXT',                                                                                                \"COL2\" = 20,                                                                                                \"TEXT1\" = EMPTY_CLOB()<\/code><\/pre>\n<p>\u041c\u043e\u0436\u0435\u0442 \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u044c\u0441\u044f \u0441\u0442\u0440\u0430\u043d\u043d\u044b\u043c, \u0447\u0442\u043e \u043d\u0430 \u043c\u0435\u0441\u0442\u0435 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 INTERNAL (\u0438\u0437 \u043f\u0440\u043e\u0448\u043b\u043e\u0433\u043e \u043f\u0440\u0438\u043c\u0435\u0440\u0430) \u043c\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438 INSERT, \u0433\u0434\u0435 \u0435\u0441\u0442\u044c LOB \u043f\u043e\u043b\u0435. \u0418 \u0441\u0430\u043c\u043e\u0435 \u043d\u0435\u043e\u0436\u0438\u0434\u0430\u043d\u043d\u043e\u0435, \u0447\u0442\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438 \u0432\u0430\u043b\u0438\u0434\u043d\u044b\u0439 ROW_ID.<\/p>\n<p>\u0421\u0442\u0440\u0430\u043d\u043d\u043e\u0433\u043e \u043d\u0438\u0447\u0435\u0433\u043e \u043d\u0435\u0442, \u043c\u044b \u043d\u0430\u0447\u0430\u043b\u0438 \u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0442\u044c LogMiner \u0441 \u0441\u0435\u0440\u0435\u0434\u0438\u043d\u044b \u0434\u0430\u043d\u043d\u043e\u0439 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438. \u041e\u043d \u043e\u0431\u044f\u0437\u0430\u043d \u0442\u0430\u043a \u0438\u043b\u0438 \u0438\u043d\u0430\u0447\u0435 \u043e\u0442\u0434\u0430\u0442\u044c \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435. INTERNAL \u0442\u043e\u043b\u044c\u043a\u043e \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u043b \u043d\u0430 \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0437\u0430\u043f\u0438\u0441\u0438, \u0432 \u0434\u0430\u043d\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043e\u043d \u0432\u0441\u0435\u0433\u0434\u0430 \u0431\u0443\u0434\u0435\u0442 \u0437\u0430\u043c\u0435\u043d\u0435\u043d \u043d\u0430 DML \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044e. <\/p>\n<p>\u041d\u043e \u0435\u0441\u0442\u044c \u043d\u044e\u0430\u043d\u0441: \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0434\u0443\u0431\u043b\u044c, \u0435\u0441\u043b\u0438 \u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0442\u044c LogMiner \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e:<\/p>\n<pre><code class=\"sql\">BEGIN   DBMS_LOGMNR.ADD_LOGFILE('\/path\/redo03.log', DBMS_LOGMNR.NEW);   DBMS_LOGMNR.START_LOGMNR(     STARTSCN=>2072,     ENDSCN=>2074,     OPTIONS=>       DBMS_LOGMNR.DICT_FROM_ONLINE_CATALOG       + DBMS_LOGMNR.PRINT_PRETTY_SQL       + DBMS_LOGMNR.NO_SQL_DELIMITER       + DBMS_LOGMNR.NO_ROWID_IN_STMT   ); END;   SCN COMMIT_SCN        COMMIT_TIMESTAMP ROLLBACK       OPERATION   INFO SEG_OWNER TABLE_NAME                    SQL_REDO CSF             ROW_ID XIDUSN XIDSLT XIDSQN  ---- ---------- ----------------------- -------- --------------- ------ --------- ---------- --------------------------- --- ------------------ ------ ------ ------ 2072 NULL       NULL                    0        START           NULL   NULL      NULL       set transaction read write  0   AAAAAAAAAAAAAAAAAA 10     3      14629 2072 NULL       NULL                    0        INSERT          NULL   SC        TEST_LOB   insert into \"SC\".\"TEST_LOB\" 0   AAAAAAAAAAAAAAAAAA 10     3      14629                                                                                                values                                                                                                   \"ID\" = 2,                                                                                                   \"COL1\" = 'TEXT',                                                                                                   \"COL2\" = 20,                                                                                                   \"TEXT1\" = EMPTY_CLOB() 2074 NULL       NULL                    0        INTERNAL        NULL   NULL      NULL       NULL                        0   AAAUoJAAAAAAAAAAAA 10     3      14629 2074 NULL       NULL                    0        SEL_LOB_LOCATOR LOB... SC        TEST_LOB   DECLARE ...                 0   AAAAAAAAAAAAAAAAAA 10     3      14629 2074 NULL       NULL                    0        INTERNAL        NULL   SC        TEST_LOB   NULL                        0   AAAAAAAAAAAAAAAAAA 10     3      14629<\/code><\/pre>\n<pre><code class=\"sql\">BEGIN   DBMS_LOGMNR.ADD_LOGFILE('\/path\/redo03.log', DBMS_LOGMNR.NEW);   DBMS_LOGMNR.START_LOGMNR(     STARTSCN=>2076,     ENDSCN=>2076,     OPTIONS=>       DBMS_LOGMNR.DICT_FROM_ONLINE_CATALOG       + DBMS_LOGMNR.PRINT_PRETTY_SQL       + DBMS_LOGMNR.NO_SQL_DELIMITER       + DBMS_LOGMNR.NO_ROWID_IN_STMT   ); END;   SCN COMMIT_SCN        COMMIT_TIMESTAMP ROLLBACK       OPERATION   INFO SEG_OWNER TABLE_NAME                    SQL_REDO CSF             ROW_ID XIDUSN XIDSLT XIDSQN  ---- ---------- ----------------------- -------- --------------- ------ --------- ---------- --------------------------- --- ------------------ ------ ------ ------ 2076 NULL       NULL                    0        INSERT          NULL   SC        TEST_LOB insert into \"SC\".\"TEST_LOB\"   0   AAAUoIAAHAAAMl\/AAC 10     3      14629                                                                                             values                                                                                                \"ID\" = 2,                                                                                                \"COL1\" = 'TEXT',                                                                                                \"COL2\" = 20,                                                                                                \"TEXT1\" = EMPTY_CLOB()<\/code><\/pre>\n<p>\u0412 \u044d\u0442\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0432\u044b \u043f\u043e\u0442\u0435\u0440\u044f\u0435\u0442\u0435 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435 LOB \u043f\u043e\u043b\u044f, \u043d\u043e \u0433\u043b\u0430\u0432\u043d\u043e\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u0435 \u0441\u0430\u043c\u0443 \u0437\u0430\u043f\u0438\u0441\u044c, \u0434\u0430\u0436\u0435 \u0434\u0432\u0430 \u0440\u0430\u0437\u0430).<\/p>\n<p>\u041d\u0435 \u043d\u0443\u0436\u043d\u043e \u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0442\u044c \u0441\u0430\u043c\u0438 LOB \u043f\u043e\u043b\u044f \u0433\u0440\u044f\u0437\u043d\u043e (\u0431\u0435\u0437 \u043e\u043f\u0446\u0438\u0438 COMMITTED_DATA_ONLY). \u041d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0441\u043e\u0431\u0438\u0440\u0430\u0442\u044c \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043e \u0437\u0430\u043f\u0438\u0441\u044f\u0445 (SCN \u043d\u0430\u0447\u0430\u043b\u0430 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u0438 \u0438 COMMIT), \u0433\u0434\u0435 \u0431\u044b\u043b\u0438 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u044b LOB \u043f\u043e\u043b\u044f, \u0438 \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u044b\u043c \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u043c \u0437\u0430\u0431\u0438\u0440\u0430\u0442\u044c \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0443 LOB \u043f\u043e\u043b\u0435\u0439.<\/p>\n<p><a class=\"anchor\" name=\"22\" id=\"22\"><\/a><\/p>\n<h4>\u041f\u043e\u0447\u0435\u043c\u0443 \u043d\u0435 \u0432\u0441\u0435\u0433\u0434\u0430 \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c SEQUENCE#<\/h4>\n<p>\u041f\u043e\u043b\u0435 SEQUENCE# \u0438\u0437 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044f V$LOGMNR_CONTENTS \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u043d\u0430 \u043f\u043e\u0440\u044f\u0434\u043e\u043a \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439 \u0432 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u0438. \u041d\u043e \u044d\u0442\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u0440\u0438 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 LogMier \u0441 \u043e\u043f\u0446\u0438\u0435\u0439 COMMITED_DATA_ONLY. \u041d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043e\u0442\u0441\u0435\u0438\u0432\u0430\u044e\u0442 UPDATE LOB \u043f\u043e\u043b\u044f \u043f\u043e SEQUENCE# \u043d\u0435 \u0440\u0430\u0432\u043d\u044b\u043c 1 (\u0434\u0435\u043b\u0430\u0442\u044c \u044d\u0442\u043e\u0433\u043e \u043d\u0435 \u0441\u0442\u043e\u0438\u0442, \u0441\u0435\u0439\u0447\u0430\u0441 \u043e\u0431\u044a\u044f\u0441\u043d\u044e \u043f\u043e\u0447\u0435\u043c\u0443).<\/p>\n<p>\u0414\u043e\u0431\u0430\u0432\u0438\u043c \u0437\u0430\u043f\u0438\u0441\u044c \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0443 \u0441 \u043e\u0434\u043d\u0438\u043c LOB \u043f\u043e\u043b\u0435\u043c:<\/p>\n<pre><code class=\"sql\">SELECT TIMESTAMP_TO_SCN(SYSDATE) AS CURRENT_SCN FROM DUAL;  CURRENT_SCN ----------- 2080  INSERT INTO SC.TEST_LOB (ID, COL1, COL2, TEXT1) VALUES (3, 'TEXT', 20, DBMS_RANDOM.STRING('U', 20)); COMMIT;<\/code><\/pre>\n<p>\u041f\u043e\u043b\u0443\u0447\u0438\u043c \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0432 \u0440\u0430\u0437\u0440\u0435\u0437\u0435 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u0438:<\/p>\n<pre><code class=\"sql\">SELECT   SCN,   COMMIT_SCN,   COMMIT_TIMESTAMP,   ROLLBACK,   OPERATION,   INFO,   SEG_OWNER,   TABLE_NAME,   SEQUENCE#,   SQL_REDO,   CSF,   ROW_ID,   XIDUSN,   XIDSLT,   XIDSQN FROM V$LOGMNR_CONTENTS WHERE XIDUSN = 10   AND XIDSLT = 22   AND XIDSQN = 14776;   SCN COMMIT_SCN        COMMIT_TIMESTAMP ROLLBACK       OPERATION   INFO SEG_OWNER TABLE_NAME SEQUENCE#                    SQL_REDO CSF             ROW_ID XIDUSN XIDSLT XIDSQN  ---- ---------- ----------------------- -------- --------------- ------ --------- ---------- --------- --------------------------- --- ------------------ ------ ------ ------ 2082 NULL       NULL                    0        START           NULL   NULL      NULL       1         set transaction read write  0   AAAAAAAAAAAAAAAAAA 10     22     14776 2082 NULL       NULL                    0        INSERT          NULL   SC        TEST_LOB   1         insert into \"SC\".\"TEST_LOB\" 0   AAAAAAAAAAAAAAAAAA 10     22     14776                                                                                                         values                                                                                                            \"ID\" = 3,                                                                                                            \"COL1\" = 'TEXT',                                                                                                            \"COL2\" = 20,                                                                                                            \"TEXT1\" = EMPTY_CLOB() 2083 NULL       NULL                    0        UPDATE          NULL   SC        TEST_LOB   2         update \"C##DBO\".\"TEST_LOB\"  0   AAAUoyAAHAAAAXvAAA 10     22     14776                                                                                                          set                                                                                                            \"TEXT1\" = 'AGSRJNFFXN'                                                                                                          where                                                                                                             \"ID\" = 3 and                                                                                                             \"COL1\" = 'TEXT' and                                                                                                             \"COL2\" = 20 2085 2085       2024-01-01 00:01:00.000 0        COMMIT          NULL   NULL      NULL       1         commit                      0   AAAAAAAAAAAAAAAAAA 10     22     14776<\/code><\/pre>\n<p>\u0412 \u0434\u0430\u043d\u043d\u043e\u043c \u043f\u0440\u0438\u043c\u0435\u0440\u0435 \u044d\u0442\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442, \u043d\u043e \u0435\u0441\u0442\u044c \u043f\u0440\u0438\u043c\u0435\u0440, \u043a\u043e\u0433\u0434\u0430 \u044d\u0442\u043e \u043d\u0435 \u0442\u0430\u043a.<\/p>\n<p>\u0421\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u0442\u0430\u0431\u043b\u0438\u0446\u0443 \u0441 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u043c\u0438 LOB \u043f\u043e\u043b\u044f\u043c\u0438 \u0438 \u0432\u043a\u043b\u044e\u0447\u0438\u043c \u0443 \u043d\u0435\u0435 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0435 \u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0436\u0443\u0440\u043d\u0430\u043b\u0430 \u0434\u043b\u044f \u0432\u0441\u0435\u0445 \u043f\u043e\u043b\u0435\u0439:<\/p>\n<pre><code class=\"sql\">CREATE TABLE SC.TEST_D_LOB (   ID INTEGER,   COL1 VARCHAR2(4000),   TEXT1 CLOB,   TEXT2 CLOB );  ALTER TABLE SC.TEST_D_LOB ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS;<\/code><\/pre>\n<p>\u0414\u043e\u0431\u0430\u0432\u0438\u043c \u0437\u0430\u043f\u0438\u0441\u044c:<\/p>\n<pre><code class=\"sql\">SELECT TIMESTAMP_TO_SCN(SYSDATE) AS CURRENT_SCN FROM DUAL;  CURRENT_SCN ----------- 2090  INSERT INTO SC.TEST_D_LOB (ID, COL1, TEXT1, TEXT2) VALUES (1, 'TEXT', DBMS_RANDOM.STRING('U', 20000), DBMS_RANDOM.STRING('U', 10));  COMMIT;<\/code><\/pre>\n<p>\u041f\u043e\u043b\u0443\u0447\u0438\u043c \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f:<\/p>\n<pre><code class=\"sql\">SELECT   SCN,   COMMIT_SCN,   COMMIT_TIMESTAMP,   ROLLBACK,   OPERATION,   INFO,   SEG_OWNER,   TABLE_NAME,   SEQUENCE#,   SQL_REDO,   CSF,   ROW_ID,   XIDUSN,   XIDSLT,   XIDSQN FROM V$LOGMNR_CONTENTS WHERE XIDUSN = 10   AND XIDSLT = 2   AND XIDSQN = 13646;   SCN COMMIT_SCN        COMMIT_TIMESTAMP ROLLBACK       OPERATION   INFO SEG_OWNER TABLE_NAME SEQUENCE#                      SQL_REDO CSF             ROW_ID XIDUSN XIDSLT XIDSQN  ---- ---------- ----------------------- -------- --------------- ------ --------- ---------- --------- ----------------------------- --- ------------------ ------ ------ ------ 2092 NULL       NULL                    0        START           NULL   NULL      NULL       1         set transaction read write    0   AAAAAAAAAAAAAAAAAA 10     2      13646 2092 NULL       NULL                    0        INSERT          NULL   SC        TEST_D_LOB 1         insert into \"SC\".\"TEST_D_LOB\" 0   AAAAAAAAAAAAAAAAAA 10     2      13646                                                                                                         values                                                                                                            \"ID\" = 1,                                                                                                            \"COL1\" = 'TEXT',                                                                                                            \"TEXT1\" = EMPTY_CLOB(),                                                                                                            \"TEXT2\" = EMPTY_CLOB() 2094 NULL       NULL                    0        INTERNAL        NULL   NULL      NULL       2         NULL                          0   AAAUpFAAAAAAAAAAAA 10     2      13646 2094 NULL       NULL                    0        SEL_LOB_LOCATOR LOB... SC        TEST_D_LOB 3         DECLARE...                    0   AAAAAAAAAAAAAAAAAA 10     2      13646 2094 NULL       NULL                    0        INTERNAL        NULL   SC        TEST_D_LOB 4         NULL                          0   AAAAAAAAAAAAAAAAAA 10     2      13646 2094 NULL       NULL                    0        LOB_WRITE       LOB... SC        TEST_D_LOB 1         buf_c := 'NMIOJVMPOFAMXWID... 0   AAAAAAAAAAAAAAAAAA 10     2      13646 2094 NULL       NULL                    0        LOB_WRITE       LOB... SC        TEST_D_LOB 1         buf_c := 'GTGIKSLKXDGRQVZV... 0   AAAAAAAAAAAAAAAAAA 10     2      13646 2094 NULL       NULL                    0        INTERNAL        NULL   SC        TEST_D_LOB 2         END;                          0   AAAAAAAAAAAAAAAAAA 10     2      13646 2095 NULL       NULL                    0        UPDATE          NULL   SC        TEST_D_LOB 1         update \"SC\".\"TEST_D_LOB\"      0   AAAUpEAAHAAAAdnAAA 10     2      13646                                                                                                          set                                                                                                            \"TEXT2\" = 'SLMNCKEOPB'                                                                                                          where                                                                                                             \"ID\" = 1 and                                                                                                             \"COL1\" = 'TEXT' 2096 2096       2024-01-01 00:01:10.000 0        COMMIT          NULL   NULL      NULL       1         commit                        0   AAAAAAAAAAAAAAAAAA 10     2      13646<\/code><\/pre>\n<p>\u0412 \u0434\u0430\u043d\u043d\u043e\u043c \u043f\u0440\u0438\u043c\u0435\u0440\u0435 \u0432\u0438\u0434\u043d\u043e, \u0447\u0442\u043e UPDATE LOB \u043f\u043e\u043b\u044f \u0438\u043c\u0435\u0435\u0442 SEQUENCE# 1.<\/p>\n<blockquote>\n<p>\u041d\u0435\u043b\u044c\u0437\u044f \u043e\u0440\u0438\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u043d\u0430 SEQUENCE#, \u0435\u0441\u043b\u0438 \u043f\u0440\u0438 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 LogMiner \u043d\u0435\u0442 \u043e\u043f\u0446\u0438\u0438 COMMITED_DATA_ONLY.<\/p>\n<\/blockquote>\n<p><a class=\"anchor\" name=\"23\" id=\"23\"><\/a><\/p>\n<h3>\u041f\u0435\u0440\u0435\u0438\u043c\u0435\u043d\u043e\u0432\u0430\u043d\u0438\u0435 \u043f\u043e\u043b\u0435\u0439 \u0442\u0430\u0431\u043b\u0438\u0446<\/h3>\n<p>\u041f\u043e\u0441\u043b\u0435 \u043f\u0435\u0440\u0435\u0438\u043c\u0435\u043d\u043e\u0432\u0430\u043d\u0438\u044f \u043f\u043e\u043b\u044f \u0442\u0430\u0431\u043b\u0438\u0446\u044b, online catalog \u0443\u0436\u0435 \u043d\u0435 \u0431\u0443\u0434\u0435\u0442 \u0437\u043d\u0430\u0442\u044c \u0441\u0442\u0430\u0440\u043e\u0433\u043e \u0438\u043c\u0435\u043d\u0438 \u043f\u043e\u043b\u044f \u0434\u043e DDL \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438. \u0414\u043e\u0431\u0430\u0432\u0438\u043c \u0437\u0430\u043f\u0438\u0441\u044c \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0443 \u0438 \u043f\u0435\u0440\u0435\u0438\u043c\u0435\u043d\u0443\u0435\u043c \u043f\u043e\u043b\u0435 \u0438\u0437 \u044d\u0442\u043e\u0439 \u0442\u0430\u0431\u043b\u0438\u0446\u044b:<\/p>\n<pre><code class=\"sql\">SELECT TIMESTAMP_TO_SCN(SYSDATE) AS CURRENT_SCN FROM DUAL;  CURRENT_SCN ----------- 2100  INSERT INTO SC.TEST (ID, COL1, COL2) VALUES (9, 'ANATOLY', 40); ALTER TABLE SC.TEST RENAME COLUMN COL2 TO COL22; INSERT INTO SC.TEST (ID, COL1, COL22) VALUES (10, 'IGOR', 30); COMMIT;<\/code><\/pre>\n<p>\u041f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f:<\/p>\n<pre><code class=\"sql\">SELECT   SCN,   COMMIT_SCN,   COMMIT_TIMESTAMP,   ROLLBACK,   OPERATION,   INFO,   SEG_OWNER,   TABLE_NAME,   SEQUENCE#,   SQL_REDO,   CSF,   ROW_ID,   XIDUSN,   XIDSLT,   XIDSQN FROM V$LOGMNR_CONTENTS WHERE SEG_OWNER = 'SC'   AND TABLE_NAME = 'TEST_LOB';   SCN COMMIT_SCN COMMIT_TIMESTAMP ROLLBACK       OPERATION                INFO SEG_OWNER TABLE_NAME                      SQL_REDO CSF             ROW_ID XIDUSN XIDSLT XIDSQN  ---- ---------- ---------------- -------- --------------- ------------------- --------- ---------- ----------------------------- --- ------------------ ------ ------ ------ 2102 NULL       NULL             0        INSERT          Dictionary Mismatch SC        TEST       insert into \"SC\".\"TEST\"       0   AAAUomAAHAAAAWvAAE 1      9      2050                                                                                                     values                                                                                                        \"COL 1\" = HEXTORAW('c10a'),                                                                                                        \"COL 2\" = HEXTORAW('414e41544f4c59'),                                                                                                        \"COL 3\" = HEXTORAW('c129') 2104 NULL       NULL             0        DDL             USER DDL...         SC        TEST       ALTER TABLE \"SC\".\"TEST\"...    0   AAAAAAAAAAAAAAAAAB 3      3      2036 2106 NULL       NULL             0        INSERT          NULL                SC        TEST       insert into \"SC\".\"TEST\"       0   AAAUomAAHAAAAWvAAC 9      20     2356                                                                                                     values                                                                                                        \"ID\" = 10,                                                                                                        \"COL1\" = 'IGOR',                                                                                                        \"COL22\" = 30<\/code><\/pre>\n<p>\u0418\u0437 \u043f\u043e\u043b\u044f INFO \u043c\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0443\u044e \u043e\u0448\u0438\u0431\u043a\u0443: Dictionary Mismatch (\u043d\u0435\u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u0435 \u0441\u043b\u043e\u0432\u0430\u0440\u044f). \u0414\u043b\u044f \u0438\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u043e\u0439 \u043e\u0448\u0438\u0431\u043a\u0438 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0441\u043b\u043e\u0432\u0430\u0440\u0435\u043c \u0438\u0437 archive redo log \u0444\u0430\u0439\u043b\u043e\u0432.<\/p>\n<p>\u0414\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430 \u043f\u043e\u043b\u0443\u0447\u0438\u043c \u043d\u0443\u0436\u043d\u044b\u0435 \u043b\u043e\u0433\u0438:<\/p>\n<pre><code class=\"sql\">SELECT   AL.NAME AS FILE_NAME,   AL.FIRST_CHANGE# AS FIRST_CHANGE,   AL.NEXT_CHANGE# AS NEXT_CHANGE,   AL.DICTIONARY_BEGIN,   AL.DICTIONARY_END FROM V$ARCHIVED_LOG AL   JOIN V$ARCHIVE_DEST_STATUS ADS     ON ADS.DEST_ID = AL.DEST_ID WHERE AL.STATUS = 'A'   AND ADS.STATUS = 'VALID'   AND ADS.TYPE = 'LOCAL';                        FILE_NAME FIRST_CHANGE NEXT_CHANGE DICTIONARY_BEGIN DICTIONARY_END  ------------------------------ ------------ ----------- ---------------- -------------- \/path\/arch1_214_1161333401.dbf 1100         1200        NO               NO \/path\/arch1_215_1161333401.dbf 1200         1300        YES              YES \/path\/arch1_216_1161333401.dbf 1300         1400        NO               NO \/path\/arch1_217_1161333401.dbf 1400         1500        NO               NO \/path\/arch1_218_1161333401.dbf 1500         1600        YES              NO \/path\/arch1_219_1161333401.dbf 1600         1700        NO               YES \/path\/arch1_220_1161333401.dbf 1700         1800        NO               NO \/path\/arch1_221_1161333401.dbf 1800         1900        NO               NO<\/code><\/pre>\n<p>\u041d\u0430\u043c \u043d\u0443\u0436\u043d\u044b \u0432\u0441\u0435 archive redo log \u0444\u0430\u0439\u043b\u044b \u0434\u043e \u0431\u043b\u0438\u0436\u0430\u0439\u0448\u0435\u0433\u043e DICTIONARY_BEGIN, \u0442\u043e \u0435\u0441\u0442\u044c \u044d\u0442\u0438:<\/p>\n<pre><code class=\"sql\">                          NAME  ------------------------------ \/path\/arch1_218_1161333401.dbf \/path\/arch1_219_1161333401.dbf \/path\/arch1_220_1161333401.dbf \/path\/arch1_221_1161333401.dbf<\/code><\/pre>\n<p>\u0415\u0449\u0435 \u043d\u0443\u0436\u043d\u043e \u0437\u0430\u0431\u0440\u0430\u0442\u044c \u0442\u0435\u043a\u0443\u0449\u0438\u0439 online redo log \u0444\u0430\u0439\u043b:<\/p>\n<pre><code class=\"sql\">SELECT   T.NAME AS FILE_NAME FROM (   SELECT     F.MEMBER AS NAME,     ROW_NUMBER() OVER(PARTITION BY F.GROUP# ORDER BY F.GROUP#) AS GROUP   FROM V$LOGFILE F     JOIN V$LOG L       ON L.GROUP# = F.GROUP#   WHERE F.TYPE = 'ONLINE'     AND L.STATUS = 'CURRENT' ) T WHERE T.GROUP = 1;         FILE_NAME  ---------------- \/path\/redo03.log<\/code><\/pre>\n<p>\u0414\u0430\u043b\u0435\u0435 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u043c LogMiner \u0441 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430\u043c\u0438 DICT_FROM_REDO_LOGS \u0438 DDL_DICT_TRACKING:<\/p>\n<pre><code class=\"sql\">BEGIN   DBMS_LOGMNR.ADD_LOGFILE('\/path\/arch1_218_1161333401.dbf', DBMS_LOGMNR.NEW);   DBMS_LOGMNR.ADD_LOGFILE('\/path\/arch1_219_1161333401.dbf', DBMS_LOGMNR.ADDFILE);   DBMS_LOGMNR.ADD_LOGFILE('\/path\/arch1_220_1161333401.dbf', DBMS_LOGMNR.ADDFILE);   DBMS_LOGMNR.ADD_LOGFILE('\/path\/arch1_221_1161333401.dbf', DBMS_LOGMNR.ADDFILE);   DBMS_LOGMNR.ADD_LOGFILE('\/path\/redo03.log', DBMS_LOGMNR.ADDFILE);   DBMS_LOGMNR.START_LOGMNR(     STARTSCN=>2100,     OPTIONS=>       DBMS_LOGMNR.DICT_FROM_REDO_LOGS       + DBMS_LOGMNR.DDL_DICT_TRACKING       + DBMS_LOGMNR.PRINT_PRETTY_SQL       + DBMS_LOGMNR.NO_SQL_DELIMITER       + DBMS_LOGMNR.NO_ROWID_IN_STMT   ); END;<\/code><\/pre>\n<p>\u0412\u043e\u0442 \u0442\u0435\u043f\u0435\u0440\u044c \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u044b\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f:<\/p>\n<pre><code class=\"sql\">SELECT   SCN,   COMMIT_SCN,   COMMIT_TIMESTAMP,   ROLLBACK,   OPERATION,   INFO,   SEG_OWNER,   TABLE_NAME,   SEQUENCE#,   SQL_REDO,   CSF,   ROW_ID,   XIDUSN,   XIDSLT,   XIDSQN FROM V$LOGMNR_CONTENTS WHERE SEG_OWNER = 'SC'   AND TABLE_NAME = 'TEST_LOB';   SCN COMMIT_SCN COMMIT_TIMESTAMP ROLLBACK       OPERATION                INFO SEG_OWNER TABLE_NAME                      SQL_REDO CSF             ROW_ID XIDUSN XIDSLT XIDSQN  ---- ---------- ---------------- -------- --------------- ------------------- --------- ---------- ----------------------------- --- ------------------ ------ ------ ------ 2102 NULL       NULL             0        INSERT          NULL                SC        TEST       insert into \"SC\".\"TEST\"       0   AAAUomAAHAAAAWvAAE 1      9      2050                                                                                                     values                                                                                                        \"ID\" = 9,                                                                                                        \"COL1\" = 'ANATOLY',                                                                                                        \"COL2\" = 40 2104 NULL       NULL             0        DDL             USER DDL...         SC        TEST       ALTER TABLE \"SC\".\"TEST\"...    0   AAAAAAAAAAAAAAAAAB 3      3      2036 2106 NULL       NULL             0        INSERT          NULL                SC        TEST       insert into \"SC\".\"TEST\"       0   AAAUomAAHAAAAWvAAC 9      20     2356                                                                                                     values                                                                                                        \"ID\" = 10,                                                                                                        \"COL1\" = 'IGOR',                                                                                                        \"COL22\" = 30<\/code><\/pre>\n<p><a class=\"anchor\" name=\"24\" id=\"24\"><\/a><\/p>\n<h3>\u0421\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u043a\u0430 \u0432 V$LOGMNR_CONTENTS<\/h3>\n<p>\u041f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u0441 \u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u043a\u043e\u0439 \u043c\u043e\u0436\u0435\u0442 \u043f\u0440\u043e\u044f\u0432\u0438\u0442\u044c\u0441\u044f, \u043a\u043e\u0433\u0434\u0430 \u043c\u044b \u0437\u0430\u0445\u043e\u0442\u0438\u043c \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441 LOB \u043f\u043e\u043b\u044f\u043c\u0438. \u042d\u043c\u043f\u0438\u0440\u0438\u0447\u0435\u0441\u043a\u0438 \u044f \u0432\u044b\u044f\u0432\u0438\u043b \u0443\u0434\u0430\u0447\u043d\u044b\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442 \u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u043a\u0438:<\/p>\n<pre><code class=\"sql\">SELECT   T.NUM,   T.SCN,   T.COMMIT_SCN,   T.COMMIT_TIMESTAMP,   ... FROM (    SELECT      ROWNUM AS NUM,      SCN,      COMMIT_SCN,      COMMIT_TIMESTAMP,      ...   FROM V$LOGMNR_CONTENTS ) T ORDER BY T.SCN, T.NUM<\/code><\/pre>\n<p><a class=\"anchor\" name=\"25\" id=\"25\"><\/a><\/p>\n<h3>\u041e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u044f \u043d\u0435\u043f\u0440\u0435\u0440\u044b\u0432\u043d\u043e\u0433\u043e \u0441\u0431\u043e\u0440\u0430 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439<\/h3>\n<p>\u0412\u043e\u0442 \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u043f\u0440\u0438\u043c\u0435\u0440, \u043a\u0430\u043a \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u043e\u0432\u0430\u0442\u044c \u043d\u0435\u043f\u0440\u0435\u0440\u044b\u0432\u043d\u044b\u0439 \u0441\u0431\u043e\u0440 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439. \u0412 \u0434\u0430\u043d\u043d\u043e\u043c \u043f\u0440\u0438\u043c\u0435\u0440\u0435 \u0431\u0443\u0434\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d \u043f\u0441\u0435\u0432\u0434\u043e\u043a\u043e\u0434. \u041d\u0435 \u0445\u043e\u0447\u0443 \u0432\u0430\u0441 \u043b\u0438\u0448\u0430\u0442\u044c \u0443\u0434\u043e\u0432\u043e\u043b\u044c\u0441\u0442\u0432\u0438\u044f \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u043a\u043e\u0434\u0430 \u0441\u0430\u043c\u0438\u043c)<\/p>\n<pre><code class=\"sql\">\u0426\u0418\u041a\u041b BEGIN:    -- \u0414\u043b\u044f \u043f\u0435\u0440\u0432\u043e\u0439 \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u0438, \u043a\u043e\u0433\u0434\u0430 CURRENT_SCN \u043f\u043e\u043f\u0440\u043e\u0441\u0442\u0443 \u043d\u0435\u0442, \u043c\u044b \u0431\u0435\u0440\u0435\u043c \u0435\u0433\u043e \u043e\u0442 \u0442\u0435\u043a\u0443\u0449\u0435\u0433\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438   -- \u0421\u043e\u0432\u0435\u0442\u0443\u044e \u0433\u0434\u0435-\u043d\u0438\u0431\u0443\u0434\u044c \u0445\u0440\u0430\u043d\u0438\u0442\u044c CURRENT_SCN - \u044d\u0442\u043e \u0442\u043e\u0447\u043a\u0430 \u043d\u0430\u0447\u0430\u043b\u0430 \u0437\u0430\u0431\u043e\u0440\u0430 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439   SELECT COALESCE(CURRENT_SCN, TIMESTAMP_TO_SCN(SYSDATE)) FROM DUAL INTO CURRENT_SCN;    -- \u0414\u0430\u043b\u0435\u0435 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0441\u043f\u0438\u0441\u043e\u043a online redo log files \u043f\u043e \u043d\u0430\u0448\u0435\u043c\u0443 CURRENT_SCN   CREATE TEMP TABLE LIST_REDO_LOG_FILES AS   SELECT     T.NAME AS FILE_NAME,   FROM (     SELECT       F.MEMBER AS NAME,       ROW_NUMBER() OVER(PARTITION BY F.GROUP# ORDER BY F.GROUP#) AS GROUP     FROM V$LOGFILE F       JOIN V$LOG L         ON L.GROUP# = F.GROUP#     WHERE F.TYPE = 'ONLINE'   ) T   WHERE T.GROUP = 1     AND CURRENT_SCN >= T.FIRST_CHANGE;    -- \u0414\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0432 LogMiner \u0441\u043f\u0438\u0441\u043e\u043a redo log files   \u0426\u0418\u041a\u041b \u041f\u041e LIST_REDO_LOG_FILES     \u0415\u0421\u041b\u0418 \u041f\u0415\u0420\u0412\u042b\u0419 \u0424\u0410\u0419\u041b, \u0422\u041e       DBMS_LOGMNR.ADD_LOGFILE(LIST_REDO_LOG_FILES.FILE_NAME, DBMS_LOGMNR.NEW);     \u0418\u041d\u0410\u0427\u0415       DBMS_LOGMNR.ADD_LOGFILE(LIST_REDO_LOG_FILES.FILE_NAME, DBMS_LOGMNR.ADDFILE);   \u0426\u0418\u041a\u041b \u041f\u041e LIST_REDO_LOG_FILES END;    -- \u0418\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u043c LogMiner \u0441 \u043d\u0443\u0436\u043d\u043e\u0433\u043e \u043d\u0430\u043c STARTSCN   DBMS_LOGMNR.START_LOGMNR(     STARTSCN=>CURRENT_SCN,     OPTIONS=>       DBMS_LOGMNR.DICT_FROM_ONLINE_CATALOG       + DBMS_LOGMNR.PRINT_PRETTY_SQL       + DBMS_LOGMNR.NO_SQL_DELIMITER       + DBMS_LOGMNR.NO_ROWID_IN_STMT   );    -- \u041f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0447\u0435\u0440\u0435\u0437 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435 V$LOGMNR_CONTENTS   -- \u041e\u0442\u0444\u0438\u043b\u044c\u0442\u0440\u043e\u0432\u044b\u0432\u0430\u0435\u043c \u043d\u0443\u0436\u043d\u044b\u0435 \u043d\u0430\u043c \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u0438 \u0442\u0430\u0431\u043b\u0438\u0446\u044b   CREATE TEMP TABLE CONTENTS AS   SELECT     SCN,     ...   FROM V$LOGMNR_CONTENTS   WHERE ...;    -- \u041e\u0431\u043d\u043e\u0432\u043b\u044f\u0435\u043c CURRENT_SCN   SELECT MAX(SCN) FROM CONTENTS INTO CURRENT_SCN;      -- \u041b\u044e\u0431\u0443\u043c\u0441\u044f \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f\u043c\u0438   SELECT * FROM CONTENTS;  \u0426\u0418\u041a\u041b END;<\/code><\/pre>\n<\/p>\n<\/div>\n<\/div>\n<\/div>\n<p><!----><!----><\/div>\n<p><!----><!----><br \/> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habr.com\/ru\/articles\/829664\/\"> https:\/\/habr.com\/ru\/articles\/829664\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<div><!--[--><!--]--><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-2\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<p>\u0415\u0441\u0442\u044c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u043e\u0432 \u0437\u0430\u0445\u0432\u0430\u0442\u0430 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439 \u0438\u0437\u00a0\u0421\u0423\u0411\u0414 Oracle Database (\u0434\u0430\u043b\u0435\u0435\u00a0\u2014 \u00abOracle\u00bb), \u0441\u0430\u043c\u044b\u043c\u0438 \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0435\u043d\u043d\u044b\u043c\u0438 \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f API LogMiner \u0438 API XStream. \u0412\u00a0\u0434\u0430\u043d\u043d\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c API LogMiner.<\/p>\n<p><strong>\u0412 \u0441\u0442\u0430\u0442\u044c\u0435 \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u043d\u043e:<\/strong><\/p>\n<p>\u041d\u0435\u043c\u043d\u043e\u0433\u043e \u0442\u0435\u043e\u0440\u0438\u0438<br \/><a href=\"#1\" rel=\"noopener noreferrer nofollow\">\u041e\u0442\u043a\u0443\u0434\u0430 LogMiner \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f<\/a><br \/><a href=\"#2\" rel=\"noopener noreferrer nofollow\">System change number<\/a><br \/><a href=\"#3\" rel=\"noopener noreferrer nofollow\">Redo log<\/a><br \/>\u2014 <a href=\"#4\" rel=\"noopener noreferrer nofollow\">Online redo log<\/a><br \/>\u2014 \u2014 <a href=\"#5\" rel=\"noopener noreferrer nofollow\">\u0420\u043e\u0442\u0430\u0446\u0438\u044f online redo log<\/a><br \/>\u2014 <a href=\"#6\" rel=\"noopener noreferrer nofollow\">Archive redo log<\/a><br \/><a href=\"#7\" rel=\"noopener noreferrer nofollow\">Dictionary<\/a><\/p>\n<p>\u0411\u0435\u0437 \u0447\u0435\u0433\u043e \u043d\u0435\u043b\u044c\u0437\u044f \u043d\u0430\u0447\u0438\u043d\u0430\u0442\u044c \u0440\u0430\u0431\u043e\u0442\u0443 \u0441 LogMiner<br \/><a href=\"#8\" rel=\"noopener noreferrer nofollow\">\u0418\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f LogMiner<\/a><br \/><a href=\"#9\" rel=\"noopener noreferrer nofollow\">\u041d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0435 \u043f\u0440\u0438\u0432\u0438\u043b\u0435\u0433\u0438\u0438 \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 LogMiner<\/a><br \/><a href=\"#10\" rel=\"noopener noreferrer nofollow\">\u041c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0435 \u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0436\u0443\u0440\u043d\u0430\u043b\u0430<\/a><\/p>\n<p>\u0422\u0435\u043e\u0440\u0438\u044f \u0431\u0435\u0437 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0438 \u043c\u0435\u0440\u0442\u0432\u0430&#8230;<br \/><a href=\"#11\" rel=\"noopener noreferrer nofollow\">\u041f\u0440\u0430\u043a\u0442\u0438\u043a\u0430<\/a><br \/>\u2014 <a href=\"#12\" rel=\"noopener noreferrer nofollow\">\u0417\u0430\u0431\u043e\u0440 \u0442\u0435\u043a\u0443\u0449\u0438\u0445 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439<\/a><br \/>\u2014 <a href=\"#13\" rel=\"noopener noreferrer nofollow\">\u041f\u0440\u043e\u0441\u0442\u044b\u0435 DML \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438<\/a><br \/>\u2014 <a href=\"#14\" rel=\"noopener noreferrer nofollow\">\u0414\u043b\u0438\u043d\u043d\u044b\u0435 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438<\/a><br \/>\u2014 <a href=\"#15\" rel=\"noopener noreferrer nofollow\">\u0422\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u0438<\/a><br \/>\u2014 \u2014 <a href=\"#16\" rel=\"noopener noreferrer nofollow\">\u041f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439 \u0437\u0430\u0444\u0438\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u0439<\/a><br \/>\u2014 \u2014 <a href=\"#17\" rel=\"noopener noreferrer nofollow\">\u041f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439 \u043d\u0435\u0437\u0430\u0444\u0438\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u0439<\/a><br \/>\u2014 \u2014 <a href=\"#18\" rel=\"noopener noreferrer nofollow\">\u041f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u0438 \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u043e\u0442\u043a\u0430\u0442\u0438\u043b\u0438<\/a><br \/>\u2014 \u2014 <a href=\"#19\" rel=\"noopener noreferrer nofollow\">\u041f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u0438 \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u0447\u0430\u0441\u0442\u0438\u0447\u043d\u043e \u043e\u0442\u043a\u0430\u0442\u0438\u043b\u0438<\/a><br \/>\u2014 <a href=\"#20\" rel=\"noopener noreferrer nofollow\">DML \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u0441 LOB \u043f\u043e\u043b\u044f\u043c\u0438<\/a><br \/>\u2014 \u2014 <a href=\"#21\" rel=\"noopener noreferrer nofollow\">\u0413\u0430\u0440\u0430\u043d\u0442\u0438\u044f \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438<\/a><br \/>\u2014 \u2014 <a href=\"#22\" rel=\"noopener noreferrer nofollow\">\u041f\u043e\u0447\u0435\u043c\u0443 \u043d\u0435 \u0432\u0441\u0435\u0433\u0434\u0430 \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c SEQUENCE#<\/a><br \/>\u2014 <a href=\"#23\" rel=\"noopener noreferrer nofollow\">\u041f\u0435\u0440\u0435\u0438\u043c\u0435\u043d\u043e\u0432\u0430\u043d\u0438\u0435 \u043f\u043e\u043b\u0435\u0439 \u0442\u0430\u0431\u043b\u0438\u0446<\/a><br \/>\u2014 <a href=\"#24\" rel=\"noopener noreferrer nofollow\">\u0421\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u043a\u0430 \u0432 V$LOGMNR_CONTENTS<\/a><br \/>\u2014 <a href=\"#25\" rel=\"noopener noreferrer nofollow\">\u041e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u044f \u043d\u0435\u043f\u0440\u0435\u0440\u044b\u0432\u043d\u043e\u0433\u043e \u0441\u0431\u043e\u0440\u0430 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439<\/a><\/p>\n<h2>\u0422\u0435\u0440\u043c\u0438\u043d\u044b<\/h2>\n<p>\u041e\u043f\u0435\u0440\u0430\u0446\u0438\u044f\u00a0\u2014 SQL \u043a\u043e\u043c\u0430\u043d\u0434\u0430, \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u043d\u0430\u044f \u0434\u043b\u044f\u00a0\u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f, \u0432\u0441\u0442\u0430\u0432\u043a\u0438, \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0438\u043b\u0438\u00a0\u0443\u0434\u0430\u043b\u0435\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445 \u0432\u00a0\u0431\u0430\u0437\u0435 \u0434\u0430\u043d\u043d\u044b\u0445.<\/p>\n<p>\u0422\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044f\u00a0\u2014 \u043d\u0430\u0431\u043e\u0440 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439 \u0434\u043b\u044f\u00a0\u0440\u0430\u0431\u043e\u0442\u044b \u0441\u00a0\u0431\u0430\u0437\u043e\u0439 \u0434\u0430\u043d\u043d\u044b\u0445.<\/p>\n<p>\u0417\u0430\u0445\u0432\u0430\u0442 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439\u00a0\u2014 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 SQL \u043a\u043e\u043c\u0430\u043d\u0434\u044b, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043f\u043e\u0432\u043b\u0438\u044f\u043b\u0430 \u043d\u0430\u00a0\u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 \u0432\u00a0\u0431\u0430\u0437\u0435 \u0434\u0430\u043d\u043d\u044b\u0445, \u043d\u043e\u00a0\u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0438\u043c\u0435\u044e\u0442 \u0432\u0435\u0441\u044c \u043d\u0430\u0431\u043e\u0440 \u0434\u0430\u043d\u043d\u044b\u0445 \u043a\u0430\u043a \u0434\u043e, \u0442\u0430\u043a \u0438 \u043f\u043e\u0441\u043b\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f (\u0434\u0430\u043b\u0435\u0435 \u2013 \u00ab\u0418\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f\u00bb).<\/p>\n<p><a class=\"anchor\" name=\"1\" id=\"1\"><\/a><\/p>\n<h2>\u041e\u0442\u043a\u0443\u0434\u0430 LogMiner \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f<\/h2>\n<p>\u0412 Oracle \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d \u043d\u0430\u0431\u043e\u0440 \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u0439 \u043a\u00a0\u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u043e\u043d\u043d\u044b\u043c \u0431\u0430\u0437\u0430\u043c \u0434\u0430\u043d\u043d\u044b\u0445, \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u044b\u0439 \u043a\u0430\u043a\u00a0ASID. \u041e\u0434\u043d\u043e \u0438\u0437\u00a0\u043a\u043b\u044e\u0447\u0435\u0432\u044b\u0445 \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u0439\u00a0\u2014 \u044d\u0442\u043e durability. Durability (\u043d\u0430\u0434\u0435\u0436\u043d\u043e\u0441\u0442\u044c)\u00a0\u2014 \u0433\u0430\u0440\u0430\u043d\u0442\u0438\u0440\u0443\u0435\u0442, \u0447\u0442\u043e\u00a0\u0435\u0441\u043b\u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u043f\u043e\u043b\u0443\u0447\u0438\u043b \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043d\u0438\u0435 \u043e\u0442\u00a0\u0441\u0438\u0441\u0442\u0435\u043c\u044b (\u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0430), \u043e\u043d \u043c\u043e\u0436\u0435\u0442\u00a0\u0431\u044b\u0442\u044c \u0443\u0432\u0435\u0440\u0435\u043d, \u0447\u0442\u043e\u00a0\u0441\u0434\u0435\u043b\u0430\u043d\u043d\u044b\u0435 \u0438\u043c \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u043d\u0435\u00a0\u0431\u0443\u0434\u0443\u0442 \u043e\u0442\u043c\u0435\u043d\u0435\u043d\u044b \u0438\u0437\u2011\u0437\u0430 \u043a\u0430\u043a\u043e\u0433\u043e\u2011\u043b\u0438\u0431\u043e \u0441\u0431\u043e\u044f.<\/p>\n<p>\u041e\u0431\u044a\u044f\u0441\u043d\u044e \u044d\u0442\u043e\u0442 \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u043e\u0447\u0435\u043d\u044c \u0443\u043f\u0440\u043e\u0449\u0435\u043d\u043d\u043e. \u0427\u0442\u043e\u0431\u044b \u0433\u0430\u0440\u0430\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044e \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u0438, \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0432\u00a0\u0441\u0430\u043c\u043e\u043c \u0438\u0434\u0435\u0430\u043b\u044c\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0437\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0432\u043d\u0435\u0441\u0435\u043d\u043d\u044b\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0432\u00a0\u0441\u0430\u043c \u0444\u0430\u0439\u043b \u0431\u0430\u0437\u044b \u0434\u0430\u043d\u043d\u044b\u0445. \u041d\u043e\u00a0\u044d\u0442\u043e \u0434\u043e\u0440\u043e\u0433\u043e\u0435 \u0443\u0434\u043e\u0432\u043e\u043b\u044c\u0441\u0442\u0432\u0438\u0435 \u0432\u00a0\u043f\u043b\u0430\u043d\u0435 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438. \u0421\u0430\u043c\u043e\u0435 \u043f\u0440\u043e\u0441\u0442\u043e\u0435\u00a0\u2014 \u044d\u0442\u043e \u0437\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0444\u0430\u0439\u043b \u0432 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0439 \u043f\u0440\u043e\u043c\u0435\u0436\u0443\u0442\u043e\u0447\u043d\u044b\u0439 \u0436\u0443\u0440\u043d\u0430\u043b (Redo log file) \u0438 \u0443\u0436\u0435 \u043f\u043e\u0437\u0436\u0435, \u043f\u0440\u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0438 \u0441\u043e\u0431\u044b\u0442\u0438\u044f \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044c\u043d\u043e\u0439 \u0442\u043e\u0447\u043a\u0438 (checkpoint), \u0437\u0430 \u0440\u0430\u0437 \u043f\u0435\u0440\u0435\u043d\u0435\u0441\u0442\u0438 \u0433\u0440\u044f\u0437\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u0432 \u0444\u0430\u0439\u043b \u0431\u0430\u0437\u044b \u0434\u0430\u043d\u043d\u044b\u0445.<\/p>\n<figure class=\"full-width\"><\/figure>\n<blockquote>\n<p>LogMiner \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0441 redo log files \u043c\u0438\u043d\u0443\u044f \u0441\u0430\u043c\u0438 \u0444\u0430\u0439\u043b\u044b \u0431\u0430\u0437\u044b \u0434\u0430\u043d\u043d\u044b\u0445.<\/p>\n<\/blockquote>\n<p><a class=\"anchor\" name=\"2\" id=\"2\"><\/a><\/p>\n<h2>System change number<\/h2>\n<p>\u0414\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 LogMiner \u0432\u0430\u0436\u043d\u043e \u043f\u043e\u043d\u0438\u043c\u0430\u0442\u044c, \u0447\u0442\u043e\u00a0\u0442\u0430\u043a\u043e\u0435 System Change Number (SCN)\u00a0\u2014 \u044d\u0442\u043e \u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f \u043c\u0435\u0442\u043a\u0430, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u0430\u044f Oracle \u0434\u043b\u044f \u0443\u043f\u043e\u0440\u044f\u0434\u043e\u0447\u0438\u0432\u0430\u043d\u0438\u044f \u0441\u043e\u0431\u044b\u0442\u0438\u0439, \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u044f\u0449\u0438\u0445 \u0441 \u0431\u0430\u0437\u043e\u0439 \u0434\u0430\u043d\u043d\u044b\u0445. \u0414\u043b\u044f \u043f\u043e\u043d\u0438\u043c\u0430\u043d\u0438\u044f, \u043b\u0443\u0447\u0448\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0435\u0433\u043e \u043a\u0430\u043a Unix Time Stamp \u0432 \u0440\u0430\u0437\u0440\u0435\u0437\u0435 \u0441\u0435\u0440\u0432\u0435\u0440\u0430 Oracle.<\/p>\n<p>\u0422\u0435\u043a\u0443\u0449\u0438\u0439 SCN \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0439 \u043a\u043e\u043c\u0430\u043d\u0434\u043e\u0439:<\/p>\n<pre><code class=\"sql\">SELECT TIMESTAMP_TO_SCN(SYSDATE) AS CURRENT_SCN FROM DUAL;  CURRENT_SCN ----------- 2000<\/code><\/pre>\n<p>\u041c\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438 SCN \u0434\u043b\u044f \u0442\u0435\u043a\u0443\u0449\u0435\u0433\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438, \u0442\u0430\u043a \u0436\u0435 \u044d\u0442\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0432 \u043e\u0431\u0440\u0430\u0442\u043d\u0443\u044e \u0441\u0442\u043e\u0440\u043e\u043d\u0443:<\/p>\n<pre><code class=\"sql\">SELECT SCN_TO_TIMESTAMP(2000) AS TIMESTAMP_SCN FROM DUAL;            TIMESTAMP_SCN ----------------------- 2024-01-01 00:00:00.000<\/code><\/pre>\n<p><a class=\"anchor\" name=\"3\" id=\"3\"><\/a><\/p>\n<h2>Redo log<\/h2>\n<p>Redo log\u00a0\u2014 \u044d\u0442\u043e \u0444\u0430\u0439\u043b\u044b, \u0432\u00a0\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0445\u0440\u0430\u043d\u044f\u0442\u0441\u044f \u0432\u0441\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f, \u0432\u043d\u0435\u0441\u0435\u043d\u043d\u044b\u0435 \u0432\u00a0\u0431\u0430\u0437\u0443 \u0434\u0430\u043d\u043d\u044b\u0445 \u043f\u043e\u00a0\u043c\u0435\u0440\u0435 \u0438\u0445 \u0432\u043e\u0437\u043d\u0438\u043a\u043d\u043e\u0432\u0435\u043d\u0438\u044f. \u0421\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u0434\u0432\u0430 \u0432\u0438\u0434\u0430 redo log:<\/p>\n<ul>\n<li>\n<p>Online redo log \u0441\u043e\u0441\u0442\u043e\u0438\u0442 \u0438\u0437\u00a0\u0434\u0432\u0443\u0445 \u0438\u043b\u0438\u00a0\u0431\u043e\u043b\u0435\u0435 \u043f\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0432\u044b\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0445 \u0444\u0430\u0439\u043b\u043e\u0432, \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0449\u0438\u0435 \u0442\u0435\u043a\u0443\u0449\u0438\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f. \u041a\u0430\u043a\u00a0\u0440\u0430\u0437 \u0441\u00a0\u044d\u0442\u0438\u043c \u0432\u0438\u0434\u043e\u043c \u043b\u043e\u0433\u043e\u0432 \u0438 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0421\u0423\u0411\u0414 \u0434\u043b\u044f\u00a0\u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0430\u043d\u0438\u044f \u043d\u0430\u0434\u0435\u0436\u043d\u043e\u0441\u0442\u0438;<\/p>\n<\/li>\n<li>\n<p>Archive redo log\u00a0\u2014 \u044d\u0442\u043e \u0442\u0435\u00a0\u0436\u0435 \u0444\u0430\u0439\u043b\u044b, \u043d\u043e\u00a0\u0445\u0440\u0430\u043d\u044f\u0442 \u0432\u00a0\u0441\u0435\u0431\u0435 \u0431\u043e\u043b\u0435\u0435 \u0440\u0430\u043d\u043d\u0438\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f.<\/p>\n<\/li>\n<\/ul>\n<blockquote>\n<p>Online redo log \u0437\u0430\u0447\u0430\u0441\u0442\u0443\u044e \u0445\u0440\u0430\u043d\u0438\u0442\u0441\u044f \u043d\u0430\u00a0\u0431\u043e\u043b\u0435\u0435\u00a0\u0431\u044b\u0441\u0442\u0440\u044b\u0445 \u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044f\u0445, \u043d\u043e\u00a0\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 archive redo log \u043c\u0435\u043d\u044c\u0448\u0435 \u0432\u043b\u0438\u044f\u0435\u0442 \u043d\u0430 \u0421\u0423\u0411\u0414.<\/p>\n<\/blockquote>\n<p>\u0422\u0430\u043a \u0436\u0435 \u0441\u0442\u043e\u0438\u0442 \u043e\u0442\u043c\u0435\u0442\u0438\u0442\u044c, \u0447\u0442\u043e \u0443 \u0432\u0430\u0441 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0441\u043e\u0432\u0435\u0440\u0448\u0435\u043d\u043d\u043e \u0434\u0440\u0443\u0433\u043e\u0439 \u043d\u0430\u0431\u043e\u0440 online redo log \u0444\u0430\u0439\u043b\u043e\u0432, \u0438 \u043c\u043e\u0436\u0435\u0442 \u043d\u0435 \u0431\u044b\u0442\u044c \u0432\u043e\u0432\u0441\u0435 archive redo log \u0444\u0430\u0439\u043b\u043e\u0432.<\/p>\n<p><a class=\"anchor\" name=\"4\" id=\"4\"><\/a><\/p>\n<h3>Online redo log<\/h3>\n<pre><code class=\"sql\">SELECT   T.MEMBER AS FILE_NAME,   T.FIRST_CHANGE AS FIRST_CHANGE,   T.NEXT_CHANGE AS NEXT_CHANGE,   T.STATUS FROM (   SELECT     F.MEMBER,     L.FIRST_CHANGE#,     L.NEXT_CHANGE#,     L.STATUS,     ROW_NUMBER() OVER(PARTITION BY F.GROUP# ORDER BY F.GROUP#) AS GROUP   FROM V$LOGFILE F     JOIN V$LOG L       ON L.GROUP# = F.GROUP#   WHERE F.TYPE = 'ONLINE' ) T WHERE T.GROUP = 1;         FILE_NAME FIRST_CHANGE          NEXT_CHANGE   STATUS  ---------------- ------------ -------------------- -------- \/path\/redo01.log 1700         1800                 INACTIVE \/path\/redo02.log 1800         1900                 INACTIVE \/path\/redo03.log 1900         18446744073709551615 CURRENT<\/code><\/pre>\n<p>\u0412 \u0434\u0430\u043d\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0432\u044b\u0434\u0435\u043b\u0435\u043d\u043e \u0442\u0440\u0438 online redo log \u0444\u0430\u0439\u043b\u0430. \u041e\u0434\u0438\u043d \u0438\u0437 \u043d\u0438\u0445 \u0442\u0435\u043a\u0443\u0449\u0438\u0439, \u0443 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e STATUS CURRENT. \u041c\u043e\u0436\u043d\u043e \u0443\u0432\u0438\u0434\u0435\u0442\u044c \u043d\u0430\u0447\u0430\u043b\u043e \u0438 \u043a\u043e\u043d\u0435\u0446 \u043f\u043e SCN (FIRST_CHANGE &lt;= SCN &lt; NEXT_CHANGE) \u0432 \u043a\u0430\u0436\u0434\u043e\u043c \u0438\u0437 \u0444\u0430\u0439\u043b\u043e\u0432, \u0438 \u043a\u0430\u043a \u043e\u043d\u0438 \u0447\u0435\u0440\u0435\u0434\u0443\u044e\u0442\u0441\u044f \u043c\u0435\u0436\u0434\u0443 \u0441\u043e\u0431\u043e\u0439.<\/p>\n<p><a class=\"anchor\" name=\"5\" id=\"5\"><\/a><\/p>\n<h4>\u0420\u043e\u0442\u0430\u0446\u0438\u044f online redo log<\/h4>\n<p>\u0417\u0430\u043f\u0438\u0441\u044c \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u043f\u043e \u043a\u0440\u0443\u0433\u0443. \u041a\u0430\u043a \u0442\u043e\u043b\u044c\u043a\u043e \u0442\u0435\u043a\u0443\u0449\u0438\u0439 online redo log \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0437\u0430\u043f\u043e\u043b\u043d\u0438\u0442\u0441\u044f, \u0435\u0433\u043e \u043c\u0435\u0441\u0442\u043e \u0437\u0430\u0439\u043c\u0435\u0442 \u0441\u0430\u043c\u044b\u0439 \u0440\u0430\u043d\u043d\u0438\u0439 online redo log \u043f\u043e FIRST_CHANGE. \u0410 \u0442\u0430\u043a \u0436\u0435, \u0437\u0430\u043c\u0435\u043d\u0435\u043d\u043d\u044b\u0439 online redo log \u0444\u0430\u0439\u043b \u0431\u0443\u0434\u0435\u0442 \u0430\u0440\u0445\u0438\u0432\u0438\u0440\u043e\u0432\u0430\u043d, \u0442\u043e \u0435\u0441\u0442\u044c \u043f\u043e\u044f\u0432\u0438\u0442\u0441\u044f \u0442\u043e\u0447\u043d\u043e \u0442\u0430\u043a\u043e\u0439 \u0436\u0435 archive redo log \u0444\u0430\u0439\u043b. \u041f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0440\u043e\u0442\u0430\u0446\u0438\u0438:<\/p>\n<pre><code class=\"sql\">       FILE_NAME FIRST_CHANGE          NEXT_CHANGE   STATUS  ---------------- ------------ -------------------- -------- \/path\/redo01.log 2200         18446744073709551615 CURRENT \/path\/redo02.log 1800         1900                 INACTIVE \/path\/redo03.log 1900         2200                 INACTIVE<\/code><\/pre>\n<p><a class=\"anchor\" name=\"6\" id=\"6\"><\/a><\/p>\n<h3>Archive redo log<\/h3>\n<pre><code class=\"sql\">SELECT   AL.NAME AS FILE_NAME,   AL.FIRST_CHANGE# AS FIRST_CHANGE,   AL.NEXT_CHANGE# AS NEXT_CHANGE,   AL.DICTIONARY_BEGIN,   AL.DICTIONARY_END FROM V$ARCHIVED_LOG AL   JOIN V$ARCHIVE_DEST_STATUS ADS     ON ADS.DEST_ID = AL.DEST_ID WHERE AL.STATUS = 'A'   AND ADS.STATUS = 'VALID'   AND ADS.TYPE = 'LOCAL';                       FILE_NAME FIRST_CHANGE NEXT_CHANGE DICTIONARY_BEGIN DICTIONARY_END  ------------------------------ ------------ ----------- ---------------- -------------- \/path\/arch1_214_1161333401.dbf 1100         1200        NO               NO \/path\/arch1_215_1161333401.dbf 1200         1300        YES              YES \/path\/arch1_216_1161333401.dbf 1300         1400        NO               NO \/path\/arch1_217_1161333401.dbf 1400         1500        NO               NO \/path\/arch1_218_1161333401.dbf 1500         1600        YES              NO \/path\/arch1_219_1161333401.dbf 1600         1700        NO               YES \/path\/arch1_220_1161333401.dbf 1700         1800        NO               NO \/path\/arch1_221_1161333401.dbf 1800         1900        NO               NO<\/code><\/pre>\n<p>\u0421\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435 archive redo log \u0444\u0430\u0439\u043b\u0430 \u0442\u0430\u043a\u043e\u0435 \u0436\u0435, \u043a\u0430\u043a \u0438 \u0432 online redo log \u0444\u0430\u0439\u043b\u0430. \u041d\u043e archive redo log \u043c\u043e\u0436\u0435\u0442 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u044c \u0432 \u0441\u0435\u0431\u0435 \u0447\u0430\u0441\u0442\u0438\u0447\u043d\u043e \u0438\u043b\u0438 \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e dictionary (\u0441\u043b\u043e\u0432\u0430\u0440\u044c), \u043e \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u043c\u044b \u043f\u043e\u0433\u043e\u0432\u043e\u0440\u0438\u043c \u043f\u043e\u0437\u0436\u0435.<\/p>\n<p>\u0412\u0435\u0440\u043d\u0435\u043c\u0441\u044f \u043a \u0440\u043e\u0442\u0430\u0446\u0438\u0438 online redo log. \u041f\u043e\u0441\u043b\u0435 \u0440\u043e\u0442\u0430\u0446\u0438\u0438 \u043f\u043e\u044f\u0432\u0438\u0442\u0441\u044f \u043d\u043e\u0432\u044b\u0439 archive redo log \u0444\u0430\u0439\u043b, \u043f\u0440\u0438\u043c\u0435\u0440:<\/p>\n<pre><code class=\"sql\">                     FILE_NAME FIRST_CHANGE NEXT_CHANGE DICTIONARY_BEGIN DICTIONARY_END  ------------------------------ ------------ ----------- ---------------- -------------- \/path\/arch1_222_1161333401.dbf 1900         2200        NO               NO<\/code><\/pre>\n<p><a class=\"anchor\" name=\"7\" id=\"7\"><\/a><\/p>\n<h2>Dictionary<\/h2>\n<p>LogMiner \u0442\u0440\u0435\u0431\u0443\u0435\u0442 dictionary (\u0441\u043b\u043e\u0432\u0430\u0440\u044c) \u0434\u043b\u044f \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u043e\u0432 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 \u0432 \u0438\u043c\u0435\u043d\u0430 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 \u043f\u0440\u0438 \u0432\u043e\u0437\u0432\u0440\u0430\u0442\u0435 \u0432\u0430\u043c \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439.<\/p>\n<p>LogMiner \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0442\u0440\u0438 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u0430 \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0441\u043b\u043e\u0432\u0430\u0440\u044f:<\/p>\n<ul>\n<li>\n<p><strong>Online Catalog<\/strong> \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u0442\u0441\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c, \u0435\u0441\u043b\u0438 \u0432\u044b \u0438\u043c\u0435\u0435\u0442\u0435 \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0439 \u0431\u0430\u0437\u0435 \u0434\u0430\u043d\u043d\u044b\u0445, \u0438\u0437 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0431\u044b\u043b\u0438 \u0441\u043e\u0437\u0434\u0430\u043d\u044b redo log \u0444\u0430\u0439\u043b\u044b. \u0410 \u0442\u0430\u043a \u0436\u0435, \u0435\u0441\u043b\u0438 \u043d\u0435 \u0431\u0443\u0434\u0443\u0442 \u0432\u043d\u0435\u0441\u0435\u043d\u044b \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0432 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u044f \u043f\u043e\u043b\u0435\u0439 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0443\u044e\u0449\u0438\u0445 \u0442\u0430\u0431\u043b\u0438\u0446;<\/p>\n<\/li>\n<li>\n<p><strong>\u0421\u043b\u043e\u0432\u0430\u0440\u044c \u0438\u0437 archive redo log<\/strong> \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u0442\u0441\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c, \u0435\u0441\u043b\u0438 \u0432\u044b \u043d\u0435 \u043f\u043b\u0430\u043d\u0438\u0440\u0443\u0435\u0442\u0435 \u0438\u043c\u0435\u0442\u044c \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0439 \u0431\u0430\u0437\u0435 \u0434\u0430\u043d\u043d\u044b\u0445, \u0438\u0437 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0431\u044b\u043b\u0438 \u0441\u043e\u0437\u0434\u0430\u043d\u044b redo log \u0444\u0430\u0439\u043b\u044b. \u0410 \u0442\u0430\u043a \u0436\u0435, \u0435\u0441\u043b\u0438 \u0432\u044b \u043f\u0440\u0435\u0434\u043f\u043e\u043b\u0430\u0433\u0430\u0435\u0442\u0435, \u0447\u0442\u043e \u0431\u0443\u0434\u0443\u0442 \u0432\u043d\u0435\u0441\u0435\u043d\u044b \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0432 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u044f \u043f\u043e\u043b\u0435\u0439 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0443\u044e\u0449\u0438\u0445 \u0442\u0430\u0431\u043b\u0438\u0446;<\/p>\n<\/li>\n<li>\n<p><strong>\u0421\u043b\u043e\u0432\u0430\u0440\u044c \u0432 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e\u043c \u0444\u0430\u0439\u043b\u0435<\/strong> \u0440\u0430\u0441\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u0442\u044c\u0441\u044f \u043d\u0435 \u0431\u0443\u0434\u0435\u0442.<\/p>\n<\/li>\n<\/ul>\n<p>\u041e \u043d\u0430\u043b\u0438\u0447\u0438\u0438 \u0441\u043b\u043e\u0432\u0430\u0440\u044f \u0432 \u0442\u043e\u043c \u0438\u043b\u0438 \u0438\u043d\u043e\u043c archive redo log \u0444\u0430\u0439\u043b\u0435 \u0433\u043e\u0432\u043e\u0440\u044f\u0442 \u043d\u0430\u043c \u043f\u043e\u043b\u044f DICTIONARY_BEGIN \u0438 DICTIONARY_END.<\/p>\n<p>\u041f\u0440\u0438\u043c\u0435\u0440, \u043a\u043e\u0433\u0434\u0430 \u0441\u043b\u043e\u0432\u0430\u0440\u044c \u0438\u0437 archive redo log \u0444\u0430\u0439\u043b\u0430 \u0431\u0443\u0434\u0435\u0442 \u043e\u0442\u0434\u0430\u043d \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e:<\/p>\n<pre><code class=\"sql\">                     FILE_NAME FIRST_CHANGE NEXT_CHANGE DICTIONARY_BEGIN DICTIONARY_END  ------------------------------ ------------ ----------- ---------------- -------------- \/path\/arch1_215_1161333401.dbf 1200         1300        YES              YES<\/code><\/pre>\n<pre><code class=\"sql\">                     FILE_NAME FIRST_CHANGE NEXT_CHANGE DICTIONARY_BEGIN DICTIONARY_END  ------------------------------ ------------ ----------- ---------------- -------------- \/path\/arch1_218_1161333401.dbf 1500         1600        YES              NO \/path\/arch1_219_1161333401.dbf 1600         1700        NO               YES<\/code><\/pre>\n<p><a class=\"anchor\" name=\"8\" id=\"8\"><\/a><\/p>\n<h2>\u0418\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f LogMiner<\/h2>\n<p>\u041f\u0440\u0438 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 LogMiner \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0443\u043a\u0430\u0437\u0430\u0442\u044c redo log \u0444\u0430\u0439\u043b\u044b \u0438 \u043e\u043f\u0446\u0438\u0438. \u0416\u0435\u043b\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c LogMiner \u043a\u0430\u0436\u0434\u044b\u0439 \u0440\u0430\u0437 \u043f\u0440\u0438 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0438 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439.<\/p>\n<pre><code class=\"sql\">BEGIN   DBMS_LOGMNR.ADD_LOGFILE('NAME_REDO_LOG_FILE_1', DBMS_LOGMNR.NEW);   [     DBMS_LOGMNR.ADD_LOGFILE('NAME_REDO_LOG_FILE_2', DBMS_LOGMNR.ADDFILE);     | DBMS_LOGMNR.ADD_LOGFILE('NAME_REDO_LOG_FILE_3', DBMS_LOGMNR.ADDFILE);     | ...   ]   DBMS_LOGMNR.START_LOGMNR(     STARTSCN=>SCN_\u041d\u0410\u0427\u0410\u041b\u0410_\u0421\u0427\u0418\u0422\u042b\u0412\u0410\u041d\u0418\u042f_\u0424\u0410\u0419\u041b\u0410,     ENDSCN=>SCN_\u041a\u041e\u041d\u0426\u0410_\u0421\u0427\u0418\u0422\u042b\u0412\u0410\u041d\u0418\u042f_\u0424\u0410\u0419\u041b\u0410,     OPTIONS=>       [         DBMS_LOGMNR.DICT_FROM_ONLINE_CATALOG         | DBMS_LOGMNR.DICT_FROM_REDO_LOGS       ]       + DBMS_LOGMNR.COMMITTED_DATA_ONLY       + DBMS_LOGMNR.PRINT_PRETTY_SQL       + DBMS_LOGMNR.NO_SQL_DELIMITER       + DBMS_LOGMNR.NO_ROWID_IN_STMT       + DBMS_LOGMNR.DDL_DICT_TRACKING   ); END;<\/code><\/pre>\n<ul>\n<li>\n<p><strong>ADD_LOGFILE<\/strong><\/p>\n<ul>\n<li>\n<p><strong>DBMS_LOGMNR.NEW<\/strong> \u2013 \u043f\u0435\u0440\u0432\u044b\u0439 redo log \u0444\u0430\u0439\u043b\u0430<\/p>\n<\/li>\n<li>\n<p><strong>DBMS_LOGMNR.ADDFILE<\/strong> \u2013 \u043f\u043e\u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 redo log \u0444\u0430\u0439\u043b\u044b<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p><strong>START_LOGMNR<\/strong> \u2013 \u043a\u043e\u043c\u0430\u043d\u0434\u0430 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 LogMiner<\/p>\n<ul>\n<li>\n<p><strong>STARTSCN<\/strong> \u2013 SCN \u043d\u0430\u0447\u0430\u043b\u0430 \u0441\u0447\u0438\u0442\u044b\u0432\u0430\u043d\u0438\u044f \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439<\/p>\n<\/li>\n<li>\n<p><strong>ENDSCN<\/strong> \u2013 SCN \u043a\u043e\u043d\u0446\u0430 \u0441\u0447\u0438\u0442\u044b\u0432\u0430\u043d\u0438\u044f \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439<\/p>\n<\/li>\n<li>\n<p><strong>OPTIONS<\/strong> \u2013 \u043e\u043f\u0446\u0438\u0438 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 LogMiner<\/p>\n<ul>\n<li>\n<p><strong>DICT_FROM_ONLINE_CATALOG<\/strong> \u2013 \u0431\u0443\u0434\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d \u0441\u043b\u043e\u0432\u0430\u0440\u044c Online catalog<\/p>\n<\/li>\n<li>\n<p><strong>DICT_FROM_REDO_LOGS<\/strong> \u2013 \u0441\u043b\u043e\u0432\u0430\u0440\u044c \u0431\u0443\u0434\u0435\u0442 \u0438\u0437\u0432\u043b\u0435\u0447\u0435\u043d \u0438\u0437 archive redo log \u0444\u0430\u0439\u043b\u043e\u0432<\/p>\n<\/li>\n<li>\n<p><strong>COMMITTED_DATA_ONLY<\/strong> \u2013 \u0431\u0443\u0434\u0443\u0442 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u044b \u0442\u043e\u043b\u044c\u043a\u043e \u0437\u0430\u0444\u0438\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u0438<\/p>\n<\/li>\n<li>\n<p><strong>PRINT_PRETTY_SQL<\/strong> \u2013 \u043e\u0444\u043e\u0440\u043c\u043b\u0435\u043d\u0438\u0435 \u0432\u044b\u0432\u043e\u0434\u0438\u043c\u044b\u0445 SQL \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432<\/p>\n<\/li>\n<li>\n<p><strong>NO_SQL_DELIMITER<\/strong> \u2013 \u0443\u0431\u0440\u0430\u0442\u044c ; \u0438\u0437 \u043a\u043e\u043d\u0446\u0430 SQL \u0437\u0430\u043f\u0440\u043e\u0441\u0430<\/p>\n<\/li>\n<li>\n<p><strong>NO_ROWID_IN_STMT<\/strong> \u2013 \u0443\u0431\u0440\u0430\u0442\u044c ROW_ID \u0438\u0437 SQL \u0437\u0430\u043f\u0440\u043e\u0441\u0430<\/p>\n<\/li>\n<li>\n<p><strong>DDL_DICT_TRACKING<\/strong> \u2013 \u0430\u043a\u0442\u0443\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u043b\u043e\u0432\u0430\u0440\u044c \u0432\u0441\u0442\u0440\u0435\u0447\u0430\u0435\u043c\u044b\u043c\u0438 DDL \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f\u043c\u0438 (\u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u0441 DICT_FROM_REDO_LOGS)<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>\u0412 \u043d\u0430\u0447\u0430\u043b\u0435 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0443\u043a\u0430\u0437\u0430\u0442\u044c redo log \u0444\u0430\u043b\u044b \u0432 \u0440\u0430\u043c\u043a\u0430\u0445 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043c\u044b \u0445\u043e\u0442\u0438\u043c \u043f\u043e\u043b\u0443\u0447\u0430\u0442\u044c \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f FIRST_CHANGE &lt;= SCN \u0418\u0417\u041c\u0415\u041d\u0415\u041d\u0418\u042f &lt; NEXT_CHANGE.<\/p>\n<p>\u0412 \u043f\u0440\u0438\u043c\u0435\u0440\u0430\u0445 \u0431\u0443\u0434\u0435\u0442 \u044f\u0441\u043d\u043e, \u043a\u0430\u043a\u0438\u0435 \u043e\u043f\u0446\u0438\u0438 \u0432 \u043a\u0430\u043a\u0438\u0445 \u0443\u0441\u043b\u043e\u0432\u0438\u044f\u0445 \u043b\u0443\u0447\u0448\u0435 \u0432\u0441\u0435\u0433\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c.<\/p>\n<p><a class=\"anchor\" name=\"9\" id=\"9\"><\/a><\/p>\n<h2>\u041d\u0435\u043e\u0431\u0445\u043e\u0434<\/h><\/div>\n<\/div>\n<\/div>\n<\/div>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-426568","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/426568","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=426568"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/426568\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=426568"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=426568"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=426568"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}