Oracle的表空間常用操作命令

2021-10-09 08:56:02 字數 2152 閱讀 1735

背景:

為什麼有這個表空間?它是什麼?怎麼理解它的存在?

為了管理資料檔案,oracle提出了表空間的概念,然後oracle將資料邏輯儲存在表空間中,但實際是儲存在資料檔案中;

表空間常用操作語句彙總及詳解

建立表空間:

例如:

create tablespace tbs_platform

logging

datafile '/data/datafile/tbs_platform_01.dbf' size 100m

autoextend on next 10m maxsize 1g

extent management local segment space management auto;

建立語句中引數詳解:

logging/nologging:該引數說明是否要記錄表空間資料變化的記錄,並記錄在重做日誌檔案中; 

datafile '/data/datafile/tbs_platform_01.dbf' size 100m:

組成該錶空間的資料檔案的名字,該語句給出完整的目錄和檔名,目錄必須存在否則無法建立;ps:如果資料檔案存放在linux系統中,則需提前授權該目錄寫入許可權,否則報錯;

autoextend on next 10m maxsize 1g:

extent management local segment space management auto:

這個語句說明,建立的是乙個本地管理的表空間;

刪除表空間:

drop tablespace 表空間名稱 including contents and datafiles cascade constraint;

表空間滿了怎麼辦?

增加表空間資料檔案

alter tablespace tbs_platform

adddatafile '/data/datafile/tbs_platform_02.dbf' size 100m

autoextend on next 10m maxsize 10g

檢視資料庫中表空使用情況:

select 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, sum(bytes) total 

from dba_data_files 

group by tablespace_name) b 

where a.tablespace_name = b.tablespace_name 

檢視表空間中的資料檔案:

select  b.file_name 物理檔名, b.tablespace_name 表空間, b.bytes / 1024 / 1024 大小m, (b.bytes - sum(nvl(a.bytes, 0))) / 1024 / 1024 已使用m, substr((b.bytes - sum(nvl(a.bytes, 0))) / (b.bytes) * 100, 1, 5) 利用率   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.bytes  order by b.tablespace_name;

Oracle表空間常用操作

1 建立表空間 在sql plug下,執行下面的語句 create tablespace nberp logging datafile d oracle oradata oracle9i user data.dbf size 50m autoextend on next 50m maxsize 20...

Oracle 表空間常用操作

備忘 檢視表空間使用率 set lin 200 pagesize 1000 select b.tablespace name,round sum b.bytes 1024 1024,0 sum mb,round sum nvl a.bytes,0 1024 1024,0 free mb,round ...

Oracle 表空間常用操作

常用操作 檢視表空間select name from v tablespace 檢視資料檔案select name from v datafile 檢視dba表空間的資料檔案select file name,tablespace name from dba data files where tabl...