归档模式五备份,丢失数据文件的恢…

来源:互联网 发布:用sql语句建立第2章 编辑:程序博客网 时间:2024/06/05 16:56
1)创建演示环境
确认是否是归档模式
SQL> archive log file;
SP2-0718: 非法的       ARCHIVE LOG 选项
SQL> ARCHIVE LOG LIST;
数据库日志模式          存档模式
自动存档            启用
存档终点          e:\oracle\archive2
最早的联机日志序列     197
下一个存档日志序列   199
当前日志序列          199

2)创建一格兴的表空间BOOKS 和用户JSS 并授予相应的权限:
SQL>CREATE TABLESPACE books DATAFILE'D:\oracle\product\10.2.0\oradata\orcl\JSSBOOK\BOOKS01.DBF' size100m;
SQL>CREATE USER jss indentified by jss defaulttablespace books quota unlimited on books;
          用户名              密码        缺省表空间BOOKS        数据量增加不限制
SQL>GRANT connect,recource to jss;

3)初始化一些数据:
SQL> CREATE TABLE BOOK_LIST(BOOID NUMBERPRIMARY KEY,BOOKNAME VARCHAR2(100),CREATE_DATE DATE);

表已创建。

SQL> insert into book_listvalues(1,'Sansi')
  2
SQL> insert into book_list values(1,'Sansi''sNote',sysdate);

已创建 1 行。


4)模拟文件丢失
SQL>SHUTDOWN immediate
SQL>hostdel D:\oracle\product\10.2.0\oradata\orcl\JSSBOOK\BOOKS01.DBF


5)重新启动数据库
C:\Documents and Settings\user>SQLPLUS / ASsysdba

SQL*Plus: Release 10.2.0.1.0 - Production on 星期日 11月 616:34:13 2011

Copyright (c) 1982, 2005, Oracle.  All rightsreserved.

已连接到空闲例程。

SQL> startup
ORACLE 例程已经启动。

Total System Global Area  612368384bytes
Fixed Size               1250428 bytes
Variable Size           201329540 bytes
Database Buffers         402653184bytes
Redo Buffers              7135232bytes
数据库装载完毕。
ORA-01157: 无法标识/锁定数据文件 9 - 请参阅 DBWR 跟踪文件
ORA-01110: 数据文件 9:
'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\JSSBOOK\BOOKS01.DBF'



6)执行修复
先重建文件
SQL> alter database create datafile'D:\oracle\product\10.2.0\oradata\orcl\JSSBOOK\BOOKS01.DBF'
  2  as'D:\oracle\product\10.2.0\oradata\orcl\JSSBOOK\BOOKS01.DBF';

执行RECOVER 命令修复丢失的数据文件
SQL> RECOVER DATAFILE 6;
ORA-00283: 恢复会话因错误而取消
ORA-00264: 不要求恢复


SQL> RECOVER DATAFILE;
ORA-02236: 文件名无效


SQL> RECOVER DATAFILE 20;
ORA-01179: 文件 20 不存在


SQL> RECOVER DATAFILE 16;
ORA-01179: 文件 16 不存在


SQL> LIST backup of database;
SP2-0224: 起始行号无效
SQL> recover datafile 6;
ORA-00283: 恢复会话因错误而取消
ORA-00264: 不要求恢复


SQL> recover datafile 5;
ORA-00283: 恢复会话因错误而取消
ORA-00264: 不要求恢复


SQL> exit
从 Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 -Production
With the Partitioning, OLAP and Data Mining options 断开

C:\Documents and Settings\user>rman target/

恢复管理器: Release 10.2.0.1.0 - Production on 星期日 11月 6 16:40:072011

Copyright (c) 1982, 2005, Oracle.  All rightsreserved.

已连接到目标数据库: ORCL (DBID=1273981632, 未打开)

RMAN> exit


恢复管理器完成。

C:\Documents and Settings\user>sqlplus / assysdba

SQL*Plus: Release 10.2.0.1.0 - Production on 星期日 11月 616:40:31 2011

Copyright (c) 1982, 2005, Oracle.  All rightsreserved.


连接到:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 -Production
With the Partitioning, OLAP and Data Mining options

SQL> startup
ORA-01081: 无法启动已在运行的 ORACLE - 请首先关闭它
SQL> recover;
完成介质恢复。
SQL> conn jss/jss
ERROR:
ORA-01033: ORACLE initialization or shutdown in progress


警告: 您不再连接到 ORACLE。
SQL> shutdown immediate;
ORA-01012: not logged on
SQL> startup
ORA-01031: insufficient privileges
SQL> conn /as sysdba
已连接。
SQL> startup
ORA-01081: 无法启动已在运行的 ORACLE - 请首先关闭它
SQL> shutdown immediate;
ORA-01109: 数据库未打开


已经卸载数据库。
ORACLE 例程已经关闭。
SQL> startup;
ORACLE 例程已经启动。

Total System Global Area  612368384bytes
Fixed Size               1250428 bytes
Variable Size           201329540 bytes
Database Buffers         402653184bytes
Redo Buffers              7135232bytes
数据库装载完毕。
数据库已经打开。
SQL> conn jss/jss
已连接。
SQL> select * from book_list;

    BOOID
----------
BOOKNAME
--------------------------------------------------------------------------------
CREATE_DATE
--------------
        1
Sansi's Note
06-11月-11


疑问:RECOVERY DATAFILE N;   中的N如何去查询?
丢失的数据文件,从其创建时刻起所有的重做日志文件都还在,因此可以通过RECOVER命令应用所有重做日志的方式,重建该数据文件中的内容。


0 0