Oracle rman异机全备份恢复
事件背景:因电子税务局预生产数据库从vmware 迁往华三平台,数据丢失风险增加,需要将预生产数据库异机备份恢复到别的vmware平台的机器上,以防机器数据丢失。
源主机:87.12.74.129
目的主机:87.12.67.113
一、查看机器的归档状态
登录目的机器和源机器切入 oracle 用户下,使用 命令 sqlplus / as sysdba 进入数据库界面查看是否开启归档。
可以看到各自的归档状态是处于打开的状态,如果归档没打开,则要先打开归档。
二、源机器进行rman全备
87.12.74.129的oracle 用户下进行rman全备操作,全备涉及以下四个部分:具体的数据文件(类似表空间文件之类的)、归档的日志文件、控制文件、pfile文件。
87.12.74.129 oracle用户瞎使用rman target / 登录,使用一下命令操作:
RMAN>
run
{
allocate channel f1 device type disk;
allocate channel f2 device type disk;
allocate channel f3 device type disk;
allocate channel f4 device type disk;
sql 'alter system archive log current';
sql 'alter system archive log current';
sql 'alter system archive log current';
BACKUP AS COMPRESSED BACKUPSET DATABASE format '/u01/rman_bak/full_%d_%T_%U.bak';
backup as compressed backupset archivelog all format '/u01/rman_bak/arch_%d_%T_%U.arc';
backup current controlfile format '/u01/rman_bak/control_%d_%T_%U.ctl';
sql "create pfile=''/u01/rman_bak/pfile.ora'' from spfile";
release channel f1;
release channel f2;
release channel f3;
release channel f4;
}
全备完成后,在源机器上相关的目录 /u01/rman_bak 下会有一下的文件:
三、传输备份至要恢复的主机上
这时候,源机器的全备就完成了,接下来把该目录下的文件通过scp命令全部传送到目的机器下,建议在目的机器下也建 /u01/rman_bak 的目录,并注意属主、属组也要和源机器上保持一样。
四、传输密码文件至异机
传送此文件后,目的机器恢复后,登录的账号密码会和源机器的账号密码一样。
五、查看pfile 文件,并根据文件内容在目的机器上进行相关目录的创建
为了后续操作的方便,最好保证源地址和目的地址两边的的相关目录一样,这样会备份恢复更便捷。
mkdir -p /orahome/app/oracle/admin/prod/adump
mkdir -p /oradata/fast_recovery_area/
mkdir -p /orahome/archivelog
mkdir -p /orahome/app/oracle/oradata/prod/
六、异机安装数据库软件及监听
这部分其实就是在目的机器上也安装有oracle服务器,在这里,我们的目的机器已经安装oracle了,这步骤省略。
七、异机启动nomount
异机87.12.67.113 将备份传送过来的pfile.ora 文件复制到相关的dbs 目录下。
将oracle服务关闭后,启动至nomount状态
八、恢复控制文件
使用以下命令进行恢复控制文件
RMAN> restore controlfile from '/oradata/rman/control_WSSB_20221212_c71f6hld_1_1.ctl';
九、启动mount恢复数据
RMAN>
run
{
allocate channel c1 device type disk;
allocate channel c2 device type disk;
allocate channel c3 device type disk;
allocate channel c4 device type disk;
restore database;
SWITCH DATAFILE ALL;
release channel c1;
release channel c2;
release channel c3;
release channel c4;
}
十、RECOVER 数据
注意:每个报错解释可能都不一样,然后主要说下具体的情况,但出现的情况不一样,这边遇到的情况是源机器上,有进程把归档给删了,导致归档放过去备份没恢复,所以先在源机器上进行归档日志删除的恢复先,具体命令如下图:
恢复完后,把源机器的归档日志拷贝到目标主机。
RMAN> catalog start with '/oradata/rman/';
RMAN> recover database;
或者
RMAN> recover databaseuntil scn ‘提示错误的那个scn号’;
进行恢复即可
十一、Open 验证数据
后续自行账号登录进行相关数据查询比对即可。
可参考一下网站:https://blog.51cto.com/liufengleo/2899435
标签:机器,备份,异机,归档,oracle,rman,_%,channel From: https://blog.51cto.com/u_12092988/5980294