1 应用场景:
环境:
主机名 ip vip sid diskgroup
db1 1.1.1.1 1.1.1.11 linuxidc data1
db2 1.1.1.2 1.1.1.12 linuxidcdb data2
预期效果:
db1,db2可互为备份,,此处以db1做主库,db2作为备库来讲解,即在假定db1挂了,需在db2上mount磁盘组data1,data2,运行实例linuxidc、linuxidcdb;均采用虚拟ip作为客户端的访问;
2 操作步骤:
一、备份
1.在db2器上预先创建db1数据库(linuxidc)的参数文件和pwd文件,同时在 $oracle_base/admin/$sid目录下创建adump、dpdump、pfile目录
在db1(1.1..1.1)使用oracle用户操作:
#scp $oracle_home/dbs/init$sid.ora 1.1.1.2:$oracle_home/dbs/
# scp $oracle_home/dbs/orapw$sid. 1.1.1.2:$oracle_home/dbs/
#scp $oracle_home/dbs/spfile$sid.ora 1.1.1.2:$oracle_home/dbs/
#ssh 1.1.1.2 mkdir -p $oracle_base/admin/$sid/adump
#ssh 1.1.1.2 mkdir -p $oracle_base/admin/$sid/dpdump
#ssh 1.1.1.2mkdir -p $oracle_base/admin/$sid/hdump
#ssh 1.1.1.2 mkdir -p $oracle_base/admin/$sid/pfile
2.在db2上mount磁盘组;
#sqlplus / as sysasm
sql>alter diskgroup data1 mount;
3.在db2增加网络监听;
linux :增加第二地址:ifconfig eth0:1 1.1.11/24 up
hp:增加第二地址: ifconfig lan0:1 inet 1.1.1.11 netmask 255.255.255.0 up
aix: 增加第二地址:ifconfig en9 1.1.1.1 netmask 255.255.255.0 alias
ifconfig en9 1.1.1.1 netmask 255.255.255.0 delete #删除地址
#add to /etc/rc.net 开机自启动;
4.在db2添加磁盘组到asm的参数文件;(可选)
alter system set asm_diskgroups='data1' scope=spfile;
5.在db2加入到当前grid组中;
使用oracle用户:
#srvctl add db -d linuxidc -o $oracle_home
6.在db2启动数据库:
方式1
#srvctl start db -d linuxidc
方式2
1)修改oracle_sid为故障库的sid
2)sqlplus / as sysdba
>startup
二、恢复:
1)在db2上停止
#stop db -d linuxidc
2)在db2剔除grid组
#srvctl remove db -d linuxidc
3)在db2上umount数据磁盘组
#sqlplus as sysasm
>alter diskgroup data1 dismount
4)在db2剔除磁盘组
#srvctl remove diskgroup -g data1
5)在db1重新mount,启动数据库
#alter diskgroup data1 mount
#sqlplus / as sysdba
>startup
更多oracle相关信息见oracle 专题页面 ?tid=12
