Oracle数据库常见真实问题处理步骤(三)

日期: 2008-09-24 作者:李连国 来源:TechTarget中国 英文

  6 在VM维护的裸设备上添加表空间的过程







创建裸设备,大小是2G
#/usr/sbin/vxassist -g datadg make vol183 2G
修改指定裸设备的权限
#vxedit -g datadg set user=oracle group=oinstall mode=600 vol182
创建连接
#ln -s /dev/vx/rdsk/datadg/vol182 pre_ln2_182.dbf
添加到指定的表空间,例如UNDOTBS1
SQL> alter tablespace UNDOTBS1 
  2  add datafile ’/usr5/linkdata/pre/pre_ln2_182.dbf’ size 2000M;


  7 在SUN DiskSuit维护的裸设备上添加表空间的过程







1,创建裸设备 
metainit -s cqcdg d6049 -p /dev/did/rdsk/d4s0 2g 
2,创建连接文件 
ln -s /dev/md/cqcdg/rdsk/d6049 pre_ln2_63.dbf 
3,修改权限 
chown oracle:dba pre_ln2_63.dbf 
4,添加表空间 
alter tablespace PERFDBS add datafile ’/usr5/linkdata/pre/pre_ln2_63.dbf’ SIZE 2000M;

  8 在Oracle数据库中从文件系统迁移到裸设备的处理过程


  故障现象:


  C网数据库/文件系统空间使用率突然达到99%,检查发现原来是因为本地维护给数据库添加了数据文件,但是该数据文件添加到文件系统上导致根文件系统使用率突然增大。
将文件系统上的数据文件迁移到裸设备,裸设备在文件系统上只存在一个链接,几乎不占空间。
处理步骤:


  1) 检查发现C网已没有已建好的可用裸设备,有一个建好的30G的裸设备没有使用,首先需要添加适合适用的裸设备。


  2) 删除这个没有使用的30G的soft partition:


  metaclear -s cqcdg -r d6042


  3) 在删除的空间上建立一个2G的裸设备:


  metainit -s cqcdg d6044 -p /dev/did/rdsk/d4s0 2g:


  4) 在文件系统上建立到裸设备的链接


  ln -s /dev/md/cqcdg/rdsk/d6044 pre_ln2_57.dbf


  5) 更改链接文件的所有者


  chown oracle:dba pre_ln2_57.dbf


  6) 以sysdba身份登录并关闭数据库


  sqlplus “/as sysdba”
  SQL>shutdown immediate


  7) 将文件系统文件上的数据导到裸设备文件上


  dd if=/usr5/linkdata/sys/pre_ln2_61.dbf of=/usr5/linkdata/pre/pre_ln2_57.
  dbf bs=134217728


  if 文件系统文件名
  of 新建裸设备链接名
  bs dd时的blocksize,单位为byte,如果不设此项,dd的速度非常慢


  8) 启动数据库到mount状态


  SQL>startup mount


  9) 更改数据文件名


SQL>alter DATABASE rename FILE ’/usr5/linkdata/sys/pre_ln2_61.dbf’ TO ’/usr5/linkdata/pre/pre_ln2_57.dbf’;


  10) 打开数据库


  SQL〉alter database open;


  11) 验证更改


  9 解决在Oracle Open状态下shutdown immediate不能关闭数据库问题
故障现象:


  XX网数据库使用shutdown immediate不能关闭,日志中不断输出以下内容:
 







Shutting down instance: further logons disabled
Shutting down instance (immediate)
License high water mark = 215
All dispatchers and shared servers shutdown
Fri Aug 12 21:52:34 2005
alter DATABASE CLOSE NORMAL
Fri Aug 12 21:52:38 2005
Thread 1 advanced to log sequence 69953
  Current log# 2 seq# 69953 mem# 0: /ora_sys/cqgdb/redo02.log
Thread 1 advanced to log sequence 69954
  Current log# 4 seq# 69954 mem# 0: /ora_sys/cqgdb/redo04.log
… … ..
  Current log# 3 seq# 69966 mem# 0: /ora_sys/cqgdb/redo03.log
Thread 1 advanced to log sequence 69967
  Current log# 1 seq# 69967 mem# 0: /ora_sys/cqgdb/redo01.log

  解决办法:


  Oracle工程师首先怀疑是临时表空间空间不足导致,经检查临时表空间没有空间不足的情况,仔细观察日志发现重做日志文件不断切换,分析应该是有较多的事务没有完成提交或者有较多没有提交的事务完成回滚。现在面临的问题是我们没有很多时间去等待所有的事务去完成回滚或提交。解决问题的思路就是如何尽快结束这些事务的回滚或提交。


  1) 查看spfile文件中是否有fast_start_parallel_rollback参数的设置,检查结果G网数据库没有设置该参数。如果没有显式设置,则该参数的默认值为low。修改该参数值为false
  2) 将数据库启动到nomount状态:startup nomount
  3) 修改改参数值:alter system set fast_start_parallel_rollback = FALSE scope=spfile
  4) shutdown immediate关闭数据库
  5) startup启动
  6) 查看该参数是否生效:show parameter fast_start_parallel_rollback
  7) 等待一段时间
  8) shutdown immediate数据库可以关闭
分析:FAST_START_PARALLEL_ROLLBACK是用来控制事务并行回滚最大进程数的参数。该参数有三个可设值,low,high,false。当设置为false时并行回滚被禁止,由于禁止了并行回滚,在数据库关闭时,需要回滚的事务将被取消。

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

相关推荐