`
zpball
  • 浏览: 916740 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

oralce归档,死锁,阵列问题处理

阅读更多
oralce归档,死锁,阵列问题处理(个人经验,仅供参考)

   归档问题:登录数据库报错:ORA-00257 归档程序错误,在释放之前仅限于内部连接。

   处   理:

          第一种就是关闭闪回日志的功能  alter database flashback off

          第二种方法就是增大闪回日志文件的最大大小。 alter system set DB_RECOVERY_FILE_DEST_SIZE=10g,去查看v$flash_recovery_area_usage视图中的使用率情况这个时候发现使用率(PERCENT_SPACE_USED列的值)已经大大降低了。查看系统日志文件情况。select * from v$log会发现现在redo日志文件也可以正常写入。

          第三种方法 删除归档空间种的dbf数据文件
             1、删除部分归档
             2、修改归档备份策略为oracle类型
             3、在rman里面,连接目标和恢复目录数据库,执行:crosscheck archivelog all;
             4、执行归档备份,检查备份结果。



   死锁问题:所有对数据库某些表的更新操作,报错:资源正忙,请制定wait后执行。

   处    理:

           1.查看系统死锁情况

select /*+ RULE */ ls.osuser os_user_name, ls.username user_name, 
decode(ls.type, 'RW', 'Row wait enqueue lock', 'TM', 'DML enqueue lock', 'TX', 
'Transaction enqueue lock', 'UL', 'User supplied lock') lock_type, 
o.object_name object, decode(ls.lmode, 1, null, 2, 'Row Share', 3, 
'Row Exclusive', 4, 'Share', 5, 'Share Row Exclusive', 6, 'Exclusive', null) 
lock_mode, o.owner, ls.sid, ls.serial# serial_num, ls.id1, ls.id2 
from sys.dba_objects o, ( select s.osuser, s.username, l.type, 
l.lmode, s.sid, s.serial#, l.id1, l.id2 from v$session s, 
v$lock l where s.sid = l.sid ) ls where o.object_id = ls.id1 and o.owner 
<> 'SYS' order by o.owner, o.object_name 


          2.释放被锁的资源,此语句直接生成kill锁的sql,把结果直接放到pl/sql或者sqlplus中批量执行就可以了。

select 'alter system kill session '''||l.session_id||','||d.serial#||''';'
from v$locked_object l, dba_objects b,v$lock c, v$session d
where b.object_id=l.object_id
and l.session_id=c.sid and l.session_id=d.sid and c.block>0;


       阵列问题:对于任何对于数据库的操作报错:Transaction is already completed - do not call commit or rollback more than once per transaction

       处   理:

            1.使用top检查操作系统iowait情况,如果iowait大于30说明阵列的读写出现严重瓶颈,需要在阵列找原因。

            2.使用 iostat -xn 3 检查对阵列的读写状况

avg-cpu:  %user   %nice    %sys   %idle
           0.46    0.00    0.53   99.01

Device:    rrqm/s wrqm/s   r/s   w/s  rsec/s  wsec/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await  svctm  %util
/dev/cciss/c0d0
             0.22   3.04  0.15  1.31    2.92   34.79     1.46    17.39    25.93     0.06    4.12   2.54   0.37
/dev/cciss/c0d0p1
             0.00   0.00  0.00  0.00    0.00    0.00     0.00     0.00     4.08     0.00  188.22 141.68   0.00

            3.注意考虑--阵列的电池是否已经过期。
分享到:
评论

相关推荐

    oracle-死锁查询

    oracle死锁问题查询代码,仅供参考,有问题大家一起交流

    oracle查询死锁语句

    oracle查询死锁语句,并能根据根据ID值杀死锁表的进程!

    关于Oracle数据库死锁问题的研究与讨论

    关于Oracle数据库死锁问题的研究与讨论

    oracle死锁表后处理

    "oracle死锁表后处理" oracle死锁表后处理是指在oracle数据库中处理死锁表...oracle死锁表后处理是指在oracle数据库中处理死锁表的各种方法和技巧,旨在解决oracle数据库中出现的死锁问题,确保数据的一致性和安全性。

    Oracle查询死锁表

    在Oracle数据库管理与维护的过程中,查询并解决死锁问题是至关重要的一环。死锁是指两个或多个事务在执行过程中因争夺资源而造成的一种僵局状态,若不及时处理,将直接影响到系统的性能和稳定性。本文将围绕“Oracle...

    Oracle数据库死锁问题研究.pdf

    Oracle数据库死锁问题研究.pdf

    Oracle对于死锁的处理方法

    Oracle数据库出现死锁的时候可以按照以下处理步骤加以解决: 第一步:尝试在sqlplus中通过sql命令进行删除,如果能够删除成功,则万事大吉!但通常情况下,出现死锁时,想通过命令行或者通过Oracle的管理工具删除有...

    oracle死锁原因解决办法

    Oracle数据库中的死锁问题虽然复杂,但通过正确的诊断和处理方法是可以有效避免的。了解死锁产生的原因,并采取适当的措施,不仅可以提高数据库性能,还能增强应用程序的稳定性和用户体验。对于Oracle数据库管理员来...

    ORACLE表死锁的解决方法亲测有效!

    然而,在高并发的业务环境中,ORACLE表的死锁问题却时常困扰着数据库管理员(DBA)。死锁,作为数据库操作中的一种特殊现象,是指两个或更多的事务在等待对方释放资源时陷入无限等待的状态,从而导致所有涉及的事务...

    BLOG_Oracle_lhr_Oracle死锁的分类及其模拟.pdf

    【Oracle死锁的分类及其模拟】这篇博客主要探讨了Oracle数据库中的死锁问题,包括死锁的基本概念、分类以及如何进行模拟。以下是该主题的详细解释: **死锁概述** 死锁是数据库系统中常见的问题,它发生在两个或多...

    oracle中关于死锁的处理

    在Oracle数据库中,死锁是一种常见但必须妥善处理的问题。当两个或多个事务互相等待对方释放资源时就会发生死锁。这种情况下,没有一个事务能够继续执行,直到系统采取干预措施解决死锁。 #### 处理方法 1. **手动...

    oracle解锁,死锁

    在Oracle数据库管理过程中,解锁与处理死锁是常见的操作需求之一。当多个事务请求对同一资源进行访问时,可能会出现等待的情况,即一个事务正在等待另一个事务释放锁,而后者也在等待前者释放锁,这种现象被称为...

    较实用的ORACLE数据库死锁查杀

    为了有效应对Oracle数据库中的死锁问题,我们可以使用以下SQL查询语句来进行死锁检测: ```sql SELECT bs.username "BlockingUser", ws.username "WaitingUser", bs.SID "SID", ws.SID "WSID", bs.serial# ...

    Oracle表死锁与解锁

    死锁不仅影响数据库的正常运行,还可能导致数据一致性问题。本文将深入探讨Oracle表死锁的原因、检测以及解决方法。 首先,我们需要了解死锁的基本概念。死锁是当两个或更多个事务在执行过程中,因争夺资源而造成的...

    oracle数据库解决死锁

    Oracle数据库解决死锁是指在Oracle数据库中出现的死锁问题,通过使用PL/SQL语句手动解决死锁问题。死锁是当多个事务在等待其他事务释放资源时,导致系统无法继续执行的现象。 在Oracle数据库中,死锁可能是由多种...

    oracle查找死锁

    在Oracle数据库的日常管理和维护过程中,死锁是一个常见的问题。当两个或多个会话互相等待对方释放资源时就会发生死锁,这会导致相关事务无法继续执行,甚至可能会影响到整个数据库系统的性能。因此,学会如何有效...

    Oracle数据库死锁查询语句

    Oracle数据库死锁是数据库系统中常见的问题,它发生在两个或多个事务在执行过程中,因争夺资源而造成的一种相互等待的现象。当这种情况发生时,如果没有外力干预,这些事务都将无法继续执行,形成一种僵局。了解如何...

    解决oracle死锁

    本篇将详细介绍如何识别、诊断和解决Oracle数据库中的死锁问题。 首先,我们需要理解死锁的基本概念。在Oracle中,死锁通常涉及到两个或更多个并发事务,每个事务都在等待另一个事务释放其持有的资源。例如,事务A...

    Oracle 死锁问题的排查语句

    Oracle 死锁问题的排查语句 Oracle 死锁是指在数据库中出现的循环等待资源的情形,从而导致数据库性能下降或系统崩溃。出现死锁的原因有多种,如资源竞争、锁定机制不当等。下面是排查 Oracle 死锁问题的语句: 1....

    oracle清除死锁

    另一种处理死锁的方式是通过设置`deadlock_timeout`参数来让Oracle自动处理死锁。该参数指定在发生死锁时,Oracle等待的时间(单位:毫秒)。如果超过了这个时间,Oracle将会自动选择一个会话进行回滚,从而解除死锁...

Global site tag (gtag.js) - Google Analytics