Oracle基于RMAN的异构迁移测试

举报
寒六先生 发表于 2021/03/01 13:55:53 2021/03/01
【摘要】 说明: 1.本文仅是闲暇时间,所做的一次迁移尝试,没有理论依据,不做实际项目实施参考,以此记录以备后查; 2.先说结论,此次通过RMAN备份,进行跨OS平台迁的移测试失败~_~; 3.正确的操作方式,参考本人的另一篇实践手记:https://bbs.huaweicloud.com/blogs/242955

说明:

  1. 本文仅是闲暇时间,所做的一次迁移尝试,没有理论依据,不做实际项目实施参考,以此记录以备后查;

  2. 先说结论,此次通过RMAN备份,进行跨OS平台迁的移测试失败~_~;

  3. 正确的操作方式,参考本人的另一篇实践手记:https://bbs.huaweicloud.com/blogs/242955

环境说明:

源主机:操作系统:Redhat Enterprise Linux Server 6.5

              数据库:Oracle 11G Release 11.2.0.1.0 RAC

              存储方式:ASM(Auto Storage Manager)

目标主机:操作系统:Windows Server 2008 R2 SP1

                  数据库:Oracle 11G Release 11.2.0.3.0

                  存储方式:文件系统

操作过程:

1.Linux平台上的数据库的备份
 --备份脚本如下:
run {
allocate channel t1 type disk;
backup incremental level 0
skip inaccessible
format '/oracle/orabak/orcl/data/bak_%s_%p_%T_%d'
database plus archivelog
format '/oracle/orabak/orcl/arch/arc_%s_%p_%t_%d'
delete input;
delete obsolete;
release channel t1;
}


2.复制备份集到目标主机
 --可以通过linux的mount去挂载Windows服务器的共享目录,然后复制到Windows平台:
mount -t cifs -o username='admin',password='password' 192.168.10.52:/ftp_share /media/cifs
cd /media/cifs
cp -r /oracle/orabak/orcl ./


3.目标端数据库恢复
3.1.在目标机器上使用dbca创建一个数据库,使用和源数据库相同的SID:
dbca
创建完成后删除该数据库的相应数据文件:
sqlplus "/as sysdba"
SQL> shutdown immediate
del orcl/datafile
del database/spfile

C:\Users\Administrator>net start oracleserviceorcl
请求的服务已经启动。


3.2.恢复参数文件:
 --使用RMAN启动数据库到nomount状态下:
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+  --此处报错,错误信息如下:
+ RMAN> startup nomount;
+
+  --启动失败: ORA-01078: failure in processing system parameters
+ LRM-00109: ???????????????? 'D:\APP\ADMINISTRATOR\PRODUCT\11.2.0\DBHOME_1\DATABASE\INITORCL.ORA'
+  
+  --在没有参数文件的情况下启动 Oracle 实例以检索 spfile
+ RMAN-00571: ===========================================================
+ RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
+ RMAN-00571: ===========================================================
+ RMAN-03002: startup 命令 (在 10/29/2019 16:56:15 上) 失败
+ RMAN-04014: 启动失败: ORA-04031: unable to allocate 1048608 bytes of shared memory ("shared pool","unknown object","sga heap(1,0)","row cache")
+
+  --这个错误,这是因为数据库的BUG,解决方法如下:
+  set ORA_RMAN_SGA_TARGET=350
+
+  --再次在RMAN里启动数据库到nomount状态下成功,然后尝试恢复spfile:
+ RMAN> restore spfile from 'd:\orcl\data\back_8_1_20191027_ORCL';
+ 通道 ORA_DISK_1: 从 AUTOBACKUP 还原 SPFILE 已完成
+ 完成 restore 于 29-10月-19
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++


3.3.修改参数文件中相应的RAC信息后,用新pfile启动数据库:
 --先根据之前恢复出来的spfile创建一个pfile,然后再修改:
SQL> create pfile from spfile;

 --这是改完之后的pfile文件:
*.audit_file_dest='D:\app\Administrator\admin\orcl\adump'
*.audit_trail='db'
*.cluster_database=false
*.compatible='11.2.0.0.0'
*.control_files='D:\app\oradata\orcl\control01.ctl','D:\app\Administrator\fast_recovery_area\orcl\control02.ctl'
*.db_block_size=8192
*.db_domain=''
*.db_name='orcl'
*.db_recovery_file_dest_size=8589934592
*.log_archive_format='%t_%s_%r.dbf'
*.memory_target=3300917248
*.open_cursors=300
*.processes=150
*.remote_login_passwordfile='exclusive'

 --修改pfile后,再用pfile将数据库启动到nomount状态下:
SQL> shutdown immediate
SQL> startup nomount pfile='D:\app\Administrator\product\11.2.0\dbhome_1\database\INITorcl.ORA'


3.4.恢复控制文件
 --使用以下命令恢复控制文件:
RMAN> restore controlfile from 'd:\orcl\data\back_8_1_20191027_ORCL';
输出文件名=D:\APP\ORADATA\ORCL\CONTROL01.CTL
输出文件名=D:\APP\ADMINISTRATOR\FAST_RECOVERY_AREA\ORCL\CONTROL02.CTL
完成 restore 于 29-10月-19

 --改变数据库的状态到mount状态:
RMAN> alter database mount;
数据库已装载
释放的通道: ORA_DISK_1


3.5.修改原数据库的数据文件、重做日志、临时文件的路径:
 --查看原数据库文件路径信息:
SQL> col name format a50;
SQL> col file# format 999999;
SQL> set linesize 120;
SQL> select file#,name from v$datafile;
FILE# NAME
------- --------------------------------------------

     1 +DATA/orcl/datafile/system.256.893622071
     2 +DATA/orcl/datafile/sysaux.257.893622071
     3 +DATA/orcl/datafile/undotbs1.258.893622073
     4 +DATA/orcl/datafile/users.259.893622073
     5 +DATA/orcl/datafile/undotbs2.264.893622239

SQL> select member from v$logfile;
MEMBER
----------------------------------------------
+DATA/orcl/onlinelog/group_2.262.893622155
+FRA/orcl/onlinelog/group_2.258.893622157
+DATA/orcl/onlinelog/group_1.261.893622153
+FRA/orcl/onlinelog/group_1.257.893622155
+DATA/orcl/onlinelog/group_3.265.893622295
+FRA/orcl/onlinelog/group_3.259.893622295
+DATA/orcl/onlinelog/group_4.266.893622297
+FRA/orcl/onlinelog/group_4.260.893622297
已选择8行。

SQL> select name from v$tempfile;
NAME
----------------------------------------------
+DATA/orcl/tempfile/temp.263.893622161

 --以新命名的路径恢复数据文件:
run{
set until sequence 57 thread 1;
set newname for datafile 1 to 'D:\app\oradata\orcl\system01.dbf';
set newname for datafile 2 to 'D:\app\oradata\orcl\sysaux01.dbf';
set newname for datafile 3 to 'D:\app\oradata\orcl\undotbs1.dbf';
set newname for datafile 4 to 'D:\app\oradata\orcl\users01.dbf';
set newname for datafile 5 to 'D:\app\oradata\orcl\undotbs02.dbf';
set newname for tempfile 1 to 'D:\app\oradata\orcl\temp01.dbf';
restore database from 'D:\orcl\data\back_7_1_20191027_ORCL';
switch datafile all;
}

 --此处报错,错误信息如下:
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
启动 restore 于 30-10月-19
使用目标数据库控制文件替代恢复目录
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: SID=96 设备类型=DISK

RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: restore 命令 (在 10/30/2019 09:34:37 上) 失败
RMAN-06509: 只有 SPFILE 或控制文件才能从 AUTOBACKUP 还原
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Google查了一下,大致确认是数据在不同OS下存储的格式问题,RMAN的备份,是无法直接在异构OS平台下直接使用的;

在做了一些尝试,无法解决这个问题,最后还是放弃了直接使用RMAN备份,进行跨平台恢复的方法了;

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。