Oracle数据库数据恢复、性能优化

找回密码
注册
搜索
热搜: 活动 交友 discuz
发新帖

207

积分

1

好友

4

主题
1#
发表于 2012-1-9 13:17:40 | 查看: 9164| 回复: 10
上周5快下班想要开始开心的周末生活的时候,例行检查了一个最近刚刚切换了设备的库,在查看告警日志的过程中,突然远程被中断,过了好一会才又重新连接过去继续查看,告警日志新增加了实例和数据库的打开信息日志,继续往上翻到中断连接之前的位置,但是就是没看到关闭日志,于是怀疑OS被重启过,甚至怀疑是直接power off,但是想想不对,毕竟是生产环节呀,于是一边让开发人员联系客户,一边继续查看了OS日志,发现对应时间的事件,有事件号6005,说明系统刚刚启动,但是没有发现事件号为6006的关闭记录,初步怀疑是power off了,否则db日志不可能没有记录关闭信息,另外从开发那边得到的答复是修改IP和调整其他所以重启了机器,但是没有得到释放power off明确答复,唉,客户自己要玩脱也没办法。
鉴于此于是在群里初步的讨论了下这个问题,以及其他非正常关闭系统或者DB服务的情况,大家似乎还真没怎么关注到这个情况,于是就有了这次测试,主要是为了测试不同情况下的OS和DB服务中断的DB告警日志表现。
初步想到的测试案例如下:
0. OS正常关机
1. OS正常重启
2. OS Power off暴力关机
3. DB重启服务
4. end process中断DB进程
测试之前猜想测试结果
0. 正常记录DB正常关闭
1. 正常记录DB正常关闭
0. 不会有任何记录DB关闭信息
0. 正常记录DB正常关闭及其重启
0. 不会有任何记录DB关闭信息
李宗盛唱到:猜想只是猜想。。。所以,还是动手实验吧。
爱老婆,爱FM,爱音乐;挨踢,爱折腾,爱Oracle
2#
发表于 2012-1-9 13:18:02
在虚拟机进行测试,也可以很好的模拟os power off功能,应该和实体环境不会有区别,应该不会影响本次测试结果;
另外本想外挂一个web服务到db,但是鉴于其他一些因素没有做,只是简单的在另一台客户端sqlplus登陆到数据库做个不间断循环增删改操作动作。
由于主要是为了关注告警日志的表现,因此在每次测试开始之前都清空日志文件内容,便于记录和查看。

回复 只看该作者 道具 举报

3#
发表于 2012-1-9 13:18:28
测试环境:
服务器:vbox4.1.8+windows2003+oracle 10gr1
客户端:instant client 10.2.0.5
测试脚本:
D:\>sqlplus system/test@test

SQL*Plus: Release 10.2.0.5.0 - Production on Mon Jan 9 11:42:25 2012

Copyright (c) 1982, 2010, Oracle.  All Rights Reserved.


Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options

SQL> select * from v$version;

BANNER
----------------------------------------------------------------
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Prod
PL/SQL Release 10.2.0.1.0 - Production
CORE    10.2.0.1.0      Production
TNS for 32-bit Windows: Version 10.2.0.1.0 - Production
NLSRTL Version 10.2.0.1.0 - Production

SQL> desc gtlions;
Name                                      Null?    Type
----------------------------------------- -------- ----------------------------

ID                                                 NUMBER(22)
每次测试之前执行如下匿名块脚本:
Declare
a number:=1;
Begin
  Loop
    Insert Into gtlions(Id) Values(a);
    If Mod(a,100)=0 Then
      Update gtlions Set Id=0;
      Commit;
    End If;
    If Mod(a,1000)=0 Then
      Execute Immediate 'truncate table gtlions';
    End If;
    a:=a+1;
   End Loop;
End;
/

回复 只看该作者 道具 举报

4#
发表于 2012-1-9 13:19:57

测试结果

测试开始鸟。
0. OS正常关机
测试结果:没有任何记录DB关闭信息。
1. OS正常重启
测试结果同上:没有任何记录DB关闭信息。
2. OS Power off暴力关机
测试结果:没有任何记录DB关闭信息。
3. DB重启服务
测试结果:正常记录db正常关闭.
4. end process中断DB进程
测试结果:没有任何记录DB关闭信息。
对比测试结果0和1,确实出乎了我的意料。
-The End-

0. OS正常关机.txt

497 Bytes, 下载次数: 1190

1. OS正常重启.txt

428 Bytes, 下载次数: 1123

2. OS Power off暴力关机.txt

428 Bytes, 下载次数: 1159

3. DB重启服务.txt

465 Bytes, 下载次数: 1173

4. end process中断DB进程.txt

428 Bytes, 下载次数: 1158

回复 只看该作者 道具 举报

5#
发表于 2012-1-9 13:40:03
估计是你没配置关机时自动关闭数据库。

回复 只看该作者 道具 举报

6#
发表于 2012-1-9 14:00:40
如果配置了关机之前关闭数据库,那就没有这么多测试了

回复 只看该作者 道具 举报

7#
发表于 2012-1-9 14:05:43
没配置,难道你还想OS能智能化的关闭数据库?

回复 只看该作者 道具 举报

8#
发表于 2012-1-9 14:09:28
我就是想测试下正常情况下的表现
原帖由 falent 于 2012/1/9 14:05 发表
没配置,难道你还想OS能智能化的关闭数据库?

回复 只看该作者 道具 举报

9#
发表于 2012-1-9 14:11:56
上周五讨论的焦点是告警日志的记录情况,因此才有了这个测试,并不考虑到db的自动维护情况和功能实现。

回复 只看该作者 道具 举报

10#
发表于 2012-1-9 14:27:13
gtlions 多次发原创帖

奖励  威望50点  金钱 1000

回复 只看该作者 道具 举报

11#
发表于 2012-2-15 23:14:59
据我所知,在windows下,可以配置在服务启动或关闭的同时,数据库是否自动启动或关闭

回复 只看该作者 道具 举报

您需要登录后才可以回帖 登录 | 注册

QQ|手机版|Archiver|Oracle数据库数据恢复、性能优化

GMT+8, 2024-11-15 02:11 , Processed in 0.070506 second(s), 24 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部
TEL/電話+86 13764045638
Email service@parnassusdata.com
QQ 47079569