linux dump命令 异机,Oracle 11.2.0.4 从单实例,使用RMAN 异机恢复到RAC

Oracle 11.2.0.4从单实例,使用RMAN异机恢复到RAC

注意:

(1)迁移的2个db版本版本要一致。包括小版本。

(2)RMAN异机恢复的时候,db_name必须相同。如果说要想改成其他的实例名,可以在恢复成功后,用nid命令修改。实例名的信息会记录到控制文件里,所以如果在恢复的时候,如果实例名不一致,恢复的时候会报错。

--源库信息:平台:Linux 6.5,单实例,版本如下:

SQL> select * from

v$version;

BANNER

--------------------------------------------------------------------------------

Oracle Database 11g

Enterprise Edition Release 11.2.0.4.0 - 64bit Production

PL/SQL Release

11.2.0.4.0 - Production

CORE

11.2.0.4.0 Production

TNS for Linux: Version

11.2.0.4.0 - Production

NLSRTL Version

11.2.0.4.0 - Production

--目标库:11.2.0.4 RAC,平台:Linux 6.5,版本如下:

SQL> set lin 160

pages 200

SQL> select * from

gv$version;

INST_ID

BANNER

----------

--------------------------------------------------------------------------------

1 Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit

Production

1 PL/SQL Release 11.2.0.4.0 - Production

1 CORE 11.2.0.4.0 Production

1 TNS for Linux: Version 11.2.0.4.0 - Production

1 NLSRTL Version 11.2.0.4.0 - Production

2 Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit

Production

2 PL/SQL Release 11.2.0.4.0 - Production

2 CORE 11.2.0.4.0 Production

2 TNS for Linux: Version 11.2.0.4.0 - Production

2 NLSRTL Version 11.2.0.4.0 - Production

10 rows selected.

我的RAC环境上已经存在了实例orcl,而我们源库的实例名是:neal。所以恢复完成后会有2个实例。

[root@rac1 ~]# crsctl

stat res -t

--------------------------------------------------------------------------------

NAME

TARGET  STATE

SERVER

STATE_DETAILS

--------------------------------------------------------------------------------

Local Resources

--------------------------------------------------------------------------------

ora.DATA.dg

ONLINE  ONLINE

rac1

ONLINE  ONLINE

rac2

ora.FRA.dg

ONLINE  ONLINE

rac1

ONLINE  ONLINE

rac2

ora.LISTENER.lsnr

ONLINE  ONLINE

rac1

ONLINE  ONLINE

rac2

ora.OCRVOTING.dg

ONLINE  ONLINE

rac1

ONLINE  ONLINE

rac2

ora.asm

ONLINE  ONLINE

rac1

Started

ONLINE  ONLINE

rac2

Started

ora.gsd

OFFLINE OFFLINE

rac1

OFFLINE OFFLINE

rac2

ora.net1.network

ONLINE  ONLINE

rac1

ONLINE  ONLINE

rac2

ora.ons

ONLINE  ONLINE

rac1

ONLINE

ONLINE

rac2

--------------------------------------------------------------------------------

Cluster Resources

--------------------------------------------------------------------------------

ora.LISTENER_SCAN1.lsnr

1        ONLINE

ONLINE

rac1

ora.cvu

1        ONLINE

ONLINE

rac1

ora.oc4j

1        ONLINE

ONLINE

rac1

ora.orcl.db

1        ONLINE

ONLINE

rac1

Open

2        ONLINE

ONLINE

rac2

Open

ora.rac1.vip

1        ONLINE  ONLINE

rac1

ora.rac2.vip

1        ONLINE

ONLINE

rac2

ora.scan1.vip

1        ONLINE

ONLINE

rac1

二.迁移步骤说明

2.1在源库用RMAN进行全备

源库实例名:neal,为了确认迁移成功,我们现在源库上创建一个表test,并插入几条记录。

SQL> select * from

test;

A

----------

1

2

3

4

备份之后的信息:

RMAN> list backup

summary;

using target database

control file instead of recovery catalog

List of Backups

===============

Key

TY LV S Device Type Completion Time #Pieces #Copies Compressed Tag

------- -- -- - -----------

--------------- ------- ------- ---------- ---

3

B  0  A DISK

12-JUL-16

1       1

NO         NEAL_LV0

5

B  0  A DISK

12-JUL-16

1       1

NO         NEAL_LV0

6

B  0  A DISK

12-JUL-16       1

1

NO         NEAL_LV0

7

B  0  A DISK

12-JUL-16

1       1

NO         NEAL_LV0

9

B  A  A DISK

12-JUL-16

1       1

NO         ARC_BAK

10

B  A  A DISK

12-JUL-16

1       1       NO

ARC_BAK

11

B  F  A DISK

12-JUL-16

1       1

NO         CTLFILE_BAK

12

B  F  A DISK

12-JUL-16

1       1

NO         SPFILE_BAK

2.2将备份文件SCP到RAC节点1的相同位置。

当然也可以copy到不同位置,但那样就需要注册一下,我这里copy到相同的位置():

[oracle@centos backup]$

scp /home/oracle/backup/* 192.168.8.221:~/backup/

oracle@192.168.8.221's

password:

neal_arch_0drah3bo_1_1_20160712

100% 4358KB   4.3MB/s   00:00

neal_arch_0erah3bo_1_1_20160712

100%

2560     2.5KB/s   00:00

neal_ctlfile_0frah3bq_1_1_20160712

100%

9568KB   9.3MB/s   00:00

neal_lv0_07rah391_1_1_20160712

100%

634MB  25.4MB/s   00:25

neal_lv0_08rah391_1_1_20160712

100%  375MB   9.9MB/s   00:38

neal_lv0_09rah391_1_1_20160712

100% 2912KB   2.8MB/s   00:00

neal_lv0_0brah399_1_1_20160712

100% 1344KB   1.3MB/s   00:00

neal_spfile_0grah3bs_1_1_20160712

100%

96KB  96.0KB/s   00:00

2.3还原并修改初始化文件

2.3.1还原spfile到pfile

[oracle@rac1 ~]$ export

ORACLE_SID=neal1

[oracle@rac1 ~]$ rman

target /

Recovery Manager:

Release 11.2.0.4.0 - Production on Wed Jul 13 07:05:47 2016

Copyright (c) 1982,

2011, Oracle and/or its affiliates.  All rights reserved.

connected to target

database (not started)

RMAN> startup nomount

startup failed:

ORA-01078: failure in processing system parameters

LRM-00109: could not

open parameter file '/u01/app/oracle/11.2.0/db_1/dbs/initneal1.ora'

starting Oracle instance

without parameter file for retrieval of spfile

Oracle instance started

Total System Global

Area    1068937216 bytes

Fixed

Size

2260088 bytes

Variable

Size

281019272 bytes

Database

Buffers

780140544 bytes

Redo

Buffers

5517312 bytes

RMAN> restore spfile

to pfile '/u01/app/oracle/11.2.0/db_1/dbs/initneal1.ora' from

'/home/oracle/backup/neal_spfile_0grah3bs_1_1_20160712';

Starting restore at

2016/07/13 07:07:52

using target database

control file instead of recovery catalog

allocated channel:

ORA_DISK_1

channel ORA_DISK_1:

SID=25 device type=DISK

channel ORA_DISK_1:

restoring spfile from AUTOBACKUP

/home/oracle/backup/neal_spfile_0grah3bs_1_1_20160712

channel ORA_DISK_1:

SPFILE restore from AUTOBACKUP complete

Finished restore at

2016/07/13 07:07:57

2.3.2查看ASM实例的相关目录信息

[grid@rac1 ~]$ asmcmd

lsdg

State

Type    Rebal  Sector

Block       AU  Total_MB  Free_MB

Req_mir_free_MB  Usable_file_MB  Offline_disks

Voting_files  Name

MOUNTED

EXTERN  N         512

4096  1048576     10240

6798

0

6798

0

N  DATA/

MOUNTED

EXTERN  N         512

4096  1048576     10240

9152

0

9152

0

N  FRA/

MOUNTED

NORMAL  N         512

4096  1048576      3072     2146

1024

561

0

Y  OCRVOTING/

2.3.3修改初始化参数

注意事项:

(1)RMAN异机恢复的db_name必须和备份的一致,如果说想改成其他名称,可以等还原之后,在用nid命令修改。

(2)控制文件需要指定到共享设备上

(3)检查audit_file_dest,background_dump_dest,core_dump_dest,log_archive_dest_1,user_dump_dest等参数的位置。如果2个节点和共享位置没有对应的目录,先把目录建好。

--根据initneal1.ora文件中的参数创建节点的目录,在所有节点所有检查:

[oracle@rac1 ~]$ mkdir

-p /u01/app/oracle/admin/neal/adump

[oracle@rac2 ~]$ mkdir

-p /u01/app/oracle/admin/neal/adump

--最终我们修改之后的pfile文件如下:

[oracle@rac1 dbs]$ cat

initneal1.ora

*.audit_file_dest='/u01/app/oracle/admin/neal/adump'

*.audit_trail='db'

*.compatible='11.2.0.4.0'

*.control_files='+DATA','+FRA'

*.db_block_size=8192

*.db_domain=''

*.db_name='neal'

*.db_recovery_file_dest='+FRA'

*.db_recovery_file_dest_size=4385144832

*.diagnostic_dest='/u01/app/oracle'

*.dispatchers='(PROTOCOL=TCP)

(SERVICE=nealXDB)'

*.memory_target=524288000

*.open_cursors=300

*.processes=150

*.remote_login_passwordfile='EXCLUSIVE'

*.undo_management='AUTO'

*.cluster_database_instances=2

*.cluster_database=false

orcl2.thread=2

orcl1.thread=1

orcl2.undo_tablespace='UNDOTBS2'

orcl1.undo_tablespace='UNDOTBS1'

orcl2.instance_number=2

orcl1.instance_number=1

具体内存根据实际情况进行调整。

*.cluster_database=false

这里要先设置为flase,才能进行RMAN恢复操作。恢复完成在改成true。

2.3.4用修改的pfile来创建spfile,注意放在共享设备上

--先创建这个目录结构:

ASMCMD> pwd

+data/NEAL/PARAMETERFILE

[oracle@rac1 ~]$ sqlplus

/ as sysdba

SQL> create

spfile='+DATA/NEAL/PARAMETERFILE/spfileneal.ora' from

pfile='/u01/app/oracle/11.2.0/db_1/dbs/initneal1.ora';

File created.

--验证:

ASMCMD> pwd

+data/NEAL/PARAMETERFILE

ASMCMD> ls

spfileneal.ora

在所有节点上,修改pfile内容,将其指向共享设备上的spfile:

--节点1:

[oracle@rac1 ~]# echo

"SPFILE='+DATA/NEAL/PARAMETERFILE/spfileneal.ora'" >

/u01/app/oracle/11.2.0/db_1/dbs/initneal1.ora

--节点2:

[oracle@rac2 dbs]$ echo

"SPFILE='+DATA/NEAL/PARAMETERFILE/spfileneal.ora'" >

/u01/app/oracle/11.2.0/db_1/dbs/initneal2.ora

2.4创建口令文件

在所有节点执行,注意密码要和原库一样:

[oracle@rac1 ~]# orapwd

file=?/dbs/orapwneal1 password=oracle

[oracle@rac2 ~]$ orapwd

file=?/dbs/orapwneal2 password=oracle

2.5还原控制文件

在其中一个节点上执行。

2.5.1用spfile,将DB启动到nomount状态

SQL> shutdown

immediate;

ORA-01507: database not

mounted

ORACLE instance shut

down.

SQL> startup nomount

ORACLE instance started.

2.5.2 RMAN执行对控制文件的恢复

RMAN> restore

controlfile from '/home/oracle/backup/neal_ctlfile_0frah3bq_1_1_20160712';

Starting restore at

2016/07/13 07:19:49

allocated channel:

ORA_DISK_1

channel ORA_DISK_1:

SID=1 device type=DISK

channel ORA_DISK_1:

restoring control file

channel ORA_DISK_1:

restore complete, elapsed time: 00:00:01

output file

name=+DATA/neal/controlfile/current.269.917075991

output file name=+FRA/neal/controlfile/current.285.917075991

Finished restore at

2016/07/13 07:19:51

--这个位置是我们在spfile里指定的。

2.6 restore数据库

在其中一个节点执行。我这里在节点1操作。个人习惯,相关操作都在节点1进行。

2.6.1将数据库启动到MOUNT状态

RMAN> alter database

mount;

database mounted

released channel: ORA_DISK_1

2.6.2查看源库数据文件存储位置信息

注意一点,我们单实例和RAC实例存储数据文件的位置不同,如果我们使用rman的duplicate,那么我们使用log_file_name_convert和db_file_name_convert来进行转换,

在这个实验中,我们使用的是RMAN的异机恢复,所以只能在restore的时候用set newname来进行转换。

在源库执行如下查询:

SQL> set linesize 80

SQL> set lin 160

pages 200

SQL> col file_name

for a50

SQL> select 'set

newname for datafile '||file_id||' to '''||'+DATA'||''';' from dba_data_files;

'SETNEWNAMEFORDATAFILE'||FILE_ID||'TO'''||'+DATA'||''';'

-----------------------------------------------------------------------------

set newname for datafile

4 to '+DATA';

set newname for datafile

3 to '+DATA';

set newname for datafile

2 to '+DATA';

set newname for datafile

1 to '+DATA';

SQL> select 'set

newname for tempfile '||file_id||' to '''||'+DATA'||''';' from dba_temp_files;

'SETNEWNAMEFORTEMPFILE'||FILE_ID||'TO'''||'+DATA'||''';'

-----------------------------------------------------------------------------

set newname for tempfile

1 to '+DATA';

2.6.3在RAC上restore数据文件

脚本:

run {

set newname for datafile

4 to '+DATA';

set newname for datafile

3 to '+DATA';

set newname for datafile

2 to '+DATA';

set newname for datafile

1 to '+DATA';

set newname for tempfile

1 to '+DATA';

restore database;

switch datafile all;

switch tempfile all;

}

注意,对switch的说明:

对于nocatalog模式下,rman备份的信息是保存在控制文件里的,包括文件的路径信息。这里的switch的作用,就是更新控制文件里的信息。

restore的时候不会对temp表空间进行restore。所以等restore之后,我们需要手工创建temp表空间。

不过在这个测试里,我们还是对tempfile进行了指定。但是这个操作只更新控制文件,不恢复数据文件。

RMAN> run {

set newname for datafile

4 to '+DATA';

set newname for datafile

3 to '+DATA';

set newname for datafile

2 to '+DATA';

set newname for datafile

1 to '+DATA';

set newname for tempfile

1 to '+DATA';

restore database;

switch datafile all;

3> switch tempfile

all;

4> 5> 6> 7>

8> 9> 10> }

executing command: SET

NEWNAME

executing command: SET

NEWNAME

executing command: SET

NEWNAME

executing command: SET

NEWNAME

executing command: SET

NEWNAME

Starting restore at

2016/07/13 07:22:44

Starting implicit

crosscheck backup at 2016/07/13 07:22:44

allocated channel:

ORA_DISK_1

channel ORA_DISK_1:

SID=1 device type=DISK

Crosschecked 10 objects

Finished implicit

crosscheck backup at 2016/07/13 07:22:46

Starting implicit

crosscheck copy at 2016/07/13 07:22:46

using channel ORA_DISK_1

Finished implicit

crosscheck copy at 2016/07/13 07:22:46

searching for all files

in the recovery area

cataloging files...

no files cataloged

using channel ORA_DISK_1

channel ORA_DISK_1:

starting datafile backup set restore

channel ORA_DISK_1:

specifying datafile(s) to restore from backup set

channel ORA_DISK_1:

restoring datafile 00003 to +DATA

channel ORA_DISK_1:

reading from backup piece /home/oracle/backup/neal_lv0_09rah391_1_1_20160712

channel ORA_DISK_1:

piece handle=/home/oracle/backup/neal_lv0_09rah391_1_1_20160712 tag=NEAL_LV0

channel ORA_DISK_1:

restored backup piece 1

channel ORA_DISK_1:

restore complete, elapsed time: 00:00:03

channel ORA_DISK_1:

starting datafile backup set restore

channel ORA_DISK_1:

specifying datafile(s) to restore from backup set

channel ORA_DISK_1:

restoring datafile 00004 to +DATA

channel ORA_DISK_1:

reading from backup piece /home/oracle/backup/neal_lv0_0brah399_1_1_20160712

channel ORA_DISK_1:

piece handle=/home/oracle/backup/neal_lv0_0brah399_1_1_20160712 tag=NEAL_LV0

channel ORA_DISK_1:

restored backup piece 1

channel ORA_DISK_1:

restore complete, elapsed time: 00:00:01

channel ORA_DISK_1:

starting datafile backup set restore

channel ORA_DISK_1:

specifying datafile(s) to restore from backup set

channel ORA_DISK_1:

restoring datafile 00002 to +DATA

channel ORA_DISK_1:

reading from backup piece /home/oracle/backup/neal_lv0_08rah391_1_1_20160712

channel ORA_DISK_1:

piece handle=/home/oracle/backup/neal_lv0_08rah391_1_1_20160712 tag=NEAL_LV0

channel ORA_DISK_1:

restored backup piece 1

channel ORA_DISK_1:

restore complete, elapsed time: 00:01:15

channel ORA_DISK_1:

starting datafile backup set restore

channel ORA_DISK_1:

specifying datafile(s) to restore from backup set

channel ORA_DISK_1:

restoring datafile 00001 to +DATA

channel ORA_DISK_1:

reading from backup piece /home/oracle/backup/neal_lv0_07rah391_1_1_20160712

channel ORA_DISK_1:

piece handle=/home/oracle/backup/neal_lv0_07rah391_1_1_20160712 tag=NEAL_LV0

channel ORA_DISK_1:

restored backup piece 1

channel ORA_DISK_1:

restore complete, elapsed time: 00:00:55

Finished restore at

2016/07/13 07:25:03

datafile 1 switched to

datafile copy

input datafile copy

RECID=5 STAMP=917076307 file name=+DATA/neal/datafile/system.273.917076249

datafile 2 switched to

datafile copy

input datafile copy

RECID=6 STAMP=917076307 file name=+DATA/neal/datafile/sysaux.272.917076175

datafile 3 switched to

datafile copy

input datafile copy

RECID=7 STAMP=917076309 file name=+DATA/neal/datafile/undotbs1.270.917076169

datafile 4 switched to

datafile copy

input datafile copy

RECID=8 STAMP=917076309 file name=+DATA/neal/datafile/users.271.917076171

renamed tempfile 1 to

+DATA in control file

2.7 recover数据库

在执行restore的节点执行,因为备份文件在该节点上。

RMAN> recover

database;

Starting recover at

2016/07/13 07:25:28

using channel ORA_DISK_1

starting media recovery

channel ORA_DISK_1:

starting archived log restore to default destination

channel ORA_DISK_1:

restoring archived log

archived log thread=1

sequence=6

channel ORA_DISK_1:

reading from backup piece /home/oracle/backup/neal_arch_0drah3bo_1_1_20160712

channel ORA_DISK_1:

piece handle=/home/oracle/backup/neal_arch_0drah3bo_1_1_20160712 tag=ARC_BAK

channel ORA_DISK_1:

restored backup piece 1

channel ORA_DISK_1:

restore complete, elapsed time: 00:00:02

archived log file

name=+FRA/neal/archivelog/2016_07_13/thread_1_seq_6.286.917076331 thread=1

sequence=6

channel default:

deleting archived log(s)

archived log file

name=+FRA/neal/archivelog/2016_07_13/thread_1_seq_6.286.917076331 RECID=3

STAMP=917076331

channel ORA_DISK_1:

starting archived log restore to default destination

channel ORA_DISK_1:

restoring archived log

archived log thread=1

sequence=7

channel ORA_DISK_1:

reading from backup piece /home/oracle/backup/neal_arch_0erah3bo_1_1_20160712

channel ORA_DISK_1:

piece handle=/home/oracle/backup/neal_arch_0erah3bo_1_1_20160712 tag=ARC_BAK

channel ORA_DISK_1:

restored backup piece 1

channel ORA_DISK_1:

restore complete, elapsed time: 00:00:01

archived log file

name=+FRA/neal/archivelog/2016_07_13/thread_1_seq_7.286.917076333 thread=1

sequence=7

channel default:

deleting archived log(s)

archived log file

name=+FRA/neal/archivelog/2016_07_13/thread_1_seq_7.286.917076333 RECID=4

STAMP=917076332

unable to find archived

log

archived log thread=1

sequence=8

RMAN-00571:

===========================================================

RMAN-00569:

=============== ERROR MESSAGE STACK FOLLOWS ===============

RMAN-00571:

===========================================================

RMAN-03002: failure of

recover command at 07/13/2016 07:25:40

RMAN-06054: media

recovery requesting unknown archived log for thread 1 with sequence 8 and

starting SCN of 1007315

这里是提醒恢复到一个未知的scn号。因为这部分SCN还在online redo里,可以在alter database mount之后,通过set until scn或者set until time命令设置恢复到的scn号或时间,

或者把源库的这些文件在copy过来,在应用一下。就可以避免这个错误。

2.8最重要一步:将源库剩下的归档和online redo copy过来进行recover

在数据量大的时候,用RMAN进行数据迁移,能够降低切换的时间。即先用之前的备份进行恢复,然后把剩下的归档copy过来,进行recover。

这里对业务的影响,仅仅是最后小部分归档的处理,数据库可能很大,但最后决定我们停机时间的,就是最后一部分归档的处理。

2.8.1在源库创建一张表,然后把数据库实例停掉

SQL> alter system

switch logfile;

System altered.

SQL> /

System altered.

SQL> create table

sun(id number,name varchar2(100));

Table created.

SQL> insert into sun

values(1,'sun');

1 row created.

SQL> commit;

Commit complete.

--关闭数据库,保证数据一致性:

SQL> shutdown

immediate;

Database closed.

Database dismounted.

ORACLE instance shut

down.

2.8.2将剩下的归档和online redo全部copy到RAC的备份目录下

[oracle@centos 2016_07_12]$

scp /u01/oracle/fast_recovery_area/NEAL/archivelog/2016_07_12/*

192.168.8.221:~/backup/

oracle@192.168.8.221's

password:

o1_mf_1_8_cr9vhr6q_.arc

100%   12MB  11.7MB/s   00:00

[oracle@centos

2016_07_13]$ scp /u01/oracle/fast_recovery_area/NEAL/archivelog/2016_07_13/*

192.168.8.221:~/backup/

oracle@192.168.8.221's

password:

o1_mf_1_10_crc2ss6g_.arc

100%

109KB 109.0KB/s   00:00

o1_mf_1_11_crc2ssy6_.arc

100%

1024     1.0KB/s   00:00

o1_mf_1_9_crc2h7j2_.arc

100%   55KB  55.0KB/s   00:00

[oracle@centos neal]$

scp /u01/oracle/oradata/neal/redo0*.log 192.168.8.221:~/backup/

oracle@192.168.8.221's

password:

redo01.log

100%

50MB  16.7MB/s   00:03

redo02.log

100%

50MB  50.0MB/s   00:01

redo03.log

100%   50MB  12.5MB/s   00:04

2.8.3重新注册归档文件和online redo log,并同步数据

2.8.3.1注册归档文件

如果有归档,我们需要从单机复制到RAC节点上,但RAC节点的数据库并没有相关记录。所以我们需要先将归档文件注册到控制文件里。然后才能使用。

RMAN> catalog

archivelog

'/home/oracle/backup/o1_mf_1_8_cr9vhr6q_.arc','/home/oracle/backup/o1_mf_1_10_crc2ss6g_.arc','/home/oracle/backup/o1_mf_1_11_crc2ssy6_.arc','/home/oracle/backup/o1_mf_1_9_crc2h7j2_.arc';

cataloged archived log

archived log file

name=/home/oracle/backup/o1_mf_1_8_cr9vhr6q_.arc RECID=8 STAMP=917077069

cataloged archived log

archived log file

name=/home/oracle/backup/o1_mf_1_10_crc2ss6g_.arc RECID=5 STAMP=917076646

cataloged archived log

archived log file

name=/home/oracle/backup/o1_mf_1_11_crc2ssy6_.arc RECID=6 STAMP=917076646

cataloged archived log

archived log file

name=/home/oracle/backup/o1_mf_1_9_crc2h7j2_.arc RECID=7 STAMP=917076646

2.8.3.2移动online redo log到对应位置

--现在单实例进行查询:

SQL> select member

from v$logfile;

MEMBER

--------------------------------------------------------------------------------

/u01/oracle/oradata/neal/redo03.log

/u01/oracle/oradata/neal/redo02.log

/u01/oracle/oradata/neal/redo01.log

在RAC上把online redo log日志放入到对应的位置(目录位置必须还原来单实例目录一致):

[oracle@rac1 ~]$ mkdir

-p /u01/oracle/oradata/neal/

[oracle@rac1 ~]$ mv

/home/oracle/backup/redo*.log /u01/oracle/oradata/neal/

--再次执行recover操作:

RMAN> recover

database;

Starting recover at

2016/07/13 07:37:50

using channel ORA_DISK_1

starting media recovery

archived log for thread

1 with sequence 8 is already on disk as file

/home/oracle/backup/o1_mf_1_8_cr9vhr6q_.arc

archived log for thread

1 with sequence 9 is already on disk as file

/home/oracle/backup/o1_mf_1_9_crc2h7j2_.arc

archived log for thread

1 with sequence 10 is already on disk as file

/home/oracle/backup/o1_mf_1_10_crc2ss6g_.arc

archived log for thread

1 with sequence 11 is already on disk as file

/home/oracle/backup/o1_mf_1_11_crc2ssy6_.arc

archived log file

name=/home/oracle/backup/o1_mf_1_8_cr9vhr6q_.arc thread=1 sequence=8

archived log file

name=/home/oracle/backup/o1_mf_1_9_crc2h7j2_.arc thread=1 sequence=9

archived log file

name=/home/oracle/backup/o1_mf_1_10_crc2ss6g_.arc thread=1 sequence=10

archived log file

name=/home/oracle/backup/o1_mf_1_11_crc2ssy6_.arc thread=1 sequence=11

archived log for thread

1 with sequence 12 is already on disk as file

/u01/oracle/oradata/neal/redo03.log

archived log file

name=/u01/oracle/oradata/neal/redo03.log thread=1 sequence=12

media recovery complete,

elapsed time: 00:00:00

Finished recover at

2016/07/13 07:44:27

--注意:这次我们是第二次进行recover database,这里会我们copy过来的日志全部应用了,并且,注意这里是完全恢复,也就说这里没有数据丢失,我们不需要用open resetlogs来打开数据库。

--重置归档位置:

[oracle@rac1 ~]$ sqlplus

/ as sysdba

SQL*Plus: Release

11.2.0.4.0 Production on Wed Jul 13 07:45:02 2016

Copyright (c) 1982,

2013, Oracle.  All rights reserved.

Connected to:

Oracle Database 11g

Enterprise Edition Release 11.2.0.4.0 - 64bit Production

With the Partitioning,

Real Application Clusters, Automatic Storage Management, OLAP,

Data Mining and Real

Application Testing options

SQL> alter system set

log_archive_dest_1='LOCATION=+FRA' SID='*';

System altered.

2.9处理online redo

--原来的redo存放位置:

SQL> select * from

v$logfile;

GROUP# STATUS  TYPE    MEMBER

---------- -------

------- -----------------------------------

3

ONLINE

/u01/oracle/oradata/neal/redo03.log

2            ONLINE

/u01/oracle/oradata/neal/redo02.log

1

ONLINE

/u01/oracle/oradata/neal/redo01.log

RAC的redo是需要存放在共享设备上的,所以我们这里需要进行一些转换操作。

SQL> alter database

rename file '/u01/oracle/oradata/neal/redo01.log' to '+DATA';

Database altered.

SQL> alter database

rename file '/u01/oracle/oradata/neal/redo02.log' to '+DATA';

Database altered.

SQL> alter database

rename file '/u01/oracle/oradata/neal/redo03.log' to '+DATA';

Database altered.

我们这里只是更改了online redo的记录,实际上文件并没有生成,当我们open db的时候,会自动创建online redo log。

2.10 open resetlogs打开DB

虽然我们前面做的是完全恢复,确保没有数据丢失,但我们的需要用resetlogs来打开数据库,来重建我们的online redo log。

SQL> alter database

open resetlogs;

Database altered.

2.11检查并修改几个初始化参数

SQL> select * from

v$option where parameter = 'Real Application Clusters';

PARAMETER

----------------------------------------------------------------

VALUE

----------------------------------------------------------------

Real Application

Clusters

TRUE

SQL> show parameter

cluster

NAME

TYPE  VALUE

------------------------------------

----------- ------------------------------

cluster_database

boolean   FALSE

cluster_database_instances

integer   1

cluster_interconnects

string

SQL> show parameter

thread

NAME

TYPE  VALUE

------------------------------------

----------- ------------------------------

parallel_threads_per_cpu

integer   2

thread

integer   0

SQL> show parameter

instance_number

NAME

TYPE  VALUE

------------------------------------

----------- ------------------------------

instance_number

integer   0

SQL> alter system set

cluster_database=true scope=spfile sid='*';

System altered.

SQL> alter system set

cluster_database_instances=2 scope=spfile sid='*';

System altered.

SQL> alter system set

instance_number=1 scope=spfile sid='neal1';

System altered.

SQL> alter system set

instance_number=2 scope=spfile sid='neal2';

System altered.

SQL> alter system set

thread=1 scope=spfile sid='neal1';

System altered.

SQL> alter system set

thread=2 scope=spfile sid='neal2';

System altered.

2.12创建节点2的undo表空间

SQL> show parameter

undo_tablespace

NAME

TYPE  VALUE

------------------------------------

----------- ------------------------------

undo_tablespace

string UNDOTBS1

SQL> create undo

tablespace UNDOTBS2 datafile '+DATA' size 100m;

Tablespace created.

SQL> alter system set

undo_tablespace='UNDOTBS2' scope=spfile sid='neal2';

System altered.

2.13添加rac2节点的redo文件

rac的redo是接其他节点来的,我们之前的rac1上已经有3组,所以我们这里从4开始,在添加2组给rac2,使用thread 2.

SQL> alter database

add logfile thread 2 group 4 '+DATA' size 50m;

Database altered.

SQL> alter database

add logfile thread 2 group 5 '+DATA' size 50m;

Database altered.

SQL> alter database

add logfile thread 2 group 6 '+DATA' size 50m;

Database altered.

SQL> alter database

enable thread 2;

Database altered.

2.14将其他信息注册到CRS里

--一定要用oracle来执行

[oracle@rac1 ~]$ srvctl

add database -d neal -o $ORACLE_HOME -p +DATA/NEAL/PARAMETERFILE/spfileneal.ora

[oracle@rac1 ~]$ srvctl

add instance -d neal -i neal1 -n rac1

[oracle@rac1 ~]$ srvctl

add instance -d neal -i neal2 -n rac2

2.15重启节点1和节点2上的实例,使相关参数生效

我们之前都只启动了一个实例1,所以这里重启实例1,在启动实例2

[oracle@rac1 ~]$ sqlplus

/ as sysdba

SQL*Plus: Release

11.2.0.4.0 Production on Wed Jul 13 07:52:23 2016

Copyright (c) 1982,

2013, Oracle.  All rights reserved.

Connected to:

Oracle Database 11g

Enterprise Edition Release 11.2.0.4.0 - 64bit Production

With the Partitioning,

Real Application Clusters, Automatic Storage Management, OLAP,

Data Mining and Real

Application Testing options

SQL> shutdown

immediate;

Database closed.

Database dismounted.

ORACLE instance shut

down.

SQL> startup

ORACLE instance started.

Total System Global

Area  521936896 bytes

Fixed

Size        2254824 bytes

Variable

Size       419432472 bytes

Database Buffers

96468992 bytes

Redo

Buffers          3780608 bytes

Database mounted.

Database opened.

[oracle@rac2 dbs]$ export ORACLE_SID=neal2

[oracle@rac2 dbs]$ sqlplus / as sysdba

SQL*Plus: Release

11.2.0.4.0 Production on Wed Jul 13 07:53:10 2016

Copyright (c) 1982,

2013, Oracle.  All rights reserved.

Connected to an idle

instance.

SQL> startup

ORACLE instance started.

Total System Global

Area  521936896 bytes

Fixed

Size        2254824 bytes

Variable

Size       423626776 bytes

Database Buffers

92274688 bytes

Redo

Buffers          3780608 bytes

Database mounted.

Database opened.

2.16执行catclust.sql脚本来创建相关视图

执行$ORACLE_HOME/rdbms/admin/catclust.sql脚本,创建cluster database的相关视图。

SQL>@$ORACLE_HOME/rdbms/admin/catclust.sql

2.17重建Temp表空间

因为在restore的时候不会对temp表空间进行restore。所以等restore之后,我们需要手工创建temp表空间。

不过在11g的ASM,查到了这个文件。

[grid@rac1 ~]$ asmcmd

lsof |grep temp

neal

neal1

+data/neal/tempfile/temp.274.917077561

orcl

orcl1

+data/orcl/tempfile/temp.263.917074137

2.18添加集群的监听

用grid用户连接,在其中一个节点上用netca配置一下。

2.19验证

[root@rac1 ~]# crsctl

stat res -t

--------------------------------------------------------------------------------

NAME

TARGET  STATE

SERVER

STATE_DETAILS

--------------------------------------------------------------------------------

Local Resources

--------------------------------------------------------------------------------

ora.DATA.dg

ONLINE  ONLINE

rac1

ONLINE  ONLINE

rac2

ora.FRA.dg

ONLINE  ONLINE

rac1

ONLINE  ONLINE

rac2

ora.LISTENER.lsnr

ONLINE  ONLINE

rac1

ONLINE  ONLINE

rac2

ora.OCRVOTING.dg

ONLINE  ONLINE

rac1

ONLINE  ONLINE

rac2

ora.asm

ONLINE  ONLINE

rac1

Started

ONLINE  ONLINE       rac2

Started

ora.gsd

OFFLINE OFFLINE

rac1

OFFLINE OFFLINE

rac2

ora.net1.network

ONLINE  ONLINE

rac1

ONLINE  ONLINE

rac2

ora.ons

ONLINE  ONLINE

rac1

ONLINE  ONLINE

rac2

--------------------------------------------------------------------------------

Cluster Resources

--------------------------------------------------------------------------------

ora.LISTENER_SCAN1.lsnr

1        ONLINE

ONLINE

rac1

ora.cvu

1        ONLINE

ONLINE

rac1

ora.neal.db

1        ONLINE

ONLINE

rac1

Open

2        ONLINE

ONLINE

rac2

Open

ora.oc4j

1        ONLINE

ONLINE

rac1

ora.orcl.db

1        ONLINE

ONLINE

rac1

Open

2        ONLINE

ONLINE

rac2

Open

ora.rac1.vip

1        ONLINE

ONLINE

rac1

ora.rac2.vip

1        ONLINE

ONLINE

rac2

ora.scan1.vip

1        ONLINE

ONLINE       rac1

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值