知识大全 数据库备份与恢复测试(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 星期五 月 : : &
相关参考
#######################################################################################  
################################
知识大全 oracle数据库备份与恢复apieceofcake(4)
oracle数据库日志备份(windows平台) 本片是接上次的数据库在线备份进行数据库全备份后需要备份归档的日志文件 建立数据库备份的脚本 在上面建立的目录下建立如下的两个脚本 建立执行
Oracle数据库备份与恢复 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 一导出/导入(Exp
实战Oracle数据库备份与恢复 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 用户可以留意一下
Oracle数据库的备份与恢复 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 河南省新乡市电信局
备份与恢复是我们使用数据库中不可缺少的部分也是我们在使用数据库时会经常碰到的问题当我们使用一个数据库时总希望数据库的内容是可靠的正确的但由于计算机系统的故障(硬件故障软件故障网络故障进程故障和系统
如何实现MySQL数据库的备份与恢复 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 在数据库表丢
Oracle数据库备份与恢复精华资料集锦 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!主要介绍了O
浅谈IBMDB2的数据库备份与恢复 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 摘要本文探讨了