ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 迁移后带库备份问题(二)

迁移后带库备份问题(二)

原创 Linux操作系统 作者:yangtingkun 时间:2009-02-02 22:55:32 0 删除 编辑

在迁移一次产品环境后,没有发现其他的问题,不过备份出了一点小问题。

这篇给出一个更方便的解决方法。

迁移后带库备份问题:http://yangtingkun.itpub.net/post/468/477704

 

 

上文提到的方法都有一定的限制,最好的办法还是直接调用DBMS_BACKUP_RESTORE包中的DELETEBACKUPPIECE过程。

这里给出一个简单的例子:

RMAN> list backupset 793;


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

BS 关键字  类型 LV 大小       设备类型 经过时间 完成时间 
------- ---- -- ---------- ----------- ------------ ----------
793     Full    200.25M    SBT_TAPE    00:00:51     31-8
-07
        BP
关键字: 1003   状态: AVAILABLE  已压缩: NO  标记: TAG20070831T002901
       
句柄: v1iqnkqd_1_1   介质: /data1/backup/backup_1188491347_C1_F1
 
备份集 793 中的数据文件列表
 
文件 LV 类型 Ckp SCN    Ckp 时间   名称
  ---- -- ---- ---------- ---------- ----
  5       Full 5702288349 31-8
-07 +DISK/testrac/datafile/users.267.618591279

下面利用DBMS_BACKUP_RESTORE包来清除这个备份级:

RMAN> host;      

$ sqlplus "/ as sysdba"

SQL*Plus: Release 10.2.0.3.0 - Production on 星期四 12 4 02:08:58 2008

Copyright (c) 1982, 2006, Oracle.  All Rights Reserved.


连接到:
Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - 64bit Production
With the Partitioning, Real Application Clusters, OLAP and Data Mining options

SQL> set pages 100 lines 120
SQL> col handle format a15
SQL> select recid, stamp, handle, set_stamp, set_count, piece#
  2  from v$backup_piece
  3  where handle = 'v1iqnkqd_1_1';

     RECID      STAMP HANDLE           SET_STAMP  SET_COUNT     PIECE#
---------- ---------- --------------- ---------- ---------- ----------
      1003  632017742 v1iqnkqd_1_1     632017741        993          1

SQL> declare
  2     c1 varchar2(32767);
  3  begin
  4     c1 := dbms_backup_restore.deviceallocate;
  5     dbms_backup_restore.deletebackuppiece(1003, 632017742, 'v1iqnkqd_1_1', 632017741, 993, 1);
  6     dbms_backup_restore.devicedeallocate;
  7  end;
  8  /

PL/SQL 过程已成功完成。

SQL> exit;
Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - 64bit Production
With the Partitioning, Real Application Clusters, OLAP and Data Mining options
断开
$ exit
主机命令完成

RMAN> list backupset 793;

MAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: list
命令 ( 12/04/2008 02:14:32 ) 失败
RMAN-06160:
没有为备份集关键字找到备份段: 793

需要注意的是,虽然备份是保存在带库上,这里并不要分配DEVICE TYPESTB的通道,否则会因为无法连接带库而报错:

1 行出现错误:
ORA-19509:
无法删除顺序文件, 句柄 = "v1iqnkqd_1_1", 参数 = "1"
ORA-27027: sbtremove2
返回错误
ORA-19511:
从介质管理器层接收到错误, 错误文本为:
VxBSAValidateFeatureId: Failed with error:
Server Status:  cannot connect on socket
ORA-06512:
"SYS.DBMS_BACKUP_RESTORE", line 2686
ORA-06512:
"SYS.DBMS_BACKUP_RESTORE", line 2618
ORA-06512:
line 5

这种方法Oracle只是清除了控制文件中的记录,而并不会真正删除物理存储上的备份集,当然这正是当前环境下所需要的结果。

 

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/4227/viewspace-545090/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
暂无介绍

注册时间:2007-12-29

  • 博文量
    1955
  • 访问量
    10524563