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...