Fixed Size 453492 bytes Variable Size 109051904 bytes Database Buffers 25165824 bytes Redo Buffers 667648 bytes 数据库装载完毕。
ORA-01157:不能识别/锁住数据文件 9 ----查看DBWR跟踪文件 ORA-01110:数据文件 9:’e:\\oracle\\oradata\\oracle\%users01.dbf’ 上述提示信息说明没法打开数据库,因为数据文件9找不到。 (6)进行恢复
首先将刚在没有打开的数据库关闭。 SQL> connect /as sysdba SQL> shutdown
数据库没有打开。 已经卸载数据库。
ORACLE 例程已经关闭。 SQL> exit;
然后用操作系统命令,将8.2.2.3节非归档模式下物理备份中备份出来的整个数据库的所有数据文件、联机日志文件、控制文件按原来的目录路径装入。此时将该目录中的文件全部覆盖。
C:\\ copy h:\\oracle\\cold\\*.* e:\\oracle\\oradata\\oracle\\ /*装入整个数据库*/
装入后重新打开数据库。此时所有数据文件、联机日志文件、控制文件都恢复到备份时的状态。
SQL> connect /as sysdba SQL> startup
ORACLE 例程已经启动。
Total System Global Area 135338868 bytes Fixed Size 453492 bytes Variable Size 109051904 bytes Database Buffers 25165824 bytes Redo Buffers 667648 bytes 数据库装载完毕。 数据库已经打开。 (7)测试
测试在做了非归档模式下物理冷备份后,新建的表TEST以及往表中插入的数据在非归档模式下的物理恢复后是否存在。 SQL> connect scott/tiger SQL> select * from test; select * from test * ERROR 位于第 1 行:
ORA-00942: 表或视图不存在
上述测试说明在非归档模式下物理冷备份后,新建的表TEST以及往表中插入的数据在非归档模式下物理恢复后是不存在。即说明数据库运行于非归档模式时只能恢复到最后一次备份点,备份后所做的操作不能恢复。
2. 归档模式的物理恢复
要求数据库运行在归档模式,并已成功地进行了8.2.2.3节讲述的归档模式下物理备份。如果数据库没有运行在归档模式,按8.2.2.2节讲述的方法将数据库置于归档模式。按下列方法进行归档模式下的物理恢复。
首先打开数据库,并确认数据库运行于归档模式,然后对数据库进行操作,接着将刚在操作的内容归档到归档文件。此时如果组成数据库的物理文件中某一个数据文件遭到破坏,造成数据库无法启动。需要将被破坏的数据文件以前的备份按原路径装入,但因为此数据文件是以前备份的,其序列号与其他没有被破坏的数据文件的序列号不一致,所以必须利用归档的日志文件进行恢复。此时启动数据库到MOUNT状态,发RECOVER命令,系统自动利用备份后产生的归档日志文件进行恢复,恢复到所有数据文件序列号一致时为止。最后将此数据文件设为ONLINE,并打开数据库到OPEN状态。
下列实例说明了归档模式下物理恢复的步骤,并说明恢复了备份后所做的操作。 (1)启动数据库并确认数据库运行在自动归档模式 SQL> connect / as sysdba
SQL> startup /*启动数据库并保证运行于归档模式*/ SQL> archive log list /*验证数据库运行于归档模式*/
数据库日志模式 存档模式 自动存档 启用
存档终点 E:\\oracle\\ora92\\RDBMS 最早的概要日志序列 58 当前日志序列 60
(2)建立新用户TEST并授权,在TEST用户中建立TEST表,并往表中插入数据和提交 SQL> create user test identified by test /*建立新用户*/
default tablespace users temporary tablespace temp quota 10m on users;
SQL> grant connect to test; /*给用户授权*/ SQL> connect test/test /*新用户连接*/ SQL> create table test(t1 number, t2 date); /*建表*/
SQL> insert into test values(1, sysdate); /*往表中插入数据*/ SQL> insert into test values(2, sysdate); SQL> insert into test values(3, sysdate); SQL> commit; SQL> disconnect
(3)以sysdba权限登录,进行日志切换,以便将刚在所做的操作归档到归档日志文件 SQL> connect /as sysdba
SQL> alter system switch logfile; /*产生日志切换*/ SQL> alter system switch logfile; SQL> alter system switch logfile;
假设数据库有三个联机日志文件组,日志切换3次,保证刚在插入的数据已被归档到归档日志文件。
(4)关闭数据库,删除数据文件users01.dbf SQL> connect /as sysdba
SQL> shutdown
数据库没有打开。 已经卸载数据库。
ORACLE 例程已经关闭。
SQL> host del e:\\oracle\\oradata\\oracle\%users01.dbf
(5)执行打开数据库命令,观察现象(数据库无法启动,注意提示信息) SQL> connect /as sysdba SQL> startup
ORACLE 例程已经启动。
Total System Global Area 135338868 bytes Fixed Size 453492 bytes Variable Size 109051904 bytes Database Buffers 25165824 bytes Redo Buffers 667648 bytes 数据库装载完毕。
ORA-01157:不能识别/锁住数据文件 9 ----查看DBWR跟踪文件 ORA-01110:数据文件 9:’e:\\oracle\\oradata\\oracle\%users01.dbf’ 上述提示信息说明没法打开数据库,因为数据文件9找不到。
(6)将8.2.2.3节归档模式下物理备份的users01.dbf 文件装入到对应的目录 SQL> host copy h:\\oracle\\hot\\ USERS01.DBF E:\\ORACLE\\ORADATA\\ORACLE\\ (7)执行数据库恢复,并打开数据库 SQL> recover database auto; 介质恢复完成。
由于在8.2.2.3节归档模式下物理备份中备份的users01.dbf文件的序列号与其他数据文件和控制文件的序列号不同,所以系统自动使用备份后产生的归档日志文件执行数据库恢复。恢复完成后所有文件的序列号相同。此时将users01.dbf文件置为online状态,以便执行下一步的查询操作。然后将数据库打开。
SQL> alter database datafile ‘E:\\ORACLE\\ORADATA\\ORACLE\%users01.dbf’ online; SQL> alter database open;
数据库已经打开。
(8)测试恢复后刚建立的表和插入的数据是否存在?
测试在执行了归档模式下物理备份后,新建的表TEST以及往表中插入的数据在归档模式下物理恢复后是否存在。 SQL> connect test/test SQL> select * from test; T1 T2 ---------- ----------
1 19-1月 -05 2 19-1月 -05 3 19-1月 –05
上述测试说明在归档模式下物理备份后,新建的表TEST以及往表中插入的数据在归档模式下物理恢复后是存在的。即说明数据库运行于归档模式时可以恢复到最后失败点,备份后所做的操作可以通过归档日志文件进行恢复。
二、 逻辑恢复
IMPORT工具从EXPORT工具卸出的专门操作系统文件中读取数据,将其插入到数据库中。根据卸出的四种模式(整个数据库模式、用户模式、表模式、表空间模式)可以分别装入整个数据库对象、装入某一用户的对象、或者装入某一张表上的对象、表空间上的对象。拥有IMP_FULL_DATABASE角色权限的用户才能执行整个数据库的装入。通过在操作系统提示符下运行IMP HELP=Y命令可以获得IMPORT工具的联机帮助。
装入运行方式有三种:交互方式、命令行方式、参数文件方式。 1. 交互方式
交互方式装入时首先在操作系统提示符c:\\下输入IMP,然后IMPORT工具会一步一步提示用户回答系统提出的问题,根据用户的回答,IMPORT工具一步一步往下执行装入相应的内容。
下列命令将e:\\oracle\\ff.dmp文件中所包含的数据,根据需要将DEPT和EMP 表装入到SCOTT用户中。为避免出错,应该事先删除DEPT和EMP 表,或者删除这两张表中的数据。 E:\\>imp
Import: Release 9.2.0.1.0 - Production on 星期三 1 月 19 12:02:18 2005 (c) Copyright 1982,2002, Oracle Corporation. All rights reserved. 用户名: scott/tiger
连接到:Oracle9i Enterprise Edition Release 9.2.0.1.0 - Production With the Partitioning and Java options PL/SQL Release 9.2.0.1.0 - Production 导入文件:EXPDAT.DMP> e:\\oracle\\ff.dmp 输入插入缓冲区大小(最小为 8192 ) 30720> 只列出导入文件的内容(yes/no):no>
由于对象已存在, 忽略创建错误(yes/no):no> yes 导入权限(yes/no):yes> 导入表数据(yes/no):yes> 导入整个导出文件(yes/no):no> 用户名: scott
输入表 (T) 或分区 (T:P) 名称。空列表表示用户的所有表> dept 输入表 (T) 或分区 (T:P) 名称。空列表表示用户的所有表> emp ...
2. 命令行方式
命令行方式就是将交互方式中所有用户回答的内容全部写在命令行上,每一个回答的内容作为某一关键字的值。IMPORT工具命令行的语法如下:
IMP [KEYWORD=] {VALUE |(VALUE,VALUE…)}
[[[,]KEYWORD=] {VALUE |(VALUE,VALUE…)}]… 其中:
KEYWORD:是关键字。 VALUE:是为关键字赋的值。
IMPORT工具常用的关键字包括:USERID、TABLES、FILE、IGNORE、FULL、FROMUSER、TOUSER。
相关推荐: