ASM时的OFM特性对影的建数据文件名的影响及为SYSTEM表空间的数据文件使用别名(一)

2014-11-24 11:44:30 · 作者: · 浏览: 3
客户遇到个DG的问题,存储使用的ASM管理,有多个磁盘盘。
在主库创建数据文件,备库自动创建的数据文件都在同一磁盘组,并且在主库创建数据文件是指定的是类似**.DBF的名字,到备库也变成了使用ASM的数字格式**.266.123456
这是因为使用了OMF特性。
OMF,全称是Oracle_Managed Files,即Oracle文件管理。
使用OMF可以简化管理员的管理工作,不用指定文件的名字、大小、路径,其名字,大小,路径由oracle 自动分配。在删除不再使用的日志、数据、控制文件时,OMF也可以自动删除其对应的OS文件。

Oracle 数据库是否启用OMF特性可以通过查看DB_CREATE_FILE_DEST参数来获得。
当DB_CREATE_FILE_DEST参数值为空时表示未启用OMF功能,设置为目录名则是开启OMF。
实验数据库版本:11.2.0.4.0,

一、启用OMF时的数据文件创建情况

1.主库在指定磁盘组创建数据文件,备库会在DB_CREATE_FILE_DEST=+DG1指定的磁盘组创建

备库参数
SQL> show parameter standby_file
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
standby_file_management string AUTO
SQL> show parameter DB_CREATE_FILE_DEST
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_create_file_dest string +DG1
SQL> col name for a50
SQL> set linesize 1000
SQL> select * from v$dbfile;
FILE# NAME
---------- --------------------------------------------------
1 +DG1/dg2/datafile/system.258.852146097
2 +DG1/dg2/datafile/sysaux.257.852146099
3 +DG1/dg2/datafile/undotbs1.256.852146101
4 +DG1/dg2/datafile/users.259.852146107
5 +DG2/dg/datafile/test1.dbf

主库创建在DG2磁盘组创建表空间:
SQL> col name for a50
SQL> set linesize 1000
SQL> select * from v$dbfile;
FILE# NAME
---------- --------------------------------------------------
1 +DG1/dg/datafile/system.260.852134271
2 +DG1/dg/datafile/sysaux.261.852134303
3 +DG1/dg/datafile/undotbs1.262.852134329
4 +DG1/dg/datafile/users.264.852134361
5 +DG2/dg/datafile/test1.dbf
SQL> create tablespace test2 datafile '+DG2/dg/datafile/test2.dbf' size 10m;
Tablespace created.
SQL> alter system switch logfile;
System altered.
在备份库上查询表空间及数据文件创建情况:在DB_CREATE_FILE_DEST指定的磁盘组+DG1中创建
SQL> select * from v$dbfile;
FILE# NAME
---------- --------------------------------------------------
1 +DG1/dg2/datafile/system.258.852146097
2 +DG1/dg2/datafile/sysaux.257.852146099
3 +DG1/dg2/datafile/undotbs1.256.852146101
4 +DG1/dg2/datafile/users.259.852146107
5 +DG2/dg/datafile/test1.dbf
6 +DG1/dg2/datafile/test2.272.852147911

修改备库DB_CREATE_FILE_DEST参数为+DG2:
SQL> SQL> show parameter DB_CREATE_FILE_DEST

NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_create_file_dest string +DG2

在主库创建表空间:
SQL> create tablespace test3 datafile '+DG1/dg/datafile/test3.dbf' size 10m;
Tablespace created.
SQL> alter system switch logfile;
System altered.
在备库查询:
SQL> select * from v$dbfile;
FILE# NAME
---------- --------------------------------------------------
1 +DG1/dg2/datafile/system.258.852146097
2 +DG1/dg2/datafile/sysaux.257.852146099
3 +DG1/dg2/datafile/undotbs1.256.852146101
4 +DG1/dg2/datafile/users.259.852146107
5 +DG2/dg/datafile/test1.dbf
6 +DG1/dg2/datafile/test2.272.852147911
7 +DG2/dg2/datafile/test3.260.852148535

二、关闭OMF特性

修改备库DB_CREATE_FILE_DEST参数为空,关闭OMF特性。--我这里只关闭了备库的
SQL> show parameter DB_CREATE_FILE_DEST
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_create_file_dest string +DG2
SQL> alter system set DB_CREATE_FILE_DEST='';
System altered.
SQL> show parameter DB_CREATE_FILE_DEST

NAME TYPE VALUE
--