{"id":934,"date":"2013-07-17T13:52:05","date_gmt":"2013-07-17T05:52:05","guid":{"rendered":"http:\/\/www.yallonking.com\/?p=934"},"modified":"2013-07-17T14:41:57","modified_gmt":"2013-07-17T06:41:57","slug":"logmnr%e5%b8%b8%e8%a7%81%e4%bd%bf%e7%94%a8%e6%96%b9%e6%b3%95-%e5%88%86%e6%9e%90online-redoarchive-log","status":"publish","type":"post","link":"http:\/\/www.yallonking.com\/?p=934","title":{"rendered":"logmnr\u5e38\u89c1\u4f7f\u7528\u65b9\u6cd5"},"content":{"rendered":"<p>logmnr\u5e38\u89c1\u4f7f\u7528\u65b9\u6cd5\uff0c\u4ee5\u524d\u7684\u4e00\u4e2a\u6d4b\u8bd5\u4f8b\u5b50\u3002<br \/>\n--\u6570\u636e\u5e93\u7248\u672c<\/p>\n<pre class=\"wp-code-highlight prettyprint\">\r\nSQL&gt; select * from gv$version;\r\n\r\n   INST_ID BANNER\r\n---------- ----------------------------------------------------------------\r\n         1 Oracle Database 10g Enterprise Edition Release 10.2.0.5.0 - Prod\r\n         1 PL\/SQL Release 10.2.0.5.0 - Production\r\n         1 CORE 10.2.0.5.0      Production\r\n         1 TNS for Linux: Version 10.2.0.5.0 - Production\r\n         1 NLSRTL Version 10.2.0.5.0 - Production\r\n         2 Oracle Database 10g Enterprise Edition Release 10.2.0.5.0 - Prod\r\n         2 PL\/SQL Release 10.2.0.5.0 - Production\r\n         2 CORE 10.2.0.5.0      Production\r\n         2 TNS for Linux: Version 10.2.0.5.0 - Production\r\n         2 NLSRTL Version 10.2.0.5.0 - Production\r\n\r\n10 rows selected.\r\n<\/pre>\n<p>--\u51c6\u5907\u914d\u7f6e\uff1a<br \/>\n--\u6253\u5f00\u6570\u636e\u5e93\u8865\u5145\u65e5\u5fd7\u529f\u80fd<\/p>\n<pre class=\"wp-code-highlight prettyprint\">\r\nSQL&gt; select LOG_MODE from v$database;\r\n\r\nLOG_MODE\r\n------------\r\nARCHIVELOG\r\n\r\nSQL&gt; select SUPPLEMENTAL_LOG_DATA_MIN,SUPPLEMENTAL_LOG_DATA_PK,SUPPLEMENTAL_LOG_DATA_UI from v$database;\r\n\r\nSUPPLEME SUP SUP\r\n-------- --- ---\r\nNO       NO  NO\r\n\r\nSQL&gt; alter database add supplemental log data;    &lt;&lt;\u5982\u679c\u4e0d\u5f00\u542fsupplemental log\uff0c\u5219\u5728\u67e5\u8be2\u65e5\u5fd7\u5206\u6790\u8868\u7684\u65f6\u5019\uff0cusername\u5217\u5c06\u4e3a\u7a7a\uff1b\u4ee5\u53ca\u53d1\u751f\u884c\u8fc1\u79fb\u7684redo\u65e0\u6cd5\u8ffd\u8e2a\u3002\r\n\r\nDatabase altered.\r\n\r\nSQL&gt; select SUPPLEMENTAL_LOG_DATA_MIN,SUPPLEMENTAL_LOG_DATA_PK,SUPPLEMENTAL_LOG_DATA_UI from v$database;\r\n\r\nSUPPLEME SUP SUP\r\n-------- --- ---\r\nYES      NO  NO\r\n<\/pre>\n<p>--\u8bbe\u7f6e\u4f1a\u8bdd\u65f6\u95f4\u683c\u5f0f<\/p>\n<pre class=\"wp-code-highlight prettyprint\">\r\nSQL&gt; alter session set nls_date_format =&#039;yyyy\/mm\/dd hh24:mi:ss&#039;;\r\n\r\nSession altered.\r\n\r\nSQL&gt; select sysdate from dual;\r\n\r\nSYSDATE\r\n-------------------\r\n2012\/09\/18 10:35:13\r\n<\/pre>\n<p>--\u521b\u5efa\u6d4b\u8bd5\u6570\u636e <\/p>\n<pre class=\"wp-code-highlight prettyprint\">\r\nSQL&gt; create tablespace test datafile &#039;+DATA\/racdb\/test01.dbf&#039; size 2m;\r\n\r\nTablespace created.\r\n\r\nSQL&gt; create user test identified by test default tablespace test quota unlimited on test;\r\n\r\nUser created.\r\n\r\nSQL&gt; grant resource,connect to test;\r\n\r\nGrant succeeded.\r\n\r\nSQL&gt; conn test\/test;\r\nConnected.\r\nSQL&gt; create table test(id number,name varchar2(10));\r\n\r\nTable created.\r\n\r\nSQL&gt; select a.group#,thread#,member,b.status,archived from v$logfile a,v$log b where a.group#=b.group# order by 1;\r\n\r\n    GROUP#    THREAD# MEMBER                    STATUS           ARC\r\n---------- ---------- ------------------------- ---------------- ---\r\n         1          1 +DATA\/racdb\/redo01.log    CURRENT          NO\r\n         2          1 +DATA\/racdb\/redo02.log    INACTIVE         YES\r\n         3          2 +DATA\/racdb\/redo03.log    INACTIVE         YES\r\n         4          2 +DATA\/racdb\/redo04.log    CURRENT          NO\r\n\r\nSQL&gt; conn test\/test\r\nConnected.\r\nSQL&gt; insert into test values(1,&#039;yallonking&#039;);\r\n\r\n1 row created.\r\n\r\nSQL&gt; conn \/as sysdba\r\nConnected.\r\nSQL&gt; create user yallonking identified by yallonking default tablespace test quota unlimited on test;\r\n\r\nUser created.\r\n\r\nSQL&gt; grant connect,resource to yallonking;\r\n\r\nGrant succeeded.\r\n\r\nSQL&gt; conn yallonking\/yallonking\r\nConnected.\r\nSQL&gt; create table yallonking (id number,name varchar2(10));\r\n\r\nTable created.\r\n\r\nSQL&gt; insert into yallonking values (2,&#039;test&#039;);\r\n\r\n1 row created.\r\n\r\nSQL&gt; commit;\r\n\r\nCommit complete.\r\n\r\nSQL&gt; conn test\/test\r\nConnected.\r\nSQL&gt; alter table test modify name varchar2(20);\r\n\r\nTable altered.\r\n\r\nSQL&gt; update test set id=3 where id=1;\r\n\r\n1 row updated.\r\n\r\nSQL&gt; delete from test where id=3;\r\n\r\n1 row deleted.\r\n\r\nSQL&gt; commit;\r\n\r\nCommit complete.\r\n\r\nSQL&gt; insert into test values (4,&#039;test&#039;)\r\n  2  ;\r\n\r\n1 row created.\r\n\r\nSQL&gt; rollback;\r\n\r\nRollback complete.\r\n\r\nSQL&gt; conn \/as sysdba\r\nConnected.\r\n\r\nSQL&gt; alter system switch logfile;\r\n\r\nSystem altered.\r\n\r\nSQL&gt; alter system checkpoint;\r\n\r\nSystem altered.\r\n\r\nSQL&gt; select a.group#,thread#,member,b.status,archived from v$logfile a,v$log b where a.group#=b.group# order by 1;\r\n\r\n    GROUP#    THREAD# MEMBER                    STATUS           ARC\r\n---------- ---------- ------------------------- ---------------- ---\r\n         1          1 +DATA\/racdb\/redo01.log    INACTIVE         YES\r\n         2          1 +DATA\/racdb\/redo02.log    CURRENT          NO\r\n         3          2 +DATA\/racdb\/redo03.log    INACTIVE         YES\r\n         4          2 +DATA\/racdb\/redo04.log    CURRENT          NO\r\n<\/pre>\n<p><strong>\u793a\u4f8b\u4e00\uff1a\u67e5\u770b\u6700\u540e\u4e00\u4e2a\u5f52\u6863\u65e5\u5fd7\u4e2d\u6240\u6709\u7684\u64cd\u4f5c\u4fe1\u606f<\/strong><br \/>\n<strong>\u6ce8\uff1a\u6b64logmnr\u67e5\u8be2\u89c6\u56fe\u4e2d\u542b\u6709\u672a\u63d0\u4ea4\u4e8b\u52a1\uff0c\u4e14\u8f93\u51fa\u6309\u65f6\u95f4\u987a\u5e8f\u8f93\u51fa<\/strong><br \/>\n--\u786e\u5b9a\u5f52\u6863\u65e5\u5fd7<\/p>\n<pre class=\"wp-code-highlight prettyprint\">\r\nSQL&gt; select name from v$archived_log where first_time=(select max(first_time) from v$archived_log);\r\n\r\nNAME\r\n--------------------------------------------------------------------------------\r\n+DATA\/racdb\/archivelog\/2012_09_18\/thread_1_seq_5.278.794314659\r\n\r\n<\/pre>\n<p>--\u5c06\u65e5\u5fd7\u6dfb\u52a0\u5230logmnr\u4e2d<\/p>\n<pre class=\"wp-code-highlight prettyprint\">\r\nSQL&gt; execute dbms_logmnr.add_logfile(logfilename=&gt;&#039;+DATA\/racdb\/archivelog\/2012_09_18\/thread_1_seq_5.278.794314659&#039;,options=&gt;dbms_logmnr.new);\r\n\r\nPL\/SQL procedure successfully completed.\r\n<\/pre>\n<p>--\u4f7f\u7528logmnr\u8fdb\u884c\u5206\u6790<\/p>\n<pre class=\"wp-code-highlight prettyprint\">\r\nSQL&gt; execute dbms_logmnr.start_logmnr(options=&gt;dbms_logmnr.dict_from_online_catalog + dbms_logmnr.print_pretty_sql);\r\n\r\nPL\/SQL procedure successfully completed.\r\n<\/pre>\n<p>--\u67e5\u8be2logmnr\u89c6\u56fe<\/p>\n<pre class=\"wp-code-highlight prettyprint\">\r\nselect username,(xidusn||&#039;.&#039;||xidslt||&#039;.&#039;||xidsqn)as xid,sql_redo,sql_undo from v$logmnr_contents where username in (&#039;TEST&#039;,&#039;YALLONKING&#039;);\r\n\r\n<\/pre>\n<p>--\u7ed3\u675flogmnr<\/p>\n<pre class=\"wp-code-highlight prettyprint\">\r\nSQL&gt; execute dbms_logmnr.end_logmnr();\r\n\r\nPL\/SQL procedure successfully completed.\r\n<\/pre>\n<p><strong>\u793a\u4f8b\u4e8c\uff1a\u67e5\u770b\u6700\u540e\u4e00\u4e2a\u5f52\u6863\u65e5\u5fd7\u4e2d\u6240\u6709\u7684\u64cd\u4f5c\u4fe1\u606f<\/strong><br \/>\n<strong>\u6ce8\uff1a\u6b64logmnr\u67e5\u8be2\u89c6\u56fe\u4e2d\u53ea\u542b\u6709\u5df2\u63d0\u4ea4\u4e8b\u52a1\uff0c\u4e14\u8f93\u51fa\u6309\u65f6\u95f4\u987a\u5e8f\u6309\u7528\u6237\u5206\u7ec4\u8f93\u51fa<\/strong><br \/>\n--\u786e\u5b9a\u5f52\u6863\u65e5\u5fd7<\/p>\n<pre class=\"wp-code-highlight prettyprint\">\r\nSQL&gt; select name from v$archived_log where first_time=(select max(first_time) from v$archived_log);\r\n\r\nNAME\r\n--------------------------------------------------------------------------------\r\n+DATA\/racdb\/archivelog\/2012_09_18\/thread_1_seq_5.278.794314659\r\n<\/pre>\n<p>--\u5c06\u65e5\u5fd7\u6dfb\u52a0\u5230logmnr\u4e2d<\/p>\n<pre class=\"wp-code-highlight prettyprint\">\r\nSQL&gt; execute dbms_logmnr.add_logfile(logfilename=&gt;&#039;+DATA\/racdb\/archivelog\/2012_09_18\/thread_1_seq_5.278.794314659&#039;,options=&gt;dbms_logmnr.new);\r\n\r\nPL\/SQL procedure successfully completed.\r\n<\/pre>\n<p>--\u4f7f\u7528logmnr\u8fdb\u884c\u5206\u6790<\/p>\n<pre class=\"wp-code-highlight prettyprint\">\r\nSQL&gt; execute dbms_logmnr.start_logmnr(options=&gt;dbms_logmnr.dict_from_online_catalog + dbms_logmnr.committed_data_only + dbms_logmnr.print_pretty_sql);\r\n\r\nPL\/SQL procedure successfully completed.\r\n<\/pre>\n<p>--\u67e5\u8be2logmnr\u89c6\u56fe<\/p>\n<pre class=\"wp-code-highlight prettyprint\">\r\nselect username,(xidusn||&#039;.&#039;||xidslt||&#039;.&#039;||xidsqn)as xid,sql_redo,sql_undo from v$logmnr_contents where username in (&#039;TEST&#039;,&#039;YALLONKING&#039;);\r\n\r\n<\/pre>\n<p>--\u7ed3\u675flogmnr<\/p>\n<pre class=\"wp-code-highlight prettyprint\">\r\nSQL&gt; execute dbms_logmnr.end_logmnr();\r\n\r\nPL\/SQL procedure successfully completed.\r\n<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>logmnr\u5e38\u89c1\u4f7f\u7528\u65b9\u6cd5\uff0c\u4ee5\u524d\u7684\u4e00\u4e2a\u6d4b\u8bd5\u4f8b\u5b50\u3002 &#8211;\u6570\u636e\u5e93\u7248\u672c SQL&gt; select * from g [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[9],"tags":[216],"_links":{"self":[{"href":"http:\/\/www.yallonking.com\/index.php?rest_route=\/wp\/v2\/posts\/934"}],"collection":[{"href":"http:\/\/www.yallonking.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.yallonking.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.yallonking.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.yallonking.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=934"}],"version-history":[{"count":5,"href":"http:\/\/www.yallonking.com\/index.php?rest_route=\/wp\/v2\/posts\/934\/revisions"}],"predecessor-version":[{"id":939,"href":"http:\/\/www.yallonking.com\/index.php?rest_route=\/wp\/v2\/posts\/934\/revisions\/939"}],"wp:attachment":[{"href":"http:\/\/www.yallonking.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=934"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.yallonking.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=934"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.yallonking.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=934"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}