使用expdp和impdp导出导入远程oracle数据.dmp文件

  1. 创建目录:create directory dpdata as ‘d:\dpdata’; 保证在磁盘中有该目录
  2. 给用户赋予制定目录的操作权限(使用sys用户登录): grant read, write on directory dpdata to 用户名称;
  3. 查询目录:select * from dba_directories;
  4. 创建link,注意要是public:create public database link link_name connect to 用户名 identified by “密码” using ‘远程IP’;
  5. 相同用户导入:impdp 用户名/密码 DIRECTORY=dpdata DUMPFILE=export.dmp SCHEMAS=用户名
  6. 不同用户导入,从a导入到b:impdp a/密码 DIRECTORY=dpdata DUMPFILE=export.dmp REMAP_SCHEMA=a:b EXCLUDE=USER
  7. 导出.bat文件如下:
echo 备份开始
::设置数据库连接用户(本地)
set user=用户名
::设置数据库连接用户密码(本地)
set password=密码
::设置数据库名称(本地)
set database=orcl
::设置schemas(远程)
set sche=a
::备份文件的实际路径
set actualdirtory=D:\dpdata
::设置导出文件夹名称(数据克已经授权的对象名称)
set expdirtory=dpdata
::设置network_link
set networklink=link_name
::设置tnsname(本地连接远程数据的连接名称),用于名称
set tnsname=远程地址
rem 创建时间,格式为20180816143108(年月日时分秒) 2018/08/24 周五19:05:20.79
set datevar=%date:~0,4%%date:~5,2%%date:~8,2%
rem 处理小时一位的问题
set hourvar=%time:~0,2%
if /i %hourvar% LSS 10 (
	set hourvar=0%time:~1,1%
)
rem 设置文件名格式
set datevar=%date:~0,4%%date:~5,2%%date:~8,2%%hourvar%%time:~3,2%%time:~6,2%
::若备份文件存在,先删除
if exist "%actualdirtory%\%sche%_%tnsname%_%datevar%.dmp" (
	del %actualdirtory%\%sche%_%tnsname%_%datevar%.dmp
)
rem 导出
expdp %user%/%password%@%database% schemas=%sche% DIRECTORY=%expdirtory% dumpfile=%sche%_%tnsname%_%datevar%.dmp network_link=%networklink% 
echo 备份结束

你可能感兴趣的:(Oracle)