Data Guard主库重命名数据文件

 在主库中重命令数据文件(即手动在备库修改相等的变化)

当你在主库中重命名一个或多个数据文件时,备库是不会发生相应的变化的。因此,如果你想在备库重命名相同的数据文件,你必须手动在备库中做相等的修改。因为这些改变不是自动的,甚至STANDBY_FILE_MANAGEMENT设置为AUTO也不会发生改变的。

按照以下描述来在主库重命名数据文件,而手动将这些改变传播到备库中去。

     1.在主库中重命名数据文件,先将表空间脱机:
SQL> ALTER TABLESPACE tbs_4 OFFLINE; 

  1. 退出SQL提示符,使用操作系统命令,像unix的mv命令,在主库操作系统上重命名数据文件:


% mv /disk1/oracle/oradata/payroll/tbs_4.dbf

/disk1/oracle/oradata/payroll/tbs_x.dbf

  1. 在主库上发出以下命令来重命名数据文件,然后将表空间联机:

SQL> ALTER TABLESPACE tbs_4 RENAME DATAFILE      2> '/disk1/oracle/oradata/payroll/tbs_4.dbf'

  3>  TO '/disk1/oracle/oradata/payroll/tbs_x.dbf';

SQL> ALTER TABLESPACE tbs_4 ONLINE;

  1. 连接备库,查询V$ARCHIVED_LOG 视图来验证所有的归档日志已经应用,然后停止重做应用:

SQL> SELECT SEQUENCE#,APPLIED FROM V$ARCHIVED_LOG ORDER BY SEQUENCE#;

SEQUENCE# APP

--------- ---

8 YES

9 YES

10 YES

11 YES

4 rows selected. 


SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;
5.关闭备库


SQL> SHUTDOWN;

6.在备库的操作环境使用操作系统命令,如UNIX的mv命令,来重命名数据文件:

% mv /disk1/oracle/oradata/payroll/tbs_4.dbf /disk1/oracle/oradata/payroll/tbs_x.dbf

7.启动并装载备库:

SQL> STARTUP MOUNT;
8.在备库上重命名数据文件到控制文件里,注意:STANDBY_FILE_MANAGEMENT初始化参数必须设置为MANUAL


SQL> ALTER DATABASE RENAME FILE '/disk1/oracle/oradata/payroll/tbs_4.dbf'

  2> TO '/disk1/oracle/oradata/payroll/tbs_x.dbf';

9.在备库重新启动重做应用:

SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE

  2> DISCONNECT FROM SESSION;

如果你没有在备库重命名相应的数据文件,那么试着刷新备库控制文件时,备库会尝试使用已命名的数据文件,但是找不到它。因此,你会在告警日志看到如下相似的错误信息:

ORA-00283: recovery session canceled due to errors

ORA-01157: cannot identify/lock datafile 4 - see DBWR trace file

ORA-01110: datafile 4: '/Disk1/oracle/oradata/payroll/tbs_x.dbf'


 

请使用浏览器的分享功能分享到微信等