Oracle RAC异机恢复到单机步骤及常见问题

环境说明:

1

2

3

源库:Oracle 11.2.0.4.0 RAC

目标库:Oracle 11.2.0.4.0 单机

操作系统:kylin v10 SP1

恢复过程:

1

2

3

4

5

6

7

8

9

10

11

1.检查备份文件

2.准备环境变量

3.准备参数文件

4.启动实例

5.恢复控制文件

6.文件路径

7.注册备份文件所在目录

8.执行restore

9.执行recover

10.修改 redo 路径

11.open数据库

将源库备份文件拷贝到目标服务器:

1.检查备份文件

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

oracle@cjc-db-01:/home/oracle$ls -lrht /db/oracle/bak/test/rman/

total 727M

-rw-r--r-- 1 oracle oinstall  54M Jun 17 00:45 rman_cjc_db_20240617_ok2thsoj_1_1.bak

-rw-r--r-- 1 oracle oinstall 1.3M Jun 17 00:45 rman_cjc_db_20240617_ol2thsp3_1_1.bak

-rw-r--r-- 1 oracle oinstall  96K Jun 17 00:45 rman_cjc_db_20240617_om2thsp5_1_1.bak

-rw-r--r-- 1 oracle oinstall 208M Jun 17 00:45 rman_cjc_db_20240617_oi2thsoj_1_1.bak

-rw-r--r-- 1 oracle oinstall 208M Jun 17 00:45 rman_cjc_db_20240617_oj2thsoj_1_1.bak

-rw-r--r-- 1 oracle oinstall 213M Jun 17 00:45 rman_cjc_db_20240617_oh2thsoj_1_1.bak

-rw-r--r-- 1 oracle oinstall 2.5K Jun 17 00:46 rman_cjc_arch_20240617_oq2thsq8_1_1.bak

-rw-r--r-- 1 oracle oinstall 6.5K Jun 17 00:46 rman_cjc_arch_20240617_on2thsq8_1_1.bak

-rw-r--r-- 1 oracle oinstall 2.7M Jun 17 00:46 rman_cjc_arch_20240617_op2thsq8_1_1.bak

-rw-r--r-- 1 oracle oinstall  23M Jun 17 00:46 rman_cjc_arch_20240617_oo2thsq8_1_1.bak

-rw-r--r-- 1 oracle oinstall  19M Jun 17 00:46 rman_cjc_ctl_bak_20240617_or2thsqc_1_1.bak

-rw-r--r-- 1 oracle oinstall  13K Jun 17 00:46 rman_cjc_20240617.log

-rw-r--r-- 1 oracle oinstall  52K Jun 17 00:47 backup.log

2.准备环境变量

1

2

3

4

5

6

7

8

9

10

11

12

13

14

oracle@cjc-db-01:/home/oracle$vi .bash_profile 

# Source /root/.bashrc if user has one

[ -f ~/.bashrc ] && . ~/.bashrc

export ORACLE_BASE=/db/oracle/app/oracle

export ORACLE_HOME=/db/oracle/app/oracle/product/11.2/db

export PATH=$PATH:$ORACLE_HOME/bin:$ORACLE_HOME/OPatch

export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH

export NLS_LANG=AMERICAN_AMERICA.AL32UTF8

export ORACLE_SID=cjc2

alias cdo='cd $ORACLE_HOME'

alias cdb='cd $ORACLE_HOME/dbs'

alias cdn='cd $ORACLE_HOME/network/admin'

alias cdal='cd $ORACLE_BASE/diag/rdbms/*/cjc2/trace'

alias sqp='sqlplus / as sysdba'

3.准备参数文件

1

2

3

4

5

6

7

8

9

10

11

12

13

oracle@cjc-db-01:/db/oracle/app/oracle/product/11.2/db/dbs$vi initcjc2.ora

*.compatible='11.2.0.4.0'

*.control_files='/db/oracle/oradata/cjc/control01.ctl'

*.db_block_size=8192

*.db_name='cjc'

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

*.open_cursors=300

*.pga_aggregate_target=1593835520

*.processes=150

*.sga_target=4783603712

*.undo_tablespace='UNDOTBS1'

#*.log_archive_dest_1='location=/db/oracle/arch'

#*.log_archive_format='cjc_%t_%s_%r.arc'

4. 启动实例

1

SQL> startup nomount

5.恢复控制文件

1

2

rman target /

RMAN> restore controlfile from '/db/oracle/bak/test/rman/rman_cjc_ctl_bak_20240617_or2thsqc_1_1.bak';

挂载数据库

1

RMAN> alter database mount;

6.文件路径

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

oracle@cjc-db-01:/home/oracle$sqlplus / as sysdba

set line 300

set pagesize 100;

col name for a60

select * from v$dbfile;

     FILE# NAME

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

         1 +DATA/cjc/datafile/system.259.1038241499

         2 +DATA/cjc/datafile/sysaux.260.1038241501

         3 +DATA/cjc/datafile/undotbs1.261.1038241503

         4 +DATA/cjc/datafile/undotbs2.263.1038241509

         5 +DATA/cjc/datafile/users.264.1038241509

         6 +DATA/cjc/datafile/cjc.279.1038246921

         7 +DATA/cjc/datafile/cjc_ind.280.1038246923

         8 +DATA/cjc/datafile/cjc.281.1038246945

         9 +DATA/cjc/datafile/cjc.282.1038246949

        10 +DATA/cjc/datafile/cjc.283.1038246959

        11 +DATA/cjc/datafile/cjc.284.1038246961

        12 +DATA/cjc/datafile/cjc_ind.285.1038246995

        13 +DATA/cjc/datafile/xxx.381.1062437923

13 rows selected

临时文件:

1

2

3

4

select name from v$tempfile;

NAME

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

+DATA/cjc/tempfile/temp.262.1038241505

日志文件

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

SET LINE 300

col MEMBER FOR A55

SELECT GROUP#,MEMBER FROM V$LOGFILE ORDER BY 1;

    GROUP# MEMBER

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

         1 +DATA/cjc/onlinelog/rlog_1_2_512m

         1 +DATA/cjc/onlinelog/group_1.257.1038241495

         2 +DATA/cjc/onlinelog/group_2.258.1038241497

         2 +DATA/cjc/onlinelog/rlog_2_2_512m

         3 +DATA/cjc/onlinelog/group_3.265.1038241847

         3 +DATA/cjc/onlinelog/rlog_3_2_512m

         4 +DATA/cjc/onlinelog/group_4.266.1038241849

         4 +DATA/cjc/onlinelog/rlog_4_2_512m

         5 +DATA/cjc/onlinelog/rlog_5_1_512m

         5 +DATA/cjc/onlinelog/rlog_5_2_512m

         6 +DATA/cjc/onlinelog/rlog_6_1_512m

         6 +DATA/cjc/onlinelog/rlog_6_2_512m

12 rows selected.

批量生成 SET NEWNAME ......语句

将 +DATA/cjc/datafile 转换为 /db/oracle/oradata/cjc

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

set line 300

set pagesize 100

col new_datafile for a100

select 'SET NEWNAME FOR DATAFILE '||file#||' to '''||replace(name, '+DATA/cjc/datafile', '/db/oracle/oradata/cjc')||''';'  as new_datafile from v$datafile order by file#;

NEW_DATAFILE

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

SET NEWNAME FOR DATAFILE 1 to '/db/oracle/oradata/cjc/system.259.1038241499';

SET NEWNAME FOR DATAFILE 2 to '/db/oracle/oradata/cjc/sysaux.260.1038241501';

SET NEWNAME FOR DATAFILE 3 to '/db/oracle/oradata/cjc/undotbs1.261.1038241503';

SET NEWNAME FOR DATAFILE 4 to '/db/oracle/oradata/cjc/undotbs2.263.1038241509';

SET NEWNAME FOR DATAFILE 5 to '/db/oracle/oradata/cjc/users.264.1038241509';

SET NEWNAME FOR DATAFILE 6 to '/db/oracle/oradata/cjc/cjc.279.1038246921';

SET NEWNAME FOR DATAFILE 7 to '/db/oracle/oradata/cjc/cjc_ind.280.1038246923';

SET NEWNAME FOR DATAFILE 8 to '/db/oracle/oradata/cjc/cjc.281.1038246945';

SET NEWNAME FOR DATAFILE 9 to '/db/oracle/oradata/cjc/cjc.282.1038246949';

SET NEWN

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值