归档日志卷空间不足导致数据库故障解决方法
2004-10-04 21:10
543 查看
操作系统:Sun Solaris 8
双机软件: Sun Cluster 3.0
数据库:Oracle 8.1.7.3
故障现象:
网通客户反映mSwitch软交换系统中所有与数据库相关的操作都无法完成,如OSS、NMS等界面的查询、修改等操作都返回数据库连接错误。在sqlplus中使用wacos等用户登录时出现如下错误:
ORA-00257: archiver error. Connect internal only, until freed.
故障分析:
mSwitch系统的数据库运行模式为归档模式,当redo log被重写前需要利用arch进程进行将该redo log进行备份生成归档日志。如果在归档过程中归档日志使用的卷磁盘空间满,归档就无法进行,oracle将会一直处于等待归档完成状态,此时任何与数据库相关的操作都会无法完成,导致业务中断。
故障处理:
如果现场的存储设备有空余空间,可以增加归档日志卷的空间,如果没有多余空间可以删除部分归档日志来腾出部分空间。
注意:归档日志对数据库的恢复非常重要,在删除归档日志前最好确保系统有成功的备份,所删除的归档日志也应该是备份前的归档日志。
在确保归档日志所在卷有一定的空间后,利用internal用户登录数据库进行如下的操作。
步骤一:确定归档日志的目录:
$svrmgrl
svrmgrl>connect internal/
svrmgrl>archive log list;
Database log mode Archive Mode
Automatic archival Enabled
Archive destination /opt/oracle/arch/ORCL
Oldest online log sequence 176
Next log sequence to archive 178
Current log sequence 178
svrmgrl>exit
输出中的Archive destination就是数据库所在的归档目录。
步骤二:更换归档日志目录:
$svrmgrl
svrmgrl>connect internal/
svrmgrl>alter system set log_archive_dest_1='location=/opt/oracle/arch';
svrmgrl>alter system switch logfile;
svrmgrl>exit;
将归档日志的的目录更换为新目录,然后进行新的归档操作。
步骤三:将归档日志目录更换为原目录:
$svrmgrl
svrmgrl>connect internal/
svrmgrl>alter system set log_archive_dest_1='location=/opt/oracle/arch/ORCL';
svrmgrl>alter system switch logfile;
svrmgrl>exit;
将归档日志目录恢复为原目录,并进行归档。
步骤四:将临时目录下的归档日志拷贝回来
利用操作系统命令将步骤二产生的归档日志拷贝回归档日志的目录。
步骤五:业务测试
数据库恢复后进行各项业务的测试,确保业务正常。
步骤六:备份数据库
根据现场数据库的使用情况对数据库进行备份。
日常维护:
为避免该问题的发生,在日常维护中需要进行归档日志卷空间占用情况的检查:
$df -k
如果发现归档日志卷空间满了,现场的存储设备有空余空间的话,可以增加归档日志卷的空间,如果没有多余空间可以删除部分归档日志来腾出空间。
双机软件: Sun Cluster 3.0
数据库:Oracle 8.1.7.3
故障现象:
网通客户反映mSwitch软交换系统中所有与数据库相关的操作都无法完成,如OSS、NMS等界面的查询、修改等操作都返回数据库连接错误。在sqlplus中使用wacos等用户登录时出现如下错误:
ORA-00257: archiver error. Connect internal only, until freed.
故障分析:
mSwitch系统的数据库运行模式为归档模式,当redo log被重写前需要利用arch进程进行将该redo log进行备份生成归档日志。如果在归档过程中归档日志使用的卷磁盘空间满,归档就无法进行,oracle将会一直处于等待归档完成状态,此时任何与数据库相关的操作都会无法完成,导致业务中断。
故障处理:
如果现场的存储设备有空余空间,可以增加归档日志卷的空间,如果没有多余空间可以删除部分归档日志来腾出部分空间。
注意:归档日志对数据库的恢复非常重要,在删除归档日志前最好确保系统有成功的备份,所删除的归档日志也应该是备份前的归档日志。
在确保归档日志所在卷有一定的空间后,利用internal用户登录数据库进行如下的操作。
步骤一:确定归档日志的目录:
$svrmgrl
svrmgrl>connect internal/
svrmgrl>archive log list;
Database log mode Archive Mode
Automatic archival Enabled
Archive destination /opt/oracle/arch/ORCL
Oldest online log sequence 176
Next log sequence to archive 178
Current log sequence 178
svrmgrl>exit
输出中的Archive destination就是数据库所在的归档目录。
步骤二:更换归档日志目录:
$svrmgrl
svrmgrl>connect internal/
svrmgrl>alter system set log_archive_dest_1='location=/opt/oracle/arch';
svrmgrl>alter system switch logfile;
svrmgrl>exit;
将归档日志的的目录更换为新目录,然后进行新的归档操作。
步骤三:将归档日志目录更换为原目录:
$svrmgrl
svrmgrl>connect internal/
svrmgrl>alter system set log_archive_dest_1='location=/opt/oracle/arch/ORCL';
svrmgrl>alter system switch logfile;
svrmgrl>exit;
将归档日志目录恢复为原目录,并进行归档。
步骤四:将临时目录下的归档日志拷贝回来
利用操作系统命令将步骤二产生的归档日志拷贝回归档日志的目录。
步骤五:业务测试
数据库恢复后进行各项业务的测试,确保业务正常。
步骤六:备份数据库
根据现场数据库的使用情况对数据库进行备份。
日常维护:
为避免该问题的发生,在日常维护中需要进行归档日志卷空间占用情况的检查:
$df -k
如果发现归档日志卷空间满了,现场的存储设备有空余空间的话,可以增加归档日志卷的空间,如果没有多余空间可以删除部分归档日志来腾出空间。
相关文章推荐
- ubuntu下磁盘空间不足导致mysql无法启动的解决方法
- mysql-bin日志文件过大导致磁盘空间不足问题解决方法
- 瞎折腾导致/usr目录空间不足解决方法
- [转载]XP向windows 7传输文件时系统提示“服务器存储空间不足,无法处理此命令”故障的解决方法
- 解决线上135因mongodb太大容量,导致硬盘空间不足的方法【内部问题解决】
- ubuntu升级“ /boot空间不足”解决方法
- 访问文件服务器提示“服务器存储空间不足”的解决方法
- oracle所在磁盘空间不足导致了数据库异常
- 故障的机器修好后重启,狂拉主库binlog,导致网络问题的解决方法
- Ubuntu /boot 空间不足解决方法
- cscope 执行后出现 /tmp 空间不足解决方法
- \boot 空间不足解决方法
- Linux学习笔记:解决因 /boot 分区空间不足导致的卸载旧内核失败
- Oracle数据库案例整理-Oracle系统执行时故障-Shared Pool内存不足导致数据库响应缓慢
- Win8.1系统安装程序时提示“内部错误2203 ”导致安装失败的故障原因及解决方法
- 由于系统缓冲区空间不足或队列已满,不能执行套接字上的操作的解决方法
- VMware中linux硬盘空间不足的解决方法
- VMware中linux空间不足解决方法ls -l /dev/disk/by-uuid
- 电脑内存条松动导致的故障现象及解决方法
- 红米手机出现内部储存空间不足的解决方法