`

oracle常用维护语句

阅读更多
--查看静态空间--
select a.tablespace_name,
       used / 1024 / 1024 || 'M' used,
       round(100 - b.free / used * 100, 2) || '%' used_pct,
       round(free / 1024 / 1024, 2) || 'M' free,
       round(max_size / 1024 / 1024) || 'M' max_size,
       round(max_size / 1024 / 1024) - used / 1024 / 1024 || 'M' MAX_SIZE__TOTAL
  from (select tablespace_name,
               sum(bytes) used,
               sum(case
                     when maxbytes = 0 then
                      bytes
                     else
                      maxbytes
                   end) max_size
          from dba_data_files
         group by tablespace_name) a,
       (select tablespace_name, sum(bytes) free
          from dba_free_space
         group by tablespace_name) b
where a.tablespace_name = b.tablespace_name;

--空间监控(注意回滚段是循环利用的,仅仅看已占用空间没有实际意义)
select a.a1 表空间名称,
       c.c2 类型,
       c.c3 区管理,
       b.b2 / 1024 / 1024 表空间大小M,
       (b.b2 - a.a2) / 1024 / 1024 已使用M,
       a.a2 / 1024 / 1024 剩余M,
       substr((b.b2 - a.a2) / b.b2 * 100, 1, 5) 利用率
  from (select tablespace_name a1, sum(nvl(bytes, 0)) a2
          from dba_free_space
         group by tablespace_name) a,
       (select tablespace_name b1, sum(bytes) b2
          from dba_data_files
         group by tablespace_name) b,
       (select tablespace_name c1, contents c2, extent_management c3
          from dba_tablespaces) c
where a.a1 = b.b1
   and c.c1 = b.b1;

--当前用户表、索引等占用空间情况,正式机要用bp来跑
Select t.segment_type,
       t.tablespace_name,
       t.Segment_Name,
       Sum(t.bytes) / 1024 / 1024
  From User_Extents t
Group By t.segment_type, t.tablespace_name, t.Segment_Name;

--数据库文件占用情况
select b.file_name 物理文件名,
       b.tablespace_name 表空间,
       b.bytes / 1024 / 1024 大小M,
       (b.bytes - sum(nvl(a.bytes, 0))) / 1024 / 1024 已使用M,
       substr((b.bytes - sum(nvl(a.bytes, 0))) / (b.bytes) * 100, 1, 5) 利用率
  from dba_free_space a, dba_data_files b
where a.file_id = b.file_id
group by b.tablespace_name, b.file_name, b.bytes
order by b.tablespace_name;

--临时空间
Select file#, status, name from V$tempfile;

--事务正在使用的回滚段监控(貌似结果偏小啊,很大的事务只用了几个kb?)
SELECT r.name rbs,
       nvl(s.username, 'None') oracle_user,
       s.osuser client_user,
       p.username unix_user,
       to_char(s.sid) || ',' || to_char(s.serial#) as sid_serial,
       p.spid unix_pid,
       -- TO_CHAR(s.logon_time, 'mm/dd/yy hh24:mi:ss') as login_time,
       -- TO_CHAR(sysdate - (s.last_call_et) / 86400,'mm/dd/yy  hh24:mi:ss') as last_txn,
       t.used_ublk * TO_NUMBER(x.value) / 1024 as undo_kb
  FROM v$process         p,
         v$rollname    r,
         v$session     s,
         v$transaction t,
         v$parameter   x
WHERE s.taddr = t.addr
   AND s.paddr = p.addr(+)
   AND r.usn = t.xidusn(+)
   AND x.name = 'db_block_size'
ORDER BY r.name;

--我们在操作数据库的时候,有时候会由于操作不当引起数据库表被锁定,这么我们经常不知所措,
--不知怎么给这些表解锁,在pl/sql Developer工具的的菜单“tools”里面的“sessions”可以查询现在存在的会话,
--但是我们很难找到那个会话被锁定了,想找到所以被锁的会话就更难了,下面这叫查询语句可以查询出所以被锁的会话。如下:

SELECT sn.username,
       m.SID,
       sn.SERIAL#,
       m.TYPE,
       DECODE(m.lmode,
              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(m.request,
              0,
              'None',
              1,
              'Null',
              2,
              'Row Share',
              3,
              'Row Excl.',
              4,
              'Share',
              5,
              'S/Row Excl.',
              6,
              'Exclusive',
              request,
              LTRIM(TO_CHAR(m.request, '990'))) request,
       m.id1,
       m.id2
  FROM v$session sn, v$lock m
WHERE (sn.SID = m.SID AND m.request != 0) --存在锁请求,即被阻塞
    OR (sn.SID = m.SID --不存在锁请求,但是锁定的对象被其他会话请求锁定
       AND m.request = 0 AND lmode != 4 AND
       (id1, id2) IN (SELECT s.id1, s.id2
                         FROM v$lock s
                        WHERE request != 0
                          AND s.id1 = m.id1
                          AND s.id2 = m.id2))
ORDER BY id1, id2, m.request;

--通过以上查询知道了sid和 SERIAL#就可以开杀了
alter system kill session 'sid,SERIAL#';

--===========================================

--创建表空间及添加数据文件

--1、创建表空间

create tablespace tablespacename datafile ‘ / u02 / oradata / $ORACLE_SID / datafilename’
  size128M autoextend on next 2048K maxsize2048M,
  ‘u02 / oradata / $ORACLE_SID / datafilename’ size128M
  autoextend on next 2048K maxsize2048M
  logging extent management local autoallocate segment space management auto flashback on;

--2、添加数据文件

alter tablespace tablespacename add datafile ‘u02 / oradata / $ORACLE_SID / datafilename’
  size128M autoextend on next 2048K maxsize2048M;
分享到:
评论

相关推荐

    ORACLE常用维护sql语句

    ORACLE常用维护sql语句ORACLE常用维护sql语句ORACLE常用维护sql语句ORACLE常用维护sql语句

    Oracle常用的SQL语句维护

    本文将深入探讨Oracle中常用的SQL语句以及与数据库表空间相关的维护知识。 首先,让我们了解如何在Oracle中创建表空间。表空间是Oracle数据库中存储数据的逻辑单位,它由一个或多个数据文件组成。创建表空间的SQL...

    ORACLE经典常用语句总结

    在IT领域,尤其是在数据库管理与开发中,Oracle作为一款广泛使用的数据库管理系统,其经典常用的SQL语句对于数据库管理员(DBA)以及开发人员而言至关重要。本文将深入解析Oracle中的关键SQL语句,涵盖表约束、索引...

    Oracle10G常用维护语句

    本文将详细介绍Oracle 10G中的一些常用维护语句,这些语句对于数据库管理员(DBA)来说是日常管理工作的基石。 1. **创建表空间** `CREATE TABLESPACE` 语句用于创建一个新的表空间,它是存储数据库对象(如表、...

    自己整理的Oracle常用高级语句.rar

    这里提供的"Oracle常用高级语句.rar"压缩包包含了多个与Oracle数据库相关的文档,涵盖了PL/SQL编程、函数应用、控制流以及数据库管理等多个方面。下面将详细解析这些文件中的关键知识点。 1. **PLSQL美化**: PL/...

    oracle常用经典语句

    一、Oracle常用经典语句 1. 数据查询:SQL(Structured Query Language)是与数据库交互的语言基础,包括SELECT语句用于数据查询。例如,查询所有员工的信息: ```sql SELECT * FROM employees; ``` 2. 数据插入:...

    Oracle维护常用SQL语句汇总

    根据提供的文件信息,我们可以归纳出一系列与Oracle数据库维护相关的SQL查询语句,这些语句主要用于监控和管理Oracle数据库系统的各个方面。接下来将详细解释每个查询语句的功能及其应用场景。 ### 1. 查询Oracle...

    Oracle数据库维护常用SQL语句集合

    进行Oracle数据库维护,掌握一些常用的SQL语句是必不可少的。本文将深入探讨Oracle数据库维护中的核心SQL语句,帮助你更好地管理和优化数据库。 1. **数据查询(SELECT语句)**:SELECT语句是SQL中最基本的语句,...

    Oracle维护常用SQL语句.pdf

    oracle维护常用SQL语句.pdf

    Oracle常用SQL查询语句

    根据提供的信息,我们可以总结出以下Oracle数据库中常用的SQL查询语句及它们的功能: ### 1. 查询表空间及其总大小 ...以上查询涵盖了Oracle数据库管理中常用的一些SQL语句,对于日常维护和性能调优非常有帮助。

    oracle常用的语句

    在Oracle中,熟练掌握常用SQL语句对于数据库的管理和维护至关重要。以下是一些关键的Oracle SQL语句及其用途: 1. **查看表空间状态**: 使用`DBA_DATA_FILES`和`DBA_FREE_SPACE`视图可以检查表空间的使用情况。...

    oracle常用sql语句

    ### Oracle常用SQL语句知识点详解 #### 一、概述 Oracle是全球领先的数据库管理系统之一,在企业级应用领域占据着重要地位。SQL(Structured Query Language)是用于管理关系型数据库的标准语言,也是与Oracle...

    oracle常用的维护语句

    以下是一些Oracle数据库维护中常用的SQL语句,涵盖了表空间监控、文件信息查询、数据库状态检查等多个方面: 1. **查看Oracle版本信息**: 使用`select * from v$version;`可以获取Oracle数据库的版本和构建信息,...

    Oracle维护常用SQL语句

    Oracle维护常用SQL语句,运维人员必备,由基本的ORACLE运维到复杂的问题解决

    oracle维护常用语句.txt

    oracle日常维护常用语句,如:表空间创建/密码设置不过期/用户解锁/无法导出空表设置/用户不区分大小写设置等

    Oracle数据库维护常用SQL语句集合(3)-PLSQL

    Oracle数据库维护常用SQL语句集合(3)-PLSQL

    oracle维护常用语句 数据库

    以下是一些Oracle数据库维护中常用的SQL语句和实用场景: 1. **判断Oracle数据库的安装平台**: ```sql select * from v$version; ``` `v$version` 视图提供了关于Oracle数据库实例的信息,包括操作系统和...

    oracle常用SQL语句

    ### Oracle常用SQL语句知识点详解 #### 一、基本操作 **标题与描述解析:** 给定的信息中提到了“oracle常用SQL语句”,这表明文档将涵盖Oracle数据库中的常用查询与管理命令。以下是对这些命令的具体分析。 **1....

    Oracle查询语句大全-精华版

    Oracle 查询语句大全是 Oracle 数据库管理系统中最基本也是最重要的组成部分,用于管理和维护数据库。本文将详细介绍 Oracle 查询语句的使用方法和实践操作。 一、创建用户和授权 在 Oracle 中,创建用户和授权是...

Global site tag (gtag.js) - Google Analytics