使用RMAN移动数据库

使用RMAN移动数据库

步骤如下:

1、在原库上使用rman备份数据库
2、拷贝备份片到目标的机器
3、创建备份片存放目录
4、恢复参数/控制文件
5、restore数据库
6、recover数据库
7增量恢复


1、在原库上使用rman备份数据库


RMAN>backup database;

2、拷贝备份片到目标的机器

通过list backupset查看那些需要拷贝(数据库备份片,控制文件与参数文件)

rsync -avzR /oracle/app/db/dbs/05qcgura_1_1  10.1.1.146:/
rsync -avzR /oracle/app/db/dbs/04qcgufs_1_1  10.1.1.146:/ --grogress
rsync -avzR /oracle/app/db/dbs/06qcgvtn_1_1  10.1.1.146:/ --progress


3、创建数据文件对应的目录

和源库对应,就不需要set newname for datafile 'xxx' to 'xxx';

mkdir -p /oradata/vicl
chmod -R 775 /oradata/vicl
chown -R oracle.oinstall /oradata/vicl

4、恢复参数/控制文件

先启动到nomount为rman的恢复做准备

export ORACLE_SID=vicl12

vi initvicl.ora
db_name=vicl

SQL> startup nomount pfile='/oradata/vicl/initvicl.ora'

--使用rman恢复spfile
restore spfile to '/oracle/app/db/dbs/spfilevicl.ora' from '/oracle/app/db/dbs/06qcgvtn_1_1';

--使用rman恢复controlfile
restore controlfile to '/oradata/vicl/control01.ctl' from '/oracle/app/db/dbs/04qcgufs_1_1';
 
--使用恢复的spfile登录
shut abort
startup nomunt 

5、restore数据库

注册数据库备份片的位置,开始恢复数据库
RMAN> catalog start with '/oracle/app/db/dbs/05qcgura_1_1';
RMAN> restore database;

6、recover数据库

在sqlplus中使用
recover database using backup controlfile until cancel; 做不完全恢复   

alter database open resetlogs;   

完成移动!

7增量恢复

但再实际生产过程中,移动完数据库之后,原数据库可能会产生新的数据文件,所以再移动完之后需要做增量恢复;

查询目标库需要哪些归档用作恢复(在目标库上操作)

SQL> select sequence# from v$log; 目标

 SEQUENCE#
----------
	 1
	 2
	 0
查询原数据库的最后的数据
SQL> select sequence# from v$log;原

 SEQUENCE#
----------
         4
         2
         3
需要恢复的数据是2到4之间的数据;

原库上操作

RMAN> backup archivelog sequence between 2 and 4;

Starting backup at 20-JUL-15
using target database control file instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=46 device type=DISK
allocated channel: ORA_DISK_2
channel ORA_DISK_2: SID=32 device type=DISK
channel ORA_DISK_1: starting archived log backup set
channel ORA_DISK_1: specifying archived log(s) in backup set
input archived log thread=1 sequence=2 RECID=2 STAMP=885567155
channel ORA_DISK_1: starting piece 1 at 20-JUL-15
channel ORA_DISK_2: starting archived log backup set
channel ORA_DISK_2: specifying archived log(s) in backup set
input archived log thread=1 sequence=3 RECID=3 STAMP=885580629
channel ORA_DISK_2: starting piece 1 at 20-JUL-15
channel ORA_DISK_2: finished piece 1 at 20-JUL-15
piece handle=/oracle/app/db/dbs/09qchpdk_1_1 tag=TAG20150720T184713 comment=NONE
channel ORA_DISK_2: backup set complete, elapsed time: 00:00:16
channel ORA_DISK_1: finished piece 1 at 20-JUL-15
piece handle=/oracle/app/db/dbs/08qchpdi_1_1 tag=TAG201RMAN> backup archivelog sequence between 2 and 4;

Starting backup at 20-JUL-15
using target database control file instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=46 device type=DISK
allocated channel: ORA_DISK_2
channel ORA_DISK_2: SID=32 device type=DISK
channel ORA_DISK_1: starting archived log backup set
channel ORA_DISK_1: specifying archived log(s) in backup set
input archived log thread=1 sequence=2 RECID=2 STAMP=850720T184713 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:38
Finished backup at 20-JUL-15

两个备份片直接拷贝

rsync -avzR /oracle/app/db/dbs/08qchpdi_1_1  10.1.1.146:/ --progress
rsync -avzR /oracle/app/db/dbs/09qchpdk_1_1  10.1.1.146:/ --progress

在目标库中对归档进行恢复RMAN

catalog start with '/oracle/app/db/dbs/09qchpdk_1_1';
catalog start with '/oracle/app/db/dbs/08qchpdi_1_1';

restore archivelog sequence between 2 and 4;



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Knuuy

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值