oracle rac11g更换存储,11g rac更换存储

环境描述

RAC使用的主机3台 os version   redhat as 6.2

cluster和database version     11.2.0.3

一.使用os的udev命令标识asm使用的磁盘文件

vi /etc/udev/rules.d/99-oracle-asmdevices.rules

KERNEL=="sd*", SUBSYSTEM=="block", PROGRAM=="/sbin/scsi_id --whitelisted --replace-whitespace --device=/dev/$name", RESULT=="36005076802810c1a5800000000000008", NAME="asm_a1_ocr1",  OWNER="grid",  GROUP="asmadmin", MODE="0660"

KERNEL=="sd*", SUBSYSTEM=="block", PROGRAM=="/sbin/scsi_id --whitelisted --replace-whitespace --device=/dev/$name", RESULT=="36005076802810c1a5800000000000009", NAME="asm_a1_ocr2",  OWNER="grid",  GROUP="asmadmin", MODE="0660"

KERNEL=="sd*", SUBSYSTEM=="block", PROGRAM=="/sbin/scsi_id --whitelisted --replace-whitespace --device=/dev/$name", RESULT=="36005076802810c1a580000000000000a", NAME="asm_a1_ocr3",  OWNER="grid",  GROUP="asmadmin", MODE="0660"

KERNEL=="sd*", SUBSYSTEM=="block", PROGRAM=="/sbin/scsi_id --whitelisted --replace-whitespace --device=/dev/$name", RESULT=="36005076802810c1a580000000000000c", NAME="asm_a1_disk1",  OWNER="grid",  GROUP="asmadmin", MODE="0660"

--重新启动udev

/sbin/start_udev

二.创建磁盘组

--以sysasm身份登陆创建磁盘组

create diskgroup ocr external redundancy disk  '/dev/asm_a1_ocr1' attribute 'compatible.asm'='11.2';

create diskgroup pay external redundancy disk  '/dev/asm_a1_disk1';

--修改asm的属性(如果创建磁盘组的时候未加asm属性)

alter diskgroup ocr set attribute 'COMPATIBLE.ASM'='11.2';

--查看磁盘组

select name,total_mb,free_mb,COMPATIBILITY,state from  v$asm_diskgroup;

--在cluster的所有节点上启动创建的新磁盘组

srvctl start diskgroup -g ocr

srvctl start diskgroup -g pay

--检查cluster资源状态(以oracle用户执行)

crsctl status resource -t

crsctl status resource -t

三.以root用户换ocr

--先增加一个镜像磁盘组,然后删除原来的磁盘组

/oracle/11.2.0/grid/bin/ocrconfig -add +OCR

/oracle/11.2.0/grid/bin/ocrconfig -delete +ocr_vote_pay1

--检查ocr

/oracle/11.2.0/grid/bin/ocrcheck

四.以grid用户换votedisk

crsctl query css votedisk

crsctl replace votedisk +OCR

五.更换asm实例的spfile

--整个cluster最好只启动一个节点,将其它节点的cluster关闭(以root用户)

/oracle/11.2.0/grid/bin/crsctl stop crs

--更换asm实例的spfile

create pfile='/tmp/initasm1.ora' from spfile;

startup pfile='/oracle/11.2.0/grid/dbs/initasm1.ora'

create spfile='+OCR' from pfile='/tmp/initasm1.ora';

--重新启动本节点的高可用服务

/oracle/11.2.0/grid/bin/crsctl stop has

/oracle/11.2.0/grid/bin/crsctl start has

/***

如果没有关闭其他节点的cluster,那么更新asm的spfile文件时会报以下错误

SQL> create spfile='+OCR' from pfile='/oracle/11.2.0/grid/dbs/initasm.ora';

create spfile='+OCR' from pfile='/oracle/11.2.0/grid/dbs/initasm.ora'

*

ERROR at line 1:

ORA-29783: GPnP attribute SET failed with error [CLSGPNP_NOT_FOUND]

根据metalink解释:此问题还有另外一种解决方法:就是杀死不健康的gpnpd.bin进程,然GI自动重启动此进程.

***/

六.更换数据库的spfile

--生成临时的pfile文件

create pfile='/tmp/initpay.ora' from spfile;

--在新的磁盘组上创建spfile文件

create spfile ='+PAY' from pfile='/tmp/initpay.ora';

--修改cluster配置文件中的参数文件位置

srvctl config database -d pay

--spfile的具体位置可以使用asmcmd命令查看

srvctl modify database -d pay -p +PAY/PAY/PARAMETERFILE/spfile.288.824166281'

七.更换数据库的磁盘组

--1.查询表空间及其数据文件

set linesize 300

col fname format A60

select ts.name tname,df.file#,df.name fname from v$tablespace ts,v$datafile df

where ts.ts#=df.ts# order by 1;

--2.更换数据库非系统使用的磁盘组(system/sysaux/undo)[更换时,数据库可以是open状态]

sql 'alter tablespace USERS offline';

backup device type disk as copy datafile 5 format '+PAY';

switch tablespace USERS  to copy;

sql 'alter tablespace USERS online';

--3.更换数据库系统使用的磁盘组(system/sysaux/undo)[更换时,数据库不允许为open状态]

--先建立数据文件映像副本

backup as copy tablespace system format '+PAY';

backup as copy tablespace sysaux format '+PAY';

backup as copy tablespace UNDOTBS1 format '+PAY';

backup as copy tablespace UNDOTBS2 format '+PAY';

backup as copy tablespace UNDOTBS3 format '+PAY';

--启动数据库到mount

shutdown immediate;

startup mount;

--切换表空间数据文件到映像副本

switch tablespace system to copy;

switch tablespace sysaux to copy;

switch tablespace UNDOTBS1 to copy;

switch tablespace UNDOTBS2 to copy;

switch tablespace UNDOTBS3 to copy;

--恢复数据库

recover database;

--打开数据库

alter database open;

--4.更换临时文件

alter tablespace temp add tempfile '+PAY';

alter tablespace temp drop tempfile '+PAY/pay/tempfile/temp.274.824146081';

--5.更换redo log

--查看重做日志组和成员

select * from v$Logfile order by group#;

select * from v$Log;

--增加重做日志成员

alter database add logfile member '+PAY' to group 1;

alter database add logfile member '+PAY' to group 2;

alter database add logfile member '+PAY' to group 3;

alter database add logfile member '+PAY' to group 4;

alter database add logfile member '+PAY' to group 5;

alter database add logfile member '+PAY' to group 6;

alter database add logfile member '+PAY' to group 7;

alter database add logfile member '+PAY' to group 8;

alter database add logfile member '+PAY' to group 9;

--删除旧的重做日志成员

alter database drop logfile member '+PAY_TMP/pay/onlinelog/group_7.263.820542373';

alter database drop logfile member '+PAY_TMP/pay/onlinelog/group_2.262.820542367';

alter database drop logfile member '+PAY_TMP/pay/onlinelog/group_1.261.820542365';

alter database drop logfile member '+PAY_TMP/pay/onlinelog/group_5.267.820542451';

alter database drop logfile member '+PAY_TMP/pay/onlinelog/group_6.268.820542453';

alter database drop logfile member '+PAY_TMP/pay/onlinelog/group_9.269.820542459';

alter database drop logfile member '+PAY_TMP/pay/onlinelog/group_3.270.820542463';

alter database drop logfile member '+PAY_TMP/pay/onlinelog/group_4.271.820542465';

alter database drop logfile member '+PAY_TMP/pay/onlinelog/group_8.272.820542467';

--6.更换control file

--更新spfile中的control_file参数

alter system set control_files='+PAY_TMP/trade/controlfile/control01.ctl','+TRADE' scope=spfile sid='*';

--重新启动数据库

shutdown immediate;

startup nomount;

--使用rman创建新的控制文件

RMAN> connect target /

RMAN> restore controlfile from '+PAY_TMP/trade/controlfile/control01.ctl';

--更新spfile中的control_file参数

alter system set control_files='+TRADE/trade/controlfile/current.275.824169817' scope=spfile sid='*';

八.下线旧的磁盘组

--1.旧的磁盘足离线

srvctl stop diskgroup -g PAY_TMP

跟踪一段时间如果确实没有问题再进行离线操作

--2.仅仅在一个asm实例上mount磁盘组

--mount要离线的磁盘组

alter diskgroup PAY_TMP mount;

--删除磁盘组

drop diskgroup PAY_TMP including contents;

阅读(4475) | 评论(0) | 转发(0) |

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值