重命名数据文件
如果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';
Tablespace altered.
SQL> alter tablespace users online;
Tablespace altered.
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';
Database altered.
SQL> alter system set standby_file_management='AUTO' scope=both;
System altered.
H).切换日志--primary 数据库操作
SQL> alter system switch logfile;
系统已更改。