`
wangpengfei360
  • 浏览: 1057762 次
文章分类
社区版块
存档分类
最新评论

RMAN兼容性测试

 
阅读更多

<!--[if !supportLists]-->1 <!--[endif]-->解决方案

―――――henrybai制作。

为克服RMAN兼容性的问题,利用现有备份机146ORACLE9)备份所有需要备份的数据库(包括ORACLE9ORACLE8)。根据上面的RMAN与目标库不兼容的结论及参考ORACLE官方文档,考虑在146的机器上同时安装两个版本的RMAN。根据ORACLE官方文档中描述的各个组件的兼容性得出:当RMAN的版本与目标库的版本相同的情况下,CATALOG无论建立在ORACLE9或是ORACLE8上都可以同时保存ORACLE8ORACLE9的备份的元数据。这样做的实质只是将无论ORACLE8还是ORACLE9的备份元数据都可以保存在同一个ORACLE数据库。下面对上面的说法中包含的几种情况进行测试。

<!--[if !supportLists]-->1.1 <!--[endif]-->解决方案中包含的几种情况及具体的测试步骤:

在文档的前半部分我们针对RMAN与目标库版本和各种情况进行了测试。RMAN和目标库的版本经排列组合分为2X2有四种情况。在这部分中我们把CATALOG版本加进来,连同RMAN版本和目标库的版本,排列组合为2X2X2有八种情况。

<!--[if !supportLists]-->1.1.1 <!--[endif]-->RMAN8通过CATALOG8备份ORACLE8()

这种情况是各个组件的版本都是8的。我们不在这里详细讨论了。

<!--[if !supportLists]-->1.1.2 <!--[endif]-->RMAN8通过CATALOG9备份ORACLE8()

通过RMAN8连接到ORACLE9

恢复管理器:版本<chsdate year="1899" month="12" day="30" islunardate="False" isrocdate="False" w:st="on"><span lang="EN-US">8.1.6</span></chsdate>.0.0 - Production

RMAN>connect catalog rman/rman@ora146

RMAN-06008:连接到恢复目录数据库

连接目标库ORACLE8

RMAN>connect target sys/sys@ora52

RMAN-06005:连接到目标数据库:ORA52 (DBID=507906251)

注册数据库到恢复目录中:

RMAN>register database;

RMAN-03022:正在编译命令:register

RMAN-03023:正在执行命令:register

RMAN-08006:注册在恢复目录中的数据库

RMAN-03023:正在执行命令:full resync

RMAN-08002:正在启动全部恢复目录的 resync

RMAN-08004:完成全部 resync

建立脚本:

RMAN>replace script weekly_full_backup

2> {

3> allocate channel t1 type disk;

4> backup incremental level=0

5> format 'e:/df52_lev0%s%p.%d'

6> database filesperset=10

7> include current controlfile;

8> release channel t1;

9> }

RMAN-03022:正在编译命令:replace script

RMAN-03023:正在执行命令:replace script

RMAN-08086:已替换脚本 weekly_full_backup

执行脚本:

运行备份脚本进行备份:

RMAN>run {execute script weekly_full_backup;}

RMAN-03021:正在执行脚本:weekly_full_backup

RMAN-03022:正在编译命令:allocate

RMAN-03023:正在执行命令:allocate

RMAN-08030:分配的通道:t1

RMAN-08500通道 t1sid=14 devtype=DISK

RMAN-03022正在编译命令backup

RMAN-03023正在执行命令backup

RMAN-08008通道 t1正在启动 incremental level 0 数据文件备份集

RMAN-08502set_count=4 set_stamp=595769560 creation_time=14-7 -06

RMAN-08010通道 t1正在指定备份集中的数据文件

RMAN-08522输入数据文件 fno=00001 name=D:/ORACLE/ORADATA/ORA52/SYSTEM01.DBF

RMAN-08011备份集中包括当前控制文件

RMAN-08522输入数据文件 fno=00010 name=D:/RMAN.DBF

RMAN-08522输入数据文件 fno=00003 name=D:/ORACLE/ORADATA/ORA52/USERS01.DBF

RMAN-08522输入数据文件 fno=00006 name=D:/ORACLE/ORADATA/ORA52/INDX01.DBF

RMAN-08522输入数据文件 fno=00007 name=D:/ORACLE/ORADATA/ORA52/DR01.DBF

RMAN-08013通道 t1已创建 1

RMAN-08503 handle=E:/DF52_LEV041.ORA52 comment=NONE

RMAN-08525:备份集完成,经过时间:00:00:56

RMAN-08008:通道 t1:正在启动 incremental level 0 数据文件备份集

RMAN-08502set_count=5 set_stamp=595769616 creation_time=14-7 -06

RMAN-08010:通道 t1:正在指定备份集中的数据文件

RMAN-08522:输入数据文件 fno=00008 name=D:/ORACLE/ORADATA/ORA52/LI.DBF

RMAN-08522:输入数据文件 fno=00009 name=D:/RMAN01.DBF

RMAN-08522:输入数据文件 fno=00002 name=D:/ORACLE/ORADATA/ORA52/RBS01.DBF

RMAN-08522:输入数据文件 fno=00004 name=D:/ORACLE/ORADATA/ORA52/TEMP01.DBF

RMAN-08522:输入数据文件 fno=00005 name=D:/ORACLE/ORADATA/ORA52/TOOLS01.DBF

RMAN-08013:通道 t1:已创建 1

RMAN-08503:段 handle=E:/DF52_LEV051.ORA52 comment=NONE

RMAN-08525:备份集完成,经过时间:00:00:25

RMAN-03023:正在执行命令:partial resync

RMAN-08003:启动部分恢复目录的 resync

RMAN-08005:完成部分 resync

RMAN-03022:正在编译命令:release

RMAN-03023:正在执行命令:release

RMAN-08031:释放的通道:t1

测试结论:

备份成功

<!--[if !supportLists]-->1.1.3 <!--[endif]-->RMAN9通过CATALOG8备份ORACLE9()

连接CATALOG8

RMAN> connect catalog rman8/rman8@ORA52

连接到恢复目录数据库

PL/SQL 程序包RMAN8.DBMS_RCVCAT版本<chsdate year="1899" month="12" day="30" islunardate="False" isrocdate="False" w:st="on"><span lang="EN-US">08.01.06</span></chsdate> (RCVCAT数据库中) 太低

连接目标库ORACLE9

RMAN> connect target sys/sys@ORA146

连接到目标数据库: ORA146 (DBID=260513952)

建立备份脚本:

建立脚本:

RMAN> replace script weekly_full_backup

2> {

3> allocate channel t1 type disk;

4> backup incremental level=0

5> format 'e:/df52_lev0%s%p.%d'

6> database filesperset=10

7> include current controlfile;

8> release channel t1;

9> }

PL/SQL 程序包RMAN8.DBMS_RCVCAT版本<chsdate year="1899" month="12" day="30" islunardate="False" isrocdate="False" w:st="on"><span lang="EN-US">08.01.06</span></chsdate> (RCVCAT数据库中) 太低

PL/SQL 程序包RMAN8.DBMS_RCVCAT版本<chsdate year="1899" month="12" day="30" islunardate="False" isrocdate="False" w:st="on"><span lang="EN-US">08.01.06</span></chsdate> (RCVCAT数据库中) 太低

RMAN-00571: ===========================================================

RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============

RMAN-00571: ===========================================================

RMAN-03002: failure of replace script command at 07/14/2006 10:14:11

RMAN-06429: RCVCAT database is not compatible with this version of RMAN

升级CATALOG

RMAN> UPGRADE CATALOG;

恢复目录所有者是RMAN8

再输入一次 UPGRADE CATALOG 命令来确认目录升级

RMAN> upgrade catalog;

恢复目录已升级到版本<chsdate year="1899" month="12" day="30" islunardate="False" isrocdate="False" w:st="on"><span lang="EN-US">09.02.00</span></chsdate>

DBMS_RCVMAN 程序包升级为 <chsdate year="1899" month="12" day="30" islunardate="False" isrocdate="False" w:st="on">09.02.00</chsdate>

DBMS_RCVCAT 程序包升级为 <chsdate year="1899" month="12" day="30" islunardate="False" isrocdate="False" w:st="on">09.02.00</chsdate>

再创建备份脚本:

RMAN> replace script weekly_full_backup

2> {

3> allocate channel t1 type disk;

4> backup incremental level=0

5> format 'e:/df52_lev0%s%p.%d'

6> database filesperset=10

7> include current controlfile;

8> release channel t1;

9> }

正在启动全部恢复目录的 resync

完成全部 resync

已替换脚本 weekly_full_backup

运行脚本进行备份:

RMAN> run {execute script weekly_full_backup;}

正在执行脚本: weekly_full_backup

分配的通道: t1

通道 t1: sid=17 devtype=DISK

启动 backup 14-7 -06

通道 t1: 正在启动 incremental level 0 数据文件备份集

通道 t1: 正在指定备份集中的数据文件

在备份集中包含当前的 SPFILE

备份集中包括当前控制文件

输入数据文件 fno=00001 name=F:/ORACLE/ORADATA/ORA146/SYSTEM01.DBF

输入数据文件 fno=00010 name=F:/ORACLE/ORADATA/ORA146/XDB01.DBF

输入数据文件 fno=00006 name=F:/ORACLE/ORADATA/ORA146/INDX01.DBF

输入数据文件 fno=00003 name=F:/ORACLE/ORADATA/ORA146/CWMLITE01.DBF

输入数据文件 fno=00008 name=F:/ORACLE/ORADATA/ORA146/TOOLS01.DBF

通道 t1: 正在启动段 1 14-7 -06

通道 t1: 已完成段 1 14-7 -06

handle=E:/DF52_LEV061.ORA146 comment=NONE

通道 t1: 备份集已完成, 经过时间:00:00:37

通道 t1: 正在启动 incremental level 0 数据文件备份集

通道 t1: 正在指定备份集中的数据文件

输入数据文件 fno=00002 name=F:/ORACLE/ORADATA/ORA146/UNDOTBS01.DBF

输入数据文件 fno=00005 name=F:/ORACLE/ORADATA/ORA146/EXAMPLE01.DBF

输入数据文件 fno=00011 name=F:/ORACLE/RMAN01.DBF

输入数据文件 fno=00009 name=F:/ORACLE/ORADATA/ORA146/USERS01.DBF

输入数据文件 fno=00004 name=F:/ORACLE/ORADATA/ORA146/DRSYS01.DBF

输入数据文件 fno=00007 name=F:/ORACLE/ORADATA/ORA146/ODM01.DBF

通道 t1: 正在启动段 1 14-7 -06

通道 t1: 已完成段 1 14-7 -06

handle=E:/DF52_LEV071.ORA146 comment=NONE

通道 t1: 备份集已完成, 经过时间:00:00:35

完成 backup 14-7 -06

释放的通道: t1

测试结论:

已经备份成功了。

<!--[if !supportLists]-->1.1.4 <!--[endif]-->RMAN9通过CATALOG9备份ORACLE9()

这种情况不在我们研究的范围之内。

<!--[if !supportLists]-->1.1.5 <!--[endif]-->RMAN8通过CATALOG9备份ORACLE9()

通过RMAN8连接到CATALOG9

恢复管理器:版本<chsdate year="1899" month="12" day="30" islunardate="False" isrocdate="False" w:st="on"><span lang="EN-US">8.1.6</span></chsdate>.0.0 - Production

RMAN>connect catalog rman/rman@ora146

RMAN-06008:连接到恢复目录数据库

连接目标库ORACLE9

RMAN>connect target sys/sys@ora146

RMAN-06005:连接到目标数据库:ORA146 (DBID=260513952)

建立备份脚本:

RMAN>replace script weekly_full_backup

2> {

3> allocate channel t1 type disk;

4> backup incremental level=0

5> format 'e:/df52_lev0%s%p.%d'

6> database filesperset=10

7> include current controlfile;

8> release channel t1;

9> }

RMAN-03022:正在编译命令:replace script

RMAN-03023:正在执行命令:replace script

RMAN-08086:已替换脚本 weekly_full_backup

RMAN-10030RPC 调用似乎无法在通道default上启动

RMAN-10036:在通道default RPC 调用成功

RMAN-03026:在释放通道资源时出现错误恢复

RMAN-00571: ===========================================================

RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============

RMAN-00571: ===========================================================

RMAN-07005: error during channel cleanup

RMAN-07004: unhandled exception during command execution on channel default

RMAN-10032: unhandled exception during execution of job step 1: ORA-04062: signa

ture ( package "SYS.DBMS_BACKUP_RESTORE") 已被更改

ORA-06512: at line 28

RMAN-10035: exception raised in RPC: ORA-04062: signature ( package "SYS.DBMS_

BACKUP_RESTORE") 已被更改

RMAN-10031: ORA-4062 occurred during call to DBMS_BACKUP_RESTORE.DEVICESTATUS

运行备份脚本:

RMAN>run {execute script weekly_full_backup;}

RMAN-03021:正在执行脚本:weekly_full_backup

RMAN-03022:正在编译命令:allocate

RMAN-03023:正在执行命令:allocate

RMAN-08030:分配的通道:t1

RMAN-08500通道 t1sid=14 devtype=DISK

RMAN-03022正在编译命令backup

RMAN-03025正在执行恢复目录的部分隐式重新同步

RMAN-03023正在执行命令partial resync

RMAN-08003启动部分恢复目录的 resync

RMAN-08005完成部分 resync

RMAN-03023正在执行命令backup

RMAN-08008通道 t1正在启动 incremental level 0 数据文件备份集

RMAN-08502set_count=10 set_stamp=595778052 creation_time=14-7 -06

RMAN-08010通道 t1正在指定备份集中的数据文件

RMAN-08522输入数据文件 fno=00001 name=F:/ORACLE/ORADATA/ORA146/SYSTEM01.DBF

RMAN-08011备份集中包括当前控制文件

RMAN-08522输入数据文件 fno=00010 name=F:/ORACLE/ORADATA/ORA146/XDB01.DBF

RMAN-08522输入数据文件 fno=00006 name=F:/ORACLE/ORADATA/ORA146/INDX01.DBF

RMAN-08522输入数据文件 fno=00003 name=F:/ORACLE/ORADATA/ORA146/CWMLITE01.DBF

RMAN-08522输入数据文件 fno=00008 name=F:/ORACLE/ORADATA/ORA146/TOOLS01.DBF

RMAN-08013通道 t1已创建 1

RMAN-08503 handle=E:/DF52_LEV0101.ORA146 comment=NONE

RMAN-08525:备份集完成,经过时间:00:00:36

RMAN-08008:通道 t1:正在启动 incremental level 0 数据文件备份集

RMAN-08502set_count=11 set_stamp=595778088 creation_time=14-7 -06

RMAN-08010:通道 t1:正在指定备份集中的数据文件

RMAN-08522:输入数据文件 fno=00002 name=F:/ORACLE/ORADATA/ORA146/UNDOTBS01.DBF

RMAN-08522:输入数据文件 fno=00005 name=F:/ORACLE/ORADATA/ORA146/EXAMPLE01.DBF

RMAN-08522:输入数据文件 fno=00011 name=F:/ORACLE/RMAN01.DBF

RMAN-08522:输入数据文件 fno=00009 name=F:/ORACLE/ORADATA/ORA146/USERS01.DBF

RMAN-08522:输入数据文件 fno=00004 name=F:/ORACLE/ORADATA/ORA146/DRSYS01.DBF

RMAN-08522:输入数据文件 fno=00007 name=F:/ORACLE/ORADATA/ORA146/ODM01.DBF

RMAN-08013:通道 t1:已创建 1

RMAN-08503:段 handle=E:/DF52_LEV0111.ORA146 comment=NONE

RMAN-08525:备份集完成,经过时间:00:00:35

RMAN-03023:正在执行命令:partial resync

RMAN-08003:启动部分恢复目录的 resync

RMAN-08005:完成部分 resync

RMAN-03022:正在编译命令:release

RMAN-03023:正在执行命令:release

RMAN-08031:释放的通道:t1

RMAN-10030RPC 调用似乎无法在通道default上启动

RMAN-10036:在通道default RPC 调用成功

RMAN-03026:在释放通道资源时出现错误恢复

RMAN-00571: ===========================================================

RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============

RMAN-00571: ===========================================================

RMAN-07005: error during channel cleanup

RMAN-07004: unhandled exception during command execution on channel default

RMAN-10032: unhandled exception during execution of job step 1: ORA-04062: signa

ture ( package "SYS.DBMS_BACKUP_RESTORE") 已被更改

ORA-06512: at line 28

RMAN-10035: exception raised in RPC: ORA-04062: signature ( package "SYS.DBMS_

BACKUP_RESTORE") 已被更改

RMAN-10031: ORA-4062 occurred during call to DBMS_BACKUP_RESTORE.DEVICESTATUS

测试结论:

在建立脚本和运行脚本的过程中都产生了兼容性问题,都是在释放通道时报错。但备份的文件已经产生。能否好用还要对结果进行恢复测试。

<!--[if !supportLists]-->1.1.6 <!--[endif]-->RMAN8通过CATALOG8备份ORACLE9()

通过RMAN8连接到CATALOG8

恢复管理器版本<chsdate year="1899" month="12" day="30" islunardate="False" isrocdate="False" w:st="on"><span style="" lang="FR">8.1.6</span></chsdate>.0.0 – Production

RMAN>connect catalog rman8/rman8@ora52

RMAN-06008:连接到恢复目录数据库

连接到目标数据库ORACLE9

RMAN>connect target sys/sys@ora146

RMAN-06005:连接到目标数据库:ORA146 (DBID=260513952)

建立备份脚本:

RMAN>replace script weekly_full_backup

2> {

3> allocate channel t1 type disk;

4> backup incremental level=0

5> format 'e:/df52_lev0%s%p.%d'

6> database filesperset=10

7> include current controlfile;

8> release channel t1;

9> }

RMAN-03022正在编译命令replace script

RMAN-03023正在执行命令replace script

RMAN-08086已替换脚本 weekly_full_backup

RMAN-10030RPC 调用似乎无法在通道default上启动

RMAN-10036在通道default RPC 调用成功

RMAN-03026在释放通道资源时出现错误恢复

RMAN-00571: ===========================================================

RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============

RMAN-00571: ===========================================================

RMAN-07005: error during channel cleanup

RMAN-07004: unhandled exception during command execution on channel default

RMAN-10032: unhandled exception during execution of job step 1: ORA-04062: signa

ture ( package "SYS.DBMS_BACKUP_RESTORE") 已被更改

ORA-06512: at line 28

RMAN-10035: exception raised in RPC: ORA-04062: signature ( package "SYS.DBMS_

BACKUP_RESTORE") 已被更改

RMAN-10031: ORA-4062 occurred during call to DBMS_BACKUP_RESTORE.DEVICESTATUS

运行备份脚本:

RMAN>run {execute script weekly_full_backup;}

RMAN-03021正在执行脚本weekly_full_backup

RMAN-03022正在编译命令allocate

RMAN-03023正在执行命令allocate

RMAN-08030分配的通道t1

RMAN-08500:通道 t1sid=24 devtype=DISK

RMAN-03022:正在编译命令:backup

RMAN-03025:正在执行恢复目录的部分隐式重新同步

RMAN-03023:正在执行命令:partial resync

RMAN-08003:启动部分恢复目录的 resync

RMAN-08005:完成部分 resync

RMAN-03023:正在执行命令:backup

RMAN-08008:通道 t1:正在启动 incremental level 0 数据文件备份集

RMAN-08502set_count=12 set_stamp=595778761 creation_time=14-7 -06

RMAN-08010:通道 t1:正在指定备份集中的数据文件

RMAN-08522:输入数据文件 fno=00001 name=F:/ORACLE/ORADATA/ORA146/SYSTEM01.DBF

RMAN-08011:备份集中包括当前控制文件

RMAN-08522:输入数据文件 fno=00010 name=F:/ORACLE/ORADATA/ORA146/XDB01.DBF

RMAN-08522:输入数据文件 fno=00006 name=F:/ORACLE/ORADATA/ORA146/INDX01.DBF

RMAN-08522:输入数据文件 fno=00003 name=F:/ORACLE/ORADATA/ORA146/CWMLITE01.DBF

RMAN-08522:输入数据文件 fno=00008 name=F:/ORACLE/ORADATA/ORA146/TOOLS01.DBF

RMAN-08013:通道 t1:已创建 1

RMAN-08503:段 handle=E:/DF52_LEV0121.ORA146 comment=NONE

RMAN-08525备份集完成经过时间00:00:45

RMAN-08008通道 t1正在启动 incremental level 0 数据文件备份集

RMAN-08502set_count=13 set_stamp=595778806 creation_time=14-7 -06

RMAN-08010通道 t1正在指定备份集中的数据文件

RMAN-08522输入数据文件 fno=00002 name=F:/ORACLE/ORADATA/ORA146/UNDOTBS01.DBF

RMAN-08522输入数据文件 fno=00005 name=F:/ORACLE/ORADATA/ORA146/EXAMPLE01.DBF

RMAN-08522输入数据文件 fno=00011 name=F:/ORACLE/RMAN01.DBF

RMAN-08522输入数据文件 fno=00009 name=F:/ORACLE/ORADATA/ORA146/USERS01.DBF

RMAN-08522输入数据文件 fno=00004 name=F:/ORACLE/ORADATA/ORA146/DRSYS01.DBF

RMAN-08522输入数据文件 fno=00007 name=F:/ORACLE/ORADATA/ORA146/ODM01.DBF

RMAN-08013通道 t1已创建 1

RMAN-08503 handle=E:/DF52_LEV0131.ORA146 comment=NONE

RMAN-08525:备份集完成,经过时间:00:00:35

RMAN-03023:正在执行命令:partial resync

RMAN-08003:启动部分恢复目录的 resync

RMAN-08005:完成部分 resync

RMAN-03022:正在编译命令:release

RMAN-03023:正在执行命令:release

RMAN-08031:释放的通道:t1

RMAN-10030RPC 调用似乎无法在通道default上启动

RMAN-10036:在通道default RPC 调用成功

RMAN-03026:在释放通道资源时出现错误恢复

RMAN-00571: ===========================================================

RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============

RMAN-00571: ===========================================================

RMAN-07005: error during channel cleanup

RMAN-07004: unhandled exception during command execution on channel default

RMAN-10032: unhandled exception during execution of job step 1: ORA-04062: signa

ture ( package "SYS.DBMS_BACKUP_RESTORE") 已被更改

ORA-06512: at line 28

RMAN-10035: exception raised in RPC: ORA-04062: signature ( package "SYS.DBMS_

BACKUP_RESTORE") 已被更改

RMAN-10031: ORA-4062 occurred during call to DBMS_BACKUP_RESTORE.DEVICESTATUS

测试结论:

在建立脚本和运行脚本的过程中都产生了兼容性问题,都是在释放通道时报错。但备份的文件已经产生。能否好用还要对结果进行恢复测试。

<!--[if !supportLists]-->1.1.7 <!--[endif]-->RMAN9通过CATALOG9备份ORACLE8()

通过RMAN9连接到CATALOG9

恢复管理器: 版本<chsdate year="1899" month="12" day="30" islunardate="False" isrocdate="False" w:st="on"><span lang="EN-US">9.2.0</span></chsdate>.1.0 - Production

Copyright (c) 1995, 2002, Oracle Corporation. All rights reserved.

RMAN> connect catalog rman/rman@ora146

连接到恢复目录数据库

连接目标库oracle8

RMAN> connect targer sys/sys@ora52

RMAN-00571: ===========================================================

RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============

RMAN-00571: ===========================================================

RMAN-00558: error encountered while parsing input commands

RMAN-01005: syntax error: found "identifier": expecting one of: "auxiliary, cata

log, clone, rcvcat, target"

RMAN-01008: the bad identifier was: targer

RMAN-01007: at line 1 column 9 file: standard input

RMAN> connect target sys/sys@ORA52

恢复管理器同TARGET数据库不兼容: 要求 RMAN <chsdate year="1899" month="12" day="30" islunardate="False" isrocdate="False" w:st="on">8.0.4</chsdate> 8.1.6

RMAN-00571: ===========================================================

RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============

RMAN-00571: ===========================================================

RMAN-06429: TARGET database is not compatible with this version of RMAN

测试结论:

产生兼容性问题。

<!--[if !supportLists]-->1.1.8 <!--[endif]-->RMAN9通过CATALOG8备份ORACLE8()

通过RMAN9连接到CATALOG8

恢复管理器: 版本<chsdate year="1899" month="12" day="30" islunardate="False" isrocdate="False" w:st="on"><span lang="EN-US">9.2.0</span></chsdate>.1.0 - Production

Copyright (c) 1995, 2002, Oracle Corporation. All rights reserved.

RMAN> connect catalog rman8/rman8@ora52

连接到恢复目录数据库

连接到目标库ORACLE8

RMAN> connect target sys/sys@ORA52

恢复管理器同TARGET数据库不兼容: 要求 RMAN <chsdate year="1899" month="12" day="30" islunardate="False" isrocdate="False" w:st="on">8.0.4</chsdate> 8.1.6

RMAN-00571: ===========================================================

RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============

RMAN-00571: ===========================================================

RMAN-06429: TARGET database is not compatible with this version of RMAN

<!--[if !supportLists]-->1.2 <!--[endif]-->解决方案的分析

为了对版本兼容性进行全面考查,我们把CATALOG版本连同RMAN版本和目标库的版本,排列组合为2X2X2有八种情况。下面对这八种情况进行分析。

<!--[if !supportLists]-->一、 <!--[endif]-->第一种和第四种不在我们研究的范围之内,是相同版本之间的备份。

<!--[if !supportLists]-->二、 <!--[endif]-->第七种和第八种是版本不兼容根本无法连接的情况,我们无法继续。

<!--[if !supportLists]-->三、 <!--[endif]-->第二种和第三种情况都是RMAN的版本和目标库的版本相同的情况。与前半部分惟一的不同只是保存备份元数据的CATALOG版本换了一下。并不能说是89之间可以互相备份了。

<!--[if !supportLists]-->四、 <!--[endif]-->第五种和第六情况是有可能实现想要得到的结果的。虽然在完成备份时产生的兼容性错误但备份文件还是产生的。下面对数据库的恢复做进一步测试,如果能通过。则基本可以满足需求。

<!--[if !supportLists]-->1.3 <!--[endif]-->恢复测试

对上面的第五种和第六种情况进行恢复性测试:

登录到SQL PLUS

<place w:st="on"><state w:st="on"><span lang="EN-US">Conn</span></state></place> sys/sys@ora146 as sysdba

建立一条数据:

SQL> create table a(cola int);

表已创建。

SQL> insert into a values(1);

已创建 1 行。

SQL> select * from a;

COLA

----------

1

执行备份:

run {execute script weekly_full_backup;}

SQLPLUS中删除数据:

SQL> truncate table a;

表已截掉。

SQL> select * from a;

未选定行

使用数据库的维护命令:

RMAN>list backup ;

RMAN-03022:正在编译命令:list

RMAN-03026:在释放通道资源时出现错误恢复

RMAN-00571: ===========================================================

RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============

RMAN-00571: ===========================================================

RMAN-03002: failure during compilation of command

RMAN-03013: command type: list

RMAN-03014: implicit resync of recovery catalog failed

RMAN-06003: ORACLE error from target database: ORA-03127: 在活动操作结束之前不允

许进行新的操作

RMAN-06097: text of failing SQL statement: select DECODE(status,'OPEN',1,0) into

:b1 from V$INSTANCE

RMAN-06099: error occurred in source file: krmk.pc, line: 19843

关闭数据库

SQL> shutdown immediate;

数据库已经关闭。

已经卸载数据库。

ORACLE 例程已经关闭。

删除所有数据库文件。

<place w:st="on"><state w:st="on"><span lang="EN-US">Del</span></state></place> *.dbf

RMAN8为目标数据库oracle9进行恢复(启动到MOUNT状态下出错。)

恢复管理器:版本<chsdate year="1899" month="12" day="30" islunardate="False" isrocdate="False" w:st="on"><span lang="EN-US">8.1.6</span></chsdate>.0.0 - Production

RMAN>connect catalog rman8/rman8@ora52

RMAN-06008:连接到恢复目录数据库

RMAN>connect target sys/sys@ora146

RMAN-06193:已连接到目标数据库 (未启动)

RMAN>startup force mount

RMAN-00571: ===========================================================

RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============

RMAN-00571: ===========================================================

RMAN-04014: startup failed: ORA-01078: 处理系统参数失败

通过SQLPLUS启动到MOUNT状态

SQL> startup mount;

ORACLE 例程已经启动。

Total System Global Area 135338868 bytes

Fixed Size 453492 bytes

Variable Size 109051904 bytes

Database Buffers 25165824 bytes

Redo Buffers 667648 bytes

数据库装载完毕。

再用RMAN8为目标数据库oracle9进行恢复

RMAN>allocate channel for maintenance type disk;

RMAN-03022:正在编译命令:allocate

RMAN-03023:正在执行命令:allocate

RMAN-08030:分配的通道:delete

RMAN-08500:通道 deletesid=12 devtype=DISK

RMAN>run{

2> restore database;

3> recover database;

4> }

RMAN-03022:正在编译命令:restore

RMAN-03022:正在编译命令:IRESTORE

RMAN-03026:在释放通道资源时出现错误恢复

RMAN-00571: ===========================================================

RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============

RMAN-00571: ===========================================================

RMAN-03002: failure during compilation of command

RMAN-03013: command type: restore

RMAN-03002: failure during compilation of command

RMAN-03013: command type: IRESTORE

RMAN-06003: ORACLE error from target database: ORA-01843: 无效的月份

RMAN-06097: text of failing SQL statement: select decode(bitand(festa,(4096+128)

),128,fecps,4096,fecps,0) ,decode(bitand(festa,(4096+128)),128,281474976710655,4

096,controlfile_change#,0) ,decode(bitand(festa,(4096+128)),128,SYSDATE,4096,con

trolfile_time,to_date('JAN 01 1988','MON DD YYYY')) ,feofs ,feonc_scn ,to_date(n

vl(feonc_tim,'01/01/88 00:01:01'),'MM/DD/RR HH24:MI:SS') into :b1,:b2,:b3,:b4,:b

5,:b6 from x$kccfe ,v$database where (fenum=:b7 and fedup=1)

RMAN-06099: error occurred in source file: krmk.pc, line: 21652

测试结论:

在恢复过程中有一些命令不好用了。如备份文件的维护命令。还有一些命令出现莫名其妙的错误。导致利用备份文件不能恢复数据库。

<!--[if !supportLists]-->1.4 <!--[endif]-->解决方案的结论

到目前为止,可以得出结论:第二种和第三种情况都是RMAN的版本和目标库的版本相同的情况。与前半部分惟一的不同只是保存备份元数据的CATALOG版本换了一下。可能目前许多关于RMAN可以在ORACLE8ORACLE9之间互相备份就是说的这一种吧。但这种的实质只是保存元数据的库的兼容,并不能说是89之间可以互相备份了。

<!--[if !supportLists]-->1.5 <!--[endif]-->复杂备份环境的建议

针对于即有ORACLE8又有ORACLE9的复杂备份环境,建议采用第二种和第三种情况。虽然这两种情况都是RMAN的版本和目标库的版本相同情况的备份但可以将需要备份的元数据放在一个CATALOG库中。这样维护起来也可以方便一些。为了保证RMAN可执行程序的版本与目标库的备份一致,要在备份机上同时安装RMAN8RMAN9的可执行程序。利用RMAN8的可执行程序备份ORACLE8的目标库,利用RMAN9的可执行程序备份ORACLE9的数据库。

分享到:
评论

相关推荐

    Oracle RMAN增量备份恢复测试记录.docx

    Oracle RMAN增量备份恢复测试记录

    RMAN测试演练即讲解

    RMAN学习测试整理1 20121219 by Apollo 一、 Oracle数据库的备份分为物理备份和逻辑备份。今天测试整理下物理备份Rman,也就是oracle的恢复管理器(Recovery Manager)。 毕竟逻辑备份是不能实现时间点恢复的,所以...

    《Oracle datapump、exp和RMAN的对比测试报告》V2.0

    《Oracle datapump、exp和RMAN的对比测试报告》V2.0

    Oracle-RMAN增量备份恢复测试记录

    Oracle-RMAN增量备份恢复测试记录

    [三思笔记] 一步一步学RMAN

    [三思笔记]一步一步学rman 一、进入rman 二、rman命令知多少 三、rman备份演练初级篇 四、rman备份演练进阶篇 五、rman外传-基础资料篇1 六、实战rman备份 ...测试再加速 几见明路 再思故 顿悟 酷

    rman备份脚本(已测试)

    rman备份脚本,已通过生产环境和测试环境的测试。可直接套入生产环境。

    TSM环境使用RMAN恢复Oracle的测试

    TSM环境使用RMAN恢复Oracle的测试 TSM环境使用RMAN恢复Oracle的测试 TSM环境使用RMAN恢复Oracle的测试

    [三思笔记]一步一步学RMAN

    《[三思笔记]一步一步学rman(01)-进入rman.doc》 《[三思笔记]一步一步学rman(02)-rman命令知多少.doc》 《[三思笔记]一步一步学rman(03)-rman备份演练初级篇.doc》 《[三思笔记]一步一步学rman(04)-rman备份演练...

    RMAN 老师的经典

    RMAN 经典 私人RMAN 经典 私人RMAN 经典 私人RMAN 经典 私人

    RMAN备份恢复方案(亲手实验)

    这是自己亲手研究完oracle 的rman备份后写的备份和恢复方案

    oracle RMAN的使用

    Recovery Manager(RMAN)是一种用于备份(backup)、还原(restore)和恢复(recover) 数据库的Oracle 工具。RMAN只能用于ORACLE8或更高的版本中。它能够备份整个数据 库或数据库部件,如表空间、数据文件、控制文件、...

    RMAN备份与恢复

    第一篇 进入RMAN 1 1.1 连接本地数据库 1 1.2 连接远程数据库 1 第二篇 RMAN常用命令 1 2.1 启动、关闭数据库 1 2.2 执行操作系统命令 2 2.3 执行SQL语句 2 2.4 显示RMAN默认配置 2 2.5 列出备份信息 3 2.6 删除备份...

    一步一步学RMAN oracle备份RMAN使用教程

    一、进入rman 二、rman命令知多少 三、rman备份演练初级篇 四、rman备份演练进阶篇 五、rman外传-基础资料篇1 六、实战rman备份 七、rman外传-基础资料篇2 八、演练rman恢复 九、实战rman恢复(1)丢失控制文件的恢复 ...

    【RMAN】RMAN脚本中使用替换变量--windows 下rman全备脚本

    【RMAN】RMAN脚本中使用替换变量--windows 下rman全备脚本【RMAN】RMAN脚本中使用替换变量--windows 下rman全备脚本【RMAN】RMAN脚本中使用替换变量--windows 下rman全备脚本

    rman参考手册 rman参考PDF

    rman参考资料 rman参考PDF rman参考PDF rman参考PDF

    Oracle9i通过RMAN的copy方式迁移数据测试报告

    《Oracle9i通过RMAN的copy方式迁移数据测试报告》

    三思笔记--rman chm版本

    第一篇 进入RMAN 第二篇 RMAN命令知多少 第三篇 RMAN备份演练初级篇 第四篇 RMAN备份演练进阶篇 第五篇 RMAN基础知识补充 一 第六篇 实战RMAN备份 第七篇 RMAN基础知识补充 二 第八篇 演练RMAN恢复 第九篇 实战rman...

    使用rman恢复数据库,备份与恢复

    使用rman恢复数据库,备份与恢复 数据库备份与恢复测试 为了提高各位ORACLE爱好着数据库备份与恢复实践能力,我把以前做过的备份与恢复测试共享给大家。希望大家能够补充,我也能从中提高自己,如有错误的地方也望...

    RMAN数据库备份详解

    详细讲解了RMAN的备份机制以及如何备份

    RMAN的基本配置RMAN的基本配置

    RMAN的基本配置RMAN的基本配置RMAN的基本配置RMAN的基本配置RMAN的基本配置RMAN的基本配置

Global site tag (gtag.js) - Google Analytics