oracle 表空间及磁盘大小查看

/*备注:
表空间是数据库的逻辑组成部分
从物理上将:数据库数据存放在数据文件中
从逻辑上将:数据库则是存放在表空间中
表空间由一个或是多个数据文件组成
*/

--1.查看用户下面的所有的表
SELECT * FROM USER_TABLES;
SELECT * FROM DBA_TABLES WHERE OWNER = 'COMM_USER';

--1.1查看表所在的表空间

select TABLE_NAME,TABLESPACE_NAME from dba_tables t where t.table_name='DM_LIST';
--1.2查看用户所属的表空间
SELECT DEFAULT_TABLESPACE FROM DBA_USERS WHERE USERNAME = 'COMM_USER';

--1.3.查看所有的表空间

SELECT * FROM DBA_TABLESPACES;
SELECT * FROM V$TABLESPACE;

--1.3查看默认的表空间

select * from database_properties where property_name='DEFAULT_PERMANENT_TABLESPACE';

--1.4创建索引到指定表空间

create index IDX_DM_FINISHTIME_ORGANID on DM_COMM_PREM_LIST (FINISH_TIME,ORGAN_ID) tablespace TBS_DW_DATA;

--1.5查看表空间下有多少用户,tablespace_name表空间 的名字一定要大写
SELECT DISTINCT S.OWNER
FROM   DBA_SEGMENTS S
WHERE  S.TABLESPACE_NAME = 'TBS_COMM_DATA';


--1.6所有表空间的使用情况
SELECT --B.file_name "文件名",
       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) FREE
        FROM   DBA_FREE_SPACE
        GROUP  BY TABLESPACE_NAME) A,
       (SELECT TABLESPACE_NAME,
             --  file_name,
               SUM(BYTES) TOTAL
        FROM   DBA_DATA_FILES
        GROUP  BY TABLESPACE_NAME/*,file_name*/) B
WHERE  A.TABLESPACE_NAME = B.TABLESPACE_NAME;

--2、linux中查看服务器硬盘的使用情况
df -k   以KB为单位显示磁盘使用量和占用率
df -m   以M为单位显示磁盘使用量和占用率



--3、给表空间新增数据文件并设置30G大小  在命令窗口中执行,数据文件的大小最大不能超过32G,

否则会报错:ORA-01144: 文件大小 (13107200 块) 超出 4194303 块的最大数
方法1)给白空间增加数据文件
SQL> alter tablespace AUDIT add datafile '/pi/app/oracle/oradata/enterprise_tbs05.dbf' size 30G;
alter tablespace 表空间名 add datafile '数据文件存放路径' size 数据文件大小;

方法2)手动增加数据文件尺寸
SQL>ALTER DATABASE AUDIT '/oracle/oradata/db/GAME.dbf' RESIZE 4000M;

方法3)设定数据文件自动扩展
SQL> ALTER DATABASE DATAFILE '/oracle/oradata/db/GAME.dbf'  AUTOEXTEND ON NEXT 100M MAXSIZE 10000M;
执行完上述1、2、3.1)步骤之后:DBA_DATA_FILES中新增的数据文件的bytes的值要比maxbytes的值要大的原因?    
        原因:当一个datafile 手工resize到一个大于maxsize(maxbytes)的值之后,DBA_DATA_FILES中bytes的值要比maxbytes的值要大。
当该datafile被设置为autoextend on之后,dba_data_files中的maxbytes 值被自动结算为一个非零值。dba_data_files中的bytes是该datafile的当前的大小(以bytes为单位)


不常用查询:
1)查看oracle数据库库对象
SELECT owner, object_type, status, COUNT(*) count# FROM all_objects  GROUP BY owner, object_type, status;

2)查看oracle数据库的版本 
SELECT version FROM product_component_version WHERE substr(product, 1, 6) = 'Oracle';

3)查看oracle数据库的创建日期和归档方式
SELECT created, log_mode FROM v$database;

4)查看oracle控制文件目录
SELECT NAME FROM v$controlfile;

5)查看oracle日志文件目录
SELECT MEMBER FROM v$logfile;  

posted @ 2020-08-19 13:30  晨起的太阳  阅读(6580)  评论(0编辑  收藏  举报