天天看點

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

oracle備份+還原資料庫

圖1

oracle備份+還原資料庫

圖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 以退出) > 回車

此時系統會自動進行備份.

學而不思則罔,思而不學則殆

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

oracle備份+還原資料庫

圖1

oracle備份+還原資料庫

圖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