归档模式下的手工备份及完全恢复

SQL> select log_mode from v$database;

LOG_MODE
------------
ARCHIVELOG

手工备份:
SQL> alter database begin backup;
数据库已更改。

SQL> create table t124(id number);

表已创建。

手工拷贝数据文件 datafile-->datafile-副本

SQL> alter database end backup;

数据库已更改。

SQL>
SQL> insert into t124 values(1);

已创建 1 行。

SQL> commit;

提交完成。
SQL> alter system switch logfile;

系统已更改。

SQL>

备份归档日志 archivelog-->archivelog-副本

-----以上手工备份完成,搞点破坏


SQL> insert into t124 values(2);

已创建 1 行。

SQL> commit;

提交完成。

SQL>

把所有的数据文件和归档都删掉。  --Windows下在库正常运行的时候无法删除数据文件,停库后删除

删完之后启动数据库:
SQL> startup
ORACLE 例程已经启动。

Total System Global Area 5060792320 bytes
Fixed Size                  2289960 bytes
Variable Size            1040191192 bytes
Database Buffers         4009754624 bytes
Redo Buffers                8556544 bytes
数据库装载完毕。
ORA-01157: 无法标识/锁定数据文件 1 - 请参阅 DBWR 跟踪文件
ORA-01110: 数据文件 1:
'D:\APP\LIMING\ORADATA\ORCL\DATAFILE\O1_MF_SYSTEM_DDYY3MWX_.DBF'

那么开始恢复:

	1. 将备份的数据文件拷贝回去
	2. 将归档拷贝回去
	3. 启动数据库到mount模式 ---已为mount模式
	4. 恢复数据库 

SQL> recover database
ORA-00279: 更改 12289488 (在 12/15/2017 11:34:18 生成) 对于线程 1 是必需的
ORA-00289: 建议: D:\ORCL\ARCHIVELOG\2017_12_15\O1_MF_1_171_F36WRL45_.ARC
ORA-00280: 更改 12289488 (用于线程 1) 在序列 #171 中


指定日志: {<RET>=suggested | filename | AUTO | CANCEL}
auto
ORA-00279: 更改 12302871 (在 12/16/2017 15:47:28 生成) 对于线程 1 是必需的
ORA-00289: 建议: D:\ORCL\ARCHIVELOG\2017_12_16\O1_MF_1_174_F3B6RB6O_.ARC
ORA-00280: 更改 12302871 (用于线程 1) 在序列 #174 中


ORA-00279: 更改 12325653 (在 12/16/2017 21:09:28 生成) 对于线程 1 是必需的
ORA-00289: 建议: D:\ORCL\ARCHIVELOG\2017_12_18\O1_MF_1_175_F3GC6W7G_.ARC
ORA-00280: 更改 12325653 (用于线程 1) 在序列 #175 中


已应用的日志。
完成介质恢复。

	1. 启动数据库

SQL> alter database open;

数据库已更改。

检查:

SQL> select * from t124;

        ID
----------
         1
         2





猜你喜欢

转载自blog.csdn.net/ghostliming/article/details/78837913