双节点RAC坏掉一节点:rman全备+重搭RAC(1-2)

双节点RAC坏掉一节点:rman全备+重搭RAC

双节点RAC1坏掉,只有RAC2能正常运行,恢复双节点RAC有两种方法:
方法1——可以将坏掉把RAC1从集群中清除,然后再添加,担心这样不稳定。
方法2——rman比导入导出快,所以用RMAN全备接着重搭集群后用RMAN恢复
本文采用方法2。
续:
双节点RAC坏掉一节点:rman全备+重搭RAC(2-2)
http://blog.itpub.net/210154/viewspace-1224749/

10-01-模拟环境准备:RAC2配置NFS服务
一、将该目录在/etc/exports中共享
su -
mkdir -p /arch
chown -R oracle:oinstall /arch
cat << zcs  >> /etc/exports
/arch  *(rw,sync,no_all_squash)
zcs
service nfs restart
chkconfig nfs on
二、在两个节点上挂载NFS
1、RAC1主机节点
mkdir -p /rac_arch
cat << zcs  >> /etc/rc.local
mount -t nfs -o rsize=65534,wsize=65534,hard,noac,actimeo=0 192.168.1.102:/arch /rac_arch
zcs
2、RAC2主机节点
mkdir -p /rac_arch
cat << zcs  >> /etc/rc.local
mount -t nfs -o rsize=65534,wsize=65534,hard,noac,actimeo=0 192.168.1.102:/arch /rac_arch
zcs

10-02-模拟环境准备:开归档以便使用RMAN
create user zcs identified by zcs;
一、调整归档日志路径
alter system set log_archive_dest_1='LOCATION=/rac_arch/';
alter system set log_archive_format ='arch_%S_%R_%T.arc' scope=spfile;
二、关闭所有节点数据库实例
$ srvctl stop database -d RACDB
三、在其中一个节点上开归档
startup mount
alter database archivelog;
alter database open;
四、测试、确认以上配置达到目的
SYS@RACDB2> alter system archive log current;
host ls /rac_arch
SYS@RACDB2> host ls /rac_arch
arch_0000000002_0852650288_0002.arc  arch_0000000004_0852650288_0001.arc

10-03-模拟环境准备:将REDO从ASM迁至NFS共享存储
一、查看REDO位置:在ASM中
SYS@RACDB2> col member for a28
select group#,member from v$logfile order by group#;
    GROUP# MEMBER
---------- -------------------------
1 +DG1/racdb/redo01.log
2 +DG1/racdb/redo02.log
3 +DG1/racdb/redo03.log
4 +DG1/racdb/redo04.log
二、将REDO迁到NFS共享存储FileSystem中
1、添加REDO组05、06、07、08
alter database add logfile thread 1 group 05 '/rac_arch/redo05.rd' SIZE 50M;
alter database add logfile thread 1 group 06 '/rac_arch/redo06.rd' SIZE 50M;
alter database add logfile thread 2 group 07 '/rac_arch/redo07.rd' SIZE 50M;
alter database add logfile thread 2 group 08 '/rac_arch/redo08.rd' SIZE 50M;
2、切换日志组
alter system switch logfile;
alter system switch logfile;
alter system switch logfile;
alter system switch logfile;
3、确保下列1,2,3,4日志组不是active和current状态
alter system checkpoint;    #做完全检查点,加速REDO从Active转为Inactive
SYS@RACDB2> col status for a12
select group#,status from v$log where status= 'INACTIVE' and group# < 5;
    GROUP# STATUS
---------- ------------
1 INACTIVE
2 INACTIVE
3 INACTIVE
4 INACTIVE
4、使用SQLPLUS删除掉日志组1-4 (仅删除数据字典中的信息)
alter database drop logfile group 1;
alter database drop logfile group 2;
alter database drop logfile group 3;
alter database drop logfile group 4;
5、使用ASMCMD删除掉日志组1-4 对应的文件
[oracle@rac2 rac_arch]$ export ORACLE_SID=+ASM2
[oracle@rac2 rac_arch]$ asmcmd -p
ASMCMD [+] > help                 # 10.2的 ASMCMD没有拷贝命令
        commands:
        --------
        cd
        du
        find
        help
        ls
        lsct
        lsdg
        mkalias
        mkdir
        pwd
        rm
        rmalias
ASMCMD [+] > ls 
DG1/
ASMCMD [+] > cd DG1
ASMCMD [+DG1] > ls
RACDB/
ASMCMD [+DG1] > cd RACDB
ASMCMD [+DG1/RACDB] > ls *.log
redo01.log
redo02.log
redo03.log
redo04.log
ASMCMD [+DG1/RACDB] > rm *.log
You may delete multiple files and/or directories. 
Are you sure? (y/n) y
ASMCMD [+DG1/RACDB] > ls *.log
asmcmd: entry '*.log' does not exist in directory '+DG1/RACDB/'
SYS@RACDB2> select group#,member from v$logfile order by group#;
    GROUP# MEMBER
---------- ----------------------
5 /rac_arch/redo05.rd
6 /rac_arch/redo06.rd
7 /rac_arch/redo07.rd
8 /rac_arch/redo08.rd
SYS@RACDB2> select group#,status from v$log;
    GROUP# STATUS
---------- ------------
5 INACTIVE
6 CURRENT
7 CURRENT
8 INACTIVE?

10-04-模拟RAC1节点损坏
模拟:本实验poweroff掉RAC1节点



10-05-备份数据库

一、备份密码文件

 [oracle@rac2 ~]$ cp $ORACLE_HOME/dbs/orapwRACDB2 /rac_arch/

二、备份参数文件

SYS@RACDB2> show parameter spfile;
spfile     string +DG1/racdb/spfileracdb.ora
SYS@RACDB2> create pfile='/rac_arch/pfile.bak' from spfile;
File created.
[oracle@rac2 dbs]$ ls /u01/db_1/dbs
ab_+ASM2.dat  hc_RACDB2.dat  initdw.ora  initRACDB2.ora  orapwRACDB2
hc_+ASM2.dat  init+ASM2.ora  init.ora    orapw+ASM2
[oracle@rac2 dbs]$ strings hc_RACDB2.dat 
DO NOT DELETE OR OVERWRITE THIS FILE!!!
RACDB2
[oracle@rac2 dbs]$ cat initRACDB2.ora 
SPFILE='+DG1/RACDB/spfileRACDB.ora'
[oracle@rac2 dbs]$ cp -ar /u01/db_1/dbs  /rac_arch/dbs.rac2

三、备份整库及备份控制文件(切记:DBID=850267053)

[oracle@rac2 ~]$ rman target /
connected to target database: RACDB (DBID=850267053) 
RMAN> backup as compressed backupset database format='/rac_arch/full_%d_%T_%s' tag='full';
channel ORA_DISK_1: sid=128 instance=RACDB2 devtype=DISK
channel ORA_DISK_1: starting compressed full datafile backupset
piece handle=/rac_arch/full_RACDB_20140721_6 tag=FULL comment=NONE


including current control file in backupset
including current SPFILE in backupset
piece handle=/rac_arch/full_RACDB_20140721_7 tag=FULL comment=NONE

四、备份用于重建控制文件的脚本(以后重建控制文件,打开数据库时可以NORESETLOGS)
SYS@RACDB2> alter database backup controlfile to trace as '/rac_arch/control.txt';


10-06-清除所有信息
一、编写清除RAC1/RAC2/Voting-Disk/OCR-Disk的脚本
[root@rac1 ~]# cat delrac.sh 
## Stop CRS
ssh rac1 /u01/crs_1/bin/crsctl stop crs
ssh rac2 /u01/crs_1/bin/crsctl stop crs
## Delete directories and recreate them on host rac1
ssh rac1 rm -rf /tmp/*
ssh rac1 rm -rf /etc/init.d/init.*
ssh rac1 rm -f /etc/rc{0,1,2,4,6}.d/K96init.crs
ssh rac1 rm -f /etc/rc{3,5}.d/S96init.crs
ssh rac1 rm -f /etc/inittab.crs
ssh rac1 cp /etc/inittab.orig /etc/inittab
ssh rac1 rm -rf /home/oracle/oraInventory
ssh rac1 mv /u01  /u01.old  ; ##备份u01便于恢复时查看其它信息
ssh rac1 rm -rf /etc/oraInst.loc
ssh rac1 rm -rf /etc/oracle
ssh rac1 rm -rf /etc/oratab
ssh rac1 rm -rf /opt/oracle
ssh rac1 rm -rf /opt/ORCLfmap
ssh rac1 rm -rf /tmp/hsperfdata_oracle
ssh rac1 rm -rf /tmp/OraInstall*
ssh rac1 rm -rf /tmp/OraInstall*
ssh rac1 rm -rf /usr/local/bin/coraenv
ssh rac1 rm -rf /usr/local/bin/dbhome
ssh rac1 rm -rf /usr/local/bin/oraenv
ssh rac1 mkdir -p /u01/app/oracle
ssh rac1 chown -R oracle:oinstall /u01
ssh rac1 chmod -R 775 /u01
## Delete directories and recreate them on host rac2
ssh rac2 rm -rf /tmp/*
ssh rac2 rm -rf /etc/init.d/init.*
ssh rac2 rm -f /etc/rc{0,1,2,4,6}.d/K96init.crs
ssh rac2 rm -f /etc/rc{3,5}.d/S96init.crs
ssh rac2 rm -f /etc/inittab.crs
ssh rac2 cp /etc/inittab.orig /etc/inittab
ssh rac2 rm -rf /home/oracle/oraInventory
ssh rac2 mv /u01  /u01.old  ; ##备份u01便于恢复时查看其它信息
ssh rac2 rm -rf /etc/oraInst.loc
ssh rac2 rm -rf /etc/oracle
ssh rac2 rm -rf /etc/oratab
ssh rac2 rm -rf /opt/oracle
ssh rac2 rm -rf /opt/ORCLfmap
ssh rac2 rm -rf /tmp/hsperfdata_oracle
ssh rac2 rm -rf /tmp/OraInstall*
ssh rac2 rm -rf /tmp/OraInstall*
ssh rac2 rm -rf /usr/local/bin/coraenv
ssh rac2 rm -rf /usr/local/bin/dbhome
ssh rac2 rm -rf /usr/local/bin/oraenv
ssh rac2 mkdir -p /u01/app/oracle
ssh rac2 chown -R oracle:oinstall /u01
ssh rac2 chmod -R 775 /u01
## Clear voting-disk&ocr-disk&asm-dg1 devices
ssh rac1 dd if=/dev/zero of=/dev/raw/raw1 bs=102400 count=140000
ssh rac1 dd if=/dev/zero of=/dev/raw/raw2 bs=102400 count=140000
ssh rac1 dd if=/dev/zero of=/dev/raw/raw3 bs=102400 count=140000
ssh rac1 dd if=/dev/zero of=/dev/raw/raw4 bs=102400 count=140000
## Reboot host rac1 and rac2
ssh rac2 reboot
ssh rac1 reboot
2、执行清理脚本
# ./delrac.sh


zcs0237 
2014.07.22
More cleaner and more efficient!


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

转载于:http://blog.itpub.net/210154/viewspace-1224742/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值