TIPTOP GP for Oracle解锁的方法
- 格式:doc
- 大小:53.50 KB
- 文档页数:2
Oracle锁处理、解锁⽅法1、查询锁情况select sid,serial#,event,BLOCKING_SESSION from v$session where event like '%TX%';2、根据SID查询具体信息(可忽略)select sid,serial#,username,machine,blocking_session from v$session where sid=<SID>;3、杀掉会话#根据1和2中查到的SID和SERIAL# 定位会话,并杀掉ALTER SYSTEM DISCONNECT SESSION '<SID>,<SERIAL>' IMMEDIATE;或ALTER SYSTEM KILL SESSION '<SID>,<SERIAL>';附件:#查询阻塞脚本col waiting_session for a20col lock_type for a15col mode_requested for a10col mode_held for a10col lock_id1 for a10col lock_id2 for a10set linesize 120set pagesize 999with dba_locks_cust as(SELECT inst_id||'_'||sid session_id,DECODE (TYPE,'MR', 'Media Recovery','RT', 'Redo Thread','UN', 'User Name','TX', 'Transaction','TM', 'DML','UL', 'PL/SQL User Lock','DX', 'Distributed Xaction','CF', 'Control File','IS', 'Instance State','FS', 'File Set','IR', 'Instance Recovery','ST', 'Disk Space Transaction','TS', 'Temp Segment','IV', 'Library Cache Invalidation','LS', 'Log Start or Switch','RW', 'Row Wait','SQ', 'Sequence Number','TE', 'Extend Table','TT', 'Temp Table',TYPE)lock_type,DECODE (lmode,0, 'None', /* Mon Lock equivalent */1, 'Null', /* N */2, 'Row-S (SS)', /* L */3, 'Row-X (SX)', /* R */4, 'Share', /* S */5, 'S/Row-X (SSX)', /* C */6, 'Exclusive', /* X */TO_CHAR (lmode))mode_held,DECODE (request,0, 'None', /* Mon Lock equivalent */1, 'Null', /* N */2, 'Row-S (SS)', /* L */3, 'Row-X (SX)', /* R */4, 'Share', /* S */5, 'S/Row-X (SSX)', /* C */6, 'Exclusive', /* X */TO_CHAR (request))mode_requested,TO_CHAR (id1) lock_id1,TO_CHAR (id2) lock_id2,ctime last_convert,DECODE (block,0, 'Not Blocking', /* Not blocking any other processes */1, 'Blocking', /* This lock blocks other processes */2, 'Global', /* This lock is global, so we can't tell */TO_CHAR (block))blocking_othersFROM gv$lock),lock_temp as(select * from dba_locks_cust),lock_holder as(select w.session_id waiting_session,h.session_id holding_session,w.lock_type,h.mode_held,w.mode_requested,w.lock_id1,w.lock_id2from lock_temp w, lock_temp hwhere h.blocking_others in ('Blocking','Global')and h.mode_held != 'None'and h.mode_held != 'Null'and w.mode_requested != 'None'and w.lock_type = h.lock_typeand w.lock_id1 = h.lock_id1and w.lock_id2 = h.lock_id2),lock_holders as(select waiting_session,holding_session,lock_type,mode_held,mode_requested,lock_id1,lock_id2from lock_holderunion allselect holding_session, null, 'None', null, null, null, nullfrom lock_holderminusselect waiting_session, null, 'None', null, null, null, nullfrom lock_holder)select lpad(' ',3*(level-1)) || waiting_session waiting_session,lock_type,mode_requested,mode_held,lock_id1,lock_id2from lock_holdersconnect by prior waiting_session = holding_sessionstart with holding_session is null;总结以上所述是⼩编给⼤家介绍的Oracle锁处理、解锁⽅法,希望对⼤家有所帮助,如果⼤家有任何疑问请给我留⾔,⼩编会及时回复⼤家的。
TIPTOP GP for Oracle解锁的方法
大家在运行程序时经常会遇到死锁的问题,本文主要介绍如何查询到锁并解决该锁的方法。
一、为什么会发生死锁?
当大家在run程序时,非正常结束,或出现未知的误操作时,常常会造成死锁,从而导致整个系统的非正常使用
二、如何查询到死锁?
1.用tiptop登入,
$ cd $TOP/ora/scripts
$ oraq q_locktable
或 $sqlplus system/manager < q_locktable.sql
2. 屏幕列出了目前系统表被锁的情况
三、如何解锁?
1、终止操作系统进行从而达到解锁目的,如上”Proc ID”的值为18040是操作系统的进程,此进程运行锁住了表。
终止此进程就相应释放被锁的表。
命令如下:# kill 18040
2、通过Oracle本身提供的命令此锁住表的会话以达到解锁目的,记下SID和SERIAL#,用下命令kill锁:
SQL> alter system kill session 'sid,serial#';
如: $ sqlplus /nolog
SQL> conn / as sysdba
SQL>alter system kill session ‘9,725’;。
Oracle中锁的产品和解锁文档修改记录版本号日期说明编写者审核者V1.0 20110822 初稿周伟明1Oracle锁的介绍在多进程或者多线程业务系统中,多个Oracle用户可以同时登录到一个Oracle数据库,对数据库中的数据进行操作难免会出现同时访问同一数据(表或者表中某一条记录)的情况,如果不对这种情况进行规范操作,数据的一致性和完整性就得不到保证,从而会出现意想不到的结果,所以必须有一种机制对并发访问进行控制和调度,避免造成数据更新不正确。
Oracle锁就是这样一种机制,它是控制并发操作最常用的方法。
Oracle使用锁来防止进程相互之间发生的破坏性影响,当一个进程企图阻止另外一个进程对某条数据操作时,该进程就对这个数据进行锁,别的进程对这个数据操作之前,必须获得这个数据的解锁。
Oracle锁功能是Oracle DBMS自动完成的,不需要用户干预,但Oracle也提供了加锁的命令,供用户使用。
1.1 Oracle锁机制Oracle自动使用不同锁类型来控制数据的并发操作,以防止用户之间的破坏性干扰。
Oracle为一个事务自动锁一个资源,以防止其他事务对同一个资源的排他锁。
当某种条件出现或者事务不再需要该资源时,锁自动解除。
Oracle自动获取不同类型的锁取决于锁的资源及其所执行的操作。
其中包括数据锁(DML)、字典锁(DDL)、内部锁、人工锁定、分布锁和并行缓冲管理锁。
1.1.1数据锁(DML)模式数据锁保证表中数据在多个用户并发操作数据时保证数据的完整性,并防止相冲突的DML和DDL操作的破坏性干扰。
DML操作可在两个级别获取数据锁:行级锁(TX)和表级锁(TM)。
表级锁有以下几种方式●空Null,即无锁。
●行共享表锁(RS)行共享表锁(有时也叫SS),表明事务保持已锁表行的表锁,并试图修改数据。
这种锁是在执行以下命令的时自动获取:Select …From 表名… for update for …;Lock Table 表名 in Row Share Mode;当一个事务在一个表持有行共享锁的时候,允许其他事务并行查询、插入、修改或者删除及再进行行锁,但禁止其他事务以排他方式进行操作该表。
oracle解锁数据的方法
在Oracle数据库中,解锁数据的方法取决于锁定的类型和锁定的来源。
下面是一些常见的解锁数据的方法:
1. 手动提交或回滚事务:如果数据被锁定是因为当前事务没有完成,则可以手动提交或回滚事务,以释放锁定的数据。
可以使用以下命令提交事务:
```
COMMIT;
```
或者使用以下命令回滚事务:
```
ROLLBACK;
```
2. 等待其他事务完成:如果数据被其他事务锁定,则可以等待其他事务完成并释放锁定的数据。
3. 杀死会话进程:如果无法等待其他事务完成或无法识别锁定的来源,可以使用以下命令杀死锁定会话进程:
```
ALTER SYSTEM KILL SESSION 'sid, serial#';
```
其中'sid'和'serial#'是锁定会话的标识符,在V$SESSION视图中可以找到。
4. 重启数据库实例:如果数据长时间被锁定或无法解锁,可以考虑重启整个数据库实例来释放锁定的数据。
但是,这种解锁方法应该在其他方法失败后才使用,并且需要小心处理,避免数据丢失或影响其他正在进行的操作。
需要注意的是,解锁数据可能会引起数据一致性问题,必须谨慎使用。
在进行任何解锁操作之前,建议先备份数据以防止意外情况发生。
oracle锁表查询和解锁方法一、锁表查询1.使用“行锁”的“for update”子句“for update”子句可以显式地锁定表中的行,以防止其他用户在数据没有更新之前更改或删除它们。
您可以在SELECT语句后使用“for update”子句来锁定表中的特定行:SELECT empno, enameFROM employeesWHERE deptno = 10FORUPDATE;如果您希望锁定整个表,请加上“OF”关键字:SELECT empno, enameFROM employeesWHERE deptno = 10FOR UPDATE OF empno;当在“of”后面指定列名时,它表示你想要锁定此列中的所有行。
这意味着其他会话只能读取此表,但不能修改任何满足WHERE子句的行。
要确保SQL语句完全执行,您必须提交事务。
2.使用“表锁”的“lock table”您可以使用“lock table”语句来锁定表。
lock table用于管理和表中的数据不受任何其他用户影响的场合。
它有三种锁定模式:共享(shared)、排他(exclusive)和混合(mixed)。
lock table table_name in exclusive mode;通常,你将锁定表以防止其他用户以任何方式更改。
共享模式锁定表并允许其他用户从表中选择数据,而排他模式锁定除了选择以外的所有指令。
为了防止其他会话使用SELECT语句,可以使用混合模式。
混合模式允许其他进程只进行SELECT操作。
要确保锁定表,您可以提交事务或回滚事务:请注意,如果您锁定任何表,您必须确保提交或回滚事务,否则其他会话将无法进行任何操作。
二、解锁表。
标题:Oracle 解除账户锁定规则一、背景介绍Oracle数据库作为一种重要的关系型数据库管理系统,广泛应用于各行各业的信息管理和数据存储中。
在使用Oracle数据库的过程中,经常会碰到账户被锁定的情况,这给数据库管理人员带来了一定的困扰。
为了解决这一问题,Oracle提供了一定的解除账户锁定规则。
二、账户锁定的原因1. 输入错误超过一定次数2. 管理员手动锁定账户3. 其他未知原因导致的账户锁定三、账户锁定的解除规则1. 通过重置密码解除锁定当账户因为密码输入错误次数过多被锁定时,可以通过重置密码解除锁定。
具体操作步骤如下:(1)使用管理员账户登入Oracle数据库;(2)执行ALTER USER username ACCOUNT UNLOCK语句,将被锁定的账户解锁;(3)执行ALTER USER username IDENTIFIED BY new_password语句,重置该账户的密码。
2. 等待一定时间自动解锁当账户被锁定时,可以选择等待一定时间让系统自动解锁账户。
Oracle默认的自动解锁时间为30分钟,当超过这个时间后,系统会自动解锁账户。
3. 通过SYS用户解锁在特殊情况下,可以使用SYS用户来解锁被锁定的账户。
操作步骤如下:(1)使用SYS用户登入Oracle数据库;(2)执行ALTER USER username ACCOUNT UNLOCK语句,将被锁定的账户解锁。
四、账户锁定规则的设置和管理1. 设置账户锁定策略为了保障数据库的安全性,可以设置账户锁定策略,限制密码错误次数并设置账户锁定时间。
可以通过以下SQL语句设置账户锁定策略:ALTER PROFILE profile_name LIMIT F本人LED_LOGIN_ATTEMPTS n;ALTER PROFILE profile_name LIMIT PASSWORD_LOCK_TIME t;2. 监控账户锁定情况数据库管理员应当定期查看和监控数据库中账户的锁定情况,及时发现并处理异常情况,保障数据库的正常运行。
Oracle数据库对用户解锁及密码修改使用oracle数据库首先准备的步骤:如果你将数据库的服务和监听设置的为开机自动启动,则直接可以使用数据库;如果将数据库的服务与监听设置的为手动启动,有两种方式启动:第一种:单击计算机右键,点击管理→服务,找到Oracle开头的服务双击会弹出这样一个对话框:点击启动(我这里已经启动);第二种:点击开始→运行(也可一使用快捷键:ctrl+r)打开命令提示行;先启动监听程序,在命令提示行输入:lsnrctl start,在启动oracle服务,输入:net start oracleserviceorcl这样就启动了oracle的服务与监听;如果要关闭服务与监听:同样在命令提示行输入:lsnrctl stop和net stop oracleserviceorcl即可;使用Oracle数据库对用户解锁的两种方式:第一种:1、使用Oracle数据库的sqlplusw登录赋有dba权限的用户(这里使用system用户)2、对需要解锁的用户解锁输入:alter user 用户名account unlock;3、修改密码:输入:password 用户名(如果对当前用户修改密码,则可以不输入用户名,对其他用户则要输入用户名)会提示输入新口令,输入正确后,会再次提示输入确认,两次输入的一致则修改成功第二种:1、使用PL/SQL客户端登录2、新建一个命令窗口3、查询所有用户select * from dba_users;4、选中对需要解锁的用户单击右键,选择编辑,在“一般”的窗口将“账户被锁住”的“√”去掉即可,如果需要修改密码则在口令输入即可查询用户所拥有的角色Select * from dba_role_privs;Select * from user_role_privs;查询所有角色Select * from dba_roles;查询用户对象权限Select * from dba_tab_privs;Select * from all_tab_privs;Select * from user_tab_privs; 查询用户系统权限:Select * from dba_sys_privs;Select * from all_sys_privs;Select *from user_sys_privs; 查询所有用户:Select * from dba_user;Select * from all_user;Select * from user_users;。
oracle锁表查询和解锁方法Oracle数据库提供了多种锁表查询和解锁方法,主要包括以下几种:1.查询锁表的方法:-查询数据库中的锁表信息:可以使用`V$LOCKED_OBJECT`视图来查询数据库中当前被锁定的对象和会话信息。
-查看表的锁信息:可以使用`DBA_LOCK`视图来查看指定表被锁定的信息,包括锁定的用户、锁定的模式、锁定的操作等。
-查看表上的锁信息:可以使用`DBA_OBJECTS`视图来查询指定表上的锁信息,包括锁定的用户、锁定的模式、锁定的操作等。
2.解锁表的方法:- 杀死会话:使用`ALTER SYSTEM KILL SESSION 'sid,serial#' IMMEDIATE;`语句可以立即终止指定会话。
其中,`sid`和`serial#`是要终止会话的标识符。
- 释放表锁:使用`ALTER TABLE table_name ENABLE TABLE LOCK`语句可以释放指定表的锁。
其中,`table_name`是要释放锁的表名。
- 修改会话状态:使用`UPDATE V$SESSION SET STATUS = 'KILLED' WHERE SID = sid AND SERIAL# = serial#;`语句可以将指定会话的状态修改为`KILLED`,从而间接释放表锁。
其中,`sid`和`serial#`是要释放锁的会话的标识符。
3.避免锁表的方法:-尽量使用短事务:短事务可以减少对资源的占用时间,从而降低锁表的风险。
-尽量使用较小的粒度锁:使用较小的粒度锁可以减少锁表的范围,提高并发性能。
-合理调整事务隔离级别:使用合适的事务隔离级别可以在保证数据一致性的前提下减少锁表的发生。
-分表、分区表:将大表进行分表或分区,可以减少锁表的范围,提高并发性能。
4.监控锁表情况:- 监控锁表的工具:可以使用Oracle提供的监控工具,如AWR Report、ASH Report、Enterprise Manager等,来实时监控锁表情况。
Oracle修改⽤户密码错误次数及解锁⽤户ORACLE11g错误密码登录默认是10次,10次错误后⽤户将被锁定,如下:SQL> conn test/123456ERROR: ORA-28000: the account is locked1.查看被锁定的⽤户SQL> select LOCK_DATE,username from dba_users where username='GXGAT';LOCK_DATE USERNAME--------- ------------------------------16-JUN-20 TESTLOCK_DATE为空说明没有锁定,⾮空为锁定。
或SELECT ERNAME,DECODE(L.TYPE, 'TM', 'TABLE LOCK', 'TX', 'ROW LOCK', NULL) LOCK_LEVEL,O.OWNER,O.OBJECT_NAME,O.OBJECT_TYPE,S.SID,S.SERIAL#,S.TERMINAL,S.MACHINE,S.PROGRAM,S.OSUSERFROM V$SESSION S, V$LOCK L, DBA_OBJECTS OWHERE S.SID = L.SIDAND O.OBJECT_ID = L.ID1AND ERNAME IS NOT NULL;2.解锁⽤户⽅式:登陆sys⽤户,执⾏解锁命令SQL> alter user test account unlock;User altered.SQL> conn test/passwordConnected.3.现在我们来查看下默认连接错误锁定次数SQL> select * from dba_profiles where resource_name like 'FAILED_LOGIN_ATTEMPTS%';PROFILE RESOURCE_NAME RESOURCE LIMIT-------------------------------------------------------------------------------------------------------------------------------- -------------------------------- -------- ---------------------------------------------------------------------------------------------------------------COM INH IMP--- --- ---DEFAULT FAILED_LOGIN_ATTEMPTS PASSWORD 10NO NO NO4.修改默认的错误登录次数,为不限制(为安全起见,不建议使⽤)SQL> alter profile DEFAULT limit FAILED_LOGIN_ATTEMPTS UNLIMITED; SQL>alter profile default limit failed_login_attempts 20; //修改为20次。
oracle数据库用户解锁语句Oracle数据库用户解锁是指将被锁定的用户账号恢复为可正常使用的状态。
用户账号被锁定可以是由于输入错误的密码次数超过了系统限制,或者是由于管理员手动锁定了该用户账号。
下面列举了10个解锁Oracle数据库用户的语句。
1. ALTER USER语句ALTER USER语句是最常用的解锁用户账号的方法之一。
可以使用以下语法将用户账号解锁:```ALTER USER <username> ACCOUNT UNLOCK;```其中,`<username>`是要解锁的用户账号名称。
执行这条语句后,用户账号将被解锁并可以正常使用。
2. UNLOCK USER语句UNLOCK USER语句也可以用来解锁用户账号,语法如下:```UNLOCK USER <username>;```同样,`<username>`是要解锁的用户账号名称。
执行这条语句后,用户账号将被解锁。
3. 使用ADMIN命令解锁用户账号在Oracle数据库中,可以使用ADMIN命令解锁用户账号。
具体步骤如下:a. 使用sysdba权限登录到数据库:```sqlplus / as sysdba```b. 执行ADMIN命令解锁用户账号:```ADMIN UNLOCK USER <username>;```4. 使用ALTER SYSTEM命令解锁用户账号另一种解锁用户账号的方法是使用ALTER SYSTEM命令。
具体步骤如下:a. 使用sysdba权限登录到数据库:```sqlplus / as sysdba```b. 执行ALTER SYSTEM命令解锁用户账号:```ALTER SYSTEM UNLOCK USER '<username>';```5. 使用DBMS_LOCK.SLEEP函数解锁用户账号DBMS_LOCK.SLEEP函数可以用来解锁用户账号,具体步骤如下:a. 使用sysdba权限登录到数据库:```sqlplus / as sysdba```b. 执行DBMS_LOCK.SLEEP函数解锁用户账号:```BEGINDBMS_LOCK.SLEEP(1);EXECUTE IMMEDIATE 'ALTER USER <username> ACCOUNTUNLOCK';END;/```6. 使用DBMS_SYS_SQL解锁用户账号DBMS_SYS_SQL包中的EXECUTE_AND_FETCH函数可以用来执行动态SQL语句,从而解锁用户账号。
oracle表被锁定的完美解决⽅法解决办法:ora-00031:session marked for kill处理oracle中杀不掉的锁⼀些ORACLE中的进程被杀掉后,状态被置为”killed”,但是锁定的资源很长时间不释放,有时实在没办法,只好重启数据库。
现在提供⼀种⽅法解决这种问题,那就是在ORACLE中杀不掉的,在OS⼀级再杀。
下⾯的语句⽤来查询哪些对象被锁:select object_name,machine,s.sid,s.serial#from v$locked_object l,dba_objects o ,v$session swhere l.object_id = o.object_id and l.session_id=s.sid;下⾯的语句⽤来杀死⼀个进程:alter system kill session '24,111'; (其中24,111分别是上⾯查询出的sid,serial#【注】以上两步,可以通过Oracle的管理控制台来执⾏。
如果利⽤上⾯的命令杀死⼀个进程后,进程状态被置为”killed”,但是锁定的资源很长时间没有被释放,那么可以在os⼀级再杀死相应的进程(线程), ⾸先执⾏下⾯的语句获得进程(线程)号:select spid, osuser, s.programfrom v$session s,v$process pwhere s.paddr=p.addr and s.sid=24 (24是上⾯的sid)在OS上杀死这个进程(线程):在unix上,⽤root⾝份执⾏命令:kill -9 12345(即第3步查询出的spid)-在windows(unix也适⽤)⽤orakill杀死线程,orakill是oracle提供的⼀个可执⾏命令,语法为:orakill sid thread其中:sid:表⽰要杀死的进程属于的实例名thread:是要杀掉的线程号,即第3步查询出的spid。
oracle锁表查询和解锁方法## Oracle 锁表查询和解锁方法Oracle数据库是当今最流行的关系型数据库系统,其中有一种十分重要的特性就是它可以锁定数据库表,防止别人修改该表的内容,又被称为并发控制。
下面我们分别来看看Oracle中查询和解锁表的方法:### 一、Oracle中查询锁表方法1. 使用系统内置函数查询锁表- 以DBA权限登录,使用“select * from v$lock;”查询锁表状态;- 使用“SELECT l.sid, l.type, l.mode, l.id1,ername, s.osuser, s.machine FROM v$lock l,v$session s WHERE l.sid=s.sid;”查询出锁表具体信息,以便确定锁表的具体情况和引起表锁定的原因。
2. 使用dba_dml_locks视图查看锁表- 以DBA账号登录,使用“select * fromdba_dml_locks;”命令查看锁表的状态;- 使用“select * f rom dba_dml_locks where name='表名' and mode_held='锁定模式';”命令查看表名称以及表上锁定的模式。
### 二、Oracle中解锁表方法1. 强制执行表解锁:- 使用“ALTER SYSTEM KILL SESSION'sid,serial#' IMMEDIATE;”命令强制杀死会话占用表的会话,以释放表上的锁定;- 使用“select * from v$lock;”命令查询是否成功释放表的锁定。
2. 将表上锁定的模式转换- 使用Oracle的“alter system 的 kill session 命令”可以将表上的锁定模式转换,将表上的某个类型的锁定模式被另外一种更安全的锁定模式替换; - 使用“Select * from v$lock;” 命令查询是否转换成功。
Tiptop GP管理员手册-GP部分目录Tiptop GP管理员手册-GP部分 (1)一、易拓系统架构说明 (2)二、易拓目录结构说明 (3)三、易拓用户说明 (4)四、添加Tiptop ERP用户 (4)五、新建ERP帐套 (6)六、系统备份检查 (9)七、Tiptop GP重要文件介绍 (11)八、环境变量一、易拓系统架构说明1)Tiptop GP安装于Linux或AIX操作系统上2)Tiptop GP使用Oracle数据库3)Tiptop GP是在Genero平台下开发的ERP系统二、易拓目录结构说明/ 根分区存放OS操作系统文件/u1/usr 为各用户的家目录,存放.profile用户配置文件/u1/genero 存放genero platform,是tiptop erp的开发及运行平台/u1/topprod Tiptop ERP正式区程序/u1/toptest Tiptop ERP测试区程序,供开发及测试用/u2/oracle Oracle软件的安装目录/u2/oradb 存放ERP数据的Oracle数据库文件/u3/backup 存放Tiptop ERP程序及数据库的备份三、易拓用户说明tiptop GP正式区管理员用户toptest GP测试区管理员用户topgui GP测试账户,其.profile供ERP普通用户使用四、添加Tiptop ERP用户添加ERP用户分为两部分操作:1)后台Linux系统添加ERP账户2)前台p_zx作业中添加ERP账户注:两者名称必须一致包括大小写。
以下以添加用户A001为例<topprod:/u1/gp525/tiptop> su - <<切换到root账户Password:[root@TTP-3 ~]# useradd -g tiptop -s /bin/ksh -d /u1/usr/topgui A001 <<添加A001用户useradd: warning: the home directory already exists.Not copying any file from skel directory into it.[root@TTP-3 ~]# passwd A001 <<设置A001用户密码Changing password for user A001.New password: <<输入密码注ps:密码字符不会显示BAD PASSWORD: it does not contain enough DIFFERENT charactersBAD PASSWORD: is too simpleRetype new password: <<再次输入密码设置passwd: all authentication tokens updated successfully.[root@TTP-3 ~]# exitlogout<topprod:/u1/gp525/tiptop> udm7(红字部分为为所下指令,篮字为注释,黑字为屏幕提示)2)前台运行p_zx作业添加A001账户,并赋予正确的权限。
TIPTOP GP for Oracle解锁的方法
大家在运行程序时经常会遇到死锁的问题,本文主要介绍如何查询到锁并解决该锁的方法。
一、为什么会发生死锁?
当大家在run程序时,非正常结束,或出现未知的误操作时,常常会造成死锁,从而导致整个系统的非正常使用
二、如何查询到死锁?
1.用tiptop登入,
$ cd $TOP/ora/scripts
$ oraq q_locktable
或 $sqlplus system/manager < q_locktable.sql
密码
2. 屏幕列出了目前系统表被锁的情况
三、如何解锁?
1、终止操作系统进行从而达到解锁目的,如上”Proc ID”的值为18040是操作系统的进程,此进程运行锁住了表。
终止此进程就相应释放被锁的表。
命令如下:
# kill 18040
2、通过Oracle本身提供的命令此锁住表的会话以达到解锁目的,记下SID和SERIAL#,用下命令kill锁:
SQL> alter system kill session 'sid,serial#';
如: $ sqlplus /nolog
SQL> conn / as sysdba
SQL>alter system kill session ‘9,725’;。