oracle数据库实例被锁如何解决

oracle数据库实例被锁如何解决,第1张

在pl/sql Developer工具的的菜单“tools”里面的“sessions”可以查询现在存在的会话,但是我们很难找到那个会话被锁定了,想找到所以被锁的会话就更难了,下面这叫查询语句可以查询出所以被锁的会话。如下:

SELECT snusername, mSID,snSERIAL#, mTYPE,

DECODE (mlmode,

0, 'None',

1, 'Null',

2, 'Row Share',

3, 'Row Excl',

4, 'Share',

5, 'S/Row Excl',

6, 'Exclusive',

lmode, LTRIM (TO_CHAR (lmode, '990'))

) lmode,

DECODE (mrequest,

0, 'None',

1, 'Null',

2, 'Row Share',

3, 'Row Excl',

4, 'Share',

5, 'S/Row Excl',

6, 'Exclusive',

request, LTRIM (TO_CHAR (mrequest, '990'))

) request,

mid1, mid2

FROM v$session sn, v$lock m

WHERE (snSID = mSID AND mrequest != 0) --存在锁请求,即被阻塞

OR ( snSID = mSID --不存在锁请求,但是锁定的对象被其他会话请求锁定

AND mrequest = 0

AND lmode != 4

AND (id1, id2) IN (

SELECT sid1, sid2

FROM v$lock s

WHERE request != 0 AND sid1 = mid1

AND sid2 = mid2)

)

ORDER BY id1, id2, mrequest;

通过以上查询知道了sid和 SERIAL#就可以开杀了

alter system kill session 'sid,SERIAL#';

希望对你有所帮助。我也是不太懂,是在网上了解的。努力学习ing~~~

环境变量里面只能设置一个ORACLE_SID,打开其他的需要

export ORACLE_SID=你要打开的数据库sid

楼主的问题问的不清楚啊,看了你的问题我还以为是RAC呢,非RAC环境下,每个实例都对应一个数据库的

确定镜像数据库是否与主体数据库保持同步

在高性能模式下,主体服务器可能会积压大量仍需发送到镜像服务器的未发送日志记录

而且在任意运行模式下,镜像服务器也有可能积压大量已写入日志文件但仍需在镜像数据库中进行还原的未还原日志记录

确定在高性能模式下,当主体服务器实例变得不可用时所丢失的数据量

可以通过查看未发送的事务日志量(如果有)以及在主体服务器上提交丢失事务的时间间隔,来确定数据的丢失量

将当前性能与过去性能进行比较出现问题时,数据库管理员可以查看镜像性能的历史记录来帮助了解当前状态

ALTER DATABASE MOUNT用来装载数据库,并启动实例。如果是在日志文件中出现,则表示启动数据库。

alter database open将数据库从mount状态切换到打开状态。如果打开成功,就是说这个时候数据库可以提供服务了。

默认的实例名是跟机器名相同的。多个 SQL Server 实例Microsoft SQL Server 2000 支持在同一台计算机上同时运行多个 SQL Server 数据库引擎实例。每个 SQL Server 数据库引擎实例各有一套不为其它实例共享的系统及用户数据库。应用程序连接同一台计算机上的 SQL Server 数据库引擎实例的方式与连接其它计算机上运行的 SQL Server 数据库引擎的方式基本相同。有两种类型的 SQL Server 实例:默认实例SQL Server 2000 数据库引擎默认实例的运行方式与 SQL Server 早期版本的数据库引擎相同。默认实例仅由运行该实例的计算机的名称唯一标识,它没有单独的实例名。如果应用程序在请求连接 SQL Server 时只指定了计算机名,则 SQL Server 客户端组件将尝试连接这台计算机上的数据库引擎默认实例。这保留了与现有 SQL Server 应用程序的兼容性。一台计算机上只能有一个默认实例,而默认实例可以是 SQL Server 的任何版本。命名实例除默认实例外,所有数据库引擎实例都由安装该实例的过程中指定的实例名标识。应用程序必须提供准备连接的计算机的名称和命名实例的实例名。计算机名和实例名以格式 computer_name\instance_name 指定。一台计算机上可以运行多个命名实例,但只有 SQL Server 2000 数据库引擎才可作为命名实例运行。SQL Server 早期版本中的数据库引擎不能作为命名实例运行。实例主要应用于数据库引擎及其支持组件,而不应用于客户端工具。如果安装了多个实例,则每个实例都将获得各自唯一的一套:系统和用户数据库。SQL Server 和 SQL Server 代理服务。对于默认实例,服务名仍为 MSSQLServer 和 SQLServerAgent。对于命名实例,服务名改为 MSSQL$instancename 和 SQLAgent$instancename,使得这些服务与服务器上的其它实例分开启动和停止。可使用相关联的 SQL Server 服务启动和停止不同实例的数据库引擎。SQL Server 代理服务管理相关联的数据库引擎实例的调度事件。与数据库引擎、SQL Server 和 SQL Server 代理服务相关联的注册表键。使应用程序能连接特定实例的网络连接地址。

1、先启动服务

开始-运行-servicesmsc

找到

OracleServiceSID服务

右健启动

2、启动实例

C:\Documents and Settings\Administrator>set ORACLE_SID=aaa

C:\Documents and Settings\Administrator>sqlplus "/as sysdba"

SQLPlus: Release 112010 Production on 星期一 7月 23 13:34:25 2012

Copyright (c) 1982, 2010, Oracle All rights reserved

已连接到空闲例程。

SQL> startup

ORACLE 例程已经启动。

Total System Global Area 778387456 bytes

Fixed Size 1374808 bytes

Variable Size 243271080 bytes

Database Buffers 528482304 bytes

Redo Buffers 5259264 bytes

数据库装载完毕。

数据库已经打开。

再刷新就好了

以上就是关于oracle数据库实例被锁如何解决全部的内容,包括:oracle数据库实例被锁如何解决、linux怎么实现一个oracle数据库对应多个实例(实例同时处在启动状态)【具体就是环境变量中的SID怎么设】、如何查看镜像数据库的状态等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/9406028.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-28
下一篇2023-04-28

发表评论

登录后才能评论

评论列表(0条)

    保存