在运维操作过程中会出现一些失误,针对在使用ASM磁盘管理下,给表空间添加数据文件,添加的数据文件不符合创建规则,因此需要对数据文件进行rename操作,关于使用文件系统的rename操作网上已经有很多,在此不在多讲。
一、首先创建测试的表空间及数据文件。
SQL> create tablespace pandy datafile ' DG_DAT/zxnora/datafile/pandy_dat_01.dbf' size 200m autoextend on next 100m maxsize 200m extent management local;
Tablespace created.
SQL> alter tablespace pandy add datafile ' DG_DAT/zxnora/datafile/pandy_dat_02.db' size 200m autoextend on next 100m maxsize 2000m;
Tablespace altered.
注: DG_DAT/zxnora/datafile/pandy_dat_02.db,此文件名为不符合创建规则,在后期维护中也有其弊端。
二、查看已经创建好的测试数据。
SQL> select file_name,tablespace_name,file_id,online_status from dba_data_files where tablespace_name='PANDY';
FILE_NAME TABLESPACE_NAME FILE_ID ONLINE_ --------------------------------------------- ------------------------------ ---------- ------- DG_DAT/zxnora/datafile/pandy_dat_01.dbf PANDY 6 ONLINE DG_DAT/zxnora/datafile/pandy_dat_02.db PANDY 7 ONLINE
三、在11.2中已经支持在线对数据文件进行重命名,不需要对表空间进行offline,只需要将操作数据文件进行offline即可。
SQL> alter database datafile 7 offline;
Database altered.
SQL> select file_name,tablespace_name,file_id,online_status from dba_data_files where tablespace_name='PANDY';
FILE_NAME TABLESPACE_NAME FILE_ID ONLINE_ --------------------------------------------- ------------------------------ ---------- ------- DG_DAT/zxnora/datafile/pandy_dat_01.dbf PANDY 6 ONLINE DG_DAT/zxnora/datafile/pandy_dat_02.db PANDY 7 RECOVER
四、在ASM磁盘组中提供了mkalias和rmalias两个命令来对ASM创建的single-file文件进行别名操作。能过 ls --absolutepath 来查看已经存在的别名。
ASMCMD> ls --absolutepath DG_DAT/ZXNORA/DATAFILE/pandy_dat_01.dbf => PANDY.309.933774621 DG_DAT/ZXNORA/DATAFILE/pandy_dat_02.db => PANDY.311.933778649 none => SYSAUX.257.933178281 none => SYSTEM.256.933178281 none => UNDOTBS1.258.933178281 none => UNDOTBS2.271.933178505 none => USERS.259.933178281 pandy_dat_01.dbf pandy_dat_02.db
五、在ASMCMD模式下,删除有问题文件别名。
ASMCMD> rmalias alias pandy_dat_02.db ASMCMD-8002: entry 'alias' does not exist in directory ' dg_dat/ZXNORA/datafile/'
ASMCMD> ls -l Type Redund Striped Time Sys Name DATAFILE MIRROR COARSE JAN 20 13:00:00 Y PANDY.309.933774621 DATAFILE MIRROR COARSE JAN 20 15:00:00 Y PANDY.311.933778649 DATAFILE MIRROR COARSE JAN 20 12:00:00 Y SYSAUX.257.933178281 DATAFILE MIRROR COARSE JAN 17 16:00:00 Y SYSTEM.256.933178281 DATAFILE MIRROR COARSE JAN 17 16:00:00 Y UNDOTBS1.258.933178281 DATAFILE MIRROR COARSE JAN 17 16:00:00 Y UNDOTBS2.271.933178505 DATAFILE MIRROR COARSE JAN 17 16:00:00 Y USERS.259.933178281 N pandy_dat_01.dbf => DG_DAT/ZXNORA/DATAFILE/PANDY.309.933774621 六、在ASMCMD模式下,创建文件别名。
ASMCMD> mkalias PANDY.311.933778649 pandy_dat_02.dbf ASMCMD>
ASMCMD> ls --absolutepath DG_DAT/ZXNORA/DATAFILE/pandy_dat_01.dbf => PANDY.309.933774621 DG_DAT/ZXNORA/DATAFILE/pandy_dat_02.dbf => PANDY.311.933778649 none => SYSAUX.257.933178281 none => SYSTEM.256.933178281 none => UNDOTBS1.258.933178281 none => UNDOTBS2.271.933178505 none => USERS.259.933178281 pandy_dat_01.dbf pandy_dat_02.dbf
七:将不规则的single-file文件进行规则rename操作。
SQL> alter database rename file ' DG_DAT/zxnora/datafile/pandy_dat_02.db' to ' DG_DAT/zxnora/datafile/pandy_dat_02.dbf';
Database altered.
八、在变更了数据文件之后需要对操作文件进行recover操作。
SQL> recover datafile 7;
Media recovery complete.
九、将操作文件置为online.
SQL> alter database datafile 7 online;
Database altered.
SQL> select file_name,tablespace_name,file_id,online_status from dba_data_files where tablespace_name='PANDY';
FILE_NAME TABLESPACE_NAME FILE_ID ONLINE_ --------------------------------------------- ------------------------------ ---------- ------- DG_DAT/zxnora/datafile/pandy_dat_01.dbf PANDY 6 ONLINE DG_DAT/zxnora/datafile/pandy_dat_02.dbf PANDY 7 ONLINE
十、删除测试表空间及asm磁盘组的底层文件。 SQL> drop tablespace pandy;
Tablespace dropped.
ASMCMD> ls --absolutepath DG_DAT/ZXNORA/DATAFILE/pandy_dat_01.dbf => PANDY.309.933774621 DG_DAT/ZXNORA/DATAFILE/pandy_dat_02.dbf => PANDY.311.933778649 none => SYSAUX.257.933178281 none => SYSTEM.256.933178281 none => UNDOTBS1.258.933178281 none => UNDOTBS2.271.933178505 none => USERS.259.933178281 pandy_dat_01.dbf pandy_dat_02.dbf
ASMCMD> rm pandy_dat_01.dbf ASMCMD> rm pandy_dat_02.dbf
提示:在对于有业务运行时段需要将业务暂停,在有ogg实时同步时,需要将ogg 暂停。