Oracle基础 06 控制文件 controlfile

--查看控制文件路径

show parameter control_files;


--控制文件的备份,三种方式
1)使用OS命令进行拷贝;
1)open状态下,使用alter database命令生成控制文件副本;
2)open状态下,使用alter database backup controlfile to trace命令将控制文件备份到跟踪文件;


--控制文件的恢复,两种方式
1)mount状态下,使用recover database using backup controlfile
2)mount状态下,生成跟踪文件并进行恢复


--备份ctl

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


--备份trace脚本

SQL> alter database backup controlfile to trace as 'D:Oracleackupctl.sql';

--从ctl恢复

SQL> startup mount
ORACLE 例程已经启动。

Total System Global Area  612368384 bytes
Fixed Size                  1250428 bytes
Variable Size             306187140 bytes
Database Buffers          297795584 bytes
Redo Buffers                7135232 bytes
数据库装载完毕。

SQL> select * from v$log;

    GROUP#    THREAD#  SEQUENCE#      BYTES    MEMBERS ARC STATUS
---------- ---------- ---------- ---------- ---------- --- ---------
FIRST_CHANGE# FIRST_TIME
------------- --------------
         1          1          8   52428800          2 YES INACTIVE
      1157323 30-11月-12

         3          1          9   52428800          2 YES INACTIVE
      1158104 30-11月-12

         2          1         10   52428800          2 NO  CURRENT
      1158418 30-11月-12

SQL> recover database using backup controlfile until cancel;
ORA-00279: 更改 1158810 (在 11/30/2012 15:10:32 生成) 对于线程 1 是必需的
ORA-00289: 建议:
D:ORACLEPRODUCT10.2.0FLASH_RECOVERY_AREADBTESTARCHIVELOG2012_11_30O1_MF_

1_10_%U_.ARC
ORA-00280: 更改 1158810 (用于线程 1) 在序列 #10 中
指定日志: {=suggested | filename | AUTO | CANCEL}
D:Oracleproduct10.2.0oradatadbtest edo02.log
已应用的日志。
完成介质恢复。
SQL> alter database open resetlogs;

数据库已更改。

--从trace脚本恢复(nomount状态,去掉前面的空格,蓝色部分可以不要)

SQL>@'D:Oracleackupctl.sql';

CREATE CONTROLFILE REUSE DATABASE "DBTEST" NORESETLOGS  ARCHIVELOG
MAXLOGFILES 16
MAXLOGMEMBERS 3
MAXDATAFILES 100
MAXINSTANCES 8
MAXLOGHISTORY 292
LOGFILE
GROUP 1 (
'D:ORACLEPRODUCT10.2.0ORADATADBTESTREDO01A.LOG',
'D:ORACLEPRODUCT10.2.0ORADATADBTESTREDO01.LOG'
) SIZE 50M,
GROUP 2 (
'D:ORACLEPRODUCT10.2.0ORADATADBTESTREDO02.LOG',
'D:ORACLEPRODUCT10.2.0ORADATADBTESTREDO02A.LOG'
) SIZE 50M,
GROUP 3 (
'D:ORACLEPRODUCT10.2.0ORADATADBTESTREDO03.LOG',
'D:ORACLEPRODUCT10.2.0ORADATADBTESTREDO03A.LOG'
) SIZE 50M
DATAFILE
'D:ORACLEPRODUCT10.2.0ORADATADBTESTSYSTEM01.DBF',
'D:ORACLEPRODUCT10.2.0ORADATADBTESTUNDOTBS01.DBF',
'D:ORACLEPRODUCT10.2.0ORADATADBTESTSYSAUX01.DBF',
'D:ORACLEPRODUCT10.2.0ORADATADBTESTUSERS01.DBF',
'D:ORACLEPRODUCT10.2.0ORADATADBTESTEXAMPLE01.DBF'
CHARACTER SET ZHS16GBK;

SQL> alter database open;


 注意:脚本语句前面不要留空格。

原文地址:https://www.cnblogs.com/john2017/p/6364456.html