第10章:LogMiner之分析重做檔案

mengzhaoliang發表於2008-05-31

/* 2008/05/30
*環境:Windows XP +Oracle10.2.0.1
*Oracle 備份與恢復培訓教程 Kenny Smith,Stephan Haisley著 周琪、韓岷、李渝琳等譯
*第二部分:使用者管理的備份與恢復
*第10章:LogMiner
*/

練習:分析重做檔案
1、建立資料字典檔案
安裝logMiner,必須首先要執行下面這樣兩個指令碼,

l $ORACLE_HOME/rdbms/admin/dbmslm.sql

2 $ORACLE_HOME/rdbms/admin/dbmslmd.sql.

SQL> @G:\oracle\product\10.2.0\db_1\RDBMS\ADMIN\dbmslm.sql

程式包已建立。


授權成功。

SQL> @G:\oracle\product\10.2.0\db_1\RDBMS\ADMIN\dbmslmd.sql

程式包已建立。

在$oracle_home\database\initrisenet.ora加上*.UTL_FILE_DIR='E:\logminer'
關閉資料庫,然後啟動

SQL> execute dbms_logmnr_d.build(-
> dictionary_filename=>'dictionary.ora',-
> dictionary_location=>'e:\logminer');

PL/SQL 過程已成功完成。


2、產生資料庫操作
SQL> connect scott/mzl
已連線。
SQL> desc dept;
 名稱                                      是否為空? 型別
 ----------------------------------------- -------- ----------------------------

 DEPTNO                                    NOT NULL NUMBER(2)
 DNAME                                              VARCHAR2(14)
 LOC                                                VARCHAR2(13)

SQL> select * from dept;

    DEPTNO DNAME          LOC
---------- -------------- -------------
        50 support        denver
        10 ACCOUNTING     NEW YORK
        20 RESEARCH       DALLAS
        30 SALES          CHICAGO
        40 OPERATIONS     BOSTON

SQL> update dept set loc='beijing' where deptno='40';

已更新 1 行。

SQL> commit;

提交完成。

3、為分析指定日誌檔案
SQL> select * from bonus;

未選定行

SQL> drop table bonus;

表已刪除。

SQL> set time on;
15:30:29 SQL> conn sys/mzl as sysdba
已連線。
15:30:41 SQL> select sequence# from v$log where status='CURRENT';

 SEQUENCE#
----------
         1

15:31:11 SQL> alter system switch logfile;

系統已更改。

15:31:28 SQL> select sequence# from v$log where status='CURRENT';

 SEQUENCE#
----------
         2
4、啟動LogMiner
15:34:14 SQL> select db_name,thread_sqn,filename
15:34:52   2  from v$logmnr_logs;

未選定行
15:35:00 SQL> begin
15:36:20   2       dbms_logmnr.add_logfile(
15:36:33   3        logfilename=>'G:\oracle\product\10.2.0\flash_recovery_area\R
ISENET\ARCHIVELOG\2008_01_31\O1_MF_1_1_3T2YBJH4_.ARC',
15:37:18   4        ptions=>dbms_logmnr.NEW);
15:37:37   5  end;
15:37:40   6  /

PL/SQL 過程已成功完成。

 

15:38:35 SQL> set time off;
SQL> select db_name,thread_sqn,filename from v$logmnr_logs;

DB_NAME  THREAD_SQN
-------- ----------
FILENAME
--------------------------------------------------------------------------------

RISENET           1
G:\oracle\product\10.2.0\flash_recovery_area\RISENET\ARCHIVELOG\2008_01_31\O1_MF

_1_1_3T2YBJH4_.ARC

啟動LogMiner
SQL> execute dbms_logmnr.start_logmnr(-
> dictfilename=>'e:\logminer\dictionary.ora');

PL/SQL 過程已成功完成。


5、分析日誌檔案內容
select sql_redo from v$logmnr_contents;

select sql_redo from v$logmnr_contents where tablespace='DEPT';
6、關閉LogMiner
SQL> create table logmnr_contents as select * from v$logmnr_contents;

表已建立。

SQL> execute dbms_logmnr.end_logmnr;

PL/SQL 過程已成功完成。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12778571/viewspace-325135/,如需轉載,請註明出處,否則將追究法律責任。

相關文章