Oracle自动备份详细步骤
背景:Oracle10g 服务器,Oracle10g 客户端,windowsXP 操作平台
要求:Oracle 数据库服务器对数据库 ytcn 每天自动备份一次。
解决方案:利用任务计划、批处理文件和 Oracle 的 exp 导出功能,根据日期自动生成 Oracle 备份文件。
详细步骤: 1 创建批处理文件 ytcn.bat
ytcn.bat中详细内容如下:
exp ytcn/ytcn file=C:\test\ntsmsall_bak_%date:~0,10%-%time:~0,2%-%time:~3,2%.dmp log=C:\test\ntsmsall_log_%date:~0,10%-%time:~0,2%-%time:~3,2%.log owner=ntsmsall
exit
其部分是根据需要进行变动的地方,例如作者的项目名“银通网”,数据库 ytcn 用户名 ytcn,密码 ytcn,要在目录 "e:/bak/ytcn/oracle/" 下生成形如 "ytcn20090711.dmp" 和 "ytcn20090711.log" 的备份和日志文件,全表导出。 另外:%date%的值在不同的系统、语言版本下可能是不一样的,控制面板里面区域选项的设定也会改变%date% 的值。请先在命令行中测试echo %date% 的返回值。%date:~4,10% 是返回日期函数,~后的第一个参数是要截取的起始位置(从0开始),第二个参数是要截取的长度,如没有则是截取到最后,参数可酌情修改。如需要准确的时间做为文件名,请用%time%函数,参数同上。
2 添加一个任务计划 ytcn 开始 >所有程序 >附件 >系统工具 >任务计划 >添加任务计划 >下一步 >在 浏览中查找刚刚写好的 ytcn.bat 文件 >任务名输入ytcn,执行这个任务选择每天,下一步 >起始时间下午12:00,起始日期2009-7-11,下一步 >输入用户名及密码,用户名要求是管理员权限用户名,下一步 >完成 点击"完成"之后,会在任务计划栏目下新增一个名为"ytcn"的任务计划,表明已经配置完毕。 备注:有时点击"完成" 之后,系统警告 "已创建新任务,但可能不能运行,因为无法设置账户信息。
指定的错误:
Ox80041315:任务计划程序服务没有运行" 这是因为电脑的任务计划程序服务没有启动起来。开始 >所有程序 >管理工具 >服务,找到"Task Scheduler"服务,发现启动类型为"已禁用",右键单击更改为"自动",并把它启动起来,然后重新添加一次任务计划 ytcn 就可以了。
我的使用:
从数据库系统C:\Program Files\WinRAR中拷贝Rar.exe文件到 C:\WINDOWS\system32中
set filename=C:\DataBack\pb_%date:~0,10%
exp pb_lyb/woaiwan1020 file=%filename%.dmp log=%filename%.log owner=pb_lyb
rar a -df %filename%.zip %filename%.dmp %filename%.log
PAUSE
set一个路径,开始导出数据库,压缩文件,并使用 df 命令删除源文件。PAUSE:使用window窗口执行时页面保留不关闭。
数据库还原:
set filename=C:\DataBack\pb_%date:~0,10%
rar x %filename%.zip C:\
imp pb_lyb/woaiwan1020 ignore=y full=y file=%filename%.dmp log=%filename%.log
PAUSE
ignore参数
Oracle在恢复数据的过程中,当恢复某个表时,该表已经存在,就要根据ignore参数的设置来决定如何操作。
若ignore=y,Oracle不执行CREATE TABLE语句,直接将数据插入到表中,如果插入的记录违背了约束条件,比如主键约束,则出错的记录不会插入,但合法的记录会添加到表中。
若ignore=n,Oracle不执行CREATE TABLE语句,同时也不会将数据插入到表中,而是忽略该表的错误,继续恢复下一个表。
FULL=y 编码问题
本文出自 “记下就对了” 博客,请务必保留此出处http://jueshizhanhun.blog.51cto.com/4372226/1008156