詳細的日誌文件的管理不可不看

 日誌文件管理sql

在上大學期間王強老師的課程中的整理以及修改,對日誌文件的管理講解很詳細,數據庫

1、增長日誌組服務器

實例1:爲oracle數據庫增長一個重作日誌組,組號自動分配,組中包含兩個日誌成員,大小爲 10M ,並查詢動態性能視圖肯定可否成功。操做步驟以下:oracle

1. 以系統管理員身份登入:ide

       sqlplusw   sys/jlfx  as  sysdba性能

       spa

sqlplusw  sys/wangwang as sysdba線程

 

2. 增長日誌組:日誌

       alter database jlfx add logfile ('d:\log\log 4a .log','d:\log\log4b.log') size 10M ;orm

alter database dog  add logfile ('d:\log\log 4a .log','d:\log\log4b.log') size 10M ;

 

3. 查詢日誌信息(包括組號,成員數,成員,每一個成員的大小)

      

SQL> col member format a50

SQL> select a.group#,a.members,a.bytes,b.member from v$log a, v$logfile b where a.group#=b.group#;

 

GROUP#    MEMBERS      BYTES                          MEMBER

------- ---------- ---------- ------------------------  ----------------------------------------------------------------------------------

3          1       10485760       D:\ORACLE\PRODUCT\ 10.2.0 \ORADATA\DOG\REDO03.LOG

    2          1       10485760       D:\ORACLE\PRODUCT\ 10.2.0 \ORADATA\DOG\REDO02.LOG

1          1       10485760       D:\ORACLE\PRODUCT\ 10.2.0 \ORADATA\DOG\REDO01.LOG 

SQL> select group#,member from v$logfile;

GROUP#           MEMBER

------      -------------------------------------------------------------------------------------

     3    D:\ORACLE\PRODUCT\ 10.2.0 \ORADATA\DOG\REDO03.LOG

     2    D:\ORACLE\PRODUCT\ 10.2.0 \ORADATA\DOG\REDO02.LOG

     1    D:\ORACLE\PRODUCT\ 10.2.0 \ORADATA\DOG\REDO01.LOG

 

SQL> select group#,members,bytes from v$log;

 

    GROUP#    MEMBERS      BYTES

--------------------  ---------- ---------- ---------- ----------

         1          1          10485760

         2          1          10485760

         3          1          10485760

 


實例2:爲oracle數據庫再增長一個重作日誌組,指定組號,組中包含兩個日誌成員,大小爲 10M ,並查詢動態性能視圖肯定可否成功操做步驟以下:

1. 以系統管理員身份登入:

       sqlplusw   sys/jlfx  as  sysdba

 

2. 增長日誌組:

       SQL> alter database jlfx add logfile group 5 ('d:\log\log 5a .log','d:\log5b.log') size 10M ;

       SQL> alter database dog add logfile group 5 ('d:\log\log 5a .log','d:\log5b.log') size 10M ;

 

3. 查詢日誌信息:

       SQL> col member format a50

       SQL> select a.group#,a.status,a.members,a.bytes,b.member from v$log a,v$logfile b where a.group#=b.group# order by a.group#;

SQL> select group#,member from v$logfile;

SQL> select group#,members,bytes from v$log;

 

2、增長日誌成員

實例3:爲oracle服務器的第4個重作日誌組增長一個日誌成員"log 4c .lg".

操做步驟以下:

1. 以系統管理員身份登入:

       sqlplusw   sys/jlfx  as  sysdba

 

2. 增長日誌成員:

       SQL> alter database  jlfx add logfile member 'd:\log\log 4c .log' to group 4;

SQL> alter database  dog add logfile member 'd:\log\log 4c .log' to group 4;

3. 查詢日誌信息:

       SQL> col member format a50

       SQL> select a.group#,a.status,a.members,a.bytes,b.member from v$log a,v$logfile b where a.group#=b.group#;

       SQL> select group#,member from v$logfile;(顯示用戶數據庫日誌組和成員)

       SQL> select group#,members,bytes from v$log;

 

練習:爲每一個日誌組添加一個日誌成員。

 


3、刪除日誌組(注意:current/active狀態下或只有兩個日誌組都不能刪除該日誌組)

實例4:刪除日誌組4

操做步驟以下:

1. 以系統管理員身份登入:

       sqlplusw   sys/jlfx  as  sysdba

 

2. 查看日誌組的狀態(只有INACTIVEUNUSED狀態的可刪除)

       SQL> select group#,status,members,bytes  from v$log;

 

3. 刪除日誌組4(下面的命令只是邏輯刪除,要物理刪除得用os命令)

       SQL> alter database jlfx drop logfile group 4;

       SQL> alter database dog drop logfile group 4;

       此時不能再往日誌組4中添加成員,如:

       alter database  dog add logfile member 'd:\log\log4d.log' to group 4;

       出現錯誤信息:

       1 行出現錯誤:

       ORA-00359: 日誌文件組 4 不存在

 

若是2號日誌組是當前日誌組,執行刪除2號日誌組的操做,則會出現錯誤。

SQL> alter database dog drop logfile group 2;

錯誤提示信息以下:

alter database dog drop logfile group 2

*

1 行出現錯誤:

ORA-01623: 日誌 2 是實例 dog (線程 1) 的當前日誌 - 沒法刪除

ORA-00312: 聯機日誌 2 線程 1: 'D:\ORACLE\PRODUCT\ 10.2.0 \ORADATA\DOG\REDO02.LOG'

 

4. 查詢日誌信息:

       SQL> col member format a50

       SQL> select a.group#,a.status,a.members,a.bytes,b.member from v$log a,v$logfile b where a.group#=b.group#;

       SQL> select group#,member from v$logfile;

       SQL> select group#,members,bytes from v$log;

 

 


4、刪除日誌成員(注意:current狀態下或日誌組中只有一個日誌成員時不能刪除)

實例5:刪除日誌組5中的第2個日誌組成員

操做步驟以下:

1. 以系統管理員身份登入:

       sqlplusw   sys/jlfx  as  sysdba

 

2. 查看日誌組的狀態

       SQL> select group#,status,members,bytes  from v$log;

 

3. 刪除日誌組4中的第23個日誌組成員

       SQL> alter database dog drop logfile member 'd:\log\log4b.log', 'd:\log\log 4c .log';

      

4. 查詢日誌信息:

       SQL> col member format a50

       SQL> select a.group#,a.status,a.members,a.bytes,b.member from v$log a,v$logfile b where a.group#=b.group#;

       SQL> select group#,member from v$logfile;

       SQL> select group#,members,bytes,status from v$log;

 

   注意:日誌組中只有一個日誌成員時不能刪除,如:

       SQL> alter database dog drop logfile member 'd:\log\log 4a .log';

   此時,出現以下信息:

       1 行出現錯誤:

       ORA-00361: 沒法刪除最後一個日誌成員 d:\log\log 4a .log ( 4)

 


5、清空重作日誌

實例6:清空重作日誌組4

操做步驟以下:

1. 以系統管理員身份登入:

       sqlplusw   sys/jlfx  as  sysdba

2. 關閉數據庫

       SQL> shutdown immediate

刪除4號日誌組的全部成員,再啓動則出現錯誤:

3. 啓動數據庫

SQL> startup

ORACLE 例程已經啓動。

       錯誤提示信息以下:

Total System Global Area  285212672 bytes

Fixed Size                  1248552 bytes

Variable Size              71303896 bytes

Database Buffers          205520896 bytes

Redo Buffers                7139328 bytes

數據庫裝載完畢。

ORA-00313: 沒法打開日誌組 4 (用於線程 1) 的成員

ORA-00312: 聯機日誌 4 線程 1: 'D:\LOG\LOG 4A .LOG'

ORA-00312: 聯機日誌 4 線程 1: 'D:\LOG\LOG 4C .LOG'

ORA-00312: 聯機日誌 4 線程 1: 'D:\LOG\LOG4B.LOG'

 

查看數據庫的啓動狀態:

SQL> select status from v$instance;

直接啓動數據庫到加載狀態(特別注意)

       SQL> startup  mount

4. 清空重作日誌組4,恢復該日誌組的成員

       SQL> alter database  clear logfile  group 4;

 

5. 查詢日誌信息:

       SQL> col member format a50

       SQL> select a.group#,a.status,a.members,a.bytes,b.member from v$log a,v$logfile b where a.group#=b.group#;

SQL> select a.group#,a.status,a.members from v$log a,v$logfile b where a.group#=b.group#;

6.改變日誌的模式

SQL> alter system switch logfile;

 

6、移動日誌文件

實例7:移動日誌文件,觀察日誌文件丟失時的現象,並從新定位。

操做步驟以下:

1. 以系統管理員身份登入:

       sqlplusw   sys/jlfx  as  sysdba

2. 關閉數據庫

       shutdown

3. 物理移動日誌成員到目標位置

       將文件d:\oracle\product\ 10.2.0 \oradata\jlfx\REDO03.log 移動到 d:\REDO03.log;

4. 打開數據庫

       startup;

5. 執行rename命令,從新定位日誌文件

       alter  database  jlfx  rename  file 'd:\oracle\product\ 10.2.0 \oradata\jlfx\REDO03.log' to 'd:\REDO03.log';

alter  database  dog  rename  file 'd:\log\log4b.log' to 'd:\log4b.log';

 

6. 打開數據庫

       alter database open;

7. 查詢日誌信息:

       col member format a50

       select a.group#,a.status,a.members,a.bytes,b.member from v$log a,v$logfile b where a.group#=b.group#;

 

7、手工日誌切換

實例8:強制切換日誌,顯示日誌狀態

操做步驟以下:

1. 以系統管理員身份登入:

       sqlplusw   sys/jlfx  as  sysdba

2. 查看日誌組的狀態

       select group#,sequence#,members,status from v$log;

3. 手工日誌切換( open狀態下操做)

       alter system switch logfile;

4. 查看日誌組及成員的狀態

       select group#,sequence#,members,status from v$log;

 

8、日誌歸檔(歸檔模式:archivelog,非歸檔模式:noarchivelog)

注意:數據庫只有在加載狀態下才能修改日誌模式

實例9:查看數據庫的日誌操做模式,而後將數據庫修改成歸檔模式

操做步驟以下:

1. 以系統管理員身份登入:

       sqlplusw   sys/jlfx  as  sysdba

2. 關閉數據庫,而後加載數據庫

       shutdown immediate

       startup mount

3. 查看歸檔模式

       archive log list;

     select  name,log_mode  from  v$database;

4. 修改歸檔模式

       alter database archivelog(開啓數據庫的歸檔模式)

       alter database noarchivelog(關閉數據庫的歸檔模式)

相關文章
相關標籤/搜索