全面学习和应用ORACLE ASM特性--(4)管理asm磁盘组中目录和文件

全面学习和应用ORACLE ASM特性--(4)管理asm磁盘组中目录和文件

引自:http://space.itpub.net/7607759/viewspace-667328


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的话)

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/276487/viewspace-671215/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/276487/viewspace-671215/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值