Oracle-rman异机恢复

撒谎信2024-06-04经验总结1651

rman异机恢复

环境准备

主机

ip

操作系统版本

数据库版本

数据库状态

源端

19c

192.168.174.130

RHEL7.6

Oracle19c

实例正常运行

目标端

test

192.168.174.140

RHEL7.6

Oracle19c

仅安装数据库软件

 

源端

创建文件夹用来存储备份文件

su - oracle

mkdir -p /home/oracle/backup

 

sqlplus / as sysdba

create directory backup as '/home/oracle/backup';

创建参数文件

sqlplus / as sysdba

create pfile='/home/oracle/backup/initorcl.ora' from spfile;

开启归档模式

archive log list;

 

shutdown immediate

startup mount

 

alter database archivelog;

alter database open;

 

archive log list;

rman备份数据库

rman target /

 

run{

allocate channel c1 device type disk;

allocate channel c2 device type disk;

backup database format '/home/oracle/backup/db_%d_%T_%U.bak' plus archivelog format '/home/oracle/backup/ar_%d_%T_%U.bak';

backup current controlfile format '/home/oracle/backup/control_%d_%T_%U.bak';

release channel c1;

release channel c2;

}

传输文件

目标端

su - oracle

mkdir -p /home/oracle/backup

 

源端

cd /home/oracle/backup

scp * oracle@192.168.174.140:/home/oracle/backup

传输密码文件

源端

scp /u01/app/oracle/product/19c/dbhome_1/dbs/orapworcl oracle@192.168.174.140:/u01/app/oracle/product/19c/dbhome_1/dbs

目标端

准备工作

查看源端的参数文件

cat /home/oracle/backup/initorcl.ora

 

orcl.__data_transfer_cache_size=0

orcl.__db_cache_size=603979776

orcl.__inmemory_ext_roarea=0

orcl.__inmemory_ext_rwarea=0

orcl.__java_pool_size=16777216

orcl.__large_pool_size=16777216

orcl.__oracle_base='/u01/app/oracle'#ORACLE_BASE set from environment

orcl.__pga_aggregate_target=637534208

orcl.__sga_target=956301312

orcl.__shared_io_pool_size=50331648

orcl.__shared_pool_size=251658240

orcl.__streams_pool_size=0

orcl.__unified_pga_pool_size=0

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

*.audit_trail='db'

*.compatible='19.0.0'

*.control_files='/u01/app/oracle/oradata/ORCL/controlfile/o1_mf_ll1nyqb3_.ctl','/u01/app/oracle/fast_recovery_area/ORCL/controlfile/o1_mf_ll1nyqbl_.ctl'

*.db_block_size=8192

*.db_create_file_dest='/u01/app/oracle/oradata'

*.db_name='orcl'

*.db_recovery_file_dest='/u01/app/oracle/fast_recovery_area'

*.db_recovery_file_dest_size=8256m

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

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

*.memory_target=1507m

*.open_cursors=300

*.processes=320

*.remote_login_passwordfile='EXCLUSIVE'

*.undo_tablespace='UNDOTBS1'

创建参数文件中用到的目录

su - oracle

mkdir -p /u01/app/oracle/admin/orcl/adump

mkdir -p /u01/app/oracle/oradata/ORCL/controlfile

mkdir -p /u01/app/oracle/fast_recovery_area

编辑环境变量

su - oracle

export ORACLE_SID=orcl

创建spfile文件,启动数据库到nomount状态

sqlplus / as sysdba

 

create spfile from pfile='/home/oracle/backup/initorcl.ora';

startup nomount

rman设置dbid

源端使用rman连接查询dbid

image.png 

目标端

rman target /

 

# 设置dbid

set dbid=1677331735

image.png 

恢复控制文件

# 恢复控制文件

# 参数文件中指定的控制文件的路径要存在

restore controlfile from '/home/oracle/backup/control_ORCL_20231008_0b28db5v_1_1.bak';

image.png 

控制文件恢复后数据库启动到mount状态

alter database mount;

恢复数据库

rman target /

 

list backup

 

run {

allocate channel c1 device type disk;

allocate channel c2 device type disk;

allocate channel c3 device type disk;

restore database;

recover database;

}

image.png 

出现这个是正常情况,提示缺少归档日志。

启动到open状态

alter database open resetlogs;

 


发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。