Oracle表空間和資料字典基本概念和常用sql

2021-08-11 22:42:59 字數 3330 閱讀 6091

oarcle資料庫真正存放資料的是資料檔案(data files),oarcle表空間(tablespaces)實際上是乙個邏輯的概念,他在物理上是並不存在的,那麼把一組data files 組在一起就成為乙個表空間。

表空間具有以下性質:

1.乙個資料庫可包含多個表空間,乙個表空間只屬於乙個資料庫

2. 乙個表空間可包含多個資料檔案,乙個資料檔案只能屬於乙個表空間

那麼表空間的作用呢?

1.決定資料庫實體的空間分配;

2.設定資料庫使用者的空間份額;

3.控制資料庫部分資料的可用性;

4.分布資料於不同的裝置之間以改善效能;

5.備份和恢復資料。

常用表空間sql語句:

1.檢視每個表空間有哪些資料庫檔案:

desc dba_data_files;

2.檢視詳細資料檔案:

select file_name,tablespace_name from dba_data_files;

3.建立乙個表空間:

create tablespace paul datafile 『/ora10/product/oradata/ora10/paul01.dbf』 size 20m;

4.檢視表空間的使用情況:

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

5.修改表空間大小:

首先檢視表空間的名字及檔案所在位置

select tablespace_name, file_id, file_name,

round(bytes/(1024*1024),0) total_space

from dba_data_files

order by tablespace_name

然後修改表空間的大小

alter database datafile 『表空間位置』resize 新的尺寸

6.回滾某個表的資料:

查詢某錶之前乙個時間點的資料

select * from t_hy_rolemodule_n as of timestamp to_timestamp(『2017-03-01』,』yyyy-mm-dd』)

回退某錶之前乙個時間點的資料

alter table t_hy_rolemodule_n enable row movement;

flashback table t_hy_rolemodule_n to timestamp to_timestamp(『2017-03-01』,』yyyy-mm-dd』);

commit;

7.相關表空間匯入匯出命令:

① 將資料庫test完全匯出,使用者名稱system 密碼manager 匯出到d:\daochu.dmp中

exp system/manager@test file=d:\daochu.dmp full=y

② 將資料庫中system使用者與sys使用者的表匯出

exp system/manager@test file=d:\daochu.dmp owner=(system,sys) 例如 exp rivercheck/rivercheck@ora9is file=d:daochu.dmp=(rivercheck)

③將資料庫中的表table1 、table2匯出

exp system/manager@test file=d:\daochu.dmp tables=(table1,table2)

④ 將資料庫中的表table1中的字段filed1以」00」打頭的資料匯出

exp system/manager@test file=d:\daochu.dmp tables=(table1) query=\」 where filed1 like 『00%』\」

那麼資料字典是什麼呢?

資料庫是資料的集合,資料庫維護和管理這使用者的資料,那麼我們會想:這些使用者資料表都存在**?使用者的訪問許可權資訊?使用者的資訊是怎樣的?儲存這些使用者的資料的路徑在**?這些資訊不屬於使用者的資訊,卻是資料庫維護和管理使用者資料的核心,這些資訊就是資料庫的資料字典來維護的,資料庫的資料字典就匯集了這些資料庫執行所需要的基礎資訊。

oracle中的資料字典有靜態動態之分。靜態資料字典主要是在使用者訪問資料字典時不會發生改變的,但動態資料字典是依賴資料庫執行的效能的,反映資料庫執行的一些內在資訊,所以在訪問這類資料字典時往往不是一成不變的。

靜態資料字典常用sql:

1.查詢當前使用者下的資訊:

select * from user_users

2.查詢當前使用者擁有表的資訊:

select * from user_tables

3.查詢當前使用者擁有的所有物件的資訊,物件包括表、檢視、儲存過程、觸發器、包、索引、序列:

select *  from user_objects

4.查詢當前使用者下所有表的許可權資訊:

select * from user_tab_privs

動態資料字典常用sql:

1.查詢資料庫中鎖定的資料庫物件以及訪問這些物件的會話物件(session物件):

select * from v$access

2.查詢該檢視列出當前會話的詳細資訊:

select * from v$session

很明顯,只要是在動態變化的都跟動態資料字典有關,常用的資料字典有很多,這裡就不一一枚舉,即查即用,也很明顯資料字典用來儲存資料庫本身的資訊,歸根到底還是資料檔案歸屬於表空間,但反過來可以用資料字典來管理表空間。

oracle表空間和資料字典的概念

表空間 sql server資料庫與oracle資料庫之間最大的區別要屬表空間設計。oracle資料庫開創性地提出了表空間的設計理念,這為oracle資料庫的高效能做出了不可磨滅的貢獻。可以這麼說,oracle中很多優化都是基於表空間的設計理念而實現的。oracle資料庫被劃分成稱作為表空間的邏輯區...

Oracle建立資料庫與表空間和資料字典表的概念

使用oracle的database configuration assistant 資料庫配置助手 簡稱dbca 進行配置即可。1 建立表空間 注意 datafile 資料檔案 儲存位置路徑 為絕對路徑 表空間名字.dbf 字尾 dbf size 表示表空間的大小 2 建立使用者,並建立和表空間的對...

Oracle常用資料字典表

檢視當前使用者的預設表空間 sql select username,default tablespace from user users 檢視當前使用者的角色 sql select from user role privs 檢視當前使用者的系統許可權和表級許可權 sql select from us...