RMAN学习7——归档无备份,丢失部分数据文件

这里主要是通过重做日志来恢复,如果没有归档是不能完成的。

如果system表空间的数据文件丢失,就无能为力了,必须要用备份。

如果是临时表空间的数据文件丢失,无所谓了,本来就是临时的,不用与长期存储,重建一个就行了。

1、查看归档情况

SQL> archive log list;
数据库日志模式            存档模式
自动存档             启用
存档终点            USE_DB_RECOVERY_FILE_DEST
最早的联机日志序列     17
下一个存档日志序列   19
当前日志序列           19
SQL>

2、重新创建一个数据文件

SQL> create tablespace product datafile 'D:\app\Administrator\oradata\orcl\produ
ct.dbf' size 100m;
表空间已创建。
SQL> create table orders(order_id number primary key,order_name varchar(200),order_date date);
表已创建。
SQL> insert into orders values(1,'测试1',sysdate);
已创建 1 行。
SQL>

3、删除数据文件

SQL> shutdown immediate;
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> host del D:\app\Administrator\oradata\orcl\PRODUCT.DBF
SQL> startup mount;
ORACLE 例程已经启动。
Total System Global Area  535662592 bytes
Fixed Size                  1334380 bytes
Variable Size             209716116 bytes
Database Buffers          318767104 bytes
Redo Buffers                5844992 bytes
数据库装载完毕。
SQL> alter database open;
alter database open
*
第 1 行出现错误:
ORA-01157: 无法标识/锁定数据文件 5 - 请参阅 DBWR 跟踪文件
ORA-01110: 数据文件 5: 'D:\APP\ADMINISTRATOR\ORADATA\ORCL\PRODUCT.DBF'
SQL>

4、开始恢复

SQL> alter database create datafile 'D:\APP\ADMINISTRATOR\ORADATA\ORCL\PRODUCT.DBF'  as 'D:\APP\ADMINISTRATOR\ORADATA\ORCL\PRODUCT.DBF';


数据库已更改。

SQL> recover datafile 'D:\APP\ADMINISTRATOR\ORADATA\ORCL\PRODUCT.DBF';
完成介质恢复。
SQL> alter database open;
数据库已更改。


SQL> select * from orders;

  ORDER_ID  ORDER_NAME ORDER_DATE
         1             测试1                    18-7月 -12

SQL>

你可能感兴趣的:(sql,数据库,Date,database,System,archive)