欢迎您访问我爱IT技术网,今天小编为你分享的电脑教程是:远程定时备份服务器Oracle数据库到本地,在平时使用电脑中总免不了某些软件的激活、甚至备份等,比如:辛辛苦苦写的程序没做好备份丢失了,那是很难受的事儿。本文针对这些诸多问题,由我爱IT技术网电脑教程小编,精心整理并收集网络上这些有用的知识分享给大家,注意知识来源于互联网,是有用的知识收集整理,如果你觉得有侵犯你的权利的,请你及时联系本站的相关负责人,我们会在第一时间为你处理,谢谢你的配合!
远程定时备份服务器Oracle数据库到本地
对于数据库而言,数据的完整与安全是十分重要的。定期备份数据库以备在数据库发生故障的时候能够及时恢复减少损失。当然数据库备份的执行时间以其使用的低峰期为宜,这个时间通常很难有管理员值守。为了节省人力物力,同时确保数据库安全,要实现数据库的定时自动备份。注意,此处指的是远程(异地)备份,存储数据库备份文件的客户端计算机为Windows系统,利用.dmp文件导出,数据库服务器与客户端在同一局域网段内。

前期准备工作(包括相关工具或所使用的原料等)
软件:Oracle database 11g express edition软件:PL/SQL Developer确保数据库配置正确
首先确保计算机中已经安装正确的数据库软件版本(一些精简版Oracle客户端中没有exp导出和imp导入的可执行文件,无法执行导入导出数据库的操作,可以安装Oracle database 11g express edition)。Oracle官方的下载地址是:http://www.oracle.com/technetwork/cn/products/express-edition/downloads/index.html
依次按向导安装Oracle database 11g express edition,此处不再赘述安装步骤。







我们使用的是其“数据库即时客户端”Instant Client作为客户端,在X:\(数据库安装目录)\network\admin目录下建立(如果有则修改)tnsnames.ora文件,在tnsnames.ora中输入以下内容:
【Oracle11g 以下版本数据库】
orcl=
(DESCRIPTION=
(ADDRESS_LIST=
(ADDRESS=(PROTOCOL=TCP)(HOST= 192.168.200.1)(PORT=1521))#←注意此处填写数据库的主机地址
)
(CONNECT_DATA= (SID= ORCL) (SERVER=DEDICATED) )
) #←注意此处填写数据库的SID
【Oracle11g 版本数据库】
ORCL9.1=
(DESCRIPTION=
(ADDRESS_LIST=
(ADDRESS=(PROTOCOL=TCP)(HOST=10.14.9.1)(PORT=1521))
)
(CONNECT_DATA=
(SERVICE_NAME=orcl)
)
)

检查一下PLSQL Developer菜单中的“工具”-“首选项…”-“Oracle”-“连接”,如果“Oracle主目录名(自动检测为空)”已经填入“X:\(数据库安装目录)\”,“OCI库(自动检测为空)”已经填入“X:\(数据库安装目录)\oci.dll”。你就可以使用PLSQL Developer访问这个数据库了。尝试用PL/SQL Developer登录这个数据库,如果可以正常登录则可以进行下一步操作,否则请检查配置是否有误。

为定时备份数据库的功能编写脚本
定时备份数据库所导出的.dmp文件名以按照时间自动命名的规则为宜。
自动备份的数据库.dmp文件会随着时间推移而越来越多,在脚本中添加删除过期文件的语句可避免这一问题。
在为.dmp文件命名时要特别注意,在windows7以上的操作系统版本中(以中文系统为例),时间显示的格式为:2014/11/10 周一,由于有斜线的存在,导致文件无法命名致使备份失败。Windows xp系统中,时间格式为”2014-11-10”。

为避免文件名格式错误所导致的备份失败,文件名中的日期应截取其中的数字部分,忽略斜线,按照图中格式输出。依此格式输出的时间为:20141110 。

创建一个.bat格式的命令行批处理文件。注意文件路径是否正确。
批处理脚本如下:
@echo off
::备份数据库文件到本地 (文件路径要事先创建好。)
exp ocsdbuser/ocsdbuser@orcl file=D:\dbbak\oracle%date:~0,4%%date:~5,2%%date:~8,2%.dmp log=D:\dbbak\oracle%date:~0,4%%date:~5,2%%date:~8,2%.log
::在此目录下删除最后修改日期在10天前的文件(此处天数d -10可自行修改)
forfiles /p "d:\dbbak" /d -10 /c "cmd /c echo deleting @file ... && del /f @path"
可先将以上指令执行一次,测试是否能够成功执行,如果执行成功则可以将其通过定时计划任务自动定时执行。

以下材料作为参考:
.dmp文件导出使用示例
1 将数据库SampleDB完全导出,用户名system 密码manager 导出到E:/SampleDB.dmp中
exp system/manager@TestDB file=E:/sampleDB.dmp full=y
此时数据库中所有的表、视图、存储过程等全部导出并保存。
2 将数据库中system用户与sys用户的表导出
exp system/manager@TestDB file=E:/sampleDB.dmp owner=(system,sys)
3 将数据库中的表 TableA,TableB 导出
exp system/manager@TestDB file=E:/sampleDB.dmp tables=(TableA,TableB)
4 将数据库中的表tableA中的字段filed1 值为 "王五" 的数据导出
exp system/manager@TestDB file=E:/sampleDB.dmp tables=(tableA) query=' where filed1='王五'
为脚本设置定时任务
本机中打开控制面板→管理工具→计划任务程序,菜单中选择操作→创建任务;
为了保证计算机在操作者长时间离开状态亦能备份数据库,可选择“不管用户是否登录都要运行”选项。

选择“触发器”选项卡,新建触发器,以从11月10日起每周一20点整备份数据库为例,一次设置开始任务的条件(按预定计划)、设置每周一次、设置开始时间和开始日期。高级设置中可根据实际情况按需设置,点击确定以保存触发器。
如果计划每天备份数据库一次,则可以选“每天”。

选择“操作”选项卡,新建所需操作。选择 启动程序,打开之前创建的.bat批处理文件,点击确定以保存操作。

其他选项卡中的配置选项可以按需配置。点击确定以保存。


输入账户信息以确认。此时可以等待计划任务即定时间到后,查看是否正确按时备份了数据库。

注意事项
此处指的是远程(异地)备份,存储数据库备份文件的客户端计算机为Windows系统,利用.dmp文件导出,数据库服务器与客户端在同一局域网段内。如果想要导出的是SQL脚本等,可以用PL/SQL Developer中的导出功能。确保计算机中已经安装正确的数据库软件版本。一些精简版Oracle客户端中没有exp导出和imp导入的可执行文件,无法执行导入导出数据库的操作,可以安装Oracle database 11g express edition。通过 %date% 所生成的时间格式因系统版本的不同而不同,中文版和其他语言版本有所区别,Windows XP 和 Windows 7 以上亦有差别。批处理命令中删除过期文件的语句的处理方式比较简单粗暴,即删除修改时间在指定天数之前的所有文件。如果有其它需求可参阅其他资料,修正此.bat脚本。当然也可以用vbs脚本执行相关的操作,具体方法可自行研究;对于将Oracle数据库导出到Linux等其它系统中的方法也请自行查阅资料,它们在脚本上(比如shell)和定时任务的设置上都是不同的。导入应用程序的dmp文件版本不能比用于创建转储文件的导出应用程序的版本老。本文仅供参考,如果您需解决具体问题(尤其法律、医学等领域),建议您详细咨询相关领域专业人士。作者声明:本文系本人依照真实经历原创,未经许可,谢绝转载。以上就是关于远程定时备份服务器Oracle数据库到本地的分享,如果你有更好的经验或者补充,请在下面评论框中发表你的答案。
- 评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
-
