ASM Diskgroup添加与删除

来源:互联网 发布:域名安全认证 编辑:程序博客网 时间:2024/04/25 12:27

ENV:10G RAC

系统架设有2年多了,当初规划的8TB硬盘所剩无几,随即申请停机时间,添加ASM DiskGroup

--搭建一套与实体机一样的RAC,做了测试,这是测试记录--

 --添加方法:Node1创建,Node2 mount;

1. 先在vbox的虚拟机上,添加2disk到主机里面,

设置要点:

   1.  添加的磁盘必须是固定大小;

   2. 将磁盘设置为share模式

   3. Node2,添加Node1刚才添加的硬盘,并且按照Node1添加的顺序添加

Node1主机上执行:

[root@ora10grac1 ~]# fdisk -l /dev/sd*

确认刚才添加的磁盘分别为/dev/sdg/dev/sdh然后进行分区,但不要格式化,因为我要用raw设备管理

确认硬盘分区好了之后,利用ASMLib,创建ASMDISK

创建之前先检查一下原有的磁盘:

[root@ora10grac1 ~]# /etc/init.d/oracleasm listdisks

ASMDISK3

ASMDISK4

ASMDISK5

那么创建的时候在Node1上创建ASMDISK6ASMDISK7

[root@ ~Node1]# /etc/init.d/oracleasm createdisk ASMDISK6 /dev/sdg1

[root@ ~Node1]# /etc/init.d/oracleasm createdisk ASMDISK7 /dev/sdh1

Node2上执行scan动作:

先执行[root@ora10grac2 ~]# /etc/init.d/oracleasm scandisks

再执行[root@ora10grac2 ~]# /etc/init.d/oracleasm listdisks

SQL>create diskgroup DATA3 external redundancy disk 'ORCL:ASMDISK6';

这个语法解释一下“'ORCL:ASMDISK6'”就是ASMDISK6的路径,

当然了,你也可以使用“/dev/oracleasm/disks/ASMDISK6

这个过程比较慢,虽然ASMDISK3大小为1.5GB,整个过程需要1Min左右

ORCL关键字说明:

Linux ASMLib 的发现字符串,  ASMLib使用发现字符串来确定 ASM正在请求哪些磁盘。一般的 Linux ASMLib使用 glob字符串。字符串必须以 "ORCL:"为前缀。磁盘通过名称来指定。可以通过发现字符串 "ORCL:VOL1" ASM中,发现以名称 "VOL1"创建的磁盘。类似地,可以用发现字符串 "ORCL:VOL*"来查询所有以字符串 "VOL"开始的磁盘。不能在发现字符串中用路径名称来发现磁盘。如果缺少前缀,那么一般的 Linux ASMLib将完全忽略发现字符串,认为它适用于一个不同的 ASMLib。唯一的例外是空字符串 (""),它被认为是一个全通配符。这与发现字符串 "ORCL:*"完全等价。

利用RAW來管理:

SQL> create diskgroup DATA3 external redundancy disk'/dev/raw/raw4';

另外一种语法:

Node2,mount起来

SQL> select name,state from v$asm_diskgroup;

确认OK之后,最重要的一步就是修改ASMpfile,使刚才添加的磁盘组能够自动加载

关键步骤:添加pfile文件

编辑$ORACLE_BASE/admin/+ASM/pfile/init.ora,找到asm_diskgroups=添加'DATA3’(注意顺序和语法一个都不能错)

ora10grac1</home/oracle>$vi /oracle/admin/+ASM/pfile/init.ora

ora10grac2</home/oracle>$vi /oracle/admin/+ASM/pfile/init.ora

 

可以重启DB,测试刚才添加磁盘组的工作是否成功

ora10grac1</home/oracle>$srvctl stop database -d ora10g -o immediate

ora10grac1</home/oracle>$srvctl stop nodeapps -n ora10grac1

ora10grac1</home/oracle>$srvctl stop nodeapps -n ora10grac2

ora10grac1</home/oracle>$srvctl stop asm -n ora10grac1

ora10grac1</home/oracle>$srvctl stop asm -n ora10grac2

验证服务是否完全关闭,

开启DB,按照生产系统的开机顺序来,先开Node2,再开Node1

ora10grac1</home/oracle>$srvctl start asm -n ora10grac2

ora10grac1</home/oracle>$srvctl start asm -n ora10grac1

ora10grac1</home/oracle>$srvctl start nodeapps -n ora10grac2

ora10grac1</home/oracle>$srvctl start nodeapps -n ora10grac1

至少这一步没有错误,那么就开启实例吧

ora10grac1</home/oracle>$srvctl start instance -d ora10g -i ora10g2

ora10grac1</home/oracle>$srvctl start instance -d ora10g -i ora10g1

 

删除办法:

思路是,RAC中,一个节点先执行dismount,另外一个节点drop

 

ora10grac1</home/oracle>export ORACLE_SID=+ASM1

ora10grac1</home/oracle>sqlplus / as sysdba

sql>alter diskgroup DATA3 dismount;

 

ora10grac2</home/oracle>export ORACLE_SID=+ASM2

ora10grac2</home/oracle>sqlplus / as sysdba

sql>alter diskgroup DATA3 drop;

完成之后修改pfile文件,删除之前添加的参数

 

 

 

1 0
原创粉丝点击