技术分享
利用Windows中自带的定时任务为oracle数据库定时备份(附oracle数据库导出导入命令)
2018-01-30
一、步骤
1、oracle数据库导出命令
2、将此命令做成.bat可执行文件
3、将此可执行文件放入Windows定时任务中
4、以上三步就已经完成数据库的定时备份工作,这一步顺便说一下如何将oracle数据库备份文件再还原到数据库中
二、实操
1、oracle数据库导出命令:
exp system/manager@orcl file=d:\erds.dmp owner=(erds);
账户名 密码
以上命令的意思是:利用用户名为system的用户,导出用户名为erds的用户中的所有表、函数以及存储过程等,导出的文件名为erds.dmp,该文件会存储在d盘的根目录下。
注意:
导出任何dmp文件,我们都需要用一个有权限的用户导出(这里你可以简单的理解为用刚刚安装数据库时系统自带的用户比如:sys用户、system用户)
黑窗口直接输入命令
2、将上面的命令制作成.bat可执行程序:
很简单,新建一个文本文档,然后把上面的数据库导出命令复制进去,回车再加一句exit;然后保存,然后将文本文档的扩展名改成.bat 改完之后双击它,他就会直接打开黑窗口执行数据库导出命令。如下图:
3、将此可执行文件放到Windows定时任务中
直接上图:
附件——系统工具中有一个任务计划程序,点开它
点击创建基本任务,一直下一步就可以了
下一步
选择你第2步做的bat启动程序,然后完成就ok了。
三、结束
通过上面的操作,数据库中的数据就能实现每天定时备份,如果需要将备份的数据还原到数据库中,请按以下操作:
1、将数据库备份产生的dmp文件的导入到oracle数据库中
imp erds/1@orcl file=d:\erds.dmp full=y ignore=y log=d:\daochu.log
以上命令的意思是将d盘中的erds.dmp文件,“导入到用户名为erds的用户中“(这里加了引号,原因往下看),full=y为全部导入,ignore=y 为忽略一些错误,log=d:\daochu.log 导出日志。
erds.dmp中的所有内容的所有者(owner)是erds这个用户,那么问题来了,如果我执行如下语句会发生什么?
imp erds_new/1@orcl file=d:\erds.dmp full=y ignore=y log=d:\daochu.log
执行这句话之后表不会导入到erds_new 用户中,而是会继续导入到erds用户中(因为erds.dmp中的所有内容的所有者(owner)是erds这个用户的),那么如何解决?如下
imp erds_new/1@orcl file=d:\erds.dmp fromuser=erds touser=erds_new ignore=y log=d:\daochu.log
fromuser:旧的拥有者
touser:新的拥有者
从这些命令可以看出 imp后面跟的用户名并不是用来指定导入的目标用户的,它仅仅是一个拥有导入权限的用户而已,所以最上面对命令解释上我有一句加了引号。

- 标签:
-
容灾备份