查看Oracle数据库表空间大小,是否需要增加表空间的数据文件
oracle表空间扩容详情
oracle表空间扩容详情⽬录1、表空间容量指标查询2、表空间扩容⽅式1:⼿⼯改变已存在数据⽂件的⼤⼩⽅式2:允许已存在的数据⽂件⾃动增长⽅式3:增加数据⽂件1、表空间容量指标查询SELECT TABLESPACE_NAME "表空间",To_char(Round(BYTES / 1024, 2), '99990.00')|| '' "实有",To_char(Round(FREE / 1024, 2), '99990.00')|| 'G' "现有",To_char(Round(( BYTES - FREE ) / 1024, 2), '99990.00')|| 'G' "使⽤",To_char(Round(10000 * USED / BYTES) / 100, '99990.00')|| '%' "⽐例"FROM (SELECT A.TABLESPACE_NAME TABLESPACE_NAME,Floor(A.BYTES / ( 1024 * 1024 )) BYTES,Floor(B.FREE / ( 1024 * 1024 )) FREE,Floor(( A.BYTES - B.FREE ) / ( 1024 * 1024 )) USEDFROM (SELECT TABLESPACE_NAME TABLESPACE_NAME,Sum(BYTES) BYTESFROM DBA_DATA_FILESGROUP BY TABLESPACE_NAME) A,(SELECT TABLESPACE_NAME TABLESPACE_NAME,Sum(BYTES) FREEFROM DBA_FREE_SPACEGROUP BY TABLESPACE_NAME) BWHERE A.TABLESPACE_NAME = B.TABLESPACE_NAME)--WHERE TABLESPACE_NAME LIKE 'CDR%' --这⼀句⽤于指定表空间名称ORDER BY Floor(10000 * USED / BYTES) DESC;查找数据⽂件指标及路径select b.file_id ⽂件ID, b.tablespace_name 表空间, b.file_name 物理⽂件名, b.bytes 总字节数, (b.bytes-sum(nvl(a.bytes,0))) 已使⽤, sum(nvl(a.bytes,0)) 剩余, sum(nvl(a.bytes,0))/(b.bytes)*100 剩余百分⽐ 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.file_id,b.bytes order by b.tablespace_name2、表空间扩容⼀个数据⽂件最⼤只能32G;⽅式1:⼿⼯改变已存在数据⽂件的⼤⼩ALTER TABLESPACE app_data ADD DATAFILE'D:\ORACLE\PRODUCT\10.2.0\ORADATA\EDWTEST\APP03.DBF' SIZE 20480M;⽅式2:允许已存在的数据⽂件⾃动增长ALTER DATABASE DATAFILE 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\EDWTEST\APP03.DBF' AUTOEXTEND ON NEXT 100M MAXSIZE 20480M;⽅式3:增加数据⽂件其中设置的每个⽂件初始分配空间为7g, autoextend on为⾃动增长⼤⼩,oracle单个⽂件⼤⼩最⼤不超过32g.sql脚本如下:(我这⾥增加两个数据⽂件,需要扩容的表空间是system)ALTER TABLESPACE SYSTEM ADD DATAFILE'C:\APP\ORACLE\ORADATA\DFYYCDB\DATAFILE\O2_MF_SYSTEM_CWMNZ9XV_.DBF'size 7167M autoextend on ;ALTER TABLESPACE SYSTEM ADD DATAFILE'C:\APP\ORACLE\ORADATA\DFYYCDB\DATAFILE\O3_MF_SYSTEM_CWMNZ9XV_.DBF'size 7167M autoextend on ;到此这篇关于oracle表空间扩容详情的⽂章就介绍到这了,更多相关oracle表空间扩容内容请搜索以前的⽂章或继续浏览下⾯的相关⽂章希望⼤家以后多多⽀持!。
oracle数据库表空间扩容方法
一、概述数据库管理是企业信息系统中极为重要的一环,而Oracle数据库作为业界优秀的关系型数据库管理系统,通常被广泛应用于企业级应用中。
在数据库管理中,表空间是一个很重要的概念,它用于管理数据库中的数据存储。
随着数据量的增加,表空间可能会出现空间不足的情况,因此扩容表空间变得至关重要。
本文将介绍几种扩容Oracle数据库表空间的方法。
二、从数据文件角度扩容表空间1. 增加数据文件当表空间中的数据文件即将满的时候,可以通过增加数据文件的方式来扩容表空间。
具体操作步骤如下:1) 在Oracle数据库中使用“alter tablespace 表空间名 add datafile 新数据文件名 size 新数据文件大小”命令来增加数据文件;2) 通过以上操作,可以为表空间增加数据文件,并使表空间的空间得到扩容。
2. 自动扩展在表空间创建的时候,可以选择启用自动扩展功能。
当表空间中的数据文件空间不足时,可以自动扩展表空间的空间大小。
具体操作步骤如下:1) 在创建表空间的时候,使用“autoextend on”选项来启用自动扩展功能;2) 当表空间中的数据文件空间不足时,系统会自动扩展表空间的空间大小。
三、从段角度扩容表空间1. 移动段移动段是一种有效的扩容表空间的方法。
通过移动段,可以将表或索引从原有的表空间移动到具有足够空间的表空间中,从而实现表空间的扩容。
具体操作步骤如下:1) 使用“alter table 表名 move tablespace 新表空间名”命令来将表移动到新的表空间;2) 使用“alter index 索引名 rebuild tablespace 新表空间名”命令来将索引移动到新的表空间。
2. 压缩段通过压缩段的方式,可以释放表空间中的空闲空间,从而实现表空间的扩容。
具体操作步骤如下:1) 使用“alter table 表名enable row movement”命令来启用行移动功能;2) 使用“alter table 表名shrink spacepact”命令来压缩表,释放表空间中的空闲空间。
Oracle中查询当前数据库中的所有表空间和对应的数据文件语句命令
Oracle中查询当前数据库中的所有表空间和对应的数据⽂件语句命令Oracle中查询当前数据库中的所有表空间和对应的数据⽂件语句命令-----------------------------------------------------------------------------------------1、在cmd中输⼊sqlplus,弹出命令⾏窗体2、输⼊⼝令和密码3、SQL>col file_name for a60;4、SQL>set linesize 160;5、SQL>select file_name,tablespace_name,bytes from dba_data_files;---------------------------------------------------------------------------------------------同样的可以从dba_temp_files数据字典中查询临时表空间的信息SQL>select tablespace_name,file_name from dba_temp_files;----------------------------------------------------------------------------------------------删除Oracle表空间与表空间⽂件语句如下:SQL>drop tablespace 表空间名称 including contents and datafiles ;⽰例:--删除Oracle表空间和⽂件的语句命令drop tablespace 表空间名称 including contents and datafiles cascade constraints;--including contents 删除表空间中的内容--datafiles 删除表空间中的数据⽂件--cascade constraints 删除所有与表空间数据有关的级联,如主外键等----------------------------------------------------------------------------------------------。
oracle10g数据库的表空间查看和修改
oracle数据库表空间大小的查看、修改1、通过oracle客户端连接到oracle数据库a)安装好oracle客户端后,通过net manager工具配置本地net服务名,依次点击开始,程序,Oracle - OraClient10g_home1,配置和移植工具,Net Manager。
b)进入Net Manager配置窗口。
c)依次点击本地,服务命名。
d)可以看到左侧的号变成绿色,此时可以点击该,弹出net服务名的配置窗口e)这里的网络服务名是指的oracle客户端所在机器的本地服务名,随便设置个名字,例如sbzw,点击下一步。
f)默认设置,点击下一步。
g)在主机名后的输入框中输入oracle数据库所在的服务器的ip地址,例如:,点击下一步。
h)在服务名后的输入框中输入oracle数据库的全局服务名,例如tjsb,点击下一步。
i)此处不要点击完成,先点击测试查看连接是否正常。
j)在连接测试窗口中显示的应该是测试没有成功,此时请点击更改登录。
k)修改了用户名和密码后,点击确定,然后再次点击“测试”,提示连接成功后,关闭连接测试窗口,点击完成,至此本地net服务名配置完成。
2、通过oracle客户端的企业管理器修改数据库的表空间大小a)依次点击开始,程序,Oracle - OraClient10g_home1,EnterpriseManager Console(企业管理器)。
b)进入了oracle的企业管理器c)依次点击数据库,sbzw,弹出登录窗口,d)对于修改表空间而言,这里的用户名必须是sys用户,连接身份为SYSDBA。
e)输入完成后,点击确定,可以看到左侧sbzw的菜单已经打开。
f)依次选择存储,表空间,则页面左侧会显示当前的表空间的使用情况。
g)对于需要增大的表空间,双击该表空间,例如这里的TS_FZ4_DATA,弹出该表空间的编辑窗口。
h)对于表空间的修改,有两种办法:i.一种是直接修改单个数据文件的大小值,也就是直接修改上图中的大小里面的数值,单位是MB,修改完成后点击确定即可。
Oracle 添加表空间数据文件
Oracle 添加表空间数据文件
在创建表空间时,通常会预先估计表空间所需的存储空间大小,然后为它建立若干适当大小的数据文件。
如果在使用过程中发现表空间存储空间不足,可以再为它添加新的数据文件,以增加表空间的总存储空间。
要为普通表空间添加新的数据文件,可以使用ALTER TABLESPACE …ADD DA TAFILE语句,执行该语句的用户必须具有ALTER TABLESPACE系统权限。
例如,下面的语句为表空间USER03添加一个大小为10MB的数据文件:
SQL> alter tablespace user03
2 add datafile 'd:\oracledata\user03_02.dbf' size 10m;
表空间已更改。
例如,下面的语句为临时表空间TEMP03添加一个新的临时文件:
SQL> alter tablespace temp01
2 add tempfile 'd:\oracledata\temp01_02.dbf' size 10m reuse;
表空间已更改。
在添加新的数据文件时,如是同名的操作系统文件已经存在,ALTER TABLESPACE语句将失败。
如果要覆盖同名的操作系统文件,则必须在ALTER TABLESPACE语句中显式地指定REUSE子句。
如何查看ORACLE空间占用问题
1、查看ORACLE表空间及表数据大小Select Segment_Name,Sum(bytes)/1024/1024 From User_Extents group By Segment_Name order by Sum(bytes)/1024/1024 desc;2、从返回的结果看,有一个segment名为"SYS_LOB0000053810C00004$$"的对象占用了大量的空间;即LOB(BLOB和CLOB)对象占用的大小对象3、根据segment_name,就可以从dba_lobs 表里查到是哪个表,哪个字段;select * from dba_lobs where segment_name like 'your_segment_name';里面显示的TABLE_NAME和COLUMN_NAME为表名和字段名。
set pagesize 200column "数据文件名称" format a25column "表空间名称" format a18column "容量(M)" format a12column "使用率%" format a12column "最大容量(M)" format a15column "可扩充容量(M)" format a15column "空闲(M)" format a12column "自动扩展" format a10select a.FILE_NAME "数据文件名称",a.TABLESPACE_NAME"表空间名称",to_char(100-round((nvl(b.free_bytes,0)/a.BYTES)*100,2)) "使用率%", to_char(round(a.BYTES/1024/1024,2)) "容量(M)",to_char(round(nvl(b.free_bytes,0)/1024/1024,2)) "空闲(M)",to_char(round(decode(a.autoextensible,'YES',a.maxbytes/1024/1024,'NO' ,a.bytes/1024/1024),2)) "最大容量(M)",a.autoextensible "自动扩展",to_char(round(decode(a.autoextensible,'YES',a.maxbytes/1024/1024,'NO' ,a.bytes/1024/1024)-a.BYTES/1024/1024,2)) "可扩充容量(M)"from dba_data_files a,(select FILE_ID,sum(bytes) free_bytes from dba_free_space groupby FILE_ID) bwhere a.FILE_ID=b.FILE_IDorderby to_number("可扩充容量(M)") asc;。
oracle数据库表空间扩容步骤
oracle数据库表空间扩容步骤扩容Oracle数据库表空间的步骤如下:1. 检查表空间的当前使用情况:使用以下查询语句可以查看表空间的当前使用情况。
```SELECTtablespace_name,round((1 - (sum(bytes) / (maxbytes))) * 100, 2)"Used_percentage"FROMdba_data_filesGROUP BYtablespace_name,maxbytes;```2. 确定需要扩容的表空间:根据查询结果,确定需要扩容的表空间。
3. 确定扩容的方式:有两种扩容方式,分别是自动扩容和手动扩容。
- 自动扩容:在表空间的数据文件达到其最大容量时,Oracle 会自动增加数据文件的大小。
如果使用自动扩容方式,需要确认表空间的自动扩容设置是否已开启。
- 手动扩容:手动扩容需要手动添加一个新的数据文件到表空间中。
4. 自动扩容:如果使用自动扩容方式,可以通过以下命令检查自动扩容设置是否已开启。
```SELECTautoextensibleFROMdba_data_filesWHEREtablespace_name = '<表空间名称>';```如果自动扩容设置为“YES”,则表示已开启自动扩容。
如果自动扩容设置为“NO”,则需要使用手动扩容方式。
5. 手动扩容:如果使用手动扩容方式,可以通过以下命令向表空间添加一个新的数据文件。
```ALTER TABLESPACE <表空间名称> ADD DATAFILE '<数据文件路径>' SIZE <新数据文件大小>;```其中,<表空间名称>是需要扩容的表空间的名称,<数据文件路径>是新的数据文件的路径,<新数据文件大小>是新的数据文件的大小。
6. 检查扩容结果:可以使用之前的查询语句再次检查表空间的使用情况,确认扩容是否成功。
查看Oracle数据库表空间大小的方法
INITIALEXTENT
NEXTEXTENT
MAX_EXTENTS
CUREXTENT
1
SYSTEM
SYSTEM
ONLINE
112
56
32765
1
2
_SYSSMU1$
UNDOTBS1
ONLINE
128
64
32765
4
3
查看Oracle数据库表空间大小的方法
2013-07-30 00:58:06| 分类: Oracle数据库 | 标签:表空间 oracle |举报|字号 订阅
1.查看所表空间大小
SQL>select tablespace_name,sum(bytes)/1024/1024 from dba_data_files
MEMBER
-------------------------------------------
/zxindata/oracle/data/redolog/redo01.dbf
/zxindata/oracle/data/redolog/redo02.dbf
/zxindata/oracle/data/redolog/redo03.dbf
FILE_ID
FILE_NAME
TABLESPACE_NAME
AUTOEXTENSIBLE
INCREMENT_BY
1
9
/zxindata/oracle/data/zxuma2_data
ZXUMA2_DATA
YES
16384
2
8
/zxindata/oracle/data/zxdbp_156
Oracle查询表空间大小及使用情况
Oracle查询表空间大小及使用情况查询表空间大小SELECT a.tablespace_name "表空间名",B.file_name "文件路径",total / (1024 * 1024) "表空间大小(M)",free / (1024 * 1024) "表空间剩余大小(M)",(total - free) / (1024 * 1024) "表空间使用大小(M)",round((total - free) / total, 4) * 100 "使用率%",CASE WHEN (total - free) / total*100>=99 THEN '严重不足'WHEN (total - free) / total*100>=95 AND (total - free) / total*100<99 THEN '空间不足'WHEN (total - free) / total*100<95 THEN '空间充足'ELSE NULL END "说明"FROM (SELECT FILE_ID,tablespace_name, SUM(bytes) freeFROM dba_free_spaceGROUP BY FILE_ID,tablespace_name) a,(SELECT FILE_ID,FILE_NAME,tablespace_name, SUM(bytes) totalFROM dba_data_filesGROUP BY FILE_ID,FILE_NAME,tablespace_name) bWHERE a.FILE_ID=B.FILE_IDORDER BY 表空间名,A.file_ID修改表空间大小alter database datafile '表空间路径' resize 表空间大小例:alter database datafile 'E:/ORADATA/TJXT/TEST_DATA02.DBF' resize 30000M增加表空间alter tablespace表空间名add datafile '表空间路径' size 表空间初始大小autoextend on next 自增大小maxsize 最大表空间大小例:alter tablespace TEST_DATA add datafile'E:/ORADATA/TJXT/TEST_DATA02.DBF' size 1000m autoextend on next 100m maxsize 4000MOracle单个表空间文件最大为32G。
oracle管理表空间和数据文件
oracle管理表空间和数据文件oracle 管理表空间和数据文件介绍ν表空间是数据库的逻辑组成部分。
从物理上讲,数据库数据存放在数据文件中;从逻辑上讲,数据库则是存放在表空间中,表空间由一个或多个数据文件组成。
数据库的逻辑结构介绍νoracle 中逻辑结构包括表空间、段、区和块。
说明一下数据库由表空间构成,而表空间又是由段构成,而段又是由区构成,而区又是由oracle块构成的这样的一种结构,可以提高数据库的效率。
为了让大家明白,我们画图说明逻辑关系:看图:表空间介绍ν表空间用于从逻辑上组织数据库的数据。
数据库逻辑上是由一个或是多个表空间组成的。
通过表空间可以达到以下作用:1. 控制数据库占用的磁盘空间2. dba 可以将不同数据类型部署到不同的位置,这样利于提高i/o 性能,同时利于备份和恢复等管理操作。
(可以把索引,触发器单独放一个表空间中)。
建立表空间ν建立表空间是使用crate tablespace 命令完成的,需要注意的是,一般情况下,建立表空间是特权用户或是dba 来执行的,如果用其它用户来创建表空间,则用户必须要具create tablespace 的系统权限。
建立数据表空间ν在建立数据库后,为便于管理表,最好建立自己的表空间create tablespace data01 datafile 'd:\test\dada01.dbf' size 20m uniform size 128k ;说明:执行完上述命令后,会建立名称为data01 的表空间,并为该表空间建立名称为data01.dbf 的数据文件,区的大小为128kν 使用数据表空间(把表关联到表空间,如果没指定表空间,则默认在sys表空间里)create table mypart(deptno number(4), dname varchar2(14), locvarchar2(13)) tablespace data01;改变表空间的状态ν当建立表空间时,表空间处于联机的(online)状态,此时该表空间是可以访问的,并且该表空间是可以读写的,即可以查询该表空间的数据,而且还可以在表空间执行各种语句。
ORACLE扩表空间的方法
ORACLE扩表空间的方法oracle扩展表空间的常用方法监视表空间的使用是DBA的日常任务之一。
Oracle扩展表空间非常简单。
通常,有两种方法可以扩展数据文件的大小或添加新的数据文件。
例子如下。
首先,我们需要获取表空间的数据文件信息:selectfile_name,file_id,tablespace_name,bytes/1024/1024fromdba_data_filesorder byfile_name根据文件ID扩展数据文件的大小:alter database datafile12resize 13312m;要注意的是,如果使用裸设备,一般要先查看lv是否足够,否则以上扩展命令可能出错,查看方式如下:查看vg信息:Erpdb1@/home/Oracle>lsvgootvgoraclevg查看VG的Lv:erpdb1@/home/oracle>lsvg-loraclevgoraclevg:LVNAMETYPELPSPPVSLVSTATEMOUNTPOINTdb_oravoteraw111closed/syncdn/adb_oraocrraw111closed/syncdn/adb_systemraw331op en/syncdn/adb_sysauxraw551open/syncdn/adb_undotbs1raw331open/syncdn/adb_undotb s2raw331open/syncdn/adb_tempraw46461closed/syncdn/adb_erp_ht2raw56561open/sync dn/adb_erp2raw72721open/syncdn/a查看vg的详细信息:erpdb1@/home/oracle>lsvgoraclevgvolumegroup:oraclevgvg标识符:00c65fbf00004c000000011697e0f5f9vgstate:activeppsize:256megabyte(s)vgpermission:read/writetotalpps:2328(5968MB)maxlvs:512freepps:1146(293376megabytes)lvs:57usedpps:1182(302592megabytes)openlvs:39quorum:5totalpvs:8vgdescriptors:8stalepvs:0stalepps:0activepvs:8auto on:noconcurrent:enhanced-capableauto-concurrent:disabledvgmode:并发nodeid:1activenodes:maxppspervg:130048maxpsperpv:1016maxpvs:128ltgsize(动态):1024字节自动同步:nohospare:nobbpolicy:可重新定位这里可见还有1146个可用的pp,根据ppsize能计算出vg的容量。
Oracle表空间操作详解
Oracle表空间操作详解1.创建表空间:createtablespace<tablespace_name>datafile '<filepath>' size <filesize>autoextend on next <autosize>maxsize<maxsize [unlimited]>eg:createtablespace sales datafile 'c:\1.txt' size 10m autoextend on next 1m maxsize 100m2.为表空间增加数据文件:altertablespace<tablespace_name> add datafile 'filepath' size <filesize>autoextend on next <autosize>maxsizefilemaxsize[unlimited];eg:altertablespace sales datafile 'c:\2.txt' size 10m autoextend on next 1m maxsize unlimited3.调整表空间:alter database datafile 'filepath' resize <filesize>;--重置表空间的大小eg:alter database datafile 'c:\2.txt' resize 10m在实际使用中我们经常会遇到oracle某个表空间占用了大量的空间而其中的数据量却只占用了少量空间,此时我们可以用ALTER DATABASE DATAFILE '***.dbf' RESIZE nnM的命令来收缩表空间,但在收缩的过程中会遇到ora-03297错误,表示在所定义的空间之后有数据存在,不能收缩,此时的解决办法有:(1). 先估算该表空间内各个数据文件的空间使用情况:SQL>select file#,name from v$datafile;SQL>select max(block_id) from dba_extents where file_id=11;MAX(BLOCK_ID)-------------13657SQL>show parameter db_block_sizeNAME TYPE VALUE----------------------------- ------- ----------- db_block_size integer 8192SQL>select 13657*8/1024 from dual;13657*8/1024-----------106.695313这说明该文件中最大使用块位于106M与107M之间,SQL> alter database datafile '/ora_data/cninsite/insitedev02.dbf' resize 100M;alter database datafile '/ora_data/cninsite/insitedev02.dbf' resize 100M*ERROR at line 1:ORA-03297: file contains used data beyond requested RESIZE valueSQL> alter database datafile '/ora_data/cninsite/insitedev02.dbf' resize 107M; Database altered.(2).如果某些表占用了数据文件的最后一些块,则需要先将该表导出或移动到其他的表空间中,然后删除表,再进行收缩。
查询ORACLE表空间和数据文件信息
查询ORACLE表空间和数据⽂件信息表空间是oracle数据库中最⼤的逻辑单位与存储空间单位,数据库系统通过表空间为数据库对象分配空间。
表空间在物理上体现为磁盘数据⽂件,每⼀个表空间由⼀个或多个数据⽂件组成,⼀个数据⽂件只可与⼀个表空间相联系,这是逻辑与物理的统⼀。
了解表空间和数据⽂件的的属性及使⽤率,是数据库管理员的⼀项重要职责。
下⾯以oracle9i为例,详细介绍查询Oracle数据库表空间信息和数据⽂件信息的⽅法。
⼀、查看Oracle数据库中表空间信息的⽅法1、查看Oracle数据库中表空间信息的⼯具⽅法:使⽤oracle enterprise manager console⼯具,这是oracle的客户端⼯具,当安装oracle服务器或客户端时会⾃动安装此⼯具,在windows操作系统上完成oracle安装后,通过下⾯的⽅法登录该⼯具:开始菜单——程序——Oracle-OraHome92——Enterprise Manager Console(单击)——oracle enterprise manager console登录——选择‘独⽴启动’单选框——‘确定’ —— ‘oracle enterprise manager console,独⽴’ ——选择要登录的‘实例名’ ——弹出‘数据库连接信息’ ——输⼊’⽤户名/⼝令’ (⼀般使⽤sys⽤户),’连接⾝份’选择选择SYSDBA——‘确定’,这时已经成功登录该⼯具,选择‘存储’ ——表空间,会看到如下的界⾯,该界⾯显⽰了表空间名称,表空间类型,区管理类型,以”兆”为单位的表空间⼤⼩,已使⽤的表空间⼤⼩及表空间利⽤率。
图1 表空间⼤⼩及使⽤率2、查看Oracle数据库中表空间信息的命令⽅法:通过查询数据库系统中的数据字典表(data dictionary tables)获取表空间的相关信息,⾸先使⽤客户端⼯具连接到数据库,这些⼯具可以是SQLPLUS字符⼯具、TOAD、PL/SQL等,连接到数据库后执⾏如下的查询语句:selecta.a1 表空间名称,c.c2 类型,c.c3 区管理,b.b2/1024/1024 表空间⼤⼩M,(b.b2-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 bytablespace_name) a,(select tablespace_name b1,sum(bytes) b2 from dba_data_files group bytablespace_name) b,(select tablespace_name c1,contents c2,extent_management c3 fromdba_tablespaces) cwhere a.a1=b.b1 and c.c1=b.b1;该语句通过查询dba_free_space,dba_data_files,dba_tablespaces这三个数据字典表,得到了表空间名称,表空间类型,区管理类型,以”兆”为单位的表空间⼤⼩,已使⽤的表空间⼤⼩及表空间利⽤率。
Oracle表空间查询方法.sql
查询oracle表空间需要用dba用户进行查询:1、先查询空闲空间select tablespace_name,file_id,block_id,bytes,blocks from dba_free_space;2、增加Oracle表空间先查询数据文件名称、大小和路径的信息,语句如下:select tablespace_name,file_id,bytes,file_name from dba_data_files;3、修改文件大小语句如下alter database datafile '需要增加的数据文件路径,即上面查询出来的路径'resize 800M; 4、创建Oracle表空间create tablespace test datafile '/home/app/oracle/oradata/oracle8i/test01.dbf' size 8M autoextend on next 5M maxsize 10M;create tablespace sales datafile '/home/app/oracle/oradata/oracle8i/sales01.dbf' size 800M autoextend on next 50M maxsize unlimited ;-- maxsize unlimited 是大小不受限制create tablespace sales datafile '/home/app/oracle/oradata/oracle8i/sales01.dbf' size 800M autoextend on next 50M maxsize 1000M extent management local uniform; --unform表示区的大小相同,默认为1Mcreate tablespace sales datafile '/home/app/oracle/oradata/oracle8i/sales01.dbf' size 800M autoextend on next 50M maxsize 1000M extent management local uniform size 500K; --unform size 500K表示区的大小相同,为500Kcreate tablespace sales datafile '/home/app/oracle/oradata/oracle8i/sales01.dbf' size 800M autoextend on next 50M maxsize 1000M extent management local autoallocate; --autoallocate表示区的大小由随表的大小自动动态改变,大表使用大区小表使用小区create tablespace sales datafile '/home/app/oracle/oradata/oracle8i/sales01.dbf' size 800M autoextend on next 50M maxsize 1000M temporary; --temporary创建字典管理临时表空间create temporary tablespace sales tempfile '/home/app/oracle/oradata/oracle8i/sales01.dbf' size 800M autoextend on next 50M maxsize 1000M -- 创建本地管理临时表空间,如果是临时表空间,所有语句中的datafile都换为tempfile 8i系统默认创建字典管理临时表空间,要创建本地管理临时表空间要加temporary tablespace关键字创建本地管理临时表空间时,不得使用atuoallocate参数,系统默认创建uniform管理方式为表空间增加数据文件:alter tablespace sales add datafile '/home/app/oracle/oradata/oracle8i/sales02.dbf' size 800Mautoextend on next 50M maxsize 1000M;创建本地管理临时Oracle表空间,如果是临时表空间,所有语句中的datafile都换为tempfile8i 系统默认创建字典管理临时表空间,要创建本地管理临时表空间要加temporary tablespace关键字创建本地管理临时表空间时,不得使用atuoallocate参数,系统默认创建uniform管理方式为表空间增加数据文件:alter tablespace sales add datafile '/home/app/oracle/oradata/oracle8i/sales02.dbf' size 800M autoextend on next 50M maxsize 1000M;5、更改自动扩展属性:alter database datafile '/home/app/oracle/oradata/oracle8i/sales01.dbf', '/home/app/oracle/oradata/oracle8i/sales02.dbf''/home/app/oracle/oradata/oracle8i/sales01.dbf' autoextend off;--查看表空间大小SELECT UPPER(F.TABLESPACE_NAME) "表空间名",D.TOT_GROOTTE_MB "表空间大小(M)",D.TOT_GROOTTE_MB - F.TOTAL_BYTES "已使用空间(M)",TO_CHAR(ROUND((D.TOT_GROOTTE_MB - F.TOTAL_BYTES) / D.TOT_GROOTTE_MB * 100,2),'990.99') "使用比",F.TOTAL_BYTES "空闲空间(M)",F.MAX_BYTES "最大块(M)"FROM (SELECT TABLESPACE_NAME,ROUND(SUM(BYTES) / (1024 * 1024), 2) TOTAL_BYTES,ROUND(MAX(BYTES) / (1024 * 1024), 2) MAX_BYTESFROM SYS.DBA_FREE_SPACEGROUP BY TABLESPACE_NAME) F,(SELECT DD.TABLESPACE_NAME,ROUND(SUM(DD.BYTES) / (1024 * 1024), 2) TOT_GROOTTE_MBFROM SYS.DBA_DATA_FILES DDGROUP BY DD.TABLESPACE_NAME) DWHERE D.TABLESPACE_NAME = F.TABLESPACE_NAME--修改数据文件大小ALTER DA TABASE DA TAFILE 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\USERS01.DBF' RESIZE 41200M;--。
oracle管理表空间和数据文件
1、查看system表空间的大小,对应的数据文件的路径和名称。
Select file_name,tablespace_name,bytes from dba_data_files Where tablespace_name=‘SYSTEM’;2、创建本地管理表空间DATA01,包含大小为1MB的一个数据文件,数据文件位于C盘根目录,每个区的大小为64KB。
Create tablepace data01Datafile‘c:\data01.dbf’size 1MExtent management localUniform size 64k;3、向上述表空间插入一个新表Table1,并插入数据。
Create table 表名(name nchar,pwd nchar)tablespace data01;Insert into 表名values();4、通过改变数据文件大小,将表空间DA TA01大小增加为2MB。
Alter database datafile ‘c:\data01.dbf’resize 2M;5、将数据文件改为空间自动增长,允许每次自动扩展500KB,最大大小为5MB。
Alter database datafile ‘c:\data01.dbf’Autoextend on next 500KMaxsize 5M6、将表空间DATA01对应的数据文件从C盘根目录移动到数据文件默认路径(1)alter tablespace data01 offline;(2)Host move c:\data01.dbf c:\oracle\oradata\dba\data01.dbf(3)Alter tablespace data01 renameDatafile ‘c:\data01.dbf’to ‘c:\oracle\oradata\dba\data01.dbf’;(4)alter tablespace data01 online;7、为表空间DATA01增加一个新的数据文件。
oracle添加数据文件或调整数据文件大小
oracle添加数据文件或调整数据文件大小oracle表空间不足时如何处理--1、查看表在那个表空间select tablespace_name,table_name from user_talbes where table_name='test';--2、获取用户的默认表空间select username, DEFAULT_TABLESPACE from dba_users where username='MXH';--3、查看表空间所有的文件select * from dba_data_files where tablespace_name='USERS';--4、查看表空间使用情况:SELECT tbs 表空间名,sum(totalM) 总共大小M,sum(usedM) 已使用空间M,sum(remainedM) 剩余空间M,sum(usedM)/sum(totalM)*100 已使用百分比,sum(remainedM)/sum(totalM)*100 剩余百分比FROM(SELECT b.file_id ID,b.tablespace_name tbs,b.file_name name,b.bytes/1024/1024 totalM,(b.bytes-sum(nvl(a.bytes,0)))/1024/1024 usedM,sum(nvl(a.bytes,0)/1024/1024) remainedM,sum(nvl(a.bytes,0)/(b.bytes)*100),(100 - (sum(nvl(a.bytes,0))/(b.bytes)*100))FROM dba_free_space a,dba_data_files bWHERE a.file_id = b.file_idGROUP BY b.tablespace_name,b.file_name,b.file_id,b.bytes ORDER BY b.tablespace_name)GROUP BY tbs--5、扩展表空间alterdatabase datafile 'D:\ORACLE\PRODUCT\ORADATA\TEST\USERS01.DBF' resize 50m;--自动增长alterdatabase datafile 'D:\ORACLE\PRODUCT\ORADATA\TEST\USERS01.DBF' autoextend onnext 50m maxsize 500m;--增加数据文件alter tablespace USERS add datafile 'd:\users02.dbf' size 5m;。
Oracle查看表空间的大小及使用情况sql语句
Oracle查看表空间的大小及使用情况sql语句SQL1:复制代码代码如下:--1、查看表空间的名称及大小SELECT t.tablespace_name, round(SUM(bytes / (1024 * 1024)), 0) ts_sizeFROM dba_tablespaces t, dba_data_files dWHERE t.tablespace_name = d.tablespace_nameGROUP BY t.tablespace_name;--2、查看表空间物理文件的名称及大小SELECT tablespace_name,file_id,file_name,round(bytes / (1024 * 1024), 0) total_spaceFROM dba_data_filesORDER BY tablespace_name;--3、查看回滚段名称及大小SELECT segment_name,tablespace_name,r.status,(initial_extent / 1024) initialextent,(next_extent / 1024) nextextent,max_extents,v.curext curextentFROM dba_rollback_segs r, v$rollstat vWHERE r.segment_id = n(+)ORDER BY segment_name;--4、查看控制文件SELECT NAME FROM v$controlfile;--5、查看日志文件SELECT MEMBER FROM v$logfile;--6、查看表空间的使用情况SELECT SUM(bytes) / (1024 * 1024) AS free_space, tablespace_nameFROM dba_free_spaceGROUP BY tablespace_name;SELECT a.tablespace_name,a.bytes total,b.bytes used,c.bytes free,(b.bytes * 100) / a.bytes "% USED ",(c.bytes * 100) / a.bytes "% FREE "FROM sys.sm$ts_avail a, sys.sm$ts_used b, sys.sm$ts_free c WHERE a.tablespace_name = b.tablespace_nameAND a.tablespace_name = c.tablespace_name;--7、查看数据库库对象SELECT owner, object_type, status, COUNT(*) count#FROM all_objectsGROUP BY owner, object_type, status;--8、查看数据库的版本SELECT versionFROM product_component_versionWHERE substr(product, 1, 6) = 'Oracle';--9、查看数据库的创建日期和归档方式SELECT created, log_mode, log_mode FROM v$database;SQL2:复制代码代码如下:--1G=1024MB--1M=1024KB--1K=1024Bytes--1M=11048576Bytes--1G=1024*11048576Bytes=11313741824BytesSELECT a.tablespace_name "表空间名",total "表空间大小",free "表空间剩余大小",(total - free) "表空间使用大小",total / (1024 * 1024 * 1024) "表空间大小(G)",free / (1024 * 1024 * 1024) "表空间剩余大小(G)",(total - free) / (1024 * 1024 * 1024) "表空间使用大小(G)",round((total - free) / total, 4) * 100 "使用率 %"FROM (SELECT tablespace_name, SUM(bytes) freeFROM dba_free_spaceGROUP BY tablespace_name) a,(SELECT tablespace_name, SUM(bytes) totalFROM dba_data_filesGROUP BY tablespace_name) bWHERE a.tablespace_name = b.tablespace_name如对本文有疑问,请提交到交流社区,广大热心网友会为你解答!!点击进入社区。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
from
(select tablespace_name,sum(bytes) bytes from dba_data_files group by tablespace_name) a,
(select tablespace_name,sum(bytes) bytes,max(bytes) largest from dba_free_space group by tablespace_name) b
--4确认磁盘空间足够,增加一个数据文件
alter tablespace MLOG_NORM_SPACE
add datafile '/oracle/oms/oradata/mlog/Mlog_Norm_data001.dbf'
size 10M autoextend on maxsize 20G
select file_name,tablespace_name,bytes/1024/1024 "bytes MB",maxbytes/1024/1024 "maxbytes MB" from dba_data_files
where tablespace_name='MLOG_NORM_SPACE';
--3比如MLOG_NORM_SPACE表空间目前的大小为19GB,但最大每个数据文件只能为20GB,数据文件快要写满,可以增加表空间的数据文件
用操作系统UNIX、Linux中的df -g命令(查看下可以使用的磁盘空间大小)
获取创建表空间的语句:
select dbms_metadata.get_ddl('TABLESPACE','MLOG_NORM_SPACE') from dual;
where a.tablespace_name=b.tablespace_name
order by ((a.bytes-b.bytes)/a.bytes) desc
“Sum MB”表示表空间所有的数据文件总共在操作系统占用磁盘空间的大小
比如:test表空间有2个数据文件,datafile1为300MB,datafile2为400MB,那么test表空间的“Sum MB”就是700MB
--5验证已经增加的数据文件
select file_name,file_id,tablespace_name from dba_data_files
where tablespace_name='MLOG_NORM_SPACE'
--6如果删除表空间数据文件,如下:
alter tablespace MLOG_NORM_SPACE
在数据库管理中,磁盘空间不足是DBA都会遇到的问题,问题比较常见。
--1查看表空间已经使用的百分比
select a.tablespace_name,a.bytes/1024/1024 "Sum MB",(a.bytes-b.bytes)/1024/1024 "used MB",b.bytes/1024/1024 "free MB",round(((a.bytes-b.bytes)/a.bytes)*100,2) "percent_used"
“userd MB”表示表空间已经使用了多少
“free MB”表示表空间剩余多少
“percent_user”Fra bibliotek示已经使用的百分比
--2比如从1中查看到MLOG_NORM_SPACE表空间已使用百分比达到90%以上,可以查看该表空间总共有几个数据文件,每个数据文件是否自动扩展,可以自动扩展的最大值。