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;  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM