Oracle中目录数据库备份表空间报错

本文介绍了在Oracle中使用RMAN进行数据备份时遇到的问题,特别是使用目录数据库备份表空间时出现的错误。详细讨论了目录数据库的作用,如存储更多历史信息、管理RMAN脚本和生成报告。同时,提供了创建目录数据库的步骤,包括创建表空间、用户、赋予权限等。关键在于,当目录数据库的日志模式不是归档模式时,会导致备份失败,因为归档模式对于完整恢复至关重要。
摘要由CSDN通过智能技术生成

了解一下目录数据库:

默认情况下,RMAN将备份的元信息保存在控制文件中;

使用目录数据库替代控制文件,来保存备份的元信息,可以:

存储更多的历史信息

可以使用存储RMAN的脚本

可为所有已注册的目标数据库创建报告

目录数据库和目标数据库的关系

目录数据库创建步骤:

使用oracle图形工具VNC工具 中的dbca 创建数据库:

1.

2.

3.

4.

5.

6.

7.

8.

9

配置数据库:

  • 1.创建表空间:
    create tablespace rcat_tbs datafile '/home/oracle/rcat_tbs01.dbf' size 50M;
  • 2.创建用户,能够使用rcat_tbs表空间
    create user rcat_owner identified by password;
  • 3修改用户的默认表空间
    alter user rcat_owner default tablespace rcat_tbs;
  • 4.赋予配额无限制权限
    alter user rcat_owner quota unlimited on rcat_tbs
  • 5.赋予管理权限:
    grant recovery_catalog_owner to rcat_owner;
  • 6.使用rcat_owner登录(RMAN)  :     
    rman catalog rcat_owner/password@rcat
  • 7.创建catalog(目录):   
    RMAN>create catalog;
  • 8.将目标数据库注册到目录数据库中
    rman target / catalog rcat_owner@rcat
    register database;

备份表空间:

oracle@oracle ~]$ rman target / catalog rcat_owner/password@rcat

Recovery Manager: Release 11.2.0.1.0 - Production on Tue Aug 7 21:45:52 2018

Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.

connected to target database: RCAT (DBID=755716143)   //注册表的ID是一致的
connected to recovery catalog database

RMAN> backup tablespace users;

Starting backup at 07-AUG-18
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=23 device type=DISK
channel ORA_DISK_1: starting full datafile backup set
channel ORA_DISK_1: specifying datafile(s) in backup set
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03009: failure of backup command on ORA_DISK_1 channel at 08/07/2018 21:46:09
ORA-19602: cannot backup or copy active file in NOARCHIVELOG mode   //报错是日志模式是非归档模式

解决方案:刚开始我以为是目标数据库的日志模式,查看目标数库的日志模式;

SQL> show user
USER is "SYS"
SQL> archive log list;   
SP2-0718: illegal ARCHIVE LOG option
SQL> host clear

SQL> archive log list
Database log mode	       Archive Mode
Automatic archival	       Enabled
Archive destination	       USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence     5
Next log sequence to archive   7
Current log sequence	       7
SQL> 

备份再次报错;

查看catalog 日志模式:

[oracle@oracle ~]$ . oraenv
ORACLE_SID = [orcl] ? rcat
The Oracle base for ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1 is /u01/app/oracle
[oracle@oracle ~]$ 
[oracle@oracle ~]$ sqlplus / as sysdba

SQL*Plus: Release 11.2.0.1.0 Production on Tue Aug 7 22:06:55 2018

Copyright (c) 1982, 2009, Oracle.  All rights reserved.


Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

SQL> archive log list;
Database log mode	       No Archive Mode   //非归档模式
Automatic archival	       Disabled
Archive destination	       USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence     2
Current log sequence	       4
SQL> shutdown immediate;   //关机
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup mount;         //进入mount模式 修改日志为归档模式
ORACLE instance started.

Total System Global Area  535662592 bytes
Fixed Size		    1337720 bytes
Variable Size		  180356744 bytes
Database Buffers	  348127232 bytes
Redo Buffers		    5840896 bytes
Database mounted.
SQL> alter database archivelog;     //修改指令

Database altered.

SQL> alter database open;       //开启数据库

Database altered.

SQL> archive log list;
Database log mode	       Archive Mode    // 日志模式成功次改为归档模式
Automatic archival	       Enabled
Archive destination	       USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence     2
Next log sequence to archive   4
Current log sequence	       4

再次执行备份:backup tablespace users;

[oracle@oracle ~]$ rman target / catalog rcat_owner/password@rcat

Recovery Manager: Release 11.2.0.1.0 - Production on Tue Aug 7 22:09:36 2018

Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.

connected to target database: RCAT (DBID=755716143)
connected to recovery catalog database

RMAN> backup tablespace users;

Starting backup at 07-AUG-18
starting full resync of recovery catalog
full resync complete
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=46 device type=DISK
channel ORA_DISK_1: starting full datafile backup set
channel ORA_DISK_1: specifying datafile(s) in backup set
input datafile file number=00004 name=/u01/app/oracle/oradata/rcat/users01.dbf
channel ORA_DISK_1: starting piece 1 at 07-AUG-18
channel ORA_DISK_1: finished piece 1 at 07-AUG-18
piece handle=/u01/app/oracle/flash_recovery_area/RCAT/backupset/2018_08_07/o1_mf_nnndf_TAG20180807T220957_fpmb1olp_.bkp tag=TAG20180807T220957 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:01
Finished backup at 07-AUG-18   //备份成功

非目录数据库的备份模式则是利用控制文件,进而备份数据文件;

[oracle@oracle ~]$ rman target /

Recovery Manager: Release 11.2.0.1.0 - Production on Tue Aug 7 21:44:04 2018

Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.

connected to target database: ORCL (DBID=1511056695)

RMAN> backup tablespace users;

Starting backup at 07-AUG-18
using target database control file instead of recovery catalog  //使用控制文件
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=37 device type=DISK
channel ORA_DISK_1: starting full datafile backup set
channel ORA_DISK_1: specifying datafile(s) in backup set
input datafile file number=00004 name=/u01/app/oracle/oradata/orcl/users01.dbf
channel ORA_DISK_1: starting piece 1 at 07-AUG-18
channel ORA_DISK_1: finished piece 1 at 07-AUG-18
piece handle=/u01/app/oracle/flash_recovery_area/ORCL/backupset/2018_08_07/o1_mf_nnndf_TAG20180807T214416_fpm8kjls_.bkp tag=TAG20180807T214416 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:01
Finished backup at 07-AUG-18

原因:就是目录数据库的日志模式必须是归档模式,这样操作日志才不会被覆盖。当数据库文件发生丢失断电,即便是内存中脏数据尚未写入dbf文件中,也可以通过操作日志进行恢复,可以完全恢复数据文件,就必须要求目录数据库的日志模式是归档模式;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值