知识大全 数据库备份与恢复测试(6)

Posted 文件

篇首语:业无高卑志当坚,男儿有求安得闲?本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 数据库备份与恢复测试(6)相关的知识,希望对你有一定的参考价值。

  [测试 ] 数据库在非归档模式 数据库MOUNT 数据文件丢失 有表空间备份

  RMAN> backup tablespace users;

  启动 backup 于 月 分配的通道: ORA_DISK_ 通道 ORA_DISK_ : sid= devtype=DISK通道 ORA_DISK_ : 正在启动 full 数据文件备份集通道 ORA_DISK_ : 正在指定备份集中的数据文件RMAN : ===========================================================RMAN : =============== ERROR MESSAGE STACK FOLLOWS ===============RMAN : ===========================================================RMAN : failure of backup mand on ORA_DISK_ channel at / / : ORA : 无法按 NOARCHIVELOG 模式备份或复制活动文件

  RMAN> backup database include current controlfile;

  启动 backup 于 月 使用通道 ORA_DISK_ 通道 ORA_DISK_ : 正在启动 full 数据文件备份集通道 ORA_DISK_ : 正在指定备份集中的数据文件在备份集中包含当前的 SPFILE备份集中包括当前控制文件RMAN : ===========================================================RMAN : =============== ERROR MESSAGE STACK FOLLOWS ===============RMAN : ===========================================================RMAN : failure of backup mand on ORA_DISK_ channel at / / : : ORA : 无法按 NOARCHIVELOG 模式备份或复制活动文件

  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~如果是shutdown abort 那么数据需要恢复此时在mount下表空间数据是不完整的 所以无法备份表空间同样也不能备份整个数据库 因为他不是一致性的数据库~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

  RMAN> restore tablespace users;

  启动 restore 于 月

  使用通道 ORA_DISK_ 通道 ORA_DISK_ : 正在开始恢复数据文件备份集通道 ORA_DISK_ : 正在指定从备份集恢复的数据文件正将数据文件 恢复到C:\\ORACLE\\ORADATA\\TESTDB\\USERS DBF通道 ORA_DISK_ : 已恢复备份段 段 handle=C:\\ORACLE\\ORA \\DATABASE\\ AGECGNM_ _ tag=TAG T params=NLL通道 ORA_DISK_ : 恢复完成完成 restore 于 月

  RMAN>

  RMAN> recover tablespace users;

  启动 recover 于 月 使用通道 ORA_DISK_

  正在开始介质的恢复完成介质的恢复

  完成 recover 于 月

  RMAN> alter database open;

  数据库已打开

  [测试 ] 数据库在归档模式 控制文件损坏 控制文件有备份 使用RMAN恢复SQL> startupORACLE 例程已经启动

  Total System Global Area  bytesFixed Size                   bytesVariable Size              bytesDatabase Buffers           bytesRedo Buffers                 bytesORA : ??????? C:\\oracle\\ora \\DATABASE\\PWDtestdb ORA

  SQL> alter database open;

  数据库已更改

  SQL> create table arch (status varchar( )) tablespace users;

  表已创建

  SQL> alter system switch logfile;

  系统已更改

  SQL> insert into arch select ok from dba_objects;

  已创建 行

  SQL> mit;

  提交完成

  RMAN> backup database ;

  启动 backup 于 月 分配的通道: ORA_DISK_ 通道 ORA_DISK_ : sid= devtype=DISK通道 ORA_DISK_ : 正在启动 full 数据文件备份集通道 ORA_DISK_ : 正在指定备份集中的数据文件在备份集中包含当前的 SPFILE备份集中包括当前控制文件输入数据文件 fno= name=C:\\ORACLE\\ORADATA\\TESTDB\\SYSTEM DBF输入数据文件 fno= name=C:\\ORACLE\\ORADATA\\TESTDB\\UNDOTBS DBF输入数据文件 fno= name=C:\\ORACLE\\ORADATA\\TESTDB\\INDX DBF输入数据文件 fno= name=C:\\ORACLE\\ORADATA\\TESTDB\\USERS DBF输入数据文件 fno= name=C:\\ORACLE\\ORADATA\\TESTDB\\TOOLS DBF通道 ORA_DISK_ : 正在启动段 于 月 通道 ORA_DISK_ : 已完成段 于 月 段 handle=C:\\ORACLE\\ORA \\DATABASE\\ GECMF _ _ ment=NONE通道 ORA_DISK_ : 备份集已完成 经过时间: : : 完成 backup 于 月

  RMAN> copy CURRENT CONTROLFILE TO c:\\cf cpy ;

  启动 copy 于 月 使用通道 ORA_DISK_ 通道 ORA_DISK_ : 已复制当前的控制文件输出文件名=C:\\CF CPY完成 copy 于 月

  SQL> select count(*) from arch;

  COUNT(*)      

  SQL> insert into arch select * from arch;

  已创建 行

  SQL> /

  已创建 行

  SQL> /

  已创建 行

  SQL> /

  已创建 行

  SQL> mit;

  提交完成

  SQL> alter system switch logfile;

  系统已更改

  SQL> insert into arch select no from dba_objects;

  已创建 行

  SQL> mit;

  提交完成

  SQL> shutdown数据库已经关闭 已经卸载数据库 ORACLE 例程已经关闭

  模拟控制文件损坏c:\\cf cpy

  还原备份的控制文件SQL> startup mountORACLE 例程已经启动

  Total System Global Area  bytesFixed Size                   bytesVariable Size              bytesDatabase Buffers           bytesRedo Buffers                 bytes数据库装载完毕 SQL> recover database using backup controlfile;ORA : 更改 (在 / / : : 生成) 对于线程 是必需的ORA : 建议: C:\\ORACLE\\ORADATA\\TESTDB\\ARCHIVE\\ _ DBFORA : 更改 对于线程 是按序列 # 进行的

  指定日志: <RET>=suggested | filename | AUTO | CANCEL

  ORA : 更改 (在 / / : : 生成) 对于线程 是必需的ORA : 建议: C:\\ORACLE\\ORADATA\\TESTDB\\ARCHIVE\\ _ DBFORA : 更改 对于线程 是按序列 # 进行的ORA : 此恢复不再需要日志文件 C:\\ORACLE\\ORADATA\\TESTDB\\ARCHIVE\\ _ DBF

  指定日志: <RET>=suggested | filename | AUTO | CANCEL

  ORA : 无法打开存档日志 C:\\ORACLE\\ORADATA\\TESTDB\\ARCHIVE\\ _ DBF ORA : 无法打开文件OSD : 无法打开文件O/S Error: (OS ) 系统找不到指定的文件

  SQL> alter database open resetlogs;alter database open resetlogs*ERROR 位于第 行:ORA : 文件 需要介质恢复ORA : 数据文件 : C:\\ORACLE\\ORADATA\\TESTDB\\SYSTEM DBF

  SQL> recover database using backup controlfile until cancel;ORA : 更改 (在 / / : : 生成) 对于线程 是必需的ORA : 建议: C:\\ORACLE\\ORADATA\\TESTDB\\ARCHIVE\\ _ DBFORA : 更改 对于线程 是按序列 # 进行的

  指定日志: <RET>=suggested | filename | AUTO | CANCELcancel介质恢复已取消 SQL> alter database open resetlogs;

  数据库已更改

  SQL> archive log list数据库日志模式            存档模式自动存档             启用存档终点            C:\\oracle\\oradata\\testdb\\archive最早的概要日志序列     下一个存档日志序列   当前日志序列          

  SQL> select count(*) status from arch group by status;

  COUNT(*) ST      ok~~~~~~~~~~~~~~~~~~     在线日志的数据丢失使用trace可以不丢失数据

  [测试 ] 数据库在非归档模式 数据文件损坏 使用RMAN恢复

  [测试 ] 数据库在非归档模式 数据文件损坏 使用RMAN恢复 #         该文件的日志全部还保留在非当前在线日志和当前在线日志中SQL> startup mountORACLE 例程已经启动

  Total System Global Area  bytesFixed Size                   bytesVariable Size              bytesDatabase Buffers           bytesRedo Buffers                 bytes数据库装载完毕 SQL> alter database noarchivelog;

  数据库已更改

  C:\\Documents and Settings\\lifeng fang>rman nocatalog target sys/sunsdl

  恢复管理器: 版本 Production

  Copyright (c) Oracle Corporation   All rights reserved

  连接到目标数据库: TESTDB (DBID= )正在使用目标数据库控制文件替代恢复目录

  RMAN> backup format c:\\noarch_%s%p bak database;

  启动 backup 于 月 分配的通道: ORA_DISK_ 通道 ORA_DISK_ : sid= devtype=DISK通道 ORA_DISK_ : 正在启动 full 数据文件备份集通道 ORA_DISK_ : 正在指定备份集中的数据文件在备份集中包含当前的 SPFILE备份集中包括当前控制文件输入数据文件 fno= name=C:\\ORACLE\\ORADATA\\TESTDB\\SYSTEM DBF输入数据文件 fno= name=C:\\ORACLE\\ORADATA\\TESTDB\\UNDOTBS DBF输入数据文件 fno= name=C:\\ORACLE\\ORADATA\\TESTDB\\INDX DBF输入数据文件 fno= name=C:\\ORACLE\\ORADATA\\TESTDB\\USERS DBF输入数据文件 fno= name=C:\\ORACLE\\ORADATA\\TESTDB\\TOOLS DBF通道 ORA_DISK_ : 正在启动段 于 月 通道 ORA_DISK_ : 已完成段 于 月 段 handle=C:\\NOARCH_ BAK ment=NONE通道 ORA_DISK_ : 备份集已完成 经过时间: : : 完成 backup 于 月

  RMAN> copy CURRENT CONTROLFILE TO c:\\cf cpy ;

  启动 copy 于 月 使用通道 ORA_DISK_ 通道 ORA_DISK_ : 已复制当前的控制文件输出文件名=C:\\CF CPY完成 copy 于 月

  SQL> archive log list数据库日志模式             非存档模式自动存档             启用存档终点            C:\\oracle\\oradata\\testdb\\archive最早的概要日志序列     当前日志序列           SQL> alter database open;

  数据库已更改

  SQL> create table arch (status varchar( )) tablespace users;  日志

  表已创建

  SQL> alter system switch logfile;

  系统已更改

  SQL> insert into arch select ok from dba_objects;   日志

  已创建 行

  SQL> mit;

  提交完成

  SQL> insert into arch select * from arch;

  已创建 行

  SQL> /

  已创建 行

  SQL> /

  已创建 行

  SQL> /

  已创建 行

  SQL> mit;

  提交完成

  SQL> alter system switch logfile; 

  系统已更改

  SQL> insert into arch select no from dba_objects; 日志

  已创建 行

  SQL> mit;

  提交完成

  SQL> select GROUP# SEQUENCE# archived STATUS from v$log;

  GROUP#  SEQUENCE# ARC STATUS                    NO  CURRENT                   NO  ACTIVE                   NO  ACTIVE                  SQL> shutdown数据库已经关闭 已经卸载数据库 ORACLE 例程已经关闭      

  删除user dbf文件

  SQL> startup mountORACLE 例程已经启动

  Total System Global Area  bytesFixed Size                   bytesVariable Size              bytesDatabase Buffers           bytesRedo Buffers                 bytes数据库装载完毕

  RMAN> restore datafile ;

  启动 restore 于 月

  分配的通道: ORA_DISK_ 通道 ORA_DISK_ : sid= devtype=DISK通道 ORA_DISK_ : 正在开始恢复数据文件备份集通道 ORA_DISK_ : 正在指定从备份集恢复的数据文件正将数据文件 恢复到C:\\ORACLE\\ORADATA\\TESTDB\\USERS DBF通道 ORA_DISK_ : 已恢复备份段 段 handle=C:\\NOARCH_ BAK tag=TAG T params=NULL通道 ORA_DISK_ : 恢复完成完成 restore 于 月

  RMAN> recover datafile ;

  启动 recover 于 月 使用通道 ORA_DISK_

  正在开始介质的恢复完成介质的恢复

  完成 recover 于 月

  RMAN> alter database open;

  数据库已打开

  SQL> select count(*) status from arch group by status;

  COUNT(*) ST       no     ok  

  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     我们看到非归档模式 在备份数据文件后的日志如果都还存在当前在线日志和者非当前在线日志中 就可以实现完全恢复 比如我们最先create table arch的日志在日志组 中 没有被轮转覆蓋 所以可以完全恢复~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

  那我们试试如果在线日志被覆蓋了的情况下是否可以完全恢复 [测试 ] 数据库在非归档模式 数据文件损坏 使用RMAN恢复 #         该文件的日志部分由于日志轮转被覆蓋了SQL> startup mountORACLE 例程已经启动

  Total System Global Area  bytesFixed Size                   bytesVariable Size              bytesDatabase Buffers           bytesRedo Buffers                 bytes数据库装载完毕 SQL> alter database noarchivelog;

  数据库已更改

  SQL> archive log list数据库日志模式             非存档模式自动存档             启用存档终点            C:\\oracle\\oradata\\testdb\\archive最早的概要日志序列     当前日志序列          

  C:\\Documents and Settings\\lifeng fang>rman nocatalog target sys/sunsdl

  恢复管理器: 版本 Production

  Copyright (c) Oracle Corporation   All rights reserved

  连接到目标数据库: TESTDB (DBID= )正在使用目标数据库控制文件替代恢复目录

  RMAN>  backup format c:\\noarch_%s%p bak database;

  启动 backup 于 月 分配的通道: ORA_DISK_ 通道 ORA_DISK_ : sid= devtype=DISK通道 ORA_DISK_ : 正在启动 full 数据文件备份集通道 ORA_DISK_ : 正在指定备份集中的数据文件在备份集中包含当前的 SPFILE备份集中包括当前控制文件输入数据文件 fno= name=C:\\ORACLE\\ORADATA\\TESTDB\\SYSTEM DBF输入数据文件 fno= name=C:\\ORACLE\\ORADATA\\TESTDB\\UNDOTBS DBF输入数据文件 fno= name=C:\\ORACLE\\ORADATA\\TESTDB\\INDX DBF输入数据文件 fno= name=C:\\ORACLE\\ORADATA\\TESTDB\\USERS DBF输入数据文件 fno= name=C:\\ORACLE\\ORADATA\\TESTDB\\TOOLS DBF通道 ORA_DISK_ : 正在启动段 于 月 通道 ORA_DISK_ : 已完成段 于 月 段 handle=C:\\NOARCH_ BAK ment=NONE通道 ORA_DISK_ : 备份集已完成 经过时间: : : 完成 backup 于 月

  SQL> alter database open;

  数据库已更改

  SQL> create table arch (status varchar( )) tablespace users;  日志序列 在组

  表已创建

  SQL> alter system switch logfile;

  系统已更改

  SQL> insert into arch select ok from dba_objects;  日志序列 在组

  已创建 行

  SQL> mit;

  提交完成

  SQL> insert into arch select * from arch;

  已创建 行

  SQL> mit;

  提交完成

  SQL> alter system switch logfile;

  系统已更改

  SQL> insert into arch select * from arch;  日志序列 在组

  已创建 行

  SQL> /

  已创建 行

  SQL> /

  已创建 行

  SQL> mit;

  提交完成

  SQL> alter system switch logfile;

  系统已更改

  SQL> insert into arch select no from dba_objects; 日志序列 在组 把前面create table arch给覆蓋了

  已创建 行

  SQL> mit;

  提交完成

  SQL> select GROUP# SEQUENCE# archived STATUS from v$log;

  GROUP#  SEQUENCE# ARC STATUS                    NO  ACTIVE                   NO  CURRENT                   NO  INACTIVE

  SQL> shutdown数据库已经关闭 已经卸载数据库 ORACLE 例程已经关闭

  删除user dbf文件

  SQL> startup mountORACLE 例程已经启动

  Total System Global Area  bytesFixed Size                   bytesVariable Size              bytesDatabase Buffers           bytesRedo Buffers                 bytes数据库装载完毕     RMAN> restore datafile ;

  启动 restore 于 月

  分配的通道: ORA_DISK_ 通道 ORA_DISK_ : sid= devtype=DISK通道 ORA_DISK_ : 正在开始恢复数据文件备份集通道 ORA_DISK_ : 正在指定从备份集恢复的数据文件正将数据文件 恢复到C:\\ORACLE\\ORADATA\\TESTDB\\USERS DBF通道 ORA_DISK_ : 已恢复备份段 段 handle=C:\\NOARCH_ BAK tag=TAG T params=NULL通道 ORA_DISK_ : 恢复完成完成 restore 于 月

  RMAN> recover datafile ;

  启动 recover 于 月 使用通道 ORA_DISK_

  正在开始介质的恢复

  无法找到存档日志存档日志线程 = 序列= RMAN : ===========================================================RMAN : =============== ERROR MESSAGE STACK FOLLOWS ===============RMAN : ===========================================================RMAN : failure of recover mand at / / : : RMAN : media recovery requesting unknown log: thread scn

  RMAN> restore datafile ;

  启动 restore 于 月

  使用通道 ORA_DISK_ 正在略过数据文件 ; 已恢复到文件 C:\\ORACLE\\ORADATA\\TESTDB\\USERS DBF通道 ORA_DISK_ : 正在开始恢复数据文件备份集通道 ORA_DISK_ : 正在指定从备份集恢复的数据文件正将数据文件 恢复到C:\\ORACLE\\ORADATA\\TESTDB\\SYSTEM DBF正将数据文件 恢复到C:\\ORACLE\\ORADATA\\TESTDB\\UNDOTBS DBF正将数据文件 恢复到C:\\ORACLE\\ORADATA\\TESTDB\\INDX DBF正将数据文件 恢复到C:\\ORACLE\\ORADATA\\TESTDB\\TOOLS DBF通道 ORA_DISK_ : 已恢复备份段 段 handle=C:\\NOARCH_ BAK tag=TAG T params=NULL通道 ORA_DISK_ : 恢复完成完成 restore 于 月

  RMAN> recover datafile ;

  启动 recover 于 月 使用通道 ORA_DISK_

  正在开始介质的恢复

  无法找到存档日志存档日志线程 = 序列= RMAN : ===========================================================RMAN : =============== ERROR MESSAGE STACK FOLLOWS ===============RMAN : ===========================================================RMAN : failure of recover mand at / / : : RMAN : media recovery requesting unknown log: thread scn

  ~~~~~~~~~~~~~~~~~~~还需要备份的控制文件~~~~~~~~~~~~~~~~~~~还原备份的控制文件

  SQL> startup mountORACLE 例程已经启动

  Total System Global Area  bytesFixed Size                   bytesVariable Size              bytesDatabase Buffers           bytesRedo Buffers                 bytes数据库装载完毕 SQL> recover database using backup controlfile;ORA : 更改 (在 / / : : 生成) 对于线程 是必需的ORA : 建议: C:\\ORACLE\\ORADATA\\TESTDB\\ARCHIVE\\ _ DBFORA : 更改 对于线程 是按序列 # 进行的

  指定日志: <RET>=suggested | filename | AUTO | CANCELautoORA : 无法打开存档日志 C:\\ORACLE\\ORADATA\\TESTDB\\ARCHIVE\\ _ DBF ORA : 无法打开文件OSD : 无法打开文件O/S Error: (OS ) 系统找不到指定的文件

  ORA : 无法打开存档日志 C:\\ORACLE\\ORADATA\\TESTDB\\ARCHIVE\\ _ DBF ORA : 无法打开文件OSD : 无法打开文件O/S Error: (OS ) 系统找不到指定的文件

  SQL> recover database using backup controlfile until cancel;ORA : 更改 (在 / / : : 生成) 对于线程 是必需的ORA : 建议: C:\\ORACLE\\ORADATA\\TESTDB\\ARCHIVE\\ _ DBFORA : 更改 对于线程 是按序列 # 进行的

  指定日志: <RET>=suggested | filename | AUTO | CANCELcancel介质恢复已取消 SQL> alter database open resetlogs;

  数据库已更改

  SQL> select count(*) status from arch group by status;select count(*) status from arch group by status                            *ERROR 位于第 行:ORA : 表或视图不存在

  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~所以如果是非归档模式 且没有所有日志都在当前在线日志和非当前在线日志中 那么就不能完全恢复 而且这时要用备份的数据文件还不够 还要备份的控制文件~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

  ###################################################### [测试 ] 修改日志组大小及增加日志组成员##################################################### 日志处理恢复测试实例ALTER DATABASE CLEAR LOGFILE GROUP <group_number>;

  This statement overes o situations where dropping redo logs is not possible: If there are only o log groups The corrupt redo log file belongs to the current group

  SQL> insert into test select * from test;

  已创建 行

  SQL> select value from v$sesstat where STATISTIC#= and sid= ;

  VALUE   

  SQL> insert into test select * from test;

  已创建 行

  SQL>  select value from v$sesstat where STATISTIC#= and sid= ;

  VALUE  

  SQL> ALTER DATABASE ADD LOGFILE GROUP ( C:\\ORA \\ORA \\ORADATA\\TEST\\REDO LOG C:\\ORA \\ORA \\ORADATA\\TEST\\REDO LOG ) size M;

  数据库已更改

  SQL> ALTER DATABASE ADD LOGFILE GROUP ( C:\\ORA \\ORA \\ORADATA\\TEST\\REDO LOG C:\\ORA \\ORA \\ORADATA\\TEST\\REDO LOG ) size M;

  数据库已更改

  SQL> ALTER DATABASE ADD LOGFILE GROUP ( C:\\ORA \\ORA \\ORADATA\\TEST\\REDO LOG C:\\ORA \\ORA \\ORADATA\\TEST\\REDO LOG ) size M;ALTER DATABASE ADD LOGFILE GROUP ( C:\\ORA \\ORA \\ORADATA\\TEST\\REDO LOG C:\\ORA \\ORA \\ORADATA\\TEST\\REDO LOG ) size M*ERROR 位于第 行:ORA : 日志文件组号 无效

  SQL> l  * ALTER DATABASE ADD LOGFILE GROUP ( C:\\ORA \\ORA \\ORADATA\\TEST\\REDO LOG C:\\ORA \\ORA \\ORADATA\\TEST\\REDO LOG ) size MSQL> ALTER DATABASE ADD LOGFILE GROUP ( C:\\ORA \\ORA \\ORADATA\\TEST\\REDO LOG C:\\ORA \\ORA \\ORADATA\\TEST\\REDO LOG ) size M;ALTER DATABASE ADD LOGFILE GROUP ( C:\\ORA \\ORA \\ORADATA\\TEST\\REDO LOG C:\\ORA \\ORA \\ORADATA\\TEST\\REDO LOG ) size M*ERROR 位于第 行:ORA : 日志文件组号 无效

  SQL> alter database backup controlfile to trace;

  数据库已更改

  SQL> select * from v$log;

  GROUP#    THREAD#  SEQUENCE#      BYTES    MEMBERS ARC STATUS                                          YES INACTIVE                                         YES ACTIVE                                         NO  CURRENT                                          YES UNUSED                                          YES UNUSEDSQL> select * from v$logfile;

  GROUP# STATUS  TYPE     MEMBER                     ONLINE   C:\\ORA \\ORA \\ORADATA\\TEST\\REDO LOG                  ONLINE   C:\\ORA \\ORA \\ORADATA\\TEST\\REDO LOG                  ONLINE   C:\\ORA \\ORA \\ORADATA\\TEST\\REDO LOG         INVALID ONLINE   C:\\ORA \\ORA \\ORADATA\\TEST\\REDO LOG         INVALID ONLINE   C:\\ORA \\ORA \\ORADATA\\TEST\\REDO LOG         INVALID ONLINE   C:\\ORA \\ORA \\ORADATA\\TEST\\REDO LOG                  ONLINE   C:\\ORA \\ORA \\ORADATA\\TEST\\REDO LOG                  ONLINE   C:\\ORA \\ORA \\ORADATA\\TEST\\REDO LOG                  ONLINE   C:\\ORA \\ORA \\ORADATA\\TEST\\REDO LOG                  ONLINE   C:\\ORA \\ORA \\ORADATA\\TEST\\REDO LOG

  已选择 行

  SQL>

  SQL> alter database drop logfile group ;                                         数据库已更改                                                                     SQL> alter database drop logfile group ;                                         数据库已更改                                                                     SQL> alter database drop logfile group ;                                         数据库已更改                           

  SQL> select * from v$logfile;                                                                                                                                       GROUP# STATUS  TYPE     MEMBER                                                                                                     ONLINE   C:\\ORA \\ORA \\ORADATA\\TEST\\REDO LOG                                                                                                        ONLINE   C:\\ORA \\ORA \\ORADATA\\TEST\\REDO LOG                                 ONLINE   C:\\ORA \\ORA \\ORADATA\\TEST\\REDO LOG                                 ONLINE   C:\\ORA \\ORA \\ORADATA\\TEST\\REDO LOG        

  SQL> ALTER DATABASE ADD LOGFILE GROUP ( C:\\ORA \\ORA \\ORADATA\\TEST\\REDO LOG

     C:\\ORA \\ORA \\ORADATA\\TEST\\REDO LOG ) size M;ALTER DATABASE ADD LOGFILE GROUP ( C:\\ORA \\ORA \\ORADATA\\TEST\\REDO LOG*ERROR 位于第 行:ORA : 添加日志文件 C:\\ORA \\ORA \\ORADATA\\TEST\\REDO LOG 时出错 无法创建文件ORA : skgfrcre: 创建错误 无法创建文件OSD : 无法打开文件O/S Error: (OS ) 文件名 目录名或卷标语法不正确

  这里我把原有的C:\\ORA \\ORA \\ORADATA\\TEST\\REDO LOG和C:\\ORA \\ORA \\ORADATA\\TEST\\REDO LOG删除 就OK了SQL> ALTER DATABASE ADD LOGFILE GROUP ( C:\\ORA \\ORA \\ORADATA\\TEST\\REDO LOG C:\\ORA \\ORA \\ORADATA\\TEST\\REDO LOG ) size M;

  数据库已更改

  SQL> ALTER DATABASE ADD LOGFILE GROUP ( C:\\ORA \\ORA \\ORADATA\\TEST\\REDO LOG C:\\ORA \\ORA \\ORADATA\\TEST\\REDO LOG ) size M;ALTER DATABASE ADD LOGFILE GROUP ( C:\\ORA \\ORA \\ORADATA\\TEST\\REDO LOG C:\\ORA \\ORA \\ORADATA\\TEST\\REDO LOG ) size M*ERROR 位于第 行:ORA : 添加日志文件 C:\\ORA \\ORA \\ORADATA\\TEST\\REDO LOG 时出错 无法创建文件ORA : skgfrcre: 文件存在OSD : 指定了 <create> 选项 但文件已经存在

  SQL> ALTER DATABASE ADD LOGFILE GROUP ( C:\\ORA \\ORA \\ORADATA\\TEST\\REDO LOG C:\\ORA \\ORA \\ORADATA\\TEST\\REDO LOG ) size M;

  数据库已更改

  SQL> ALTER DATABASE ADD LOGFILE GROUP ( C:\\ORA \\ORA \\ORADATA\\TEST\\REDO LOG C:\\ORA \\ORA \\ORADATA\\TEST\\REDO LOG ) size M;

  数据库已更改                                

  GROUP#    THREAD#  SEQUENCE#      BYTES    MEMBERS ARC STATUS                                         NO  CURRENT                                        YES INACTIVE

  SQL> alter database clear logfile group ;

  数据库已更改

  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~注意如果这个非活动的日志组ARC状态为NO 也就是说不能被归档 那么 要执行ALTER DATABASE CLEAR LOGFILE UNARCHIVED GROUP ;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~注意如果这时有个offline文件需要这个非活动的日志组ARC状态为NO的日志使这个文件带到online状态 那么在CLEAR LOGFILE时指定这个文件的UNRECOVERABLE DATAFILE参数才行如 ALTER DATABASE CLEAR LOGFILE UNARCHIVED GROUP UNRECOVERABLE DATAFILE;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~有时执行ALTER DATABASE CLEAR LOGFILE 会出错原因是该日志磁盘IO损坏 那么你最好重新部署该日志到新的路径 如使用修改了的创建控制文件语句或者ALTER DATABASE RENAME FILE /oracle/dbs/log_ rdo TO /temp/log_ rdo ;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~SQL> select * from v$log;

  GROUP#    THREAD#  SEQUENCE#      BYTES    MEMBERS ARC STATUS                                           YES UNUSED                                          YES UNUSED                                          YES UNUSED                                        NO  CURRENT                                          YES UNUSED

  SQL> alter system switch logfile;

  系统已更改

  SQL> /

  系统已更改

  SQL> /

  系统已更改

  SQL> select * from v$log;

  GROUP#    THREAD#  SEQUENCE#      BYTES    MEMBERS ARC STATUS                                         YES INACTIVE                                        YES INACTIVE                                        YES INACTIVE                                        YES INACTIVE                                        NO  CURRENT

  ########################################################## [测试 ] 当前在线日志损坏 切没有备份数据文件 使用强制打开的方式#########################################################SQL> select * from v$logfile;

  GROUP# STATUS  TYPE     MEMBER                     ONLINE   C:\\ORA \\ORA \\ORADATA\\TEST\\REDO LOG                  ONLINE   C:\\ORA \\ORA \\ORADATA\\TEST\\REDO LOG                  ONLINE   C:\\ORA \\ORA \\ORADATA\\TEST\\REDO LOG                  ONLINE   C:\\ORA \\ORA \\ORADATA\\TEST\\REDO LOG                  ONLINE   C:\\ORA \\ORA \\ORADATA\\TEST\\REDO LOG                  ONLINE   C:\\ORA \\ORA \\ORADATA\\TEST\\REDO LOG                  ONLINE   C:\\ORA \\ORA \\ORADATA\\TEST\\REDO LOG                  ONLINE   C:\\ORA \\ORA \\ORADATA\\TEST\\REDO LOG                  ONLINE   C:\\ORA \\ORA \\ORADATA\\TEST\\REDO LOG                  ONLINE   C:\\ORA \\ORA \\ORADATA\\TEST\\REDO LOG

  已选择 行

  SQL> shutdown immediate数据库已经关闭 已经卸载数据库 ORACLE 例程已经关闭

  删除C:\\ORA \\ORA \\ORADATA\\TEST\\REDO LOGSQL> startupORACLE 例程已经启动

  Total System Global Area  bytesFixed Size                   bytesVariable Size             bytesDatabase Buffers           bytesRedo Buffers                 bytes数据库装载完毕 ORA : 无法打开日志组 (线程 ) 的成员ORA : 联机日志 线程 : C:\\ORA \\ORA \\ORADATA\\TEST\\REDO LOG ORA : 联机日志 线程 : C:\\ORA \\ORA \\ORADATA\\TEST\\REDO LOG

  SQL> select count(*) from test;select count(*) from test                     *ERROR 位于第 行:ORA : 数据库未打开: 仅允许在固定表/视图中查询

  SQL> alter database clear logfile group ;

  数据库已更改

  这时会自动增加     C:\\ORA \\ORA \\ORADATA\\TEST\\REDO LOG                         C:\\ORA \\ORA \\ORADATA\\TEST\\REDO LOG   两个日志文件              

  SQL> alter database open;

  数据库已更改                                      

  SQL>  select GROUP# THREAD# SEQUENCE# MEMBERS STATUS ARCHIVED  from v$log;                                                                              GROUP#    THREAD#  SEQUENCE#    MEMBERS STATUS           ARC                                                           UNUSED           YES                                               INACTIVE         YES                                               INACTIVE         YES                                               INACTIVE         YES                                               CURRENT          NO                     SQL> /                                                                                                                                       GROUP#    THREAD#  SEQUENCE#    MEMBERS STATUS           ARC                                      CURRENT          NO                                      INACTIVE         YES                                     INACTIVE         YES                                     INACTIVE         YES                                     ACTIVE           YES                       删除日志组 的文件

  SQL> shutdown immediate                                                         数据库已经关闭                                                        已经卸载数据库                                                        ORACLE 例程已经关闭                                                   SQL> startup                                                           ORACLE 例程已经启动                                                                                                                          Total System Global Area  bytes                              Fixed Size                   bytes                              Variable Size             bytes                              Database Buffers           bytes                              Redo Buffers                 bytes                              数据库装载完毕                                                        ORA : 无法打开日志组 (线程 ) 的成员                            ORA : 联机日志 线程 : C:\\ORA \\ORA \\ORADATA\\TEST\\REDO LOG ORA : 联机日志 线程 : C:\\ORA \\ORA \\ORADATA\\TEST\\REDO LOG                                                                                                                                               SQL> alter database clear logfile group ;                                                                                                    数据库已更改                                                                                                                                 SQL> alter database open;                                                                                                                     数据库已更改                                                                                                                                 SQL>                                                                   SQL>                                                                   SQL>                                                                   SQL> select count(*) from test;                                                                                                                 COUNT(*)                                                                                                                                                             SQL> alter system switch logfile;                                                                                                                                                      系统已更改                                                                                                                                         SQL>  select GROUP# THREAD# SEQUENCE# MEMBERS STATUS ARCHIVED  from v$log;                                                                              GROUP#    THREAD#  SEQUENCE#    MEMBERS STATUS           ARC                                                         ACTIVE           YES                                               INACTIVE         YES                                               INACTIVE         YES                                               INACTIVE         YES                                               CURRENT          NO                                                                                              此时用ultraedit把日志组 的两个文件编辑文件头 使他被破坏SQL> delete test;          delete test              *          ERROR 位于第 行:ORA : 通信通道的文件结束

  C:\\>sqlplus /as sysdba                                                                                                                         SQL*Plus: Release Production on 星期五 月 : :                                                                       &

相关参考

知识大全 数据库备份与恢复测试(8)

  #######################################################################################  

知识大全 数据库备份与恢复测试(3)

  ################################           

知识大全 oracle数据库备份与恢复apieceofcake(4)

  oracle数据库日志备份(windows平台)  本片是接上次的数据库在线备份进行数据库全备份后需要备份归档的日志文件  建立数据库备份的脚本  在上面建立的目录下建立如下的两个脚本  建立执行

知识大全 Oracle数据库备份与恢复

Oracle数据库备份与恢复  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  一导出/导入(Exp

知识大全 实战Oracle数据库备份与恢复

实战Oracle数据库备份与恢复  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  用户可以留意一下

知识大全 Oracle数据库的备份与恢复

Oracle数据库的备份与恢复  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  河南省新乡市电信局

知识大全 数据库中备份与恢复问题简介

  备份与恢复是我们使用数据库中不可缺少的部分也是我们在使用数据库时会经常碰到的问题当我们使用一个数据库时总希望数据库的内容是可靠的正确的但由于计算机系统的故障(硬件故障软件故障网络故障进程故障和系统

知识大全 如何实现MySQL数据库的备份与恢复

如何实现MySQL数据库的备份与恢复  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  在数据库表丢

知识大全 Oracle数据库备份与恢复精华资料集锦

Oracle数据库备份与恢复精华资料集锦  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!主要介绍了O

知识大全 浅谈IBMDB2的数据库备份与恢复

浅谈IBMDB2的数据库备份与恢复  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  摘要本文探讨了