RMAN兼容性测试

1       解决方案

―――――henrybai制作。

 

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

1.1           解决方案中包含的几种情况及具体的测试步骤:

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

1.1.1      RMAN8通过CATALOG8备份ORACLE8()

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

1.1.2      RMAN8通过CATALOG9备份ORACLE8()

 

通过RMAN8连接到ORACLE9

 

恢复管理器:版本 8.1.6 .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

 

测试结论:

备份成功

 

 

1.1.3      RMAN9通过CATALOG8备份ORACLE9()

连接CATALOG8

RMAN> connect catalog rman8/rman8@ORA52

连接到恢复目录数据库

PL/SQL 程序包RMAN8.DBMS_RCVCAT版本 08.01.06 (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版本 08.01.06 (RCVCAT数据库中) 太低

PL/SQL 程序包RMAN8.DBMS_RCVCAT版本 08.01.06 (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;

恢复目录已升级到版本 09.02.00

DBMS_RCVMAN 程序包升级为 09.02.00

DBMS_RCVCAT 程序包升级为 09.02.00

再创建备份脚本:

 

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

测试结论:

已经备份成功了。

 

1.1.4      RMAN9通过CATALOG9备份ORACLE9()

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

1.1.5      RMAN8通过CATALOG9备份ORACLE9()

通过RMAN8连接到CATALOG9

恢复管理器:版本 8.1.6 .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

测试结论:

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

 

 

1.1.6      RMAN8通过CATALOG8备份ORACLE9()

通过RMAN8连接到CATALOG8

恢复管理器版本 8.1.6 .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

测试结论:

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

1.1.7      RMAN9通过CATALOG9备份ORACLE8()

通过RMAN9连接到CATALOG9

恢复管理器: 版本 9.2.0 .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 8.0.4 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

 

测试结论:

产生兼容性问题。

 

1.1.8      RMAN9通过CATALOG8备份ORACLE8()

通过RMAN9连接到CATALOG8

恢复管理器: 版本 9.2.0 .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 8.0.4 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

 

1.2           解决方案的分析

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

一、        第一种和第四种不在我们研究的范围之内,是相同版本之间的备份。

二、        第七种和第八种是版本不兼容根本无法连接的情况,我们无法继续。

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

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

1.3           恢复测试

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

登录到SQL PLUS

 

Conn 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 例程已经关闭。

删除所有数据库文件。

Del   *.dbf

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

恢复管理器:版本 8.1.6 .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

测试结论:

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

 

 

1.4           解决方案的结论

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

1.5           复杂备份环境的建议

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

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值