使用Rman备份片信息远程恢复数据库一例

1、挂载备份服务器的备份目录

1、建立备份片存放目录,这里没有使用catalog,所以需要和生产库备份目录路径相同

mkdir /prod/backup/

2、挂载备份服务器备份目录

showmount -e 192.168.8.148

mount 192.168.8.148:/arc_bk/other_bk /prod/backup

bdf

2、创建远程测试库所需pfile

1、生产库中生成pfile

create pfile='/tmp/initfact.ora' from spfile ;

2、远程测试库创建所需的pfile

vi $ORACLE_HOME/dbs/initfact.ora

fact.__db_cache_size=180355072

fact.__java_pool_size=4194304

fact.__large_pool_size=4194304

fact.__shared_pool_size=100663296

fact.__streams_pool_size=0

*.audit_file_dest='/u01/apps/oracle/admin/fact/adump'

*.background_dump_dest='/u01/apps/oracle/admin/fact/bdump'

*.compatible='10.2.0.1.0'

*.control_files='/u01/fact/control01.ctl','/u01/fact/control02.ctl','/u01/fact/control03.ctl'

*.core_dump_dest='/u01/apps/oracle/admin/fact/cdump'

*.db_block_size=8192

*.db_domain=''

*.db_file_multiblock_read_count=16

*.db_name='fact'

*.db_recovery_file_dest='/u01/apps/oracle/flash_recovery_area'

*.db_recovery_file_dest_size=2147483648

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

*.job_queue_processes=10

*.log_archive_dest_1='location=/u01/arch1'

*.open_cursors=300

*.pga_aggregate_target=96468992

*.processes=150

*.remote_login_passwordfile='EXCLUSIVE'

*.sga_target=290455552

*.undo_management='AUTO'

*.undo_tablespace='UNDOTBS1'

*.user_dump_dest='/u01/apps/oracle/admin/fact/udump'

3、保证远程测试库数据目录的可用性

1、建立目录

mkdir -p /u01/apps/oracle/admin/fact/adump

mkdir -p /u01/apps/oracle/admin/fact/bdump

mkdir -p /u01/apps/oracle/admin/fact/cdump

mkdir -p /u01/apps/oracle/admin/fact/udump

mkdir -p /u01/fact/

mkdir -p /u01/apps/oracle/flash_recovery_area

mkdir -p /u01/fact/datafiles

mkdir -p /u01/fact/logfiles

2、确定权限

ls -l /u01/apps/oracle/admin/fact/

ls -l /u01/fact

ls -l /u01/

ls -l /u01/apps/oracle/

3、查看磁盘空间

bdf

4、保证远程测试库备份信息的可用性

确保nfs目录中的数据能够被nobody可读可写的权限。

ls -l /prod/backup/

5、将远程测试库启动到nomount

在使用rman的时候需要使用相应的内存,所以需要数据库至少启动到nomount状态下。

export ORACLE_SID=fact

sqlplus / as sysdba

startup nomount ;

6、恢复远程测试库的控制文件

使用rman打开测试库fact,通过备份片控制文件。

1、查看最新的控制文件。

ls -ltr /prod/backup/auto_bk/

2、通过最新的自动备份片恢复测试库的控制文件。

export ORACLE_SID=fact

rman target /

restore controlfile from'/prod/backup/auto_bk/atb_c-2876228549-20101119-09' ;

7、恢复远程测试库

1、启动数据库到mount状态。

alter database mount ;

2、先查看一下schema中的信息

report schema

3、设置新的数据文件存储目录,恢复数据库

run

{

set newname for datafile 1 to '/u01/fact/datafiles/SYSTEM01.DBF';

set newname for datafile 2 to '/u01/fact/datafiles/UNDOTBS01.DBF';

set newname for datafile 3 to '/u01/fact/datafiles/SYSAUX01.DBF';

set newname for datafile 4 to '/u01/fact/datafiles/USERS01.DBF';

set newname for datafile 5 to '/u01/fact/datafiles/example01.DBF';

restore database;

switch datafile all;

}

4、修改临时表空间数据文件位置、redolog文件位置。

report schema ;

alter database rename file '生产库临时表空间数据文件位置' to '/u01/fact/temp01.dbf' ;

select member from v$logfile ;

alter database rename file '生产库redolog文件位置' to '/u01/fact/logfiles/redo01.log' ;

alter database rename file '生产库redolog文件位置' to '/u01/fact/logfiles/redo02.log' ;

alter database rename file '生产库redolog文件位置' to '/u01/fact/logfiles/redo03.log' ;

5、应用归档日志恢复数据库

recover database ;

6、不完全恢复数据库

recover database using backup controlfile untilcancel ;

8、打开远程测试库到open状态

使用resetlogs方式打开数据库

alter database open resetlogs ;

9、创建临时表空间数据文件

因为临时表空间数据文件是不会备份的所以需要重新创建数据文件,以便数据库能够正常运行。

ALTER TABLESPACE TEMP ADD TEMPFILE '/u01/fact/datafiles/temp01.dbf'size 20m ;

你可能感兴趣的:(rman)