Oracle 表空間的建立與管理

2022-03-30 11:43:36 字數 3115 閱讀 3244

oracle資料庫建立之後有一些預設的表空間隨之被建立,查詢資料字典 dba_data_files 可以得到資料庫當前的所有表空間資訊。

select * from v$tablespace;

select tablespace_name, file_name, bytes/1024/1024 as "size(m)" from dba_data_files;

select tablespace_name, file_name,bytes/1024/1024 as "size(m)" from dba_temp_files;

各預設表空間的作用如下圖所示:

1 建立表空間與臨時表空間

create tablespace default_tablespace datafile '/home/oracle/oradata/default_tablespace.dbf' -- 指定表空間對應的資料檔案名稱與位置

size 100m -- 初始大小

autoextend on next 50m -- 容量滿時是否自動增加,每次增加的幅度

maxsize unlimited -- 是否有最大限制

extent management local -- 指定表空間擴充套件方式是使用資料字典管理還是本地化管理,預設為本地化管理

logging; -- 表空間內的表在載入資料時是否產生日誌,預設為產生日誌,不產生日誌設為:nologging

create temporary tablespace temp_tablespace

tempfile '/home/oracle/oradata/temp_tablespace.dbf'

size 50m

autoextend on

next 50m maxsize unlimited

extent management local;

2 設定預設表空間

oracle 資料庫在建立使用者時,如果不指定表空間,則預設的臨時表空間是 temp, 預設的永久表空間為system,這樣會導致應用系統與oracle 系統競爭使用system 表空間,極大的影響oracle 系統效率;因此我們在資料庫建立之後要為應用系統設定預設的臨時表空間與永久空間;

檢視當前的預設表空間,預設臨時表空間

select * from database_properties where property_name='default_permanent_tablespace';

select * from database_properties where property_name='default_temp_tablespace';

修改預設表空間

alter database default tablespace default_tablespace;

修改預設臨時表空間

alter database default temporary tablespace temp_tablespace;

3 維護表空間

表空間有兩種狀態:唯讀、讀寫;若設定表空間為唯讀狀態,則使用者不能對該錶空間中進行dml操作;設定為唯讀狀態可以保證表空間資料的完整性,通常在進行資料備份、恢復及歷史資料完整性保護時,可以將表空間設為唯讀狀態。

alter tablespace default_tablespace read only;

alter tablespace default_tablespace read write;

4 重名命表空間

alter tablespace default_tablespace rename to default_tablespace_new;

5 刪除表空間

drop tablespace test1

including contents

cascade constraints;

6 維護表空間對應的資料檔案

新增資料檔案

alter tablespace test1 add datafile '/home/oracle/oradata/test2.dbf'

size 50m

autoextend on next 20m

maxsize unlimited;

刪除資料檔案

alter tablespace test1 drop datafile '/home/oracle/oradata/test2.dbf';

修改資料檔案 

alter database datafile '/home/oracle/oradata/test2.dbf'

autoextend on next 10m maxsize unlimited;

alter database datafile '/home/oracle/oradata/test2.dbf'

autoextend off;

7 查詢資料庫當前使用情況

select a.file_id,b.file_name,

b.tablespace_name,

sum(b.bytes/1024/1024) "size(m)",

sum(a.bytes)/1024/1024 "free(m)",

(sum(b.bytes) - sum(nvl(a.bytes, 0)))/1024/1024 "used(m)",

substr((sum(b.bytes) - sum(nvl(a.bytes, 0))) / sum(b.bytes) * 100, 1, 5) "used%"

from

(select file_id, sum(bytes) as bytes

from dba_free_space

group by file_id

) a,

dba_data_files b

where a.file_id = b.file_id

group by b.tablespace_name, b.file_name,a.file_id

order by b.tablespace_name;

oracle建立使用者與表空間

1.建立使用者 在 sys 使用者下操作 create user 使用者名稱 identified by 密碼 2.修改使用者密碼 在 sys 使用者下操作 alter user 使用者名稱 identified by 新密碼 3.刪除使用者 在 sys 使用者下操作 drop user 使用者名稱...

Oracle建立 管理撤銷表空間

撤銷管理模式 使用者通過設定撤銷管理模式 undo mode 就可以靈活地選擇使用手動撤銷管理 manual undo management 或自動撤銷管理 automatic undo management 資料庫系統既可以執行在手動撤銷管理模式下,也可以執行於自動撤銷管理模式下。在手動撤銷管理模...

ORACLE使用者 表空間的建立以及管理

create tablespace xx 表空間名 datafile d oracletablespace xx.dbf 位址 檔名稱 size 1500m 初始大小 autoextend on next 100m 單次大小 maxsize 10000m 最大值 修改表空間大小不受限制 但實際最大值...