重命名資料檔案
如果primary 資料庫重指令了一個或多個資料檔案,該項修改并不會自動傳播到standby 資料庫。
如果你想讓standby 和資料檔案與primary 保持一緻,那你也隻能自己手工操作了。就算standby_file_management 也幫不上忙啦,不管它是auto 還是manual。
下面通過示例做個示範:
a).将重命名的資料檔案所在表空間offline --primary 資料庫操作
sql> alter tablespace users offline;
tablespace altered.
b).手工将資料檔案改名(作業系統) --primary 資料庫操作
c).通過指令修改資料字典中的資料檔案路徑,并online 表空間--primary 資料庫操作
sql> alter tablespace users rename datafile '/u01/app/oracle/oradata/jytest/users01.dbf' to '/u01/app/oracle/oradata/jytest/myusers01.dbf';
sql> alter tablespace users online;
sql>
d).暫停redo 應用,并shutdown --standby 資料庫操作
sql> alter database recover managed standby database cancel;
database altered.
sql> shutdown immediate;
ora-01507: database not mounted
e).手工将資料檔案改名(作業系統) --standby 資料庫操作
f).重新開機standby,修改資料檔案路徑(資料字典) --standby 資料庫操作
sql> startup mount;
oracle instance started.
total system global area 6442450944 bytes
fixed size 2030368 bytes
variable size 1090520288 bytes
database buffers 5335154688 bytes
redo buffers 14745600 bytes
database mounted.
sql> alter database rename file
2 '/u01/app/oracle/oradata/jytest/users01.dbf' to
3 '/u01/app/oracle/oradata/jytest/myusers01.dbf';
表空間已更改
g).重新啟動redo 應用。
sql> alter system set standby_file_management='manual' scope=both;
system altered.
sql> alter database rename file '/u01/app/oracle/oradata/jytest/users01.dbf' to '/u01/app/oracle/oradata/jytest/myusers01.dbf';
sql> alter system set standby_file_management='auto' scope=both;
h).切換日志--primary 資料庫操作
sql> alter system switch logfile;
系統已更改。