controlfile文件的备份与恢复

Oracle的控制文件controlfile有以下4种备份恢复方法。


注意:本文模拟controlfile故障均是直接删除控制文件。

1. 使用RMAN工具备份恢复controlfile



RMAN参数选项”CONFIGURE CONTROLFILE AUTOBACKUP ON/OFF”

定义为”ON”,则任意一次RMAN备份都会自动备份controlfile,比如备份tablespace;

定义为”OFF”,则不会自动备份controlfile,需要手动备份。

使用RMAN工具备份controflile的命令如下

#rman target /

RMAN>backup current controlfile;

使用RMAN备份集恢复controlfile的步骤如下

#rman target /

RMAN>startup nomount

RMAN>set dbid=******

RMAN>restore controlfile from autobackup;

RMAN>alter database mount;

RMAN>recover database;

RMAn>alter database open open resetlogs;

注意:

使用RMAN恢复时,必须有instance的DBID。DBID是唯一的,可以通过v$instance视图确定。

Controlfile故障后无法查询v$instance视图,所以故障前须确知DBID,否则会遇到麻烦,呵呵。


2. 使用SQL*PLUS命令备份至指定文件



SQLPLUS命令备份controlfile有两种方式,这里先介绍备份为具体文件的方法。

使用SQL命令备份controlfile,步骤如下:

#sqlplus “/as sysdba”

SQL> alter database backup controlfile to 'd:backup.ctl';

使用SQL命令恢复controlfile,步骤如下:



1> 使用备份文件”backup.ctl”直接copy。

注意:拷贝文件的名称、路径、份数与原controlfile完全一致。

2> 使用下列命令进行恢复

SQL> startup mount;

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

ORACLE例程已经启动。

Total System Global Area 452984832 bytes

Fixed Size 1249512 bytes

Variable Size 155193112 bytes

Database Buffers 289406976 bytes

Redo Buffers 7135232 bytes

数据库装载完毕。

SQL> recover database using backup controlfile;

ORA-00279:更改718494 (在07/31/2008 22:21:53生成)对于线程1是必需的

ORA-00289:建议: D:ORACLEPRODUCT10.2.0ARCHIVELOG1_2_661388974.ARC

ORA-00280:更改718494 (用于线程1)在序列#2中

指定日志: {=suggested | filename | AUTO | CANCEL}

注意:提示输入redolog,但一般情况下输入建议的archivelog会报错

在此处输入的redolog为状态为current的online redolog

通过v$log,v$logfile视图确定当前状态为CURRENT的redolog文件

D:ORACLEPRODUCT10.2.0ORADATAZPREDO01.LOG

已应用的日志。

完成介质恢复。

SQL> alter database open resetlogs;

数据库已更改。

SQL>


3. 使用SQL*PLUS命令备份至trace文件



备份控制文件步骤如下:

#sqlplus “/as sysdba”

SQL> alter database backup controlfile to trace;

注意:

备份完毕后会在$ORACLE_HOME/admin/*sid*/udump目录下生成对应的trace文件

使用trace备份集恢复controlfile的步骤如下:



1> 打开备份controlfile时生成的trace文件

2> 找到标记”Set #1. NORESETLOGS case”部分。

注意:

一般情况下trace文件里都会有2部分相关内容

恢复时先执行”Set #1. NORESETLOGS case”部分

3> 运行上述标记部分的sql语句

SQL>STARTUP NOMOUNT

SQL>CREATE CONTROLFILE REUSE DATABASE "ZP" NORESETLOGS ARCHIVELOG

MAXLOGFILES 16

MAXLOGMEMBERS 3

MAXDATAFILES 100

MAXINSTANCES 8

MAXLOGHISTORY 292

LOGFILE

GROUP 1 'D:ORACLEPRODUCT10.2.0ORADATAZPREDO01.LOG' SIZE 50M,

GROUP 2 'D:ORACLEPRODUCT10.2.0ORADATAZPREDO02.LOG' SIZE 50M,

GROUP 3 'D:ORACLEPRODUCT10.2.0ORADATAZPREDO03.LOG' SIZE 50M

DATAFILE

'D:ORACLEPRODUCT10.2.0ORADATAZPSYSTEM01.DBF',

'D:ORACLEPRODUCT10.2.0ORADATAZPUNDOTBS01.DBF',

'D:ORACLEPRODUCT10.2.0ORADATAZPSYSAUX01.DBF',

'D:ORACLEPRODUCT10.2.0ORADATAZPUSERS01.DBF',

'D:ORACLEPRODUCT10.2.0ORADATAZPTBS1.DBF'

CHARACTER SET ZHS16GBK

;

SQL>VARIABLE RECNO NUMBER;

SQL>EXECUTE :RECNO := SYS.DBMS_BACKUP_RESTORE.SETCONFIG('CONTROLFILE AUTOBACKUP','ON');

RECOVER DATABASE;

SQL>ALTER SYSTEM ARCHIVE LOG ALL;

SQL>ALTER DATABASE OPEN;

SQL>ALTER TABLESPACE TEMP ADD TEMPFILE 'D:ORACLEPRODUCT10.2.0ORADATAZPTEMP01.DBF'

SIZE 20971520 REUSE AUTOEXTEND ON NEXT 655360 MAXSIZE 32767M;



4. 使用COPY或是cp命令进行控制文件的备份


使用操作系统的copy或是cp命令直接备份controfile,恢复的方法与使用”alter database backup controlfile to filename”备份文件步骤命令一样。

from: http://space.itpub.net/?uid-265709-action-viewspace-itemid-417369[@more@]

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

转载于:http://blog.itpub.net/633084/viewspace-1016445/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值