现在的位置: 首页 > 综合 > 正文

rman异地和本地备份—ORA-19504

2013年10月20日 ⁄ 综合 ⁄ 共 9820字 ⁄ 字号 评论关闭

author: skate
time  : 2009/02/24


 

 

A机:目标数据库    192.168.2.117
B机:rman数据库    192.168.2.87
目的:把rman的备份集备A机,

C:/Documents and Settings/skate_db>rman target sys/sys117@117 catalog rman/rman@
dbrman cmdfile=d:/software/rman.full

恢复管理器: 版本9.2.0.1.0 - Production

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

连接到目标数据库: ORA9I (DBID=2467202714)
连接到恢复目录数据库

RMAN> run {
2> allocate channel ch1 type disk;
3> backup
4> full tag full_bk_orcl
5> format 'D:/software/rman/orcl_db_%p'
6> database;
7> sql 'alter system archive log current';
8> change archivelog all crosscheck;
9> backup format='d:/software/rman/archivelog/orcl_arch_%p'
10> archivelog from time 'sysdate-1' until time 'sysdate' delete all input ;
11> release channel ch1;
12> }
13>
分配的通道: ch1
通道 ch1: sid=12 devtype=DISK

启动 backup 于 24-2月 -09
通道 ch1: 正在启动 full 数据文件备份集
通道 ch1: 正在指定备份集中的数据文件
在备份集中包含当前的 SPFILE
备份集中包括当前控制文件
输入数据文件 fno=00011 name=D:/ORACLE9I/ORADATA/ORATICKETS/YYTICKETS.DBF
输入数据文件 fno=00001 name=D:/ORACLE9I/ORADATA/ORA9I/SYSTEM01.DBF
输入数据文件 fno=00002 name=D:/ORACLE9I/ORADATA/ORA9I/UNDOTBS01.DBF
输入数据文件 fno=00005 name=D:/ORACLE9I/ORADATA/ORA9I/EXAMPLE01.DBF
输入数据文件 fno=00010 name=D:/ORACLE9I/ORADATA/ORA9I/XDB01.DBF
输入数据文件 fno=00006 name=D:/ORACLE9I/ORADATA/ORA9I/INDX01.DBF
输入数据文件 fno=00009 name=D:/ORACLE9I/ORADATA/ORA9I/USERS01.DBF
输入数据文件 fno=00003 name=D:/ORACLE9I/ORADATA/ORA9I/CWMLITE01.DBF
输入数据文件 fno=00004 name=D:/ORACLE9I/ORADATA/ORA9I/DRSYS01.DBF
输入数据文件 fno=00007 name=D:/ORACLE9I/ORADATA/ORA9I/ODM01.DBF
输入数据文件 fno=00008 name=D:/ORACLE9I/ORADATA/ORA9I/TOOLS01.DBF
通道 ch1: 正在启动段 1 于 24-2月 -09
释放的通道: ch1
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03009: failure of backup command on ch1 channel at 02/24/2009 20:23:55
ORA-19504: 无法创建文件"D:/software/rman/orcl_db_1"
ORA-27040: skgfrcre: 创建错误,无法创建文件
OSD-04002: Ξ??????
O/S-Error: (OS 3) ?????????????????

恢复管理器完成。

 

google了一会,有很多解决方法但都不适合的,有的是因为命令写错了,而根据错误的
提示来说,是因为没有权限创建文件。

我于是把脚本改成如下:

run {
allocate channel ch1 type disk;
backup
full tag full_bk_orcl
database;
sql 'alter system archive log current';
change archivelog all crosscheck;
backup archivelog from time 'sysdate-1' until time 'sysdate' delete all input ;
release channel ch1;
}

这个就备份成功了,查看备份的情况

RMAN> list backup
2> ;

备份集列表
===================

BS 关键字  类型 LV 大小       设备类型 经过时间 完成时间
------- ---- -- ---------- ----------- ------------ ----------
4848    Full    513M       DISK        00:02:45     22-2月 -09
BP 关键字: 4849   状态: AVAILABLE   标记:TAG20090222T012359
段名:C:/ORACLE/PRODUCT/9.2.0.1/DB_1/DATABASE/02K7VA9J_1_1
  包含的 SPFILE: 修改时间: 10-2月 -09
  备份集 4848 中的数据文件列表
  文件 LV 类型 Ckp SCN    Ckp 时间   名称
  ---- -- ---- ---------- ---------- ----
  1       Full 23809165   22-2月 -09 D:/ORACLE9I/ORADATA/ORA9I/SYSTEM01.DBF
  2       Full 23809165   22-2月 -09 D:/ORACLE9I/ORADATA/ORA9I/UNDOTBS01.DBF
  3       Full 23809165   22-2月 -09 D:/ORACLE9I/ORADATA/ORA9I/CWMLITE01.DBF
  4       Full 23809165   22-2月 -09 D:/ORACLE9I/ORADATA/ORA9I/DRSYS01.DBF
  5       Full 23809165   22-2月 -09 D:/ORACLE9I/ORADATA/ORA9I/EXAMPLE01.DBF
  6       Full 23809165   22-2月 -09 D:/ORACLE9I/ORADATA/ORA9I/INDX01.DBF
  7       Full 23809165   22-2月 -09 D:/ORACLE9I/ORADATA/ORA9I/ODM01.DBF
  8       Full 23809165   22-2月 -09 D:/ORACLE9I/ORADATA/ORA9I/TOOLS01.DBF
  9       Full 23809165   22-2月 -09 D:/ORACLE9I/ORADATA/ORA9I/USERS01.DBF
  10      Full 23809165   22-2月 -09 D:/ORACLE9I/ORADATA/ORA9I/XDB01.DBF
  11      Full 23809165   22-2月 -09 D:/ORACLE9I/ORADATA/ORATICKETS/YYTICKETS.DBF

  。
  .
  .

  备份文件在C:/ORACLE/PRODUCT/9.2.0.1/DB_1/DATABASE/02K7VA9J_1_1

  我于是在B机找,发现没有。我于是到A机找,结果在A机上

  想想用阵列备份的情况,备份的时候要有相应的权限来创建备份集,我于是在A机创建共享目录://192.168.2.117/rmanbak

  然后再执行命令:

  C:/Documents and Settings/skate_db>rman target sys/sys117@117 catalog rman/rman@
dbrman cmdfile=d:/software/rman.full

恢复管理器: 版本9.2.0.1.0 - Production

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

连接到目标数据库: ORA9I (DBID=2467202714)
连接到恢复目录数据库

RMAN> run {
2> allocate channel ch1 type disk;
3> backup
4> full tag full_bk_orcl
5> format '//192.168.2.117/rmanbak/orcl_db_%t_%s_%p'
6> database;
7> sql 'alter system archive log current';
8> change archivelog all crosscheck;
9> backup format='//192.168.2.117/rmanbak/orcl_arch_%t%s%p'
10> archivelog from time 'sysdate-1' until time 'sysdate' delete all input ;
11> release channel ch1;
12> }
13>
分配的通道: ch1
通道 ch1: sid=9 devtype=DISK

启动 backup 于 24-2月 -09
通道 ch1: 正在启动 full 数据文件备份集
通道 ch1: 正在指定备份集中的数据文件
在备份集中包含当前的 SPFILE
备份集中包括当前控制文件
输入数据文件 fno=00011 name=D:/ORACLE9I/ORADATA/ORATICKETS/YYTICKETS.DBF
输入数据文件 fno=00001 name=D:/ORACLE9I/ORADATA/ORA9I/SYSTEM01.DBF
输入数据文件 fno=00002 name=D:/ORACLE9I/ORADATA/ORA9I/UNDOTBS01.DBF
输入数据文件 fno=00005 name=D:/ORACLE9I/ORADATA/ORA9I/EXAMPLE01.DBF
输入数据文件 fno=00010 name=D:/ORACLE9I/ORADATA/ORA9I/XDB01.DBF
输入数据文件 fno=00006 name=D:/ORACLE9I/ORADATA/ORA9I/INDX01.DBF
输入数据文件 fno=00009 name=D:/ORACLE9I/ORADATA/ORA9I/USERS01.DBF
输入数据文件 fno=00003 name=D:/ORACLE9I/ORADATA/ORA9I/CWMLITE01.DBF
输入数据文件 fno=00004 name=D:/ORACLE9I/ORADATA/ORA9I/DRSYS01.DBF
输入数据文件 fno=00007 name=D:/ORACLE9I/ORADATA/ORA9I/ODM01.DBF
输入数据文件 fno=00008 name=D:/ORACLE9I/ORADATA/ORA9I/TOOLS01.DBF
通道 ch1: 正在启动段 1 于 24-2月 -09
通道 ch1: 已完成段 1 于 24-2月 -09
段 handle=//192.168.2.117/RMANBAK/ORCL_DB_679696723_28_1 comment=NONE
通道 ch1: 备份集已完成, 经过时间:00:04:09
完成 backup 于 24-2月 -09

sql 语句: alter system archive log current

对归档日志的验证失败
存档日志文件名 =C:/ORACLE/PRODUCT/9.2.0.1/DB_1/RDBMS/ARC00098.001 记录 ID=18 时
间戳 =679692936
对归档日志的验证失败
存档日志文件名 =C:/ORACLE/PRODUCT/9.2.0.1/DB_1/RDBMS/ARC00101.001 记录 ID=21 时
间戳 =679696973
已交叉检验的 2 对象

启动 backup 于 24-2月 -09
通道 ch1: 正在启动存档日志备份集
通道 ch1: 正在指定备份集中的存档日志
输入存档日志线程 =1 序列 =101 记录 ID=21 时间戳=679696973
通道 ch1: 正在启动段 1 于 24-2月 -09
通道 ch1: 已完成段 1 于 24-2月 -09
段 handle=//192.168.2.117/RMANBAK/ORCL_ARCH_679696974291 comment=NONE
通道 ch1: 备份集已完成, 经过时间:00:00:02
通道 ch1: 正在删除存档日志
存档日志文件名 =C:/ORACLE/PRODUCT/9.2.0.1/DB_1/RDBMS/ARC00101.001 记录 ID=21 时
间戳 =679696973
完成 backup 于 24-2月 -09

释放的通道: ch1

恢复管理器完成。

 

备份OK了,但是只是备份到目标数据库。既只备份到里A机,那如果我想备到B机呢?

如果我想备份到远程数据库呢,就拿本例来说备份到catalog数据库,A机和B机是两个独立机器

如果直接备份的话,会有错误的

 

C:/Documents and Settings/skate_db>rman target sys/sys117@117 catalog rman/rman@
dbrman cmdfile=d:/software/rman.full

恢复管理器: 版本9.2.0.1.0 - Production

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

连接到目标数据库: ORA9I (DBID=2467202714)
连接到恢复目录数据库

RMAN> run {
2> allocate channel ch1 type disk;
3> backup
4> full tag full_bk_orcl
5> format '//192.168.2.87/software/rman/orcl_db_%t_%s_%p'
6> database;
7> sql 'alter system archive log current';
8> change archivelog all crosscheck;
9> backup format='//192.168.2.87/software/rman/archivelog/orcl_arch_%t%s%p'
10> archivelog from time 'sysdate-1' until time 'sysdate' delete all input ;
11> release channel ch1;
12> }
13>
分配的通道: ch1
通道 ch1: sid=9 devtype=DISK

启动 backup 于 24-2月 -09
通道 ch1: 正在启动 full 数据文件备份集
通道 ch1: 正在指定备份集中的数据文件
在备份集中包含当前的 SPFILE
备份集中包括当前控制文件
输入数据文件 fno=00011 name=D:/ORACLE9I/ORADATA/ORATICKETS/YYTICKETS.DBF
输入数据文件 fno=00001 name=D:/ORACLE9I/ORADATA/ORA9I/SYSTEM01.DBF
输入数据文件 fno=00002 name=D:/ORACLE9I/ORADATA/ORA9I/UNDOTBS01.DBF
输入数据文件 fno=00005 name=D:/ORACLE9I/ORADATA/ORA9I/EXAMPLE01.DBF
输入数据文件 fno=00010 name=D:/ORACLE9I/ORADATA/ORA9I/XDB01.DBF
输入数据文件 fno=00006 name=D:/ORACLE9I/ORADATA/ORA9I/INDX01.DBF
输入数据文件 fno=00009 name=D:/ORACLE9I/ORADATA/ORA9I/USERS01.DBF
输入数据文件 fno=00003 name=D:/ORACLE9I/ORADATA/ORA9I/CWMLITE01.DBF
输入数据文件 fno=00004 name=D:/ORACLE9I/ORADATA/ORA9I/DRSYS01.DBF
输入数据文件 fno=00007 name=D:/ORACLE9I/ORADATA/ORA9I/ODM01.DBF
输入数据文件 fno=00008 name=D:/ORACLE9I/ORADATA/ORA9I/TOOLS01.DBF
通道 ch1: 正在启动段 1 于 24-2月 -09
释放的通道: ch1
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03009: failure of backup command on ch1 channel at 02/24/2009 20:57:38
ORA-19504: 无法创建文件"//192.168.2.87/software/rman/orcl_db_679698248_31_1"
ORA-27040: skgfrcre: 创建错误,无法创建文件
OSD-04002: Ξ??????
O/S-Error: (OS 5) ???????

恢复管理器完成。

 

我把目标数据库上建立了一个和catalog数据库(本地数据库上)相同的用户,但密码不一样
并把让用户拥有admistrator和oracle组的权限,并更改oracle的service服务启动用户为新创建的这个
用户,然后注销当前用户,切换到新建用户(和catalog数据库一样的用户)

然后再catalog数据库上在执行备份脚本

 

C:/Documents and Settings/skate_db>rman target sys/sys117@117 catalog rman/rman@
dbrman cmdfile=d:/software/rman.full

恢复管理器: 版本9.2.0.1.0 - Production

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

连接到目标数据库: ORA9I (DBID=2467202714)
连接到恢复目录数据库

RMAN> run {
2> allocate channel ch1 type disk;
3> backup
4> full tag full_bk_orcl
5> format '//192.168.2.87/software/rman/orcl_db_%t_%s_%p'
6> database;
7> sql 'alter system archive log current';
8> change archivelog all crosscheck;
9> backup format='//192.168.2.87/software/rman/archivelog/orcl_arch_%t%s%p'
10> archivelog from time 'sysdate-1' until time 'sysdate' delete all input ;
11> release channel ch1;
12> }
13>
分配的通道: ch1
通道 ch1: sid=9 devtype=DISK

启动 backup 于 24-2月 -09
通道 ch1: 正在启动 full 数据文件备份集
通道 ch1: 正在指定备份集中的数据文件
在备份集中包含当前的 SPFILE
备份集中包括当前控制文件
输入数据文件 fno=00011 name=D:/ORACLE9I/ORADATA/ORATICKETS/YYTICKETS.DBF
输入数据文件 fno=00001 name=D:/ORACLE9I/ORADATA/ORA9I/SYSTEM01.DBF
输入数据文件 fno=00002 name=D:/ORACLE9I/ORADATA/ORA9I/UNDOTBS01.DBF
输入数据文件 fno=00005 name=D:/ORACLE9I/ORADATA/ORA9I/EXAMPLE01.DBF
输入数据文件 fno=00010 name=D:/ORACLE9I/ORADATA/ORA9I/XDB01.DBF
输入数据文件 fno=00006 name=D:/ORACLE9I/ORADATA/ORA9I/INDX01.DBF
输入数据文件 fno=00009 name=D:/ORACLE9I/ORADATA/ORA9I/USERS01.DBF
输入数据文件 fno=00003 name=D:/ORACLE9I/ORADATA/ORA9I/CWMLITE01.DBF
输入数据文件 fno=00004 name=D:/ORACLE9I/ORADATA/ORA9I/DRSYS01.DBF
输入数据文件 fno=00007 name=D:/ORACLE9I/ORADATA/ORA9I/ODM01.DBF
输入数据文件 fno=00008 name=D:/ORACLE9I/ORADATA/ORA9I/TOOLS01.DBF
通道 ch1: 正在启动段 1 于 24-2月 -09
通道 ch1: 已完成段 1 于 24-2月 -09
段 handle=//192.168.2.87/SOFTWARE/RMAN/ORCL_DB_679699384_32_1 comment=NONE
通道 ch1: 备份集已完成, 经过时间:00:03:16
完成 backup 于 24-2月 -09

sql 语句: alter system archive log current

对归档日志的验证失败
存档日志文件名 =C:/ORACLE/PRODUCT/9.2.0.1/DB_1/RDBMS/ARC00098.001 记录 ID=18 时
间戳 =679692936
对归档日志的验证失败
存档日志文件名 =C:/ORACLE/PRODUCT/9.2.0.1/DB_1/RDBMS/ARC00102.001 记录 ID=22 时
间戳 =679699581
已交叉检验的 2 对象

启动 backup 于 24-2月 -09
通道 ch1: 正在启动存档日志备份集
通道 ch1: 正在指定备份集中的存档日志
输入存档日志线程 =1 序列 =102 记录 ID=22 时间戳=679699581
通道 ch1: 正在启动段 1 于 24-2月 -09
通道 ch1: 已完成段 1 于 24-2月 -09
段 handle=//192.168.2.87/SOFTWARE/RMAN/ARCHIVELOG/ORCL_ARCH_679699582331 comment
=NONE
通道 ch1: 备份集已完成, 经过时间:00:00:02
通道 ch1: 正在删除存档日志
存档日志文件名 =C:/ORACLE/PRODUCT/9.2.0.1/DB_1/RDBMS/ARC00102.001 记录 ID=22 时
间戳 =679699581
完成 backup 于 24-2月 -09

释放的通道: ch1

恢复管理器完成。

 

备份成功!!!!

总结:

要把rman备份集备份到哪个远程存储(或远程机器),就应该把远程存储mount到数据库服务器所在的机器上.

不同os之间的相互备份的方法:

unix(linux)之间可以用nfs
windows之间直接共享目录
unix(linux)和windows之间可能是用samba吧

-----end----

 

抱歉!评论已关闭.