电脑故障

位置:IT落伍者 >> 电脑故障 >> 浏览文章

实战管理联机日志


发布日期:2020/8/15
 

今天查看偶得可爱的dbora发现了一个问题

select sidevent from v$session_wait;

发现了

buffer busy waits

log file switch (archiving needed)

这是咋个回事呢?

最近我做了什么事情呢?原来早上我本打算对数据库进行压力测试所以往一个表里面insert了万的数据

不想偶得pc根本受不了sqlplus死掉了我就直接把它Ctrl+C了不过session还在而且v$session_wait里和

v$locked_object里面还有这个session的信息

于是我就把这个session给直接干掉了

alter system kill session ;

这个问题是解决了

没想为insert的数据太多我得重做日志设的只有M大小而且只有三个所以当重做日志三个都被填满了而且archive

还没做完所以就在v$session_wait里出现log file switch (archiving needed)的event

试着Troubleshooting一下

a

SQL> alter system switch logfile;

不想这个操作也hung住了根本没反应这个应该是本来logfile都已经满了肯定switch也是没法子做得了

b增加第四组logfile大小为M

SQL> alter database add logfile group C:ORACLEORADATASYMIELDREDOLOG size m;

发现做完了之后第一步里的alter system switch logfile也成功完成了

c删掉第一组的logfile

SQL> alter database drop logfile group ;

alter database drop logfile group

*

ERROR 位于第 行:

ORA: 日志 (线程 ) 中需要归档

ORA: 联机日志 线程 : C:ORACLEORADATASYMIELDREDOLOG

删不掉提示第一组联机日志需要归档

d归档联机日志

SQL> archive log start

已处理的语句

SQL> archive log NEXT

ORA: 没有需要存档的日志

SQL> archive log all;

ORA: 没有需要存档的日志

归档完成

e删掉第一组的logfile

SQL> alter database drop logfile group ;

数据库已更改

f增加第一组logfile大小为M

SQL> alter database add logfile group C:ORACLEORADATASYMIELDREDOLOG size m;

alter database add logfile group C:ORACLEORADATASYMIELDREDOLOG size m

*

ERROR 位于第 行:

ORA: 添加日志文件 C:ORACLEORADATASYMIELDREDOLOG 时出错

无法创建文件

ORA: skgfrcre: 文件存在

OSD: <创建> 选项指定文件已经存在

第一组logfile已经存在?因为drop掉的第一组日志的操作系统文件并没有被删除

del C:ORACLEORADATASYMIELDREDOLOG

再try一次

SQL> alter database add logfile group C:ORACLEORADATASYMIELDREDOLOG size m;

数据库已更改

g再更改剩下的logfile

注意的是v$log中status为active和arc为No的日志文件不能被drop

查看结果

数据库SQL> select sidevent from v$session_wait;

SID EVENT

ok搞定

已经没有相关的event了

added by :

昨晚上看《Oracle 备份与恢复手册》发现

原来如果Archivelog模式下的数据库如果归档的操作没有被正常执行那么整个数据库将被挂起

偶怀疑这次就是一个挂起的事件

上一篇:在报表视图中实现分类显示

下一篇:9i新特性之——在线表格重定义研究5