8.3.4 Renaming a Datafile in the Primary Database 8.3.4 在主库中重命令数据文件(即手动在备库修改相等的变化) When you rename one or more datafiles in the primary database, the change is not propagated to the standby database. Therefore, if y
8.3.4 Renaming a Datafile in the Primary Database
8.3.4 在主库中重命令数据文件(即手动在备库修改相等的变化)
When you rename one or more datafiles in the primary database, the change is not propagated to the standby database. Therefore, if you want to rename the same datafiles on the standby database, you must manually make the equivalent modifications on the standby database because the modifications are not performed automatically, even if the STANDBY_FILE_MANAGEMENT initialization parameter is set to AUTO.
当你在主库中重命名一个或多个数据文件时,备库是不会发生相应的变化的。因此,如果你想在备库重命名相同的数据文件,你必须手动在备库中做相等的修改。因为这些改变不是自动的,甚至STANDBY_FILE_MANAGEMENT设置为AUTO也不会发生改变的。
The following steps describe how to rename a datafile in the primary database and manually propagate the changes to the standby database.
按照以下描述来在主库重命名数据文件,而手动将这些改变传播到备库中去。
To rename the datafile in the primary database, take the tablespace offline:
1.在主库中重命名数据文件,先将表空间脱机:
SQL> ALTER TABLESPACE tbs_4 OFFLINE;
Exit from the SQL prompt and issue an operating system command, such as the following UNIX mv command, to rename the datafile on the primary system:
退出SQL提示符,使用操作系统命令,像unix的mv命令,在主库操作系统上重命名数据文件:
% mv /disk1/oracle/oradata/payroll/tbs_4.dbf /disk1/oracle/oradata/payroll/tbs_x.dbf
Rename the datafile in the primary database and bring the tablespace back online:
在主库上发出以下命令来重命名数据文件,然后将表空间联机:
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;
Connect to the standby database, query the V$ARCHIVED_LOG view to verify all of the archived redo log files are applied, and then stop Redo Apply:
连接备库,查询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;
Shut down the standby database:
5.关闭备库
SQL> SHUTDOWN;
Rename the datafile at the standby site using an operating system command, such as the UNIX mv command:
6.在备库的操作环境使用操作系统命令,如UNIX的mv命令,来重命名数据文件:
% mv /disk1/oracle/oradata/payroll/tbs_4.dbf /disk1/oracle/oradata/payroll/tbs_x.dbf
Start and mount the standby database:
7.启动并装载备库:
SQL> STARTUP MOUNT;
Rename the datafile in the standby control file. Note that the STANDBY_FILE_MANAGEMENT initialization parameter must be set to MANUAL.
在备库上重命名数据文件到控制文件里,注意: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';
On the standby database, restart Redo Apply:
9.在备库重新启动重做应用:
SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE 2> DISCONNECT FROM SESSION;
If you do not rename the corresponding datafile at the standby system, and then try to refresh the standby database control file, the standby database will attempt to use the renamed datafile, but it will not find it. Consequently, you will see error messages similar to the following in the alert log:
如果你没有在备库重命名相应的数据文件,,那么试着刷新备库控制文件时,备库会尝试使用已命名的数据文件,但是找不到它。因此,你会在告警日志看到如下相似的错误信息:
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'