最近工做上有一個任務要修改一個比較老的項目,分公司這邊沒有這個項目數據庫相關的備份,因此須要從正式環境上面導出數據庫備份出來在本地進行部署安裝,以前在其它項目的時候也弄過這個數據庫的部署和安裝,也寫了一個操做文檔,可是寫的不是那麼的詳細,不少場景都沒有考慮到,後面想了想仍是從新寫一個操做文檔方便下次數據庫相關導出的操做,也同時可以幫助其它初次接觸的同事快速操做。數據庫
項目的採用的開發相關是:Vs2008,Oracle 11g,PLSQL。服務器
第一步,數據庫的導出微信
a.數據庫用戶導出oracle
1.查詢全部數據庫用戶app
SELECT wm_concat(T.username) FROM DBA_USERS T WHERE T.account_status = 'OPEN' AND T.default_tablespace NOT IN ('SYSTEM', 'SYSAUX') AND T.username NOT IN ('SCOTT','EMULATION')
2.導出建立表空間及數據文件腳本工具
SELECT 'CREATE TABLESPACE ' || T.TABLESPACE_NAME || ' DATAFILE ''E:\ORADATA\FSDB\' || T.TABLESPACE_NAME || '01.DBF'' size 100M autoextend on;' FROM DBA_TABLESPACES T WHERE T.TABLESPACE_NAME NOT IN ('SYSTEM', 'SYSAUX', 'UNDOTBS1', 'TEMP', 'USERS', 'UNDOTBS2');
E:\ORADATA\FSDB\ 本地數據庫文件存儲目錄spa
會查詢出相似如下腳本操作系統
CREATE TABLESPACE TBS_TYUM_SMS DATAFILE 'E:\ORADATA\FSDB\TBS_TYUM_SMS01.DBF' size 100M autoextend on;
TBS_TYUM_SMS 表空間名稱.net
E:\ORADATA\FSDB\TBS_TYUM_SMS01.DBF 建立的空間表DBF文件 3d
3.建立導出文件相關操做
1、建立導出文件存放的文件目錄(該目錄必須存在),該命令不會在操做系統建立真正的目錄,最好以system等管理員建立。
create or replace directory DPDATAGGDB as 'E:\backup\xxxx';
2、查看管理理員目錄(同時查看操做系統是否存在,由於Oracle並不關心該目錄是否存在,若是不存在,則出錯)
select * from dba_directories;
3、給scott用戶賦予在指定目錄的操做權限,最好以system等管理員賦予。
grant read,write on directory DPDATAGGDBto scott;
4.按用戶導出
-按用戶導出
Expdp system/123456@XXDB schemas=xxxx dumpfile=XXDB20170307BAK.DMP directory=DPDATAGGDB logfile=XXDB20170307BAK.log
-exp所有導出
exp system/123456@XXDB file=E:\backup\xxxx\QZDB20170220_bak.dmp full=y
system/123456 登陸dba帳號密碼
XXDB 須要導出的數據庫名稱
schemas 用戶集合
dumpfile=XXDB20170307BAK.DMP 導出的數據dmp文件
directory=DPDATAGGDB 第三部建立的文件目錄 這裏導出的文件會在該目錄下面生成對應文件
logfile=XXDB20170307BAK.log 導出的數據log文件
第二步,數據庫導入
1.01打開oracle Databese配置工具
1.02進入歡迎頁面
1.03選擇建立數據庫,若是須要修改能夠選擇配置數據庫選件
1.04數據庫模板
1.05填寫數據庫鏈接表示
1.06管理選項,可直接下一步
1.07填寫數據庫登陸信息,爲了管理方便選擇所要帳號使用同一管理口令
1.08設置數據文件存放位置,可選擇默認位置,也可本身設置存放位置
1.09設置恢復配置,可選擇默認數據
1.10數據庫內容,可跳過
1.11初始化參數,主要分配內存空間,須要考慮當前服務器上面可用空間,多個數據庫須要平均處理,後面的調整大寫,字符集,連接模式能夠選擇默認選項
1.12數據庫存儲
1.13建立選項
1.14點擊完成就會生成數據庫了
2.打開PLSQ或者TOAD用sys DBA身份登陸建立第一步第二個操做導出
CREATE TABLESPACE TBS_TYUM_SMS DATAFILE 'E:\ORADATA\FSDB\TBS_TYUM_SMS01.DBF' size 100M autoextend on;
.....這裏應該導出多個空間的建立語句
3.建立用於導入導出的文件目錄
create or replace directory TY_DUMP_DIR as 'E:\app '
E:\app 必需是已經存在的目錄。
查看已經存在的目錄
select * from dba_directories
刪除文件目錄記錄
DROP DIRECTORY TY_DUMP_DIR
用sys用戶登陸給要訪問的用戶指定訪問目錄的權限。
grant read,write on directory TY_DUMP_DIR to scott;
4.導入數據
Impdp SYSTEM/123456@XXDB directory=TY_DUMP_DIR dumpfile=XXDB20170307BAK.DMP LOGFILE=XXDB20170307BAK.LOG full=y
impdp system/123456@XXDB schemas=xxxx dumpfile=XXDB20170307BAK.DMP directory=DPDATAGGDB logfile=XXDB20170307BAK.log
或者
imp system/123456@XXDB file=d:\bak.dmp full=y ignore=y
這裏的相關關鍵詞不一一解釋了,能夠參照導出文件說明
若是是EXpdp 導出的則須要用Impdp 導出 EXP則須要用imp 否則會在導出的時候報錯
這裏全部的導入導出操做都要在cmd命令符操做下進行 window+R cmd
其實在導入導出的過程當中應該還會遇到其餘的一些問題,這裏由於以前在操做的時候沒有記錄了,之後若是碰到了問題,我會在這裏一一記錄,也但願這篇文章可以給須要的人帶來幫助。若是有什麼寫錯的地方也但願你們可以指出來。謝謝!
微信連接:連接
若是有感興趣的能夠關注一下。