Oracle :備份 、還原數據庫


一 .  數據的導入與導出

  
1. 數據的導出 : 輸入exp 指令  ,沒有數據的表不導出 。
2. 數據的導入 :進入到備份文件所在路徑 ,輸入imp 指令 。 
實際工作中 不使用這種方式 導出 。
 
二.  數據庫的冷備份:常用的
  說明 :冷備份,稱為歸檔備份,指的是數據庫要關閉服務, 備份如下文件:
  控制文件:控制着oracle 的實例信息 “v$controlfile” 數據字典文件
   重做日志文件 :“v$logfile”
        數據文件:"v$datafile"
        核心配置文件 (pfile) :""
        
      1. 使用 sys登陸
      2. select * from v$controlfile ;
          select * from v$logfile
    select * from v$datafile
    show parameter pfile
     3,  記錄好這些文件的路徑 
     4. 關閉 Oracle 服務。
  shutdown immediate 
    5 拷貝所有備份文件 
    6  重新啟動服務 
       startup 
       這種備份是允許關閉計算機服務。
 
 ——————————————————————————————————————————————————————————————————————————————
 

Oracle數據導入導出imp/exp 

 
Oracle數據導入導出imp/exp
在cmd的dos命令提示符下執行,而不是在sqlplus里面,但是格式一定要類似於:
 
imp/exp 用戶名/密碼@service_name或oracle_sid full=y  file=C:\導出文件名稱.dmp ignore=y
 
imp 命令是在dos提示符下執行的,直接cmd后執行而不是在sql下執行的
 
數據導出:
1 將數據庫完全導出,用戶名wlj ,密碼wlj 導出到D:exportoracle.dmp中
   exp wlj/wlj@IP地址/orcl file=d:exportoracle.dmp full=y


exp wlj/wlj@ip地址/orcl file=d:exportoracle.dmp full=y
exp wlj/wlj@ip地址/orcl tables=表名 file=d:exportoracle.dmp full=y
 

--expdp導出數據
expdp CCENSE/CCENSE@OracleDB directory = "dpdata1" dumpfile ="oracleExpdp.dmp" logfile = oracleExpdp20161103.log

注意:
如果出現:
                EXP-00056: 遇到 ORACLE 錯誤 12154
                ORA-12154: TNS: 無法解析指定的連接標識符
                EXP-00000: 導出終止失敗
這個很明顯是連接不上你的數據庫,你可以查看一下你的net manager里面的服務名有沒配置好
解決方法:1、不再服務端的話,在其它機器可能通過service_name或oracle_sid來訪問數據庫,注意service_name必須寫正確,需要查看oracle net  manager 中的數據庫的tns配置實例名稱(上面@后面的 orcl)是否與需要連接的一樣,cmd中使用 tnsping orcl 可以ping同的話,就說明沒有問題。
                  2、在服務端的話,在服務器本地導出文件時要用服務器本地的連接名,也就是說要查看服務器的tnsnames.ora文件中的服務名稱,有的話就是使用相應的名稱,若沒有,則使用空,什么也不填寫,如圖2,大致目錄D:\Softs\Oracle\product\11.2.0\dbhome_1\NETWORK\ADMIN下面tnsnames.ora 如圖1

圖1

 

圖2

 
2 將數據庫中system用戶與sys用戶的表導出
   exp wlj/wlj@orc file=d:exportoracle.dmp owner=(system,sys)
3 將數據庫中的表inner_notify、notify_staff_relat導出
    exp wlj/wlj@orcl file= d:exportoracle.dmp tables=(inner_notify,notify_staff_relat)
4 將數據庫中的表table1中的字段filed1以"00"打頭的數據導出
   exp  wlj/wlj@orcl  file=d:exportoracle.dmp tables=(table1) query=" where filed1 like '00%'"
  上面是常用的導出,對於壓縮,既用 winzip把dmp文件可以很好的壓縮。
  也可以在上面命令后面 加上 compress=y 來實現。
 

數據的導入

1 將d:exportoracle.dmp 中的數據導入 TEST數據庫中。
   imp wlj/wlj@orcl file=d:exportoracle.dmp
   imp  wlj/wlj@orcl full=y  file=d:exportoracle.dmp ignore=y

 --impdp導入數據
  impdp CCENSE/CCENSE@OracleDB directory="dpdata1" dumpfile="oracleExpdp.dmp" logfile = oracleImpdp20161103.log FULL=y;

 

   如果出現問題,可能是因為有的表已經存在,然后它就報錯,對該表就不進行導入。
   在后面加上 ignore=y 就可以了。
2 將d:exportoracle.dmp中的表table1 導入
imp  wlj/wlj@orcl   file=d:exportoracle.dmp  tables=(table1)
 
注意:基本上上面的導入導出夠用了。不少情況要先是將表徹底刪除,然后導入。
 
注意:1、操作者要有足夠的權限,權限不夠它會提示。
           2、數據庫是可以連上的。可以用tnsping orcl 來獲得數據庫orcl能否連上。
 
 
當然,上面的方法在導出數據時可能會導出很大的包,那是因為你的用戶可能在授權的時候授予了DBA的權限,所以可以采用下面方法來進行數據庫備份:
 
數據庫備份
建議系統過渡后,每周進行一次備份。或者在數據表發生重大改變前,對要改變的數據表進行備份。
執行以下步驟,進行備份。
在命令行里,敲入“cmd”,回車,進入命令行窗口。
在窗口中,輸入:
exp mas/123456@mas
 
系統提示:輸入數組提取緩沖區大小: 4096 >
可以直接回車;
  www.2cto.com 
系統提示:導出文件: EXPDAT.DMP>
此處輸入導出文件的位置,其路徑必須存在, Oracle在這里不會自動建立路徑,但可以建立文件名。備份文件以dmp作為后綴。
輸入內容如:e:\work\mas_db_090925v1.dmp 回車
 
系統提示: (1)E(完整的數據庫),(2)U(用戶) 或 (3)T(表): (2)U > u
此處可以輸入u,也可以直接回車,因為系統此時默認的是U
 
系統提示:導出權限(yes/no):yes>回車
 
系統提示:導出表數據(yes/no):yes>回車
 
系統提示:壓縮區(yes/no):yes>回車
 
系統提示:要導出的用戶: (RETURN 以退出) > mas
 
系統提示:要導出的用戶: (RETURN 以退出) > 回車
 
此時系統會自動進行備份.
 
 
 
 
 
  
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM