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

--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为单位显示磁盘使用量和占用率

oracle 表空间及磁盘大小查看_数据文件



--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为单位)

oracle 表空间及磁盘大小查看_表空间_02



不常用查询:

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;  

学而不思则罔,思而不学则殆