oracle没有sysdba使用expdp(数据泵)方式导出数据到本地还原

本文详细描述了如何在一个没有sysdba权限的Oracle集群环境中,通过expdp数据导出方式安全备份数据库。涉及步骤包括创建dblink连接,设置备份目录,应用目录权限,以及使用批处理脚本定期备份并自动清理旧文件。
摘要由CSDN通过智能技术生成

业主集中管理方式得oracle数据库集群,要求项目自己备份数据库。

因为oracle集群里有包含很多项目,不能给项目sysdba账号,也没有权限登录oracle所在服务器,所以采用了expdp数据导出的方式进行备份,其中用到了database link。

这里需要在备份执行端也具备服务。

从备份执行端进行操作

一、进入sqlplus

sqlplus / as sysdba

二、创建dblink (从备份执行端连到要备份数据库的服务端)。

这里有点要注意 要用public来创建,否则后面在执行expdp时会出现找不到network_link参数值的情况。错误应该是”参数值无效:*******“

create public database link linkname connect to username identified by "password"
using '(DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.129.129)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = orcl)))';

三、在oracle创建一个备份目录(我这里测试的服务端是WINDOWS);

create or replace directory bak_dir as 'D:\production_bak';

四、为账号应用目录赋权;

grant read,write on directory bak_dir to username;

五、执行expdp程序进行备份测试;

expdp username/"password"@orcl directory=bak_dir network_link=to_production dumpfile=test01.dmp logfile=test01.log

备注使用bat(批处理)脚本定期备份;

set filename= filenames_%date:~0,4%%date:~5,2%%date:~8,2%
expdp username/"password"@orcl directory=bak_dir network_link=to_production dumpfile=%filename%.dmp logfile=%filename%.log 


set "SrcDir=D:\production_bak"
set "DaysAgo=15"
forfiles /p %SrcDir%  /m *.dmp /d -%DaysAgo% /c "cmd /c  del /f  @path"
forfiles /p %SrcDir%  /m *.log /d -%DaysAgo% /c "cmd /c  del /f  @path"

  • 12
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值