集群oracle两个节点都掉了,双节点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!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值