技术开发 频道

Oracle 11g R1中ASM增强

  新的ASMCMD命令和选项

  ASM命令行实用程序包括了多个新的命令,下面的示例输出假设你已经以-p选项启动了实用程序:

$ asmcmd -p

  ASMCMD
[+] >

  在asmcmd中输入help <命令>可以查看每个命令的用法。

  lsdsk命令从V$ASM_DISK_STAT and V$ASM_DISK视图查询出所有ASM磁盘的信息,简要用法如下所示: 

lsdsk [-ksptcgHI] [-d ] [pattern]

  下面是不加-k选项和加上-k选项后的输出结果示例:

ASMCMD [+] > lsdsk

  Path

  
/dev/sdc1

  
/dev/sdd1

  
/dev/sde1

  ASMCMD
[+] > lsdsk -d data -k

  Total_MB Free_MB OS_MB Name Failgroup Library Label UDID Product Redund Path

  
8189 6961 8189 DATA_0000 DATA_0000 System UNKNOWN /dev/sdc1

  
8189 6961 8189 DATA_0001 DATA_0001 System UNKNOWN /dev/sdd1

  
8189 6950 8189 DATA_0002 DATA_0002 System UNKNOWN /dev/sde1

  ASMCMD
[+] >

  cp命令允许文件在ASM和本地或远程目标之间拷贝,简要用法如下所示:

cp [-ifr] <[\@connect_identifier:]src> <[\@connect_identifier:]tgt>

  下面的示例从ASM拷贝USERS数据文件到本地文件系统:

 ASMCMD [+] > cp +DATA/db11g/datafile/users.273.661514191 /tmp/users.dbf

  source
+DATA/db11g/datafile/users.273.661514191

  target
/tmp/users.dbf

  copying
file(s)...

  
file, /tmp/users.dbf, copy committed.

  ASMCMD
[+] >

  但遗憾的是cp命令不能拷贝控制文件。

  md_backup命令拷贝一个或多个磁盘组的元数据,简要用法如下所示:

md_backup [-b location_of_backup] [-g dgname [-g dgname …]]

  下面是一个示例命令,命令结果包括了所有重新创建ASM设置需要的元数据:

ASMCMD [+] > md_backup -b /tmp/backup.txt -g data

  
Disk group to be backed up: DATA

  ASMCMD
[+] >

  md_restore命令允许从md_backup命令创建的元数据恢复磁盘组设置,简要用法如下所示: 

md_restore -b [-li]

  
[-t (full)|nodg|newdg] [-f ]

  
[-g ',,...']

  
[-o ':,...']

  直接从以前的备份还原的命令如下:  

ASMCMD [+] > md_restore -b /tmp/backup.txt -t full -g data

  remap命令修复磁盘上一段范围的物理块,每个块的内容都无效,因此只有展示了读错误的块被修复,简要用法如下所示; 

remap <disk group name> <disk name> <block range>

  下面是这个命令的一个示例:

 ASMCMD [+] > remap data data_0001 5000-5999

  Preferred Read Failure(首选读失效)组

  在Oracle 10g中,ASM总是读取镜像区间集的主要拷贝,当两个节点和两个失效组都位于同一个站点中时,这样做没有问题,但群集扩大后,它的效率就变得低下了,因为它会引起很多不必要的网络通讯,Oracle 11g允许每个节点定义一个首选失效组,允许群集中的节点优先于远程失效组访问本地失效组。

  为了配置首选读失效组,磁盘组兼容属性必须设置为11.1或更高,兼容选项设置正确了,就可以使用ASM_PREFERRED_READ_FAILURE_GROUPS参数为每个节点设置首选失效组。

SELECT name, failgroup FROM v$asm_disk;

  NAME FAILGROUP

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

  DATA_0000 DATA_0000

  DATA_0001 DATA_0001

  DATA_0002 DATA_0002

  
3 rows selected.

  SQL
>

  
ALTER SYSTEM SET ASM_PREFERRED_READ_FAILURE_GROUPS = 'data.data_0000', 'data.data_0001', 'data.data_0002';
0
相关文章