使用rman迁移数据库到异机

迁移数据库的方法有多种,较为常用的则是使用RMAN来迁移。使用RMAN迁移数据库属于数据库的物理备份与恢复范畴,整个过程中数据库的相关信息是完整地镜像。因此,基于此种方式还原恢复的数据库用于测试会使得与真实的生产环境差异相对较小。

一、主要步骤
     1、备份数据库
     2、拷贝备份到目的服务器
     3、为目标数据库创建项目目录
     4、为目标数据库创建pfile或spfile(使用RMAN还原或复制原pfile到目的服务器)
     5、还原控制文件
     6、还原数据文件
     7、OPEN 数据库

二、迁移演示

目的:将在一台机器的orcl数据库迁移到另一台机器上

1. 备份数据库:

    备份脚本参考:RMAN的实战篇--备份脚本

2. 将用RAMN备份的文件拷贝到目标服务器上。

  这里使用scp的方式拷贝到异机

scp -r 20161231/  oracle@192.168.0.92:/u02/database/orcl/backup/rman/

3. 创建目录

mkidr -p /u01/app/oracle/oradata/orcl
mkdir -p /u01/app/oracle/flash_recovery_area

mkdir -p /u01/app/oracle/flash_recovery_area/orcl

mkdir -p /u01/app/oracle/oradata/orcl
mkdir -p /u01/ARCHLOG
mkdir -p /u02/ARCHLOG
mkdir -p /u03/ARCHLOG
mkdir -p /u01/app/oracle/admin/orcl/dpdump
mkdir -p /u01/app/oracle/admin/orcl/adump

mkdir -p /u01/orcl/onlinelog/

mkdir -p /u02/orcl/onlinelog/

mkdir -p /u03/orcl/onlinelog/

4.创建密码文件

[[email protected] ~]$ orapwd file=orapworcl password=oracle force=y entries=10

5、使用pfile启动实例到nomount状态

[[email protected] dbs]$ cp /u02/database/orcl/backup/rman/20161231/initorcl.ora $ORACLE_HOME/dbs
[[email protected] dbs]$ export ORACLE_SID=orcl
SQL> startup nomount;

注意检查参数文件中的目录是否都建立了。

6. 恢复控制文件并切换到mount状态

RMAN> restore controlfile from ‘/u02/database/orcl/backup/rman/20161231/cntl_lev0.bak‘;

启动 restore 于 30-12月-16
使用通道 ORA_DISK_1

通道 ORA_DISK_1: 已复制控制文件副本
输出文件名=/u01/app/oracle/oradata/orcl/control01.ctl
输出文件名=/u01/app/oracle/flash_recovery_area/orcl/control02.ctl
完成 restore 于 30-12月-16

RMAN> alter database mount;

数据库已装载
释放的通道: ORA_DISK_1

7. 指定备份文件所在目录

RMAN> catalog start with ‘/u02/database/orcl/backup/rman/20161231‘;

8. 还原数据库

RMAN> restore database;

9.恢复数据库

SQL> conn / as sysdba 

SQL> recover database until cancel;
ORA-00283: recovery session canceled due to errors
ORA-01610: recovery using the BACKUP CONTROLFILE option must be done

SQL> recover database using backup controlfile until cancel;
********
....
Specify log: {<RET>=suggested | filename | AUTO | CANCEL}
  cancel      #输入cancel,完成介质恢复
  Media recovery cancelled.  

10. open数据库

SQL> alter database open resetlogs;  

11.一致性关闭数据库并重启数据库

SQL> shutdown immediate;  

SQL> startup 

#如果open 不成功,请尝试shutdown 之后再次open,如果仍然不成功使用隐藏参数_allow_resetlogs_corruption打开数据库

SQL> alter system set "_allow_resetlogs_corruption"=true scope=spfile;

System altered.

SQL> startup force
ORACLE instance started.

Total System Global Area  285212672 bytes
Fixed Size                    1218992 bytes
Variable Size                   88082000 bytes
Database Buffers          192937984 bytes
Redo Buffers                    2973696 bytes
Database mounted.
ORA-01589: must use RESETLOGS or NORESETLOGS option for database open

SQL> alter database open resetlogs;

Database altered.

SQL> alter system set "_allow_resetlogs_corruption"=false scope=spfile;

System altered.

SQL> shut immediate
时间: 2024-10-07 05:30:01

使用rman迁移数据库到异机的相关文章

rman备份恢复到异机报ORA-01110 ORA-01180错误

[[email protected] ORACLE]$ rman target / Recovery Manager: Release 10.2.0.5.0 - Production on Thu Jul 31 13:51:40 2014 Copyright (c) 1982, 2007, Oracle.  All rights reserved. connected to target database (not started) RMAN> set dbid 1619708557 execu

linux下只有rman备份集的异机不同目录恢复

昨天在客户那里做了一次rman异机的恢复,把生产库弄一份给测试库用,总库大概80G,总共花费了2个小时,当时客户的环境是windows 11.2.0.3,今天早晨在linux下重新测试了一下,记录下来供大家参考 环境: 所有操作都是按主机名区分 源库: 主机名  bre1  实例名为bre1  数据文件目录在/u01/app/oradata下 目标库: 主机名 bre2   数据文件准备放在/bre1/oradata下 废话不多说,下面是实际操作步骤 1.在源库创建备份集,并且拷贝到目标库 拷贝

RMAN备份策略与异机恢复一例

实验环境: A机器(生产用途):RHEL 6.5 + Oracle 11.2.0.4 + IP Address 192.168.1.11 B机器(备机用途):RHEL 6.5 + Oracle 11.2.0.4 + IP Address 192.168.1.61 需求: A机器RMAN备份完成后自动传输备份文件到B机器.防止A机器本身硬件Crash无法恢复造成核心数据库无法恢复的窘境.而且在B机器可以将数据异机恢复到任意时间点. 注意:因为要求备份完毕后直接脚本命令自动传输到异机备份目录,所以需

linux下仅仅有rman备份集的异机不同文件夹恢复

昨天在客户那里做了一次rman异机的恢复,把生产库弄一份给測试库用,总库大概80G,总共花费了2个小时,当时客户的环境是windows 11.2.0.3,今天早晨在linux下又一次測试了一下,记录下来供大家參考 环境: 全部操作都是按主机名区分 源库: 主机名  bre1  实例名为bre1  数据文件文件夹在/u01/app/oradata下 目标库: 主机名 bre2   数据文件准备放在/bre1/oradata下 废话不多说,以下是实际操作步骤 1.在源库创建备份集,而且复制到目标库

RMAN迁移数据库(不改变文件目录)

1.目标库创建相应目录mkdir -p /u01/app/oracle/oradata/orclmkdir -p /u01/app/oracle/fast_recovery_area/ORCLmkdir -p /u01/app/oracle/admin/orcl/{a,dp}dump 2.目标库创建密码文件orapwd file=orapworcl password=oracle 3.原库备份RMAN> backup as compressed backupset database plus a

基于RMAN从活动数据库异机克隆(rman duplicate from active DB)

Oracle 11g RMAN能够实现基于活动数据库进行异机克隆,从而省去需要先备份再ftp到辅助服务器的过程.这一切可以全部交给Oracle来搞定.在克隆期间,Oracle会读取Target DB的所有数据结构,无须人为的干预(不同的磁盘系统,文件路径与文件名要指定转换方式).尽管如此,对于生产环境数据库在整个克隆期间性能会下降,其次在Target Server与Auxiliary Server中会产生较大的网络流量.如果这些可以接受的话,从活动数据库进行异机克隆是一个不错的选择.本文首先描述

冷备份恢复与异机还原

冷备份发生在数据库关闭状态下,直接拷贝物理文件的备份方式,备份数据库可以运行在归档模式,也可以运行在非归档模式. 备份流程: 1)首先在运行的库中得到运行的所有文件. 主要备份文件:passwordfile.spfile.controlfile.datafile.tempfile.logfile 2)然后计划内关闭数据库,一般在晚上无人访问时关闭. 3)拷贝物理文件到指定备份路径或设备. 4)拷贝完成,立即启动数据库,使其正常工作. 备份脚本: spool /u01/app/oracle/jia

RMAN数据库异机迁移步骤

--RMAN数据库异机迁移步骤----------------------------2013/09/28 测试环境:AIX+ora11g   一. source数据库准备.   1.获取数据文件编号和路径   SQL> select file_id,file_name from dba_data_files order by file_id;      FILE_ID FILE_NAME ---------- ------------------------------------------

rman 冷备份异机迁移

rman 作为 oracle 推荐的备份.恢复方式,我们常使用它来进行异机迁移数据库. 网上的攻略都是 rman 的热备份异机迁移,相比冷备份的异机迁移需要多备份归档(未归档)日志文件.联机日志文件,操作步骤较为复杂. 如果是可以停机的数据库,更推荐使用 mount 方式下的冷备份来做异机迁移. 写了一个迁移文件,以备后用. Part1 Env { 'first database':{ 'os':'suse11' 'oracle_version':'11gr2' } 'second databa