由于inactive日志文件组表示已经完成了检查点(dirty数据已经被写入数据文件) 数据库本身不会发生数据库丢失 如果在这个时候相应的redo丢失/损坏 可以通过clear重建日志文件组恢复
通过命令:
alter database clear logfile group n
如果数据库模式是archived的 则需要强制清除
alter database clear unarchived logfile group n
二 丢失active或current日志文件组的恢复
丢失情况分两种:
一个是正常关闭数据库(如shutdown immediate)
另一个是异常关闭数据库(如shutdown abort)
在损失当前日志时 数据库是正常关闭状态
由于shutdown immediate会执行全面的checkpoint 所以当前日志在实例恢复时可以不需要redo
在Oracle i中我们完全可以通过alter database clear logfile group n来进行恢复
但是在Oracle i中 则可能无法对current的redo日志进行clear 需要通过recover database until cancel恢复后(必须要做的)
用resetlogs选项打开
比如
alter database clear logfile group n
recover database until cancel;
alter database open resetlogs;
在损失当前日志时 数据库是异常关闭的
这种情况下 由于没有在执行全面检查点时 数据库就已经关闭了 那么Oracle在进行实例恢复的时候必须要求当前的日志 否则Oracle数据库将无法open
这样的情况下 我们通常需要从备份中恢复数据文件 通过应用归档日志进行向前推演 直到最后一个完好的日志文件 然后可以通过resetlogs启动数据库完成恢复 那么丢失的数据则是被损坏的日志文件中的数据
lishixinzhi/Article/program/Oracle/201311/18418
用如下方法连接。
配置方法如下:
1、找到$ORACLE_HOME/client_1/network/admin目录下的tnsnamesora文件,并用文本模式打开。
2、添加以下内容:
本地实例名=(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 数据库IP地址)(PORT = 端口号))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = 服务名)
)
)
3、用PL/SQL工具登录即可。
安装oracle数据库前把主机名和其IP 写入/etc/hosts 文件问题
只写一个IP地址和hostname就行,也可以全部都写上,比如: 192168010 host1 1921681010 host1 两个一起写上。
当Oracle数据库断电时,缓存日志将不会写回到物理路径。这可能会导致数据库中的一些数据丢失,因为在断电之前,缓存日志中的数据尚未写入到物理路径。为了避免这种情况,建议定期执行完整的备份,以便在发生意外情况时可以恢复数据库。
如果在插入后并且未提交的的情况下新开一个session查询的话,你是查不到刚插入的数据,这跟Oracle的隔离性有关,但是在当前session是能够查到的,在commit之后,其它session就能查到了(持久性)。
ORA-01461 can bind a LONG value only for insert into a LONG column 的异常是由驱动引起来的,具体如下:
ojdbc14的10102版本存在这样的bug,在oracle的官方网站上都列出来了。马上下载10201版本的ojdbc14,替换原来的jar包,服务重起,测试,OK啦!
以上就是关于Oracle数据库Redo故障恢复全部的内容,包括:Oracle数据库Redo故障恢复、oracle的服务无法连接数据库、安装oracle数据库前把主机名和其IP 写入/etc/hosts 文件问题等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)