首页 > 数据库 >oracle 如何进行异机备份

oracle 如何进行异机备份

时间:2022-12-30 15:34:55浏览次数:64  
标签:机器 备份 异机 归档 oracle rman _% channel

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

相关文章