全面学习和应用ORACLE ASM特性--(5)管理asm磁盘中的文件_MySQL, Oracle及数据库讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  MySQL, Oracle及数据库讨论区 »
总帖数
1
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 3703 | 回复: 0   主题: 全面学习和应用ORACLE ASM特性--(5)管理asm磁盘中的文件        下一篇 
大红薯
注册用户
等级:少校
经验:1440
发帖:159
精华:0
注册:2011-7-21
状态:离线
发送短消息息给大红薯 加好友    发送短消息息给大红薯 发消息
发表于: IP:您无权察看 2011-8-1 11:10:32 | [全部帖] [楼主帖] 1  楼

3 、管理ASM磁盘中的文件

    ASM 中的磁盘与物理磁盘并非完全一一对应,由于ASM在存储数据时是打散处理,ASM中的(同一个)文件在保存时也并非保存在某个磁盘中,而是完全由ASM自动控制,甚至连创建文件时的文件名,都由ASM通过OMF(Oracle managed files)管理

    接下来,三思跟大家一起聊聊ASM中文件的那些事儿~~~

1 、ASM中支持的文件类型

    大多数的ORACLE文件类型均能被ASM支持,注意,我说的是大多数,而没说全部,像trace文件、alert文件、dmp文件等还不能直接被存储到ASM中,注意,我说的是不能直接,没说不能间接。

    下表列出了ASM直接支持的文件类型:

Control files
Datafiles
Redo log files
Archive log files
Trace files
Temporary files
Datafile backup pieces
Datafile incremental backup pieces
Archive log backup piece
Datafile copy
Persistent initialization parameter file (SPFILE)
Disaster recovery configurations
Flashback logs
Change tracking file
Data Pump dumpset
Automatically generated control file backup
Cross-platform. transportable datafiles


  如果想向ASM中存储任意类型的文件,FTP会是个好方式,yangtingkun的这篇BLOG详细描述了这一方法:http://space.itpub.net/4227/viewspace-448289,通过这一方式,可以将任意文件放入ASM中,而不用考虑是否能够被直接支持,这其实提供了很大的灵活度,ASM不再是个严丝合缝的黑匣子,它也是有缝儿的~~

2、ASM中的文件名

    ASM 创建的文件均由系统自动命名,这种命名方式官方定义为 完全定义文件名 (Fully Qualified Filename) ,这种方式命名的文件包含完整的文件路径,比如像这样的形式:

+ASMDISK2/repdb/TEMPFILE/TEMP.267.714576831


  上述名称是在文件创建时完全由ASM自动生成,事上述名称的生成格式为:

+diskgroup/dbname/file_type/file_type_tag.file.incarnation


    +diskgroup :磁盘组名称;
    dbname :数据库的DB_UNIQUE_NAME参数值;
    file_type :创建的文件类型,比如CONTROLFILE/DATAFILE/ONLINELOG/ARCHIVELOG/TEMPFILE/BACKUPSET/FLASHBACK等等,类型众多此处不一一例举;
    file_type_tag :文件类型的标签,比如表空间对应的通常为该表空间名称;
    file.incarnation :文件序号+incarnation,用来确保文件的唯一;

    实际上,即使DBA在创建时想手动指定这样格式的文件名也是不行的(即使指定了,创建的也只是别名),例如:

SQL> alter tablespace jsstbs add datafile '+ASMDISK2/repdb/datafile/jsstbs.280.722005095' size 100m;
alter tablespace jsstbs add datafile '+ASMDISK2/repdb/datafile/jsstbs.280.722005095' size 100m
*
ERROR at line 1:
ORA-01276: Cannot add file +ASMDISK2/repdb/datafile/jsstbs.280.722005095. File has an Oracle Managed Files file name.


  指定非OMF格式的方式名:

SQL> alter tablespace jsstbs add datafile '+ASMDISK2/repdb/datafile/jsstbs02.dbf' size 100m;
Tablespace altered.


  看起来o了,其实不然,到asmcmd下查看一下实际创建的文件:

ASMCMD> pwd
+ASMDISK2/repdb/datafile
ASMCMD> ls -l jsstbs*
Type Redund Striped Time Sys Name
DATAFILE UNPROT COARSE JUN 18 12:00:00 Y JSSTBS.263.714575967
DATAFILE UNPROT COARSE JUN 18 13:00:00 Y JSSTBS.271.722005397
N jsstbs01.dbf => +ASMDISK2/repdb/datafile/JSSTBS.263.714575967
N jsstbs02.dbf => +ASMDISK2/repdb/datafile/JSSTBS.271.722005397


  由上可以看出,系统虽然创建了名为jsstb02.dbf的文件,但只是别名,实际指向了由系统自动命名的 JSSTBS.271.722005397 。

    即然文件创建时无法指定实际文件名及路径,那么创建语句当然还可以更简化,例如:

SQL> alter tablespace jsstbs add datafile '+ASMDISK2' size 10m;
Tablespace altered.
SQL> select file_name from dba_data_files where tablespace_name='JSSTBS';
FILE_NAME
--------------------------------------------------
+ASMDISK2/repdb/datafile/jsstbs01.dbf
+ASMDISK2/repdb/datafile/jsstbs02.dbf
+ASMDISK2/repdb/datafile/jsstbs.272.722005653


  这样就完全由ORACLE的OMF控制和管理了。

    如果设置了初始化参数db_create_file_dest,甚至连磁盘组名都不需要写了,例如:

SQL> show parameter db_create_file_dest
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_create_file_dest string +ASMDISK2
SQL> alter tablespace jsstbs add datafile size 10m;
Tablespace altered.


   通过上述示例,相信大家对于使用ASM做为存储的数据库,添加数据文件已无疑惑,不过如何添加其它类型文件,比如重做日志文件、归档文件(当然归档文件 本来也就不需要特殊处理,只要LOG_ARCHIVE_DEST_n设置好即可)等还不明了,其实没有那么复杂,操作方式都是同理的。由上述示例可 知,ASM中文件名完全可由其自行管理,因此在创建文件时,只需指定磁盘组路径即可,文件名嘛,就由ASM自己玩吧~~

    对于现有系统想迁入ASM存储,最简单的方式,莫过于使用RMAN了,之前的三思笔记系统文章中对此已有描述,此处不再重复深度,感兴趣的朋友可以翻看之前的三思笔记系统文章,或者浏览官方文档。




赞(0)    操作        顶端 
总帖数
1
每页帖数
101/1页1
返回列表
发新帖子
请输入验证码: 点击刷新验证码
您需要登录后才可以回帖 登录 | 注册
技术讨论