ORACLE表空间操作实例
本文主要介绍oracle表空间常见的操作实例,包括创建、查询、增加、删除、修改。表空间和数据文件常用的数据字典和动态性能视图包括v$dbfile、v$datafile、v$tempfile、dba_segments、user_segments、dba_data_files、v$tablespace、dba_tablespaces、user_tablespaces。
创建表空间
1、创建数据表空间
CREATE TABLESPACE DATATBS DATAFILE '/opt/oracle/oradata/datatbs.dbf' SIZE 1024M; #默认扩张属性为off
CREATE TABLESPACE DATATBS DATAFILE '/opt/oracle/oradata/datatbs.dbf' SIZE 1024M AUTOEXTEND ON NEXT 64K MAXSIZE 3G; #设置表空间最大值
2、创建undo表空间
CREATE UNDO TABLESPACE undotbs DATAFILE '/opt/oracle/oradata/undotbs.dbf' SIZE 1024M;
3、创建临时表空间
CREATE TEMPORARY TABLESPACE TEMP TEMPFILE '/opt/oracle/oradata/temp.dbf' SIZE 1024M;
查询表空间
1、查询oracle系统用户的默认表空间和临时表空间
select default_tablespace,temporary_tablespace from dba_users where username = 'USER';
2、查看系统当前默认的数据表空间和临时表空间
select * from dba_properties where property_name like 'DEFAULT%' ; #查询
alter database default tablespace DATATBS2; #修改默认数据表空间
alter database default temporary tablespace TEMP2; #修改默认临时表空间
3、查看所有表空间、数据文件及表空间的数据文件
select * from v$datafile; #查看数据文件
select * from v$tempfile; #查看临时文件
select * from v$tablespace; #查询所有表空间
select file_name,tablespace_name from dba_data_files; #查看表空间对应的数据文件
select sum(d.bytes)/1024/1024/1024 ||'G' as total_bytes,d.tablespace_name from dba_datafiles d where d.tablespace_name = 'UNDOTBS' group by d.tablespace_name; #查看表空间文件大小
select bytes/1024/1024/1024 as "Size(G)",name from v$tempfile order by bytes; #查看临时文件大小
4、查看用户表占用空间大小
#USER_SEGMENTS
SELECT SEGMENT_NAME TABLE_NAME,SUM(BYTES)/(1024*1024) "TABLE_SIZE[MB]"
FROM USER_SEGMENTS
WHERE SEGMENT_TYPE='TABLE' AND SEGMENT_NAME='TABLE_NAME'
GROUP BY SEGMENT_NAME; #DBA_SEGMENTS,shell编程中常用
SEL
5、查询单张表占用空间大小
select segment_name,bytes from dba_segments where segment_name = 'TABLE_NAME' and owner = 'USER';
6、查询所有用户表占用空间的前十名
select * from (select segment_name,bytes from dba_segments where owner = 'USER' order by bytes desc ) where rownum <= 10;
7、查询表空间使用情况
select total.tablespace_name,
round(total.MB, 2) as Total_MB,
round(total.MB - free.MB, 2) as Used_MB,
round((1 - free.MB / total.MB) * 100, 2) || '%' as Used_Pct
from (select tablespace_name, sum(bytes) / 1024 / 1024 as MB
from dba_free_space
group by tablespace_name) free,
(select tablespace_name, sum(bytes) / 1024 / 1024 as MB
from dba_data_files
group by tablespace_name) total
where free.tablespace_name = total.tablespace_name;
8、查询表空间总大小
select tablespace_name, sum(bytes) / 1024 / 1024 as MB
from dba_data_files
group by tablespace_name;
9、查询表空间剩余大小
select tablespace_name,
count(*) as extends,
round(sum(bytes) / 1024 / 1024, 2) as MB,
sum(blocks) as blocks
from dba_free_space
group by tablespace_name;
10、查看临时表空间使用情况
SELECT temp_used.tablespace_name,
total - used as "Free",
total as "Total",
round(nvl(total - used, 0) * 100 / total, 3) "Free percent"
FROM (SELECT tablespace_name, SUM(bytes_used) / 1024 / 1024 used
FROM GV_$TEMP_SPACE_HEADER
GROUP BY tablespace_name) temp_used,
(SELECT tablespace_name, SUM(bytes) / 1024 / 1024 total
FROM dba_temp_files
GROUP BY tablespace_name) temp_total
WHERE temp_used.tablespace_name = temp_total.tablespace_name;
11、查看当前临时表空间使用大小与正在占用临时表空间的sql
select sess.SID, segtype, blocks * 8 / 1000 "MB", sql_text
from v$sort_usage sort, v$session sess, v$sql sql
where sort.SESSION_ADDR = sess.SADDR
and sql.ADDRESS = sess.SQL_ADDRESS
order by blocks desc;
修改表空间状态
SELECT TABLESPACE_NAME,BLOCK_SIEZE,STATUS FROM DBA_TABLESPACE; #查看表空间状态
SLEECT NAME,BLOKC_SIZE,STATUS FROM V$DATAFILE; #查看数据文件状态
ALTER TABLESPACE DATATBS OFFLINE; #使表空间脱机
ALTER TABLESPACE DATATBS OFFLINE FOR RECOVER; #如果是意外删除了数据文件,则必须带有RECOVER选项
ALTER TABLESPACE DATATBS ONLINE; #使表空间联机
ALTER DATABASE DATAFILE 3 OFFLINE; #使数据文件脱机
ALTER DATABASE DATAFILE 3 ONLINE; #使数据文件联机
ALTER TABLESPACE DATATBS READ WRITE; #使表空间可读写
扩展表空间
SQL> alter tablespace tablespacename add datafile '/home/oracle/add_tablespacename.dbf' size 1024M; #增加数据文件方式,不允许自动增长
SQL> alter tablespace tablespacename add datafile '/home/oracle/add_tablespacename.dbf' size 1024M autoextend on next 5M maxsize 2048M; #增加数据文件方式且允许自动增长
SQL> alter database datafile '/home/oracle/tablespace.dbf' autoextend on next 5M maxsize 2048M; #允许已存在的数据文件自动扩展
SQL> alter database datafile '/home/oracle/tablespace.dbf' resize 2048M; # 改变当前数据文件大小 #调整临时表空间文件
SQL> alter tablespace temp add tempfile '/home/oracle/temp2.dbf' size 2048M; #扩展临时表空间大小,默认autoextend off
SQL> alter tablespace temp add tempfile '/home/oracle/temp2.dbf' size 1024M antoextend on next 128M maxsize 2048M; #扩展临时表空间大小
SQL> alter database tempfile '/home/oracle/temp.dbf' resize 2048M;
删除表空间
DROP TABLESPACE DATATBS INCLUDING CONTENTS AND DATAFILES;
说明:including contents 字句用来删除段,and datafiles 字句用来删除数据文件,cascade constraints 字句用来删除所有的引用完整性约束
相关实例
1、移动表空间数据文件
SQL> select tablespace_name,file_name,online_status from dba_data_files where tablespace_name='DATATBS';
SQL> alter tablespace datatbs offline;
SQL> host move /opt/oracle/oradata/datatbs.dbf /home/oracle/datatbs.dbf;
SQL> alter tablespace datatbs rename datafile '/opt/oracle/oradata/datatbs.dbf' to '/home/oracle/datatbs.dbf';
SQL> alter tablespace datatbs online;
说明:该方法也适用于SYSAUX表空间。对于系统表空间(SYSTEM)和TEMP表空间需要先将关闭实例再将实例启动到mount状态再执行上述步骤。
适用场景:oracle当前数据文件所在的文件系统空间不足的情况,将数据文件移动到其他文件系统。
2、重建undo表空间
create undo tablespace undotbs2 datafile '/home/oracle/oradata/undotbs2.dbf' size 1024M; #创建新的回滚表空间
alter system set undo_tablespace='undotbs2'; #修改使用新建的回滚表空间
alter tablespace undotbs1 offline; #先offline旧的回滚表空间udotbs1
drop tablespace undotbs1 including contents and datafiles;#删除旧的undo表空间
3、重建temp表空间
#创建临时表空间TEMP1
CREATE TEMPOARY TABLESPACE TEMP1 TEMPFILE '/home/oracle/oradata/TEMP1.dbf' SIZE 256M;
ALTER DATABASE DEFAULT TEMPORARY TABLESPACE TEMP1;
ALTER DATABASE TEMPFILE '/home/oracle/oradata/TEMP.dbf' OFFLINE;
DROP TABLESPACE TEMP INCLUDING CONTENTS AND DATAFILES; #建TEMP表空间并修改
CREATE TEMPOARY TABLESPACE TEMP TEMPFILE '/home/oracle/oradata/TEMP.dbf' SIZE 1024M;
ALTER DATABASE DEFAULT TEMPORARY TABLESPACE TEMP;
ALTER DATABASE TEMPFILE '/home/oracle/oradata/TEMP1.dbf' OFFLINE;
DROP TABLESPACE TEMP1 INCLUDING CONTENTS AND DATAFILES;
ORACLE表空间操作实例的更多相关文章
- Oracle重建表空间操作实例
由于环境维护或者性能测试需要,经常需要对表空间进行重建操作.重建表空间操作主要分3中情况介绍,分别是业务表空间.临时表空间和回滚段表空间的重建. 重建业务表空间 由于业务规划要求,重建后的业务表空间名 ...
- oracle表空间操作语句
1.查看所有表空间及表空间大小: select tablespace_name ,sum(bytes) / 1024 / 1024 as MB from dba_data_files group by ...
- Oracle表空间操作
-- 查看表空间 SELECT tablespace_name, file_id, file_name, ), )||'M' total_space FROM dba_data_files ORDER ...
- Oracle 表空间操作
-- 查询已有表空间 SELECT TABLE_SPACENAME FROM DBA_TABLESPACES; -- 创建表空间 CREATE TABLESPACE SPACE DATAFILE ‘E ...
- Oracle 表空间常用操作
aliases: [Oracle表空间] tags: [数据库,Oracle,Blog] summary: [Oracle表空间常用操作,包括查询.分析.扩容.删除.优化等] date: ...
- Oracle表空间管理
oracle表空间相关常用命令小结: 1.ALTER DATABASE SET DEFAULT BIGFILE TABLESPACE; //修改表空间数据文件类型 2.ALT ...
- oracle 表空间tablespace
一.Oracle 表空间的组成 Everoone knows Oracle数据库真正存放数据的是数据文件,Oracle表空间是逻辑上的概念,他在物理上是并不存在的,把多个DataFile合并到一起就是 ...
- 查看oracle表空间内存
查看oracle表空间内存 SELECT a.tablespace_name "表空间名", total "表空间大小", free "表空间剩余大小 ...
- Oracle表空间概述及其基本管理
最近在工作中遇到有同事对Oracle表空间的理解有问题,所以写了这篇文章.我会从概念,管理及特别需要关注的点等几个维度对表空间进行一些介绍.本文以介绍表空间为主,涉及到的其他概念不展开描述.有问题的地 ...
随机推荐
- [VS工具]远程在IIS附加调试代码
1.首先在服务器以管理员的方式打开msvsmon.exe(一般这个文件路径:C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\ID ...
- Ubuntu 16.04.3 LTS 部署 Cloud Torrent
下载安装程序 apt install -y curl sudo curl https://i.jpillora.com/cloud-torrent! | bash 写配置文件 sudo vim /et ...
- MPEG-1视屏压缩标准
MPEG-1标准包括5个部分 图像的四种类型: I帧: B帧:双向帧间预测 P帧: D帧:只含有16分量,为快放设计 压缩前需要帧重排 视屏码流结构 I帧压缩 p帧压缩 b帧压缩 其他压缩算法 MPE ...
- Ambari集群的搭建(离线安装)
我们先克隆几台机器 我们打开克隆出来的机器 我们先把主机名修改一下 我们把主机名改成am2 下一步我们来配置网卡 把原来的eth0的注释掉,把现在的eth1改成eth0,同时把mac地址记下来 保存退 ...
- 高德地图打包后不能使用,高德导航View不显示,高德地图导航组件黑屏的问题;
在现在的APP中地图真的很常见,我们在去使用是一般都会选择一些三方的API,像百度.高德等等... 在集成的过程中,难免会遇到一些问题,大部分问题我们仔细的阅读开发文档都能解决的:但是!!!问题出现后 ...
- day25类的组合多态封装
类的组合多态与封装类的组合 1. 什么是组合 组合指的是某一个对象拥有一个属性,该属性的值是另外一个类的对象 2. 为何要用组合 通过为某一个对象添加属性(属性的值是另外一个类的对象)的方式,可以 ...
- 2012年第三届蓝桥杯Java本科组省赛试题解析
题目地址:https://wenku.baidu.com/view/326f7b4be518964bcf847c96.html?rec_flag=default => 百度文档 题目及解析 ...
- 【Selenium-WebDriver问题点】chromeDriver和chrome浏览器版本之间的兼容性问题
今天早晨因为测试需求,将chrome浏览器更新到最新的65版本,结果之前用的chromeDriver测试计划,都跑不通过了, 所以就在网上找了下,mark下. 最新的chromedriver与chro ...
- sql语句创建数据库和表
sql代码 -- 新建数据库 create database 数据库名称 on primary ( name='xx', filename='E:\xx.mdf', --文件地址 size=20MB, ...
- mysql5.7-windows安装配置
sonar要求mysql5.6版本以上,所以安装一下最新的mysql5.7 采用相对名路径和命令行启动,这样是为了方便迁移.也提供了加入服务的指令,但没有进行测试 解压mysql的zip压缩包 解压后 ...