--查看静态空间--
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中创建表空间。表空间是Oracle数据库中存储数据的逻辑单位,它由一个或多个数据文件组成。创建表空间的SQL...
在IT领域,尤其是在数据库管理与开发中,Oracle作为一款广泛使用的数据库管理系统,其经典常用的SQL语句对于数据库管理员(DBA)以及开发人员而言至关重要。本文将深入解析Oracle中的关键SQL语句,涵盖表约束、索引...
本文将详细介绍Oracle 10G中的一些常用维护语句,这些语句对于数据库管理员(DBA)来说是日常管理工作的基石。 1. **创建表空间** `CREATE TABLESPACE` 语句用于创建一个新的表空间,它是存储数据库对象(如表、...
这里提供的"Oracle常用高级语句.rar"压缩包包含了多个与Oracle数据库相关的文档,涵盖了PL/SQL编程、函数应用、控制流以及数据库管理等多个方面。下面将详细解析这些文件中的关键知识点。 1. **PLSQL美化**: PL/...
一、Oracle常用经典语句 1. 数据查询:SQL(Structured Query Language)是与数据库交互的语言基础,包括SELECT语句用于数据查询。例如,查询所有员工的信息: ```sql SELECT * FROM employees; ``` 2. 数据插入:...
根据提供的文件信息,我们可以归纳出一系列与Oracle数据库维护相关的SQL查询语句,这些语句主要用于监控和管理Oracle数据库系统的各个方面。接下来将详细解释每个查询语句的功能及其应用场景。 ### 1. 查询Oracle...
进行Oracle数据库维护,掌握一些常用的SQL语句是必不可少的。本文将深入探讨Oracle数据库维护中的核心SQL语句,帮助你更好地管理和优化数据库。 1. **数据查询(SELECT语句)**:SELECT语句是SQL中最基本的语句,...
oracle维护常用SQL语句.pdf
根据提供的信息,我们可以总结出以下Oracle数据库中常用的SQL查询语句及它们的功能: ### 1. 查询表空间及其总大小 ...以上查询涵盖了Oracle数据库管理中常用的一些SQL语句,对于日常维护和性能调优非常有帮助。
在Oracle中,熟练掌握常用SQL语句对于数据库的管理和维护至关重要。以下是一些关键的Oracle SQL语句及其用途: 1. **查看表空间状态**: 使用`DBA_DATA_FILES`和`DBA_FREE_SPACE`视图可以检查表空间的使用情况。...
### Oracle常用SQL语句知识点详解 #### 一、概述 Oracle是全球领先的数据库管理系统之一,在企业级应用领域占据着重要地位。SQL(Structured Query Language)是用于管理关系型数据库的标准语言,也是与Oracle...
以下是一些Oracle数据库维护中常用的SQL语句,涵盖了表空间监控、文件信息查询、数据库状态检查等多个方面: 1. **查看Oracle版本信息**: 使用`select * from v$version;`可以获取Oracle数据库的版本和构建信息,...
Oracle维护常用SQL语句,运维人员必备,由基本的ORACLE运维到复杂的问题解决
oracle日常维护常用语句,如:表空间创建/密码设置不过期/用户解锁/无法导出空表设置/用户不区分大小写设置等
Oracle数据库维护常用SQL语句集合(3)-PLSQL
以下是一些Oracle数据库维护中常用的SQL语句和实用场景: 1. **判断Oracle数据库的安装平台**: ```sql select * from v$version; ``` `v$version` 视图提供了关于Oracle数据库实例的信息,包括操作系统和...
### Oracle常用SQL语句知识点详解 #### 一、基本操作 **标题与描述解析:** 给定的信息中提到了“oracle常用SQL语句”,这表明文档将涵盖Oracle数据库中的常用查询与管理命令。以下是对这些命令的具体分析。 **1....
Oracle 查询语句大全是 Oracle 数据库管理系统中最基本也是最重要的组成部分,用于管理和维护数据库。本文将详细介绍 Oracle 查询语句的使用方法和实践操作。 一、创建用户和授权 在 Oracle 中,创建用户和授权是...