且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

oracle windows下使用批处理进行exp导出

更新时间:2022-07-06 01:04:45

  对于数据库来说,只要有需求,就有对应的方法来满足。在linux、AIX等类型的服务器上,我们可以使用命令行写oracle相关的exp导出、导入,其实在windows下,我们利用CMD一样可以实现。这里举一个比较简单的例子供参考!
 如果,要导出的是本地的库很简单,只要确保win下,数据库相关的服务启动:
oracle windows下使用批处理进行exp导出
 需要注意的是:虽然数据库服务启动了,但是要求数据库是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相关的环境变量,尤其注意字符集的设置;如果,你在系统环境变量已经设置的话,这里可以不设置,但是字符集还是需要设置的。
 下面是批处理文件的实验过程及结果:
 批处理文件执行过程:
oracle windows下使用批处理进行exp导出
 导出文件:
oracle windows下使用批处理进行exp导出
 如果,要导出的是远程库的话,就需要配置本地的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服务是否可用
oracle windows下使用批处理进行exp导出
 适当修改.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执行过程:
oracle windows下使用批处理进行exp导出
 导出远程数据库数据到本地的文件:
oracle windows下使用批处理进行exp导出
 需要注意的是:本地导远程的数据,需要远程的数据库监听启动。