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

2.3 mount/unmount 磁盘组


  只有被mount的磁盘组才能被数据库使用并执行add/drop等磁盘操作,ASM中的磁盘组默认会在ASM实例启动时自动加载,当然也可以手动通过命令行语句mount/unmount磁盘组。

  查询ASM实例中创建的磁盘组可以通过V$ASM_DISKGROUP视图查看,例如:

SQL> select group_number,name,state,total_mb,free_mb from v$asm_diskgroup;
GROUP_NUMBER NAME                           STATE         TOTAL_MB    FREE_MB
------------ ------------------------------ ----------- ---------- ----------
1 ASMDISK1                       MOUNTED          20472      18667
2 ASMDISK2                       MOUNTED          16378      14621


  当前两个磁盘组均为MOUNT状态,要将其置为UNMOUNT,执行语句如下,例如将ASMDISK2磁盘组UNMOUNT:

SQL> alter diskgroup asmdisk2 dismount;
Diskgroup altered.
SQL> select group_number,name,state from v$asm_diskgroup;
GROUP_NUMBER NAME                           STATE
------------ ------------------------------ -----------
1 ASMDISK1                       MOUNTED
0 ASMDISK2                       DISMOUNTED


  注意哟,UNMOUNT磁盘组的话务必慎重操作,要确保UNMOUNT的磁盘组中保存的文件对应的数据库当前未启动,而且该操作也会直接导致数据库SHUTDOWN。

  再将其置回MOUNT状态,操作如下:

SQL> alter diskgroup asmdisk2 mount;
Diskgroup altered.
SQL> select group_number,name,state from v$asm_diskgroup;
GROUP_NUMBER NAME                           STATE
------------ ------------------------------ -----------
1 ASMDISK1                       MOUNTED
2 ASMDISK2                       MOUNTED


2.4  管理目录及文件


  ASM 磁盘组中文件和目录的管理自动化水平相当高,应该说基本上完全不需要DBA参与,它自己就能玩的很好,当然,如果你非要动动手,那也是可以的。

2.4.1  管理磁盘组目录


  创建新目录:

SQL> alter diskgroup asmdisk2 add directory '+ASMDISK2/JSS1';
Diskgroup altered.


  修改目录名:

SQL> alter diskgroup asmdisk2 rename directory '+ASMDISK2/JSS1'
2  to '+ASMDISK2/JSS2';
Diskgroup altered.


  删除目录名:

SQL> alter diskgroup asmdisk2 drop directory '+ASMDISK2/JSS2';
Diskgroup altered.


   实际上,ASM中目录和文件的管理,也可以通过ASMCMD命令行方式进行,该命令行进入之后,是一个类似文件系统的管理界面,ORACLE提供了一些 最基础的,如cd、ls、mkdir、rm等等几个有限的操作命令,如果对这部分内容感兴趣,可以参考官方文档中的介绍,或者搭个环境实践操作,可用命令很少且简单,熟悉Linux/Unix的话极易上手。

2.4.2  管理别名(Alias Names)


  别名就是外 号,比如说当系统自动产生的名称太过复杂不怎么好记,DBA可以通过别名,为它创建一个简单化的名称,而又不会对其现有名称造成任何影响。ASM中创建别 名是通过alter diskgroup的alias子句实现,支持增加/修改/删除等多项操作。V$ASM_ALIAS视图中可以查询到当前实例中创建 的别名。

  例如,增加别名:

SQL> alter diskgroup asmdisk2 add alias '+ASMDISK2/repdb/datafile/temp01.dbf' for '+ASMDISK2/repdb/TEMPFILE/TEMP.267.714576831';
Diskgroup altered.


  修改别名:

SQL> alter diskgroup asmdisk2 rename alias '+ASMDISK2/repdb/datafile/temp01.dbf' to '+ASMDISK2/repdb/TEMPFILE/temp01.dbf';
Diskgroup altered.


  删除别名:

SQL> alter diskgroup asmdisk2 drop alias '+ASMDISK2/repdb/TEMPFILE/temp01.dbf';
Diskgroup altered.


  不管是添加/删除或是修改别名,对原有文件路径均不会有影响。

2.4.3  删除磁盘组中文件/别名


  破坏总是最简单的,当然我不是说删除就一定是破坏,不过从严谨的角度讲,删除这样的操作要少做(没说不做),做前得再三确认,三思而行并留有备份,即使做错了,还有恢复的可能。

   当然啦,ASM中遇到删除文件这样需求的机率很低,但也不是完全没有,比如说执行了数据库不完全恢复操作后,某部分数据文件就不再需要,而恢复操作不会处理这部分文件,为合理利用空间,就会需要DBA手动删除这类文件,真遇到这样的需求,表急,语法也是黑简单的呐,例如,删除磁盘组2上的别名 temp01:

SQL> alter diskgroup asmdisk2 drop file '+ASMDISK2/repdb/datafile/temp01.dbf';
Diskgroup altered.


  没错,即能删文件也能删别名,只不过如果删除的是文件的话,其关联的别名(Alias)也会被自动删除。

2.4.4  删除磁盘组


   太简单了,语法:drop diskgroup gpname即可!不演示了!需要注意一点,如果删除的diskgroup非空的话,直接执行上述语句 会报错,这时候可以通过附加including contents子句,来自动删除该磁盘组中包含的文件。删除磁盘组的操作会自动修改spfile中 ASM_DISKGROUPS初始化参数的值(如果使用了SPFILE的话)




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