Oracle-rman异机恢复
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
目标端
rman target /
# 设置dbid
set dbid=1677331735
恢复控制文件
# 恢复控制文件
# 参数文件中指定的控制文件的路径要存在
restore controlfile from '/home/oracle/backup/control_ORCL_20231008_0b28db5v_1_1.bak';
控制文件恢复后数据库启动到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;
}
出现这个是正常情况,提示缺少归档日志。
启动到open状态
alter database open resetlogs;