异机恢复

来源:互联网 发布:wampserver域名重定向 编辑:程序博客网 时间:2024/04/28 10:43

一.源机备份文件包括 归档、数据文件备份、控制文件和参数文件备份

 

二.搭建恢复环境

1.添加虚拟硬盘

2.创建LVM分区

LVM的分区类型为8e(t - 8e)

3.创建物理卷

4.创建卷组

5.创建逻辑卷

6.安装oracle软件

 

pvcreate /dev/sdc1

  vgcreate -s 32  imdb /dev/sdc1 /dev/sdd1 /dev/sde1 /dev/sdf1 /dev/sdg1 /dev/sdh1 /dev/sdi1      -s 32 设置

 

由于内核原因,PE大小决定了逻辑卷的最大大小,4 MB 的PE决定了单个逻辑卷最大容量为 256 GB,若希望使用大于256G的逻辑卷则创建卷组时指定更大的PE。PE大小范围为8 KB 到 512 MB,并且必须总是 2 的倍数

 

  lvcreate -n lv_imdb -L 339gb /dev/imdb

  mkfs.ext3 /dev/imdb/lv_imdb

 

 

 

三.开始恢复

 

1.恢复参数文件

这里我采用现在DBS目录下创建一个pfile

vi initimdb.ora

db_name='IMDB'

 

export ORACLE_SID=imdb

 

startup nomount

 

rman target /

 

set dbid=1459632638

--这里要注意一个问题,就是这个dbid值,因为我们的RMAN 备份集是从其他的数据库上copy 过来的,备份集中的记录的是Source 的DBID值,所以这里我们也要指定dbid 等于Source 的DBID值。 RMAN 连接时会显示该值,通过视图也可以查看.

 

 restore spfile from '/imdb/oradata/c-1459632638-20140527-00';  (这个备份文件开头是C表示它是控制文件参数文件的自动备份,C后面的1459632638是DBID)

 

shutdown immediate

 

sqlplus / as sysdba

create pfile from spfile  (即便在实例没有启动的情况下也可以create pfile from spfile)

 

2.修改参数文件

源参数文件

imdb.__db_cache_size=7449083904

imdb.__java_pool_size=33554432

imdb.__large_pool_size=50331648

imdb.__shared_pool_size=989855744

imdb.__streams_pool_size=16777216

*.audit_file_dest='/opt/oracle/admin/imdb/adump'

*.background_dump_dest='/opt/oracle/admin/imdb/bdump'

*.compatible='10.2.0.5.0'

*.control_files='/ora_data/imdb/control01.ctl','/ora_data/imdb/control02.ctl','/ora_data/imdb/control03.ctl'

*.core_dump_dest='/opt/oracle/admin/imdb/cdump'

*.db_block_size=8192

*.db_domain=''

*.db_file_multiblock_read_count=16

*.db_flashback_retention_target=1440

*.db_name='imdb'

*.db_recovery_file_dest='/oracle/flash_recovery_area'

*.db_recovery_file_dest_size=34359738368

*.dispatchers='(PROTOCOL=TCP) (SERVICE=imdbXDB)'

*.job_queue_processes=10

*.log_archive_dest_1='LOCATION=/oracle/oraarch'

*.log_archive_format='%t_%s_%r.dbf'

*.open_cursors=300

*.pga_aggregate_target=5878317056

*.processes=1600

*.remote_login_passwordfile='EXCLUSIVE'

*.sessions=665

*.sga_max_size=8589934592

*.sga_target=8589934592

*.undo_management='AUTO'

*.undo_tablespace='UNDOTBS1'

*.user_dump_dest='/opt/oracle/admin/imdb/udump'

 

 

必须要修改的是控制文件路径

vi initimdb.ora

*.audit_file_dest='/imdb/admin/imdb/adump'

*.background_dump_dest='/imdb/admin/imdb/bdump'

*.compatible='10.2.0.5.0'

*.control_files='/imdb/oradata/control01.ctl','/imdb/oradata/control02.ctl','/imdb/oradata/control03.ctl'

*.core_dump_dest='/imdb/admin/imdb/cdump'

*.db_block_size=8192

*.db_domain=''

*.db_file_multiblock_read_count=16

*.db_flashback_retention_target=1440

*.db_name='imdb'

*.db_recovery_file_dest='/imdb/flash_recovery_area'

*.db_recovery_file_dest_size=2097152

*.job_queue_processes=10

*.log_archive_dest_1='LOCATION=/imdb/arch'

*.log_archive_format='%t_%s_%r.dbf'

*.open_cursors=50

*.processes=150

*.undo_management='AUTO'

*.undo_tablespace='UNDOTBS1'

*.user_dump_dest='/imdb/admin/imdb/udump'

注意是ORACLE 10G所以还需要创建dump目录

还需要注意的是版本号源机版本为10.2.0.5.0,而恢复机版本为10.2.0,这里我先将恢复机升级到了相同版本,如果不升级,在备份前需要先跑 @?/rdbms/admin/utlu112i.sql脚本

SQL> spool upgrade_info.log

SQL> @?/rdbms/admin/utlu112i.sql

升级还要确定版本号可以升级  10g的版本必须大于10.2.0.2.

具体升级过程参考http://blog.csdn.net/tianlesoftware/article/details/7311352

 

3.恢复控制文件

启动到nomount

rman target /

restore controlfile from '/imdb/oradata/c-1459632638-20140527-00';

 

控制文件恢复后我们就可以查看源库有多少个数据文件

 

sqlplus / as sysdba

startup mount

 

SQL> select file#,name from v$datafile;

 

     FILE# NAME

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

 1 /ora_data/imdb/system01.dbf

 2 /ora_data/imdb/undotbs01.dbf

 3 /ora_data/imdb/sysaux01.dbf

 4 /ora_data/imdb/users01.dbf

 5 /ora_data/imdb/im01.dbf

 6 /ora_data/imdb/im02.dbf

 7 /ora_data/imdb/tms01.dbf

 8 /ora_data/imdb/indx01.dbf

 9 /ora_data/imdb/tms02.dbf

10 /ora_data/imdb/tms03.dbf

11 /ora_data/imdb/pm01.dbf

12 /ora_data/imdb/indx02.dbf

13 /ora_data/imdb/tms04.dbf

14 /ora_data/imdb/bv01.dbf

15 /ora_data/imdb/bv02.dbf

16 /ora_data/imdb/im03.dbf

17 /ora_data/imdb/indx03.dbf

18 /ora_data/imdb/TMS05.dbf

19 /ora_data/imdb/indx.dbf

20 /ora_data/imdb/im04.dbf

21 /ora_data2/oracle/imdb/tms.dbf

22 /ora_data2/oracle/imdb/indx.dbf

23 /ora_data2/oracle/imdb/im05.dbf

 

SQL> archive log list

Database log mode               Archive Mode

Automatic archival               Enabled

Archive destination               /imdb/arch

Oldest online log sequence     9885

Next log sequence to archive   9887

Current log sequence               9887

 

 

4.转储数据文件

 

这里会遇到一个问题,因为我控制文件记录的备份信息中备份目录与当前不符,要手动将这些信息导入控制文件

RMAN> catalog start with '/imdb/rman/';   使用catalog start with 注意最后一/结尾,否则可能找不到

 

searching for all files that match the pattern /imdb/rman/

 

List of Files Unknown to the Database

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

File Name: /imdb/rman/c-1459632638-20140523-00

File Name: /imdb/rman/db_IMDB_20140525_t5p9590h_1_1

File Name: /imdb/rman/c-1459632638-20140517-00

File Name: /imdb/rman/c-1459632638-20140520-00

File Name: /imdb/rman/c-1459632638-20140524-00

File Name: /imdb/rman/db_IMDB_20140525_t0p9577o_1_1

File Name: /imdb/rman/c-1459632638-20140526-00

File Name: /imdb/rman/db_IMDB_20140525_t7p959db_1_1

File Name: /imdb/rman/db_IMDB_20140525_stp954v1_1_1

File Name: /imdb/rman/db_IMDB_20140525_t3p958ne_1_1

File Name: /imdb/rman/db_IMDB_20140525_tap95a2f_1_1

File Name: /imdb/rman/db_IMDB_20140525_sup9564n_1_1

File Name: /imdb/rman/c-1459632638-20140527-00

File Name: /imdb/rman/c-1459632638-20140521-00

File Name: /imdb/rman/db_IMDB_20140525_t4p958p6_1_1

File Name: /imdb/rman/db_IMDB_20140525_svp9576l_1_1

File Name: /imdb/rman/c-1459632638-20140522-00

File Name: /imdb/rman/db_IMDB_20140525_t9p959vq_1_1

File Name: /imdb/rman/db_IMDB_20140525_t6p95994_1_1

File Name: /imdb/rman/c-1459632638-20140519-00

File Name: /imdb/rman/db_IMDB_20140525_t2p958b3_1_1

File Name: /imdb/rman/db_IMDB_20140525_t8p959je_1_1

File Name: /imdb/rman/db_IMDB_20140525_ssp954v1_1_1

File Name: /imdb/rman/db_IMDB_20140525_t1p9580k_1_1

 

run{

set newname for datafile 1 to '/imdb/oradata/system01.dbf';

set newname for datafile 2 to '/imdb/oradata/undotbs01.dbf';

set newname for datafile 3 to '/imdb/oradata/sysaux01.dbf';

set newname for datafile 4 to '/imdb/oradata/users01.dbf';

set newname for datafile 5 to '/imdb/oradata/im01.dbf';

set newname for datafile 6 to '/imdb/oradata/im02.dbf';

set newname for datafile 7 to '/imdb/oradata/tms01.dbf';

set newname for datafile 8 to '/imdb/oradata/indx01.dbf';

set newname for datafile 9 to '/imdb/oradata/tms02.dbf';

set newname for datafile 10 to '/imdb/oradata/tms03.dbf';

set newname for datafile 11 to '/imdb/oradata/pm01.dbf';

set newname for datafile 12 to '/imdb/oradata/indx02.dbf';

set newname for datafile 13 to '/imdb/oradata/tms04.dbf';

set newname for datafile 14 to '/imdb/oradata/bv01.dbf';

set newname for datafile 15 to '/imdb/oradata/bv02.dbf';

set newname for datafile 16 to '/imdb/oradata/im03.dbf';

set newname for datafile 17 to '/imdb/oradata/indx03.dbf';

set newname for datafile 18 to '/imdb/oradata/TMS05.dbf';

set newname for datafile 19 to '/imdb/oradata/indx.dbf';

set newname for datafile 20 to '/imdb/oradata/im04.dbf';

set newname for datafile 21 to '/imdb/oradata/tms.dbf';

set newname for datafile 22 to '/imdb/oradata/indxone.dbf';

set newname for datafile 23 to '/imdb/oradata/im05.dbf';

restore database;

switch datafile all;

 

setnewname是一定要确保新的name没有重复

 

 

5.recover

RMAN> catalog start with '/archbak/';

 

searching for all files that match the pattern /archbak/

 

List of Files Unknown to the Database

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

File Name: /archbak/arc_848812509_1969

File Name: /archbak/arc_848726110_1967

File Name: /archbak/arc_848639708_1965

File Name: /archbak/arc_848898910_1971

File Name: /archbak/arc_848553309_1963

 

Do you really want to catalog the above files (enter YES or NO)? yes

cataloging files...

cataloging done

 

List of Cataloged Files

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

File Name: /archbak/arc_848812509_1969

File Name: /archbak/arc_848726110_1967

File Name: /archbak/arc_848639708_1965

File Name: /archbak/arc_848898910_1971

File Name: /archbak/arc_848553309_1963

 

 

RMAN> recover database

 

6.开库

查看日志文件路径,建立目录

sys@PROD>select member from v$logfile;

 

MEMBER

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

/ora_data/imdb/disk1/redo01.log

/ora_data/imdb/disk2/redo01.log

/ora_data/imdb/disk1/redo02.log

/ora_data/imdb/disk2/redo02.log

/ora_data/imdb/disk1/redo03.log

/ora_data/imdb/disk2/redo03.log

 

mkdir /ora_data/imdb

 

alter database resetlogs后日志文件会被重新建立

0 0