﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-void-随笔分类-Oracle</title><link>http://www.blogjava.net/void241/category/54381.html</link><description /><language>zh-cn</language><lastBuildDate>Sun, 06 Jul 2014 15:08:13 GMT</lastBuildDate><pubDate>Sun, 06 Jul 2014 15:08:13 GMT</pubDate><ttl>60</ttl><item><title>Oracle的锁表与解锁</title><link>http://www.blogjava.net/void241/archive/2014/07/06/415499.html</link><dc:creator>void</dc:creator><author>void</author><pubDate>Sun, 06 Jul 2014 12:51:00 GMT</pubDate><guid>http://www.blogjava.net/void241/archive/2014/07/06/415499.html</guid><wfw:comment>http://www.blogjava.net/void241/comments/415499.html</wfw:comment><comments>http://www.blogjava.net/void241/archive/2014/07/06/415499.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/void241/comments/commentRss/415499.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/void241/services/trackbacks/415499.html</trackback:ping><description><![CDATA[<p style="margin-top: 10px; margin-bottom: 10px; font-family: Verdana, Arial, Helvetica, sans-serif; line-height: 25px; background-color: #ffffff;">SELECT /*+ rule */ s.username,<br />decode(l.type,'TM','TABLE LOCK',<br />'TX','ROW LOCK',<br />NULL) LOCK_LEVEL,<br />o.owner,o.object_name,o.object_type,<br />s.sid,s.serial#,s.terminal,s.machine,s.program,s.osuser<br />FROM v$session s,v$lock l,dba_objects o<br />WHERE l.sid = s.sid<br />AND l.id1 = o.object_id(+)<br />AND s.username is NOT Null</p><p style="margin-top: 10px; margin-bottom: 10px; font-family: Verdana, Arial, Helvetica, sans-serif; line-height: 25px; background-color: #ffffff;"><strong>--kill session语句<br /></strong>alter system kill session'50,492';<br /><strong>--以下几个为相关表<br /></strong>SELECT * FROM v$lock;<br />SELECT * FROM v$sqlarea;<br />SELECT * FROM v$session;<br />SELECT * FROM v$process ;<br />SELECT * FROM v$locked_object;<br />SELECT * FROM all_objects;<br />SELECT * FROM v$session_wait;<br /><strong>--1.查出锁定object的session的信息以及被锁定的object名<br /></strong>SELECT l.session_id sid, s.serial#, l.locked_mode,l.oracle_username,<br />l.os_user_name,s.machine, s.terminal, o.object_name, s.logon_time<br />FROM v$locked_object l, all_objects o, v$session s<br />WHERE l.object_id = o.object_id<br />AND l.session_id = s.sid<br />ORDER BY sid, s.serial# ;<br /><strong>--2.查出锁定表的session的sid, serial#,os_user_name, machine name, terminal和执行的语句</strong><br /><em><strong>--比上面那段多出sql_text和action</strong></em><br />SELECT l.session_id sid, s.serial#, l.locked_mode, l.oracle_username, s.user#,<br />l.os_user_name,s.machine, s.terminal,a.sql_text, a.action<br />FROM v$sqlarea a,v$session s, v$locked_object l<br />WHERE l.session_id = s.sid<br />AND s.prev_sql_addr = a.address<br />ORDER BY sid, s.serial#;<br /><strong>--3.查出锁定表的sid, serial#,os_user_name, machine_name, terminal，锁的type,mode</strong><br />SELECT s.sid, s.serial#, s.username, s.schemaname, s.osuser, s.process, s.machine,<br />s.terminal, s.logon_time, l.type<br />FROM v$session s, v$lock l<br />WHERE s.sid = l.sid<br />AND s.username IS NOT NULL<br />ORDER BY sid;</p><p style="margin-top: 10px; margin-bottom: 10px; font-family: Verdana, Arial, Helvetica, sans-serif; line-height: 25px; background-color: #ffffff;">这个语句将查找到数据库中所有的DML语句产生的锁，还可以发现，<br />任何DML语句其实产生了两个锁，一个是表锁，一个是行锁。<br /><strong>杀锁命令</strong><br /><span style="background-color: #ffff00;">alter system kill session 'sid,serial#'</span><br />SELECT /*+ rule */ s.username,<br />decode(l.type,'TM','TABLE LOCK',<br />'TX','ROW LOCK',<br />NULL) LOCK_LEVEL,<br />o.owner,o.object_name,o.object_type,<br />s.sid,s.serial#,s.terminal,s.machine,s.program,s.osuser<br />FROM v$session s,v$lock l,dba_objects o<br />WHERE l.sid = s.sid<br />AND l.id1 = o.object_id(+)<br />AND s.username is NOT NULL<br />如果发生了锁等待，我们可能更想知道是谁锁了表而引起谁的等待<br />以下的语句可以查询到谁锁了表，而谁在等待。<br />以上查询结果是一个树状结构，如果有子节点，则表示有等待发生。<br />如果想知道锁用了哪个回滚段，还可以关联到V$rollname，其中xidusn就是回滚段的USN<br />col user_name format a10<br />col owner format a10<br />col object_name format a10<br />col object_type format a10<br />SELECT /*+ rule */ lpad(' ',decode(l.xidusn ,0,3,0))||l.oracle_username User_name,<br />o.owner,o.object_name,o.object_type,s.sid,s.serial#<br />FROM v$locked_object l,dba_objects o,v$session s<br />WHERE l.object_id=o.object_id<br />AND l.session_id=s.sid<br />ORDER BY o.object_id,xidusn DESC</p><img src ="http://www.blogjava.net/void241/aggbug/415499.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/void241/" target="_blank">void</a> 2014-07-06 20:51 <a href="http://www.blogjava.net/void241/archive/2014/07/06/415499.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>新装 Oracle 建库(实例)步骤</title><link>http://www.blogjava.net/void241/archive/2014/05/23/414025.html</link><dc:creator>void</dc:creator><author>void</author><pubDate>Fri, 23 May 2014 08:02:00 GMT</pubDate><guid>http://www.blogjava.net/void241/archive/2014/05/23/414025.html</guid><wfw:comment>http://www.blogjava.net/void241/comments/414025.html</wfw:comment><comments>http://www.blogjava.net/void241/archive/2014/05/23/414025.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/void241/comments/commentRss/414025.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/void241/services/trackbacks/414025.html</trackback:ping><description><![CDATA[<div>Oracle版本：11gR2<br />安装好Oracle后，需要创建一个实例（也就是库）。</div><div>ORACLE创建实例，使用ORAHOME目录下的"Configuration and Migration Tools"下的"Database Configuration Assistant"工具。</div><div>建好库（实例）后，使用用户名&#8220;system&#8221;登陆刚才建好的库。</div><div>执行下面的语句。<br /><br /><br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #008080; ">--</span><span style="color: #008080; ">表空间</span><span style="color: #008080; "><br /></span><span style="color: #0000FF; ">CREATE</span>&nbsp;TABLESPACE&nbsp;nansha<br />DATAFILE&nbsp;<span style="color: #FF0000; ">'</span><span style="color: #FF0000; ">D:\Oracle\oradata\nansha\nansha_data.dbf</span><span style="color: #FF0000; ">'</span>&nbsp;size&nbsp;800M<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;EXTENT&nbsp;MANAGEMENT&nbsp;LOCAL&nbsp;SEGMENT&nbsp;<span style="color: #FF00FF; ">SPACE</span>&nbsp;MANAGEMENT&nbsp;AUTO;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><span style="color: #008080; ">--</span><span style="color: #008080; ">索引表空间</span><span style="color: #008080; "><br /></span><span style="color: #0000FF; ">CREATE</span>&nbsp;TABLESPACE&nbsp;nansha_index<br />DATAFILE&nbsp;<span style="color: #FF0000; ">'</span><span style="color: #FF0000; ">D:\Oracle\oradata\nansha\nansha_index.dbf</span><span style="color: #FF0000; ">'</span>&nbsp;size&nbsp;512M&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;EXTENT&nbsp;MANAGEMENT&nbsp;LOCAL&nbsp;SEGMENT&nbsp;<span style="color: #FF00FF; ">SPACE</span>&nbsp;MANAGEMENT&nbsp;AUTO;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><br /><span style="color: #008080; ">--</span><span style="color: #008080; ">2.建用户</span><span style="color: #008080; "><br /></span><span style="color: #0000FF; ">create</span>&nbsp;<span style="color: #FF00FF; ">user</span>&nbsp;chenpeng&nbsp;identified&nbsp;<span style="color: #0000FF; ">by</span>&nbsp;chenpeng&nbsp;<br /><span style="color: #0000FF; ">default</span>&nbsp;tablespace&nbsp;nansha;<br />&nbsp;<br /><span style="color: #008080; ">--</span><span style="color: #008080; ">3.赋权</span><span style="color: #008080; "><br /></span><span style="color: #0000FF; ">grant</span>&nbsp;connect,resource&nbsp;<span style="color: #0000FF; ">to</span>&nbsp;chenpeng;<br /><span style="color: #0000FF; ">grant</span>&nbsp;<span style="color: #0000FF; ">create</span>&nbsp;<span style="color: #808080; ">any</span>&nbsp;sequence&nbsp;<span style="color: #0000FF; ">to</span>&nbsp;chenpeng;<br /><span style="color: #0000FF; ">grant</span>&nbsp;<span style="color: #0000FF; ">create</span>&nbsp;<span style="color: #808080; ">any</span>&nbsp;<span style="color: #0000FF; ">table</span>&nbsp;<span style="color: #0000FF; ">to</span>&nbsp;chenpeng;<br /><span style="color: #0000FF; ">grant</span>&nbsp;<span style="color: #0000FF; ">delete</span>&nbsp;<span style="color: #808080; ">any</span>&nbsp;<span style="color: #0000FF; ">table</span>&nbsp;<span style="color: #0000FF; ">to</span>&nbsp;chenpeng;<br /><span style="color: #0000FF; ">grant</span>&nbsp;<span style="color: #0000FF; ">insert</span>&nbsp;<span style="color: #808080; ">any</span>&nbsp;<span style="color: #0000FF; ">table</span>&nbsp;<span style="color: #0000FF; ">to</span>&nbsp;chenpeng;<br /><span style="color: #0000FF; ">grant</span>&nbsp;<span style="color: #0000FF; ">select</span>&nbsp;<span style="color: #808080; ">any</span>&nbsp;<span style="color: #0000FF; ">table</span>&nbsp;<span style="color: #0000FF; ">to</span>&nbsp;chenpeng;<br /><span style="color: #0000FF; ">grant</span>&nbsp;unlimited&nbsp;tablespace&nbsp;<span style="color: #0000FF; ">to</span>&nbsp;chenpeng;<br /><span style="color: #0000FF; ">grant</span>&nbsp;<span style="color: #0000FF; ">execute</span>&nbsp;<span style="color: #808080; ">any</span>&nbsp;<span style="color: #0000FF; ">procedure</span>&nbsp;<span style="color: #0000FF; ">to</span>&nbsp;chenpeng;<br /><span style="color: #0000FF; ">grant</span>&nbsp;<span style="color: #0000FF; ">update</span>&nbsp;<span style="color: #808080; ">any</span>&nbsp;<span style="color: #0000FF; ">table</span>&nbsp;<span style="color: #0000FF; ">to</span>&nbsp;chenpeng;<br /><span style="color: #0000FF; ">grant</span>&nbsp;<span style="color: #0000FF; ">create</span>&nbsp;<span style="color: #808080; ">any</span>&nbsp;<span style="color: #0000FF; ">view</span>&nbsp;<span style="color: #0000FF; ">to</span>&nbsp;chenpeng;<br /><br /><span style="color: #008080; ">--</span><span style="color: #008080; ">PS.赋权DBA</span><span style="color: #008080; "><br />--</span><span style="color: #008080; ">grant&nbsp;dba&nbsp;to&nbsp;chenpeng</span><span style="color: #008080; "><br /></span><br /><span style="color: #0000FF; ">commit</span>;</div><br /><br /><br /><div>用刚才新建的用户登陆（新建）库</div><div></div><div>--测试：新建一张表</div><div>create table usptotest&nbsp;</div><div>(&nbsp;</div><div>pn varchar(10) not null,&nbsp;</div><div>isd varchar(20) default '' not null ,&nbsp;</div><div>title varchar(150) default '' not null ,&nbsp;</div><div>abst varchar(2000) default '' not null ,&nbsp;</div><div>appno varchar(20) default '' not null ,&nbsp;</div><div>appdate varchar(20) default '' not null ,&nbsp;</div><div>inventor varchar(200) default '' not null ,&nbsp;</div><div>assignee_name varchar(50) default '' not null ,&nbsp;</div><div>assignee_country varchar(20) default '' not null ,&nbsp;</div><div>assignee_city varchar(20) default '' not null ,&nbsp;</div><div>assignee_state varchar(10) default '' not null,&nbsp;</div><div>primary key (pn)&nbsp;</div><div>)&nbsp;</div></div><img src ="http://www.blogjava.net/void241/aggbug/414025.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/void241/" target="_blank">void</a> 2014-05-23 16:02 <a href="http://www.blogjava.net/void241/archive/2014/05/23/414025.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>