dataguard standby備庫磁碟空間滿(ZT)

lwitpub發表於2009-09-16

在standby備庫上df -h時發現根目錄/ 空間已用100%,主要兩個大的資料檔案rsm_idx80.dbf和 rsm_idx81.dbf ,解決過程如下:

1.先檢視一下alert.log

2.先停止恢復
alter database recover managed standby database cancel ;

3.把需要轉用的目錄加進去
alter system set db_file_name_convert='xxx,xxx' scope=both;

4.關閉
shtudown immediate;

5.移動資料檔案到其他目錄,比如/home下
mv rsm_idx80.dbf /home
mv rsm_idx81.dbf /home

6.啟動資料庫到mount
alter system set  standby_file_management='MANUAL' SCOPE=BOTH;
alter database rename file '/jbindx02/oraindx/indx/rsm_idx80.dbf' to '/dgjbdata/indx/rsm_idx80.dbf' ;
---成功

alter database rename file '/jbindx02/oraindx/indx/rsm_idx80.dbf' to '/dgjbdata/indx/rsm_idx80.dbf' ;

---失敗(錯誤資訊如下)

ORA-01111: name for data file 546 is unknown - rename to correct file
ORA-01110: data file 546: '/u01/oracle/product/10.2.0.3/dbs/UNNAMED00546'
ORA-01157: cannot identify/lock data file 546 - see DBWR trace file
ORA-01111: name for data file 546 is unknown - rename to correct file
ORA-01110: data file 546: '/u01/oracle/product/10.2.0.3/dbs/UNNAMED00546'

其實從上面看這個檔案的大小和alert.log中的資訊,已經知道了,這個檔案沒有建立成功。

7.對這個損壞的檔案進行恢復

SQL> select name from v$datafile where file# = 546;

NAME
--------------------------------------------------------------------------------
/u01/oracle/product/10.2.0.3/dbs/UNNAMED00546
SQL> alter database create datafile '/u01/oracle/product/10.2.0.3/dbs/UNNAMED00546' as '/dgjbdata/indx/rsm_idx81.dbf';

Database altered.

SQL> select name from v$datafile where file# = 546;

NAME
--------------------------------------------------------------------------------
/dgjbdata/indx/rsm_idx81.dbf

-------過來了^_^

SQL>  alter system set standby_file_management=AUTO scope=both;

SQL> alter database create datafile '/u01/oracle/product/10.2.0.3/dbs/UNNAMED00546' as '/dgjbdata/indx/rsm_idx81.dbf';

Database altered.

8.切換到恢復狀態下

ALTER DATABASE RECOVER  managed standby database disconnect from session

9.完工了,over

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

相關文章