平臺:
# cat /etc/release
Solaris 10 1/06 s10x_u1wos_19a X86
Copyright 2005 Sun Microsystems, Inc. All Rights Reserved.
Use is subject to license terms.
Assembled 07 December 2005
數據庫版本:
SQL> select * from v$version where rownum<2;
BANNER
----------------------------------------------------------------
Oracle Database 10g Enterprise Edition Release 10.2.0.2.0 - Prod
redo日誌的管理
=========================================================
1.添加日誌組成員
原有redo日誌組的信息爲:
SQL> select group#,member,status from v$logfile;
GROUP# MEMBER STATUS
---------- -------------------------------------------- -------
3 /u01/app/oracle/oradata/nice/redo03.log
2 /u01/app/oracle/oradata/nice/redo02.log
1 /u01/app/oracle/oradata/nice/redo01.log
每組添加一個新的成員在不同的硬盤上:
alter database add logfile member '/u03/app/oracle/redo01b.log' to group 1;
alter database add logfile member '/u03/app/oracle/redo02b.log' to group 2;
alter database add logfile member '/u03/app/oracle/redo03b.log' to group 3;
添加後的redo日誌信息:
select group#,member,status from v$logfile;
GROUP# MEMBER STATUS
---------- --------------------------------------------- -------
3 /u01/app/oracle/oradata/nice/redo03.log
2 /u01/app/oracle/oradata/nice/redo02.log
1 /u01/app/oracle/oradata/nice/redo01.log
1 /u03/app/oracle/redo01b.log INVALID
2 /u03/app/oracle/redo02b.log INVALID
3 /u03/app/oracle/redo03b.log INVALID
‘INVALID’表示還沒有使用,切換手動幾次日誌後即爲ACTIVE(空白)狀態了。
============================================================
2.更改redo日誌的名字(也可以更改位置)
將/u01/app/oracle/oradata/nice目錄下的1,2,3組日誌的redo01,redo02,redo03分別更改成redo01a,redo02a,redo03a與新增加的1,2,3組日誌成員想對應;
(1)關閉數據庫,並將日誌文件改名(或者可以移動到新的位置)
shutdown immediate
使用操作系統命令:
cd /u01/app/oracle/oradata/nice
mv redo01.log redo01a.log
mv redo02.log redo02a.log
mv redo03.log redo03a.log
(2)啓動數據庫到mount狀態
startup mount;
(3)對修改過的redo文件重命名
alter database rename file '/u01/app/oracle/oradata/nice/redo01.log' to '/u01/app/oracle/oradata/nice/redo01a.log';
alter database rename file '/u01/app/oracle/oradata/nice/redo02.log' to '/u01/app/oracle/oradata/nice/redo02a.log';
alter database rename file '/u01/app/oracle/oradata/nice/redo03.log' to '/u01/app/oracle/oradata/nice/redo03a.log';
查詢改變後的狀態:
SQL> select group#,member,status from v$logfile;
GROUP# MEMBER STATUS
---------- ---------------------------------------- -------
3 /u01/app/oracle/oradata/nice/redo03a.log
2 /u01/app/oracle/oradata/nice/redo02a.log
1 /u01/app/oracle/oradata/nice/redo01a.log
1 /u03/app/oracle/redo01b.log
2 /u03/app/oracle/redo02b.log
3 /u03/app/oracle/redo03b.log
============================================================
3.增加新的日誌組
SQL> select group#,bytes/1024/1024 as MB from v$log;
GROUP# MB
---------- ----------
1 50
3 50
2 50
增加新的日誌組的文件大小爲50M,與前三組相同。
alter database add logfile group 4 ('/u01/app/oracle/oradata/nice/redo04a.log','/u03/app/oracle/redo04b.log') size 50M;
SQL> select group#,member,status from v$logfile;
GROUP# MEMBER STATUS
---------- ---------------------------------------- -------
3 /u01/app/oracle/oradata/nice/redo03a.log
2 /u01/app/oracle/oradata/nice/redo02a.log
1 /u01/app/oracle/oradata/nice/redo01a.log
1 /u03/app/oracle/redo01b.log
2 /u03/app/oracle/redo02b.log
3 /u03/app/oracle/redo03b.log
4 /u01/app/oracle/oradata/nice/redo04a.log
4 /u03/app/oracle/redo04b.log
============================================================
4.刪除redo日誌組或者成員
需要redo日誌在INACTIVE狀態下才能刪除;
SQL> select group#,archived,status from v$log;
GROUP# ARC STATUS
---------- --- ----------------
1 NO INACTIVE
2 NO INACTIVE
3 NO CURRENT
4 NO INACTIVE
將第4組刪除:
SQL> alter database drop logfile group 4;
Database altered.
SQL> select group#,archived,status from v$log;
GROUP# ARC STATUS
---------- --- ----------------
1 NO INACTIVE
2 NO INACTIVE
3 NO CURRENT
在操作系統中將第4組的文件刪除;
備份數據庫的control file。
alter database backup controlfile '/u02/oradata/nice/hotbak/control.ctl';