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

客户遇到个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

------------------------------------ ----------- ------------------------------

db_create_file_dest                  string

主库做操作:

SQL> create tablespace test4 datafile ‘+DG1/dg/datafile/test4.dbf‘ size 10m;

Tablespace created.

SQL> create tablespace test5 datafile ‘+DG2/dg/datafile/test5.dbf‘ size 10m;

Tablespace created.

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

6 +DG2/dg/datafile/test2.dbf

7 +DG1/dg/datafile/test4.dbf

8 +DG2/dg/datafile/test5.dbf

备库做查询:

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 +DG1/dg/datafile/test4.dbf

8 +DG2/dg/datafile/test5.dbf

三、观察下ASM磁盘组中对于数据文件别名的存储形式

ASMCMD> ls -al

WARNING:option ‘a‘ is deprecated for ‘ls‘

please use ‘absolutepath‘

Type      Redund  Striped  Time             Sys  Name

DATAFILE  UNPROT  COARSE   JUL 05 22:00:00  Y    none => SYSAUX.257.852146099

DATAFILE  UNPROT  COARSE   JUL 05 22:00:00  Y    none => SYSTEM.258.852146097

DATAFILE  UNPROT  COARSE   JUL 05 22:00:00  Y    none => TEST2.272.852147911

DATAFILE  UNPROT  COARSE   JUL 05 22:00:00  Y    +DG1/dg/datafile/test4.dbf => TEST4.279.852157365

DATAFILE  UNPROT  COARSE   JUL 05 22:00:00  Y    none => UNDOTBS1.256.852146101

DATAFILE  UNPROT  COARSE   JUL 05 22:00:00  Y    none => USERS.259.852146107

ASMCMD> ls -al

WARNING:option ‘a‘ is deprecated for ‘ls‘

please use ‘absolutepath‘

Type      Redund  Striped  Time             Sys  Name

DATAFILE  UNPROT  COARSE   JUL 05 22:00:00  Y    +DG2/dg/datafile/test1.dbf => TEST1.256.852146103

DATAFILE  UNPROT  COARSE   JUL 05 22:00:00  Y    +DG2/dg/datafile/test5.dbf => TEST5.260.852157413

四、为ASM中SYSTEM表空间使用别名

比方上面创建的表空间test4其相应的数据文件TEST4.DBF是一个别名,真实的数据文件与别名的相应是:+DG1/dg/datafile/test4.dbf => TEST4.279.852157365

,然而(system,undotbs,sysaux,users)相应的都是真实的数据文件,没有别名,这时假设要对这些表空间使用别名,就须要重建控制文件。示比例如以下:

alter diskgroup dg1 add alias ‘+DG1/dg2/datafile/SYSTEM1.DBF‘ FOR ‘+DG1/dg2/datafile/system.258.852146097‘;

此时ASMCMD中查看:

ASMCMD> ls -al

WARNING:option ‘a‘ is deprecated for ‘ls‘

please use ‘absolutepath‘

Type      Redund  Striped  Time             Sys  Name

DATAFILE  UNPROT  COARSE   JUL 05 23:00:00  Y    none => SYSAUX.257.852146099

DATAFILE  UNPROT  COARSE   JUL 05 23:00:00  Y    +DG1/DG2/DATAFILE/SYSTEM1.DBF => SYSTEM.258.852146097

N    SYSTEM1.DBF => +DG1/DG2/DATAFILE/SYSTEM.258.852146097

SQL> startup nomount;

ORACLE instance started.

Total System Global Area  418484224 bytes

Fixed Size                  1365040 bytes

Variable Size             255855568 bytes

Database Buffers          155189248 bytes

Redo Buffers                6074368 bytes

SQL> CREATE CONTROLFILE REUSE DATABASE "DG" RESETLOGS FORCE LOGGING ARCHIVELOG …………

重建控制文件完毕后数据库是MOUNT状态,此时查询:

SQL> select * from v$dbfile;

FILE# NAME

---------- --------------------------------------------------

8 +DG2/dg/datafile/test5.dbf

7 +DG1/dg/datafile/test4.dbf

6 +DG1/dg2/datafile/test2.272.852147911

5 +DG2/dg/datafile/test1.dbf

4 +DG1/dg2/datafile/users.259.852146107

3 +DG1/dg2/datafile/undotbs1.256.852146101

2 +DG1/dg2/datafile/sysaux.257.852146099

1 +DG1/dg2/datafile/system1.dbf

时间: 2024-10-22 02:12:57

ASM时的OFM特性对影的建数据文件名称的影响及为SYSTEM表空间的数据文件使用别名的相关文章

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

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

Mysql数据库四大特性、事物的四个隔离、基本MySQL语句、独立表空间

Mysql数据库四大特性.事物的四个隔离.基本MySQL语句.独立表空间 本人学习mysql的时候感觉笔记有点散所以自己做了一个整合,而且有些概念介绍的太官方了,所以自己根据理解总结了一下.(有不对的请指点!) mysql: sql:关系型数据库:(复杂的关系形数据库). nosql:非关系型数据库:(储存的格式很简单) key,value(memcached),user1:1,user2:2(存在内存里) 事务:一组原子性的SQL查询,或者是一个或多个sql语句组成的独立工作单元:操作要么都执

【TTS】传输表空间AIX asm -> linux asm

[TTS]传输表空间AIX asm -> linux asm 一.1  BLOG文档结构图       一.2  前言部分   一.2.1  导读和注意事项 各位技术爱好者,看完本文后,你可以掌握如下的技能,也可以学到一些其它你所不知道的知识,~O(∩_∩)O~: ① 异构平台下传输表空间的实施 ② 传输表空间基于表空间的read only和rman2种方式 ③ 平台字节序.自包含概念 ④ expdp/impdp的应用     Tips:        ① 若文章代码格式有错乱,推荐使用搜狗或3

【TTS】传输表空间Linux asm -> AIX asm

[TTS]传输表空间Linux asm -> AIX asm 一.1  BLOG文档结构图       一.2  前言部分   一.2.1  导读和注意事项 各位技术爱好者,看完本文后,你可以掌握如下的技能,也可以学到一些其它你所不知道的知识,~O(∩_∩)O~: ① 异构平台下传输表空间的实施 ② 传输表空间基于表空间的read only和rman2种方式 ③ 平台字节序.自包含概念 ④ expdp/impdp的应用     Tips:        ① 若文章代码格式有错乱,推荐使用QQ或3

表空间正在热备份时关闭实例重启报错的重现和解决

最近一个客户的库在OPEN时报错需要恢复,发现原因为当时一个表空间正在热备份-->ALTER TABLESPACE TEST1 BEGIN BACKUP;  然后实例异常关闭(可能为ABORT或KILL SMON等进程,这里据说为存储直接关闭导致),然后重启时遇到此错误. 在ORACLE 10.2.0.1及11.2.0.4版本中重现了此错误,在这两个版本中同样的情况但是报错信息不太一样,具体情况如下: 10.2.0.1.0 版本表空间正在热备份时关闭实例重启报错的重现和解决: SQL> sel

Oracle11g 新特性:优化Rman备份UNDO表空间

Oracle11gR1的新特性,Rman备份UNDO表空间时排除已经提交的会话对应的数据,提高了Rman备份的效率. 官方文档:http://docs.oracle.com/cd/B28359_01/server.111/b28279/chapter1.htm#AREANO02323 我们知道,UNDO表空间主要用于存储前镜像数据,这些数据在回滚以及恢复过程中可能被用到.但是一个生产数据库的UNDO表空间可能会变得非常巨大,而备份完整的UNDO数据文件在恢复时一般可能用到的比例很小. 测试一下:

【翻译自mos文章】在alter/drop表空间时遇到错误ORA-38301,ORA-00604,purge dba_recyclebin 也不行

在alter/drop表空间时遇到错误ORA-38301,ORA-00604,purge dba_recyclebin 也不行 适用于: Oracle Database - Enterprise Edition - Version 10.2.0.1 and later Information in this document applies to any platform. 症状: 当你试图drop一个empty的tablespace时,遇到与recyclebin相关的错误 SQL> drop

MySQL5.7新特性——在线收缩undo表空间

1. MySQL 5.5时代的undo log 在MySQL5.5以及之前,大家会发现随着数据库上线时间越来越长,ibdata1文件(即InnoDB的共享表空间,或者系统表空间)会越来越大,这会造成2个比较明显的问题: (1)磁盘剩余空间越来越小,到后期往往要加磁盘: (2)物理备份时间越来越长,备份文件也越来越大. 这是怎么回事呢? 原因除了数据量自然增长之外,在MySQL5.5以及之前,InnoDB的undo log也是存放在ibdata1里面的.一旦出现大事务,这个大事务所使用的undo

SQL多个主键的表,插入数据有重复时,查询数据的重复值?

SQL多个主键的表,插入数据有重复时,会提示违反主键约束不能插入的错误.那么,如何找到插入数据的重复值? 解决方法:使用group by 假设有个表#a,有saleid,vendorid,comid,price,saleprice,quantity等字段. 主键是:saleid,vendorid,comid三个.假设插入#a的数据源可能会有重复的. 即:saleid,vendorid,comid三个字段都一样的字段,那么插入#a的时候会报主键冲突,违反主键约束. 如果想找出#a表中插入重复的值可