Oracle版本:11.2.0.4
操作系统:Windows server 2012 R2
目标端创建dblink
目标端登录dmp用户创建dblink:
create database link MHJ46
connect to sys identified by “password”
using ‘(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.10.46)(PORT = 1521)))(CONNECT_DATA =(SERVICE_NAME = db)))’;
目标端创建导出目录:
create directory mhj46 as ‘D:\DMP\MHJ46’;
grant read,write on directory mhj46 to dmp;
导出脚本
@echo off
set dumpname=DCMHJ_%date:~0,4%%date:~5,2%%date:~8,2%%time:~0,2%%time:~3,2%%time:~6,2%
set dumpname=%dumpname: =%
expdp dmp/hmllllll network_link=MHJ46 schemas=utest dumpfile=%dumpname%.dmp logfile=%dumpname%.log directory=mhj46 compression=ALL
pause
forfiles /p "D:\DMP\MHJ46" /s /m *.dmp /d -60 /c "cmd /c del @path"
forfiles /p "D:\DMP\MHJ46" /s /m *.log /d -60 /c "cmd /c del @path"
脚本说明:
1、dmp是目标端的导出用户
2、utest是源端服务器需要备份的用户
问题描述:
导出的时候提示如下错误:
ORA-31631:需要特权
ORA-39161:完整数据库作业需要特权
问题原因:
源端服务器utest用户没有导出导入的权限
问题解决:
在源端服务器执行以下语句:
grant exp_full_database,imp_full_database to utest;