oracle的数据导出与恢复工具多种多样。最常用的是exp和imp指令:
exp user/pass@orcl file=d:\data\test.dmp full = y(导出整个数据库)
exp user/pass@orcl file=d:\data\test.dmp owner=(system,sys)(导出用户system和sys下面的表)
exp user/pass@orcl file=d:\data\test.dmptables=(tab1,tab2)(导出表tab1,tab2)
exp user/pass@orcl file=d:\data\test.dmptables=(tab1) query=\" where filed1 like '00%'\"(表tab1中符合某条件的行)
对应的imp语句:
impuser/pass@orcl file=d:\data\test.dmpfull = y/tables=(tab1)
在oracle10g之后,增加了两个工具impdp和expdp。这两个工具执行非常快而且对于clob和blob的支持非常好。
需要注意的是这两个命令都是服务端的命令:导入导出的文件放到服务器端。
必须现在服务器上建立directory 并且给用户分配权限。之后导出的文件和导入的文件都在这里。
使用impdp需要注意3点
1:在数据库服务器上建立 directory 并授读写权给 相关用户 ,如system。
create directory dmp_dir_rpt as '/datafs02';--'/datafs02必须 为实际存在 文件路径。
grant read,write on directory dmp_dir_rpt to system;
2:将dmp文件需要上传到新建的 directory 里。
3:执行impdp命令。
impdp system/ora123@oracl directory=dmp_dir_rpt schemas=db007_owner dumpfile=dzys_2013_5_W.dmp logfile=impdp_dzys_2013_5_W.dmp.log
如果不是windows,建议作以下处理
1,用操作系统的root 用户 给 oracle 用户授权,授予对 /data/zdback 目录的读写权限。
2,或者将 directory 指向 oracle 安装目录下的一个文件目录。oracle拥有读写权限的目录。
在windows系统中对数据库的每日备份可以建任务计划:执行的批处理命令如下:
Set dd=%date:~0,10% ::变量dd=日期的第1位到第10位(年月日)
set /a tm1=%time:~0,2% ::变量tml=时间的前两位(时)
if %tm1% LSS 10 set tm1=0%tm1% ::若tm1<10 (10点前),则前面补0
Set tm2=%time:~3,2% ::变量tm2=时间的第4、5位(分)
Set tt=%tm1%点%tm2%分 ::变量tt= tm1 点 tm2 分
expdp user/pass@orcl directory=diret1 dumpfile="HMERP%date:~0,4%%date:~5,2%%date:~8,2%%tm1%%time:~3,2%.dmp" schemas=scemas1
md "E:\数据库备份\%dd%_%tt%" ::创建目录"E:\数据库备份\%dd%_%tt%"
copy "\备份目录\" "\目标目录\" ::/复制数据库到备份目录/
有别的需要可以自己定义。