日誌檔案的管理

zhangsharp20發表於2015-01-27

1、增加一個日誌組
SQL> alter database add logfile group 4('/u01/app/oracle/oradata/orcl/disk4/redo01.log') size 100m;

2、給日誌組增加一個成員

SQL> alter database add logfile member '/u01/app/oracle/oradata/orcl/disk4/redo02.log' to group 4;

3、手動切換當前日誌組

SQL> alter system switch logfile; 

System altered.


切換日誌組並不意味著DBWR程式會工作,如果依次切換日誌組均未達到DBWR的工作條件,則有可能除了一個日誌組處於一個CURRENT狀態之外的日誌組都處於ACTIVE狀態,之後再切換日誌組,DBWR就會工作,在LGWR將所有redo buffer cache中的日誌寫入到redo logfiles之後,將資料寫入到datafile,當每一個組個體都寫完日誌到redo logfiles之後,這個組又重新恢復到INACTIVE狀態,僅一個正在用的日誌組處於CURRENT狀態(其中INACTIVEACTIVECURRENT記錄的是DBWR有沒有將資料寫入到datafile中)。


4、刪除當前日誌組成員和日誌組
將當前日誌組切換到非current狀態,否則無法刪除
SQL> alter system switch logfile;
更改checkpoint,使DBWR將該日誌檔案中記錄的內容寫入到datafile中,使該日誌組處於INACTIVE狀態
SQL> alter system checkpoint;
刪除該日誌組其中一個成員
SQL> alter database drop logfile member '/u01/app/oracle/oradata/orcl/disk4/redo01.log';

此成員只是在資料庫中被刪除,檔案仍存在於系統中,需要手動刪除,才能再次新增與此同名的日誌檔案。
刪除日誌組
SQL> alter database drop logfile group 4;
然後用系統命令刪除這些日誌檔案即可
也可以在alter命令最後加上including contents and datafiles;


5、
清空日誌組
青空之前的狀態

清空日誌組
SQL> alter database clear logfile group 4;
清空之後的狀態


6、更改日誌組的路徑
之前的日誌組路徑

1、  首先,將要更改路徑的日誌檔案複製到指定的路徑中。

[oracle@zhang disk4]$ cp /u01/app/oracle/oradata/orcl/disk4/redo01.log /u01/app/oracle/oradata/orcl/disk1/redo04.log

[oracle@zhang disk1]$ cp /u01/app/oracle/oradata/orcl/disk4/redo02.log /u01/app/oracle/oradata/orcl/disk2/redo04.log

2、  sqlplus中進行檔案路徑和名稱的更改

SQL> alter database rename file '/u01/app/oracle/oradata/orcl/disk4/redo01.log' to '/u01/app/oracle/oradata/orcl/disk1/redo04.log';

SQL> alter database rename file '/u01/app/oracle/oradata/orcl/disk4/redo02.log' to '/u01/app/oracle/oradata/orcl/disk2/redo04.log';

更改後的日誌檔案路徑

然後手動刪除原路徑下的日誌檔案


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

相關文章