8.3.4 Renaming a Datafile in the Primary Database
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 YES9 YES10 YES11 YES4 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 toMANUAL
.在备库上重命名数据文件到控制文件里,注意: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 DATABASE2> 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:
如果你没有在备库重命名相应的数据文件,那么试着刷新备库控制文件时,备库会尝试使用已命名的数据文件,但是找不到它。因此,你会在告警日志看到如下相似的错误信息: