近來第一次寫了實施文檔,也有一些收獲,及時記錄下來,以備后用。
數據庫表空間
ORACLE數據庫被划分成稱作為表空間的邏輯區域——形成ORACLE數據庫的邏輯結構。
一個ORACLE數據庫能夠有一個或多個表空間,
而一個表空間則對應着一個或多個物理的數據庫文件。
表空間是ORACLE數據庫恢復的最小單位,容納着許多數據庫實體,如表、視圖、索引、聚簇、回退段和臨時段等。
每個ORACLE數據庫均有SYSTEM表空間,這是數據庫創建時自動創建的。
SYSTEM表空間必須總要保持聯機,因為其包含着數據庫運行所要求的基本信息(關於整個數據庫的數據字典、聯機求助機制、所有回退段、臨時段和自舉段、所有的用戶數據庫實體、其它ORACLE軟件產品要求的表)。
一個小型應用的ORACLE數據庫通常僅包括SYSTEM表空間,然而一個稍大型應用的ORACLE數據庫采用多個表空間會對數據庫的使用帶來更大的方便。
例如:便於理解,把oracle數據庫看作一個實在房間,表空間可以看作這個房間的空間,是可以自由分配,在這空間里面可以堆放多個箱子(箱子可以看作數據庫文件),箱子里面再裝物件(物件看作表)。用戶指定表空間也就是你希望把屬於這個用戶的表放在那個房間(表空間)里面。
表空間是一個虛擬的概念可以無限大,但是需要由數據文件作為載體。
1)查詢當前用戶表空間
select default_tablespace from dba_users where username='LHMZ_OA';
其中LHMZ_OA是我當前登錄用戶的用戶名
2) 查詢所有表空間
select * from dba_tablespaces;
另一種方法也可查詢到
select * from v$tablespace;
3)查詢表空間下的用戶
select distinct s.owner from dba_segments s where s.tablespace_name ='LHMZ_OA';
其中LHMZ_OA是表空間名
數據庫備份
1) 查看管理理員目錄
select * from dba_directories;
2) 創建邏輯目錄(使用system創建)
create directory dir_work as 'c:\test';
3) 按用戶導出
例子:
expdp lhmz_oa/000000@platformdb schemas=lhmz_oa directory=dir_work dumpfile=lhmz_oa.dmp logfile=lhmz_oa.log
4) 按用戶導入
例子:
impdp system/000000@platformdb directory=DIR_ZDL REMAP_SCHEMA=projectmanage:relief REMAP_TABLESPACE=tbs_project:RELIEF dumpfile=RELIEF.DMP
備注:exp和imp是客戶端工具程序,既可以在客戶端使用也可以在服務端使用。
Expdp和impdp是服務器端的工具程序,所以只能在oracle的服務端使用,不能在客戶端使用
這兩對對稱使用,即誰導出的就用對應的導入。