4年前 (2015-09-20)  数据库 系统运维 |   45 条评论  51 
百度已收录 | 文章评分 0 次,平均分 0.0

1、查询表空间相关信息

使用系统用户登录,然后使用如下命令,查看数据库表空间相关信息:

select <code class="sql plain">* </code><code class="sql keyword">from</code> <code class="sql plain">dba_data_files;</code>

2、创建表空间

创建临时表空间:

create <code class="sql keyword">temporary</code> <code class="sql plain">tablespace exercise_temp
</code><code class="sql plain">tempfile </code><code class="sql string">'D:\oracle\product\10.2.0\oradata\orcl\exercise_temp.dbf'
</code><code class="sql keyword">size</code> <code class="sql plain">50m
</code><code class="sql plain">autoextend </code><code class="sql keyword">on
</code><code class="sql keyword">next</code> <code class="sql plain">50m maxsize 20480m
</code><code class="sql plain">extent management </code><code class="sql keyword">local</code><code class="sql plain">;</code>

注意:目录[D:\oracle\product\10.2.0\oradata\orcl]自己定义,并确保存在,且所在磁盘大小要超过参数maxsize的值。

创建数据表空间:

create <code class="sql plain">tablespace exercise_data
</code><code class="sql plain">logging
</code><code class="sql plain">datafile </code><code class="sql string">'D:\oracle\product\10.2.0\oradata\orcl\exercise_data.dbf'
</code><code class="sql keyword">size</code> <code class="sql plain">50m
</code><code class="sql plain">autoextend </code><code class="sql keyword">on
</code><code class="sql keyword">next</code> <code class="sql plain">50m maxsize 20480m
</code><code class="sql plain">extent management </code><code class="sql keyword">local</code><code class="sql plain">;</code>

创建用户并指定表空间:

create <code class="sql color2">user</code> <code class="sql plain">username identified </code><code class="sql keyword">by</code> <code class="sql keyword">password
</code><code class="sql keyword">default</code> <code class="sql plain">tablespace exercise_data
</code><code class="sql keyword">temporary</code> <code class="sql plain">tablespace exercise_temp;</code>

用户授权:

grant <code class="sql keyword">connect</code><code class="sql plain">,resource,dba </code><code class="sql keyword">to</code> <code class="sql plain">username;</code>

3、查询表空间使用情况

SELECT <code class="sql color2">UPPER</code><code class="sql plain">(F.TABLESPACE_NAME) </code><code class="sql string">"表空间名"</code><code class="sql plain">,
</code><code class="sql plain">D.TOT_GROOTTE_MB </code><code class="sql string">"表空间大小(M)"</code><code class="sql plain">,
</code><code class="sql plain">D.TOT_GROOTTE_MB - F.TOTAL_BYTES </code><code class="sql string">"已使用空间(M)"</code><code class="sql plain">,
</code><code class="sql plain">TO_CHAR(ROUND((D.TOT_GROOTTE_MB - F.TOTAL_BYTES) / D.TOT_GROOTTE_MB * 100,2),</code><code class="sql string">'990.99'</code><code class="sql plain">) || </code><code class="sql string">'%'</code> <code class="sql string">"使用比"</code><code class="sql plain">,
</code><code class="sql plain">F.TOTAL_BYTES </code><code class="sql string">"空闲空间(M)"</code><code class="sql plain">,
</code><code class="sql plain">F.MAX_BYTES </code><code class="sql string">"最大块(M)"
</code><code class="sql keyword">FROM</code> <code class="sql plain">(</code><code class="sql keyword">SELECT</code> <code class="sql plain">TABLESPACE_NAME,
</code><code class="sql plain">ROUND(</code><code class="sql color2">SUM</code><code class="sql plain">(BYTES) / (1024 * 1024), 2) TOTAL_BYTES,
</code><code class="sql plain">ROUND(</code><code class="sql keyword">MAX</code><code class="sql plain">(BYTES) / (1024 * 1024), 2) MAX_BYTES
</code><code class="sql keyword">FROM</code> <code class="sql plain">SYS.DBA_FREE_SPACE
</code><code class="sql keyword">GROUP</code> <code class="sql keyword">BY</code> <code class="sql plain">TABLESPACE_NAME) F,
</code><code class="sql plain">(</code><code class="sql keyword">SELECT</code> <code class="sql plain">DD.TABLESPACE_NAME,
</code><code class="sql plain">ROUND(</code><code class="sql color2">SUM</code><code class="sql plain">(DD.BYTES) / (1024 * 1024), 2) TOT_GROOTTE_MB
</code><code class="sql keyword">FROM</code> <code class="sql plain">SYS.DBA_DATA_FILES DD
</code><code class="sql keyword">GROUP</code> <code class="sql keyword">BY</code> <code class="sql plain">DD.TABLESPACE_NAME) D
</code><code class="sql keyword">WHERE</code> <code class="sql plain">D.TABLESPACE_NAME = F.TABLESPACE_NAME
</code><code class="sql keyword">ORDER</code> <code class="sql keyword">BY</code> <code class="sql plain">1;</code>

4、查询表空间总容量

select <code class="sql plain">tablespace_name, </code><code class="sql color2">sum</code><code class="sql plain">(bytes) / 1024 / 1024 </code><code class="sql keyword">as</code> <code class="sql plain">MB
</code><code class="sql keyword">from</code> <code class="sql plain">dba_data_files
</code><code class="sql keyword">group</code> <code class="sql keyword">by</code> <code class="sql plain">tablespace_name;</code>

5、删除表空间

删除用户:

drop user username cascade;

删除表空间:

drop <code class="sql plain">tablespace tablespace_name including contents </code><code class="sql color1">and</code> <code class="sql plain">datafiles;</code>

6、查询当前表级锁SQL:

select <code class="sql plain">sess.sid, 
</code><code class="sql plain">sess.serial#, 
</code><code class="sql plain">lo.oracle_username, 
</code><code class="sql plain">lo.os_user_name, 
</code><code class="sql plain">ao.object_name, 
</code><code class="sql plain">lo.locked_mode 
</code><code class="sql keyword">from</code> <code class="sql plain">v$locked_object lo, 
</code><code class="sql plain">dba_objects ao, 
</code><code class="sql plain">v$session sess 
</code><code class="sql keyword">where</code> <code class="sql plain">ao.object_id = lo.object_id </code><code class="sql color1">and</code> <code class="sql plain">lo.session_id = sess.sid;</code>

7、杀掉表锁进程:

alter <code class="sql plain">system kill session </code><code class="sql string">'436,35123'</code><code class="sql plain">;</code>

8、监控当前数据库谁在运行什么SQL语句

select <code class="sql plain">osuser, username, sql_text  
</code><code class="sql keyword">from</code>  <code class="sql plain">v$session a, v$sqltext b 
</code><code class="sql keyword">where</code>  <code class="sql plain">a.sql_address =b.address </code><code class="sql keyword">order</code> <code class="sql keyword">by</code> <code class="sql plain">address, piece;</code>

9、找使用CPU多的用户session

select <code class="sql plain">a.sid,spid,status,substr(a.program,1,40) prog, a.terminal,osuser,value/60/100 value 
</code><code class="sql keyword">from</code>  <code class="sql plain">v$session a,v$process b,v$sesstat c 
</code><code class="sql keyword">where</code>  <code class="sql plain">c.statistic#=12 </code><code class="sql color1">and
</code><code class="sql plain">c.sid=a.sid </code><code class="sql color1">and
</code><code class="sql plain">a.paddr=b.addr  
</code><code class="sql keyword">order</code> <code class="sql keyword">by</code> <code class="sql plain">value </code><code class="sql keyword">desc</code><code class="sql plain">;</code>

10、查看死锁信息

SELECT (SELECT username FROM v$session WHERE SID = a.SID) blocker, a.SID, 'is blocking',
(SELECT username FROM v$session WHERE SID = b.SID) blockee, b.SID FROM v$lock a, v$lock b
WHERE a.BLOCK = 1 AND b.request &gt; 0 AND a.id1 = b.id1 AND a.id2 = b.id2;

11、查看消耗资源最多的SQL

SELECT <code class="sql plain">hash_value, executions, buffer_gets, disk_reads, parse_calls
</code><code class="sql keyword">FROM</code> <code class="sql plain">V$SQLAREA
</code><code class="sql keyword">WHERE</code> <code class="sql plain">buffer_gets &gt; 10000000 </code><code class="sql color1">OR</code> <code class="sql plain">disk_reads &gt; 1000000
</code><code class="sql keyword">ORDER</code> <code class="sql keyword">BY</code> <code class="sql plain">buffer_gets + 100 * disk_reads </code><code class="sql keyword">DESC</code><code class="sql plain">;</code>

12、查看某条SQL语句的资源消耗

SELECT <code class="sql plain">hash_value, buffer_gets, disk_reads, executions, parse_calls
</code><code class="sql keyword">FROM</code> <code class="sql plain">V$SQLAREA
</code><code class="sql keyword">WHERE</code> <code class="sql plain">hash_Value = 228801498 </code><code class="sql color1">AND</code> <code class="sql plain">address = hextoraw(</code><code class="sql string">'CBD8E4B0'</code><code class="sql plain">);</code>

13、查询会话执行的实际SQL

SELECT   <code class="sql plain">a.SID, a.username, s.sql_text
</code><code class="sql keyword">FROM</code> <code class="sql plain">v$session a, v$sqltext s
</code><code class="sql keyword">WHERE</code> <code class="sql plain">a.sql_address = s.address
</code><code class="sql color1">AND</code> <code class="sql plain">a.sql_hash_value = s.hash_value
</code><code class="sql color1">AND</code> <code class="sql plain">a.status = </code><code class="sql string">'ACTIVE'
</code><code class="sql keyword">ORDER</code> <code class="sql keyword">BY</code> <code class="sql plain">a.username, a.SID, s.piece;</code>

14、显示正在等待锁的所有会话

SELECT <code class="sql plain">* </code><code class="sql keyword">FROM</code> <code class="sql plain">DBA_WAITERS;</code>

 

除特别注明外,本站所有文章均为张子豪博客(ZihaoBlog)原创,转载请注明出处来自https://www.zihao123.com/362.html

关于
93年菜鸟云主机运维。

发表评论

表情 格式
  1. 哈 谢谢啦 !谢谢分享

    美琳 评论达人 LV.1 4年前 (2015-12-10) [0] [0]
  2. 哈 谢谢啦 !谢谢分享

    美琳 评论达人 LV.1 4年前 (2015-12-10) [0] [0]
切换注册

登录

忘记密码 ?

您也可以使用第三方帐号快捷登录

切换登录

注册

×
订阅图标按钮