ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 10g新特性:rman恢复时候数据文件的自动创建

10g新特性:rman恢复时候数据文件的自动创建

原创 Linux操作系统 作者:husthxd 时间:2004-10-20 00:00:00 0 删除 编辑

Oracle 10g : rman恢复时候数据文件的自动创建


 

select name,status from v$datafile;

select * from v$recover_file;

drop tablespace test including contents and datafiles;

drop user test cascade;

create tablespace test datafile 'F:ORACLEPRODUCT10.1.0ORADATATESTtest.dbf'  size 10m;

create user test identified by test default tablespace test;

grant dba to test;

conn test/test

create table t1 (n1 number);

insert into t1 values(1);

commit;

alter system switch logfile;

 

前言

本文通过实验简要介绍Oracle10grman对丢失文件的自动处理,避免了以前版本在恢复时手工创建丢失数据文件的麻烦。

假设对以下场景中丢失的数据文件进行恢复:

1,2种恢复均使用以下的测试数据,其中2使用了恢复目录.

A. 数据库创建后用rman备份整个数据库

RMAN> connect target  

连接到目标数据库: TEST (DBID=1838111476)

RMAN> backup database;

启动 backup 19-10-04

正在使用目标数据库控制文件替代恢复目录

分配的通道: ORA_DISK_1

通道 ORA_DISK_1: sid=135 devtype=DISK

通道 ORA_DISK_1: 启动全部数据文件备份集

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

输入数据文件 fno=00001 name=F:ORACLEPRODUCT10.1.0ORADATATESTSYSTEM01.DBF

输入数据文件 fno=00003 name=F:ORACLEPRODUCT10.1.0ORADATATESTSYSAUX01.DBF

输入数据文件 fno=00002 name=F:ORACLEPRODUCT10.1.0ORADATATESTUNDOTBS01.DBF

输入数据文件 fno=00004 name=F:ORACLEPRODUCT10.1.0ORADATATESTUSERS01.DBF

通道 ORA_DISK_1: 正在启动段 1 19-10-04

通道 ORA_DISK_1: 已完成段 1 19-10-04

handle=D:RMANBACKUPTEST1G2UFR8_1_1 comment=NONE

通道 ORA_DISK_1: 备份集已完成, 经过时间:00:01:15

完成 backup 19-10-04 

启动 Control File and SPFILE Autobackup 19-10-04

handle=D:RMANBACKUPTESTC-1838111476-20041019-01 comment=NONE

完成 Control File and SPFILE Autobackup 19-10-04

RMAN> 

B. 创建新的表空间,并在新的表空间中加入测试数据,归档当前日志

> conn sys/manager@test10g as sysdba

已连接。

> create tablespace test datafile 'F:ORACLEPRODUCT10.1.0ORADATATESTtest.dbf'  size 10m;

表空间已创建。 

>

> create user test identified by test default tablespace test;

用户已创建 

> grant dba to test;

授权成功。 

> @conn test/test@test10g

已连接。

test@GZSERVER> create table t1 (n1 number);

表已创建。 

test@GZSERVER> insert into t1 values(1);

已创建 1 行。 

test@GZSERVER> commit;

提交完成。 

test@GZSERVER>

test@GZSERVER> alter system switch logfile;

系统已更改。 

test@GZSERVER> alter system switch logfile;

系统已更改。 

C. 删除新表空间的数据文件

对第1种情况执行:

test@GZSERVER> alter tablespace test offline immediate;

表空间已更改。 

test@GZSERVER>

-- 手工删除数据文件

查询select name,status from v$datafile;看到该数据文件状态为RECOVER

F:ORACLEPRODUCT10.1.0ORADATATESTTEST.DBF          RECOVER 

对第2种情况:

-- 关闭数据库

SQL> shutdown immediate;

Database closed.

Database dismounted.

ORACLE instance shut down.

-- 删除数据文件,删除控制文件

-- 启动数据库

SQL> startup

ORA-32004: obsolete and/or deprecated parameter(s) specified

ORACLE instance started. 

Total System Global Area  171966464 bytes

Fixed Size                   787988 bytes

Variable Size             145488364 bytes

Database Buffers           25165824 bytes

Redo Buffers                 524288 bytes

ORA-00205: error in identifying controlfile, check alert log for more info

SQL> shutdown immedidate;

SP2-0717: illegal SHUTDOWN option

SQL> shutdown immediate;

ORA-01507: database not mounted

ORACLE instance shut down.

SQL> startup nomount

ORA-32004: obsolete and/or deprecated parameter(s) specified

ORACLE instance started.

Total System Global Area  171966464 bytes

Fixed Size                   787988 bytes

Variable Size             145488364 bytes

Database Buffers           25165824 bytes

Redo Buffers                 524288 bytes

SQL>  

 1.         控制文件没有丢失

控制文件保存有最新的数据库信息。

重启数据库:

SQL> startup

ORA-32004: obsolete and/or deprecated parameter(s) specified

ORACLE instance started.

Total System Global Area  171966464 bytes

Fixed Size                   787988 bytes

Variable Size             145488364 bytes

Database Buffers           25165824 bytes

Redo Buffers                 524288 bytes

Database mounted.

Database opened.

 

-- rman进行恢复

RMAN> restore tablespace "TEST";

 

启动 restore 19-10-04

使用通道 ORA_DISK_1

 

创建数据文件 fno = 5 名称 = F:ORACLEPRODUCT10.1.0ORADATATESTTEST.DBF

没有完成恢复; 所有文件均为只读或脱机文件或者已经恢复

完成 restore 19-10-04

RMAN> recover tablespace "TEST";

启动 recover 19-10-04

使用通道 ORA_DISK_1

正在开始介质的恢复

存档日志线程 1 序列 7 已作为文件 E:ARCHIVETESTTEST_7_1_539965048.ARC 存在于磁

盘上

存档日志线程 1 序列 8 已作为文件 E:ARCHIVETESTTEST_8_1_539965048.ARC 存在于磁

盘上

存档日志线程 1 序列 9 已作为文件 E:ARCHIVETESTTEST_9_1_539965048.ARC 存在于磁

盘上

存档日志文件名 =E:ARCHIVETESTTEST_7_1_539965048.ARC 线程 =1 序列 =7

完成介质的恢复

完成 recover 19-10-04

RMAN>

RMAN> sql 'alter tablespace test online';

sql 语句: alter tablespace test online

RMAN>

-- sqlplus

test@GZSERVER> select *from t1;

        N1

----------

         1

 

test@GZSERVER>

 

成功进行恢复.

2.  当前控制文件丢失

如果没有在监听器中配置数据库服务会出现如下错误:

RMAN> connect target sys/manager@test10g

 

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

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

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

ORA-12528: TNS: 监听程序: 所有适用的例程都不允许建立新的连接

 

如果没有手工配置监听器中的数据库服务,连接的时候会出现如下错误:

D:oracleproduct10.1.0BIN>rman target sys/manager@test10g catalog imis10g 

恢复管理器: 版本10.1.0.2.0 - Production

 Copyright (c) 1995, 2004, Oracle.  All rights reserved.

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

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

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

RMAN-00554: initialization of internal recovery manager package failed

RMAN-04005: error from target database:

ORA-12528: TNS: 监听程序: 所有适用的例程都不允许建立新的连接

 

原因可以从下面信息中获得:

 

服务 "test" 包含 1 个例程。

  例程 "test", 状态 BLOCKED, 包含此服务的 1 个处理程序...

    处理程序:

      "DEDICATED" 已建立:0 已拒绝:0 状态:ready

         LOCAL SERVER

命令执行成功

 手工配置监听重启监听器后:

服务 "test" 包含 2 个例程。

  例程 "test", 状态 UNKNOWN, 包含此服务的 1 个处理程序...

    处理程序:

      "DEDICATED" 已建立:1 已被拒绝:0

         LOCAL SERVER

  例程 "test", 状态 BLOCKED, 包含此服务的 1 个处理程序...

    处理程序:

      "DEDICATED" 已建立:0 已拒绝:0 状态:ready

         LOCAL SERVER

命令执行成功

 rman可以登录到目标数据库中:

D:oracleproduct10.1.0BIN>rman target sys/manager@test10g catalog imis10g

恢复管理器: 版本10.1.0.2.0 - Production

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

请登录后发表评论 登录
全部评论
ITPUB数据库版块资深版主,对Oracle、PostgreSQL有深入研究。

注册时间:2007-12-28

  • 博文量
    1559
  • 访问量
    4242913