重命名数据文件

wKiom1OyMY7z-nEyAAE92WXpU8o744.jpg

如果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;


系统已更改。