使用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.创建密码文件
[oracle@oracledb ~]$ orapwd file=orapworcl password=oracle force=y entries=10
5、使用pfile启动实例到nomount状态
[oracle@oracledb dbs]$ cp /u02/database/orcl/backup/rman/20161231/initorcl.ora $ORACLE_HOME/dbs
[oracle@oracledb 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
使用rman迁移数据库到异机的更多相关文章
- 使用不同用户对Oracle数据库进行异机恢复,失败,错误:Backup file not found in NetBackup catalog
最近做某数据库恢复演练,数据库版本是10.2.0.4,恢复控制文件一直报错,报错如下,经过反复折腾,原来恢复机上oracle用户不是oracle导致(我的是oraclev4),查看源库oracle用户 ...
- RMAN备份策略与异机恢复一例(续篇)
本文是<RMAN备份策略与异机恢复一例>的续篇,继续实验验证,最终实现两个需求: 1.异机恢复临时测试的小库 2.传输归档时,实现增量传输 1.异机恢复临时测试的小库 之前异机恢复的需求已 ...
- RMAN备份策略与异机恢复一例
实验环境: A机器(生产用途):RHEL 6.5 + Oracle 11.2.0.4 + IP Address 192.168.1.11 B机器(备机用途):RHEL 6.5 + Oracle 11. ...
- openStack 重新resize时会进行重新调度,可能在本机Resize 扩展资源,也可能存在的情况时 ,新扩展的资源在当前节点不足分配,整个虚拟机将进行迁移调度,进行异机迁移时需要迁移 的两台主机间能使用nova系统用户经passless登录
openStack 重新resize时会进行重新调度,可能在本机Resize 扩展资源,也可能存在的情况时 ,新扩展的资源在当前节点不足分配,整个虚拟机将进行迁移调度,进行异机迁移时需要迁移 的两台主 ...
- linux下仅仅有rman备份集的异机不同文件夹恢复
昨天在客户那里做了一次rman异机的恢复,把生产库弄一份给測试库用,总库大概80G,总共花费了2个小时,当时客户的环境是windows 11.2.0.3,今天早晨在linux下又一次測试了一下,记录下 ...
- RMAN迁移数据库(不改变文件目录)
1.目标库创建相应目录mkdir -p /u01/app/oracle/oradata/orclmkdir -p /u01/app/oracle/fast_recovery_area/ORCLmkdi ...
- 基于RMAN从活动数据库异机克隆(rman duplicate from active DB)
Oracle 11g RMAN能够实现基于活动数据库进行异机克隆,从而省去需要先备份再ftp到辅助服务器的过程.这一切可以全部交给Oracle来搞定.在克隆期间,Oracle会读取Target DB的 ...
- 基于RMAN的异机数据库克隆(rman duplicate)
对于基于生产环境下的数据库的版本升级或者测试新的应用程序的性能及其影响,备份恢复等等,我们可以采取从生产环境以克隆的方式将其克隆到本地而不影响生产数据库的正常使用.实现这个功能我们可以借助rman d ...
- Oracle备份恢复之冷备份恢复与异机还原
(同平台:rhel6.4~rhel6.4:同版本:oracle 11g 11.2.0.1~ oracle 11g 11.2.0.1) 冷备份发生在数据库关闭状态下,直接拷贝物理文件的备份方式,备份数据 ...
随机推荐
- AFNetworking 3.0+ 启用完整、严格的https证书较验参考代码
// 1.初始化单例类 AFHTTPSessionManager *manager = [AFHTTPSessionManager manager]; manager.securit ...
- C#编程利器之二:结构与枚举(Structure and enumeration)【转】
C#编程利器之二:结构与枚举(Structure and enumeration) 在上一篇文章中,介绍了类如何封装程序中的对象.而实际中,出了类可以封装对象外,结构和枚举也可以封装一些对象,本文将着 ...
- Android studio VT-x is disabled
执行app run的时候,android studio提示了这个问题,导致虚拟机没法用,这是因为电脑的Virtualization(虚拟化)没有打开导致的.但是有的电脑并没有这个功能,所以先下载个se ...
- django静态文件数据库设置
STATIC_URL = '/static/'STATICFILES_DIRS = ( os.path.join(BASE_DIR,'static')) DATABASES = { ...
- jquery一个按钮全选和反选
1.jquery实现复选框全选和反选的方式有好几种,今天遇到一个问题,只用下边的方式生效:function checkAll(){ var check=$('#check_all').is(':che ...
- Azure Table storage 之改进DynamicTableEntity类为其添加动态语言扩展
在之前的一篇文章中提到,storage类库中包含一个可以用来动态获取Azure table storage 表结构的类-DynamicTableEntity. 我们可以通过这个类,我们无需为每一个表提 ...
- popUpWindow 动画无法超出窗体的解决方案
popupWindow 做动画时,当要求有一个放大动画时,动画无法超出窗体,给人的感觉是只有内容在放大,窗体不动. 这是由于窗口大小固定的原因,解决方案是加大popUpwindow的 大小. 一个比较 ...
- 【转】Struts1.x系列教程(3):属性(资源)文件乱码问题的解决之道
转载地址:http://www.blogjava.net/nokiaguy/archive/2009/01/archive/2009/01/archive/2009/01/14/251244.html ...
- 读取NfcA格式数据
如何读取数据? Tag tagFromIntent = intent.getParcelableExtra(NfcAdapter.EXTRA_TAG); NfcA nfcA = NfcA.get(ta ...
- Unity-The Courtyard demo学习
1.编辑器相机同步 The Courtyard的demo中,会发现Scene视图和Game视图是编辑器下同步的,它通过一个CopySceneView.cs脚本实现 Scene视图和Game视图的显示效 ...