oracle windows下使用批處理進行exp匯出

清風艾艾發表於2016-05-19
  對於資料庫來說,只要有需求,就有對應的方法來滿足。在linux、AIX等型別的伺服器上,我們可以使用命令列寫oracle相關的exp匯出、匯入,其實在windows下,我們利用CMD一樣可以實現。這裡舉一個比較簡單的例子供參考!
 如果,要匯出的是本地的庫很簡單,只要確保win下,資料庫相關的服務啟動:

 需要注意的是:雖然資料庫服務啟動了,但是要求資料庫是Open的。
 需要我們手動準備個.bat處理檔案,我的批處理檔案內容如下:
@echo off
set path=C:\oracle\product\11.2.0\dbhome_1\bin
set ORACLE_HOME=C:\oracle\product\11.2.0\dbhome_1
set ORACLE_SID=oradb
set NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
exp "scott/oracle" file=c:\oracle\oracle_11g.dmp owner=scott
pause>nul
  注意:這裡其實與在linux、aix下是一樣的,設定oracle相關的環境變數,尤其注意字符集的設定;如果,你在系統環境變數已經設定的話,這裡可以不設定,但是字符集還是需要設定的。
 下面是批處理檔案的實驗過程及結果:
 批處理檔案執行過程:

 匯出檔案:

 如果,要匯出的是遠端庫的話,就需要配置本地的TNS,新增遠端資料庫的服務名,如下:
#oradb是我本地的資料庫服務名
#ORADBRH是遠端伺服器上oracle資料庫的服務名
ORADB =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 3t5dq72)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = oradb)
    )
  )

ORACLR_CONNECTION_DATA =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
    )
    (CONNECT_DATA =
      (SID = CLRExtProc)
      (PRESENTATION = RO)
    )
  )

ORADBRH =
(DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST =192.168.56.10)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = oradb)
    )
)
 TNSPING測試TNS服務是否可用

 適當修改.bat檔案:
@echo off
set path=C:\oracle\product\11.2.0\dbhome_1\bin
set ORACLE_HOME=C:\oracle\product\11.2.0\dbhome_1
set ORACLE_SID=oradb
set TNS_ADMIN=C:\oracle\instantclient_11_2
set NLS_LANG=AMERICAN_AMERICA.UTF8
exp "test/test"@ORADBRH   file=c:\oracle\oracle_11g_sh.dmp owner=sh
pause>nul
  下面是.bat執行過程:

 匯出遠端資料庫資料到本地的檔案:

 需要注意的是:本地導遠端的資料,需要遠端的資料庫監聽啟動。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29357786/viewspace-2103083/,如需轉載,請註明出處,否則將追究法律責任。

相關文章