Oracle 10g为我们提供了expdp命令来将数据库数据导出到文件,因此我们可以使用脚本来实现数据定时导出文件的功能,其步骤如下:
1、创建脚本文件,并保存为exportOracle.bat
2、配置expdp导出命令
其命令示例如下:
expdp system/pwd directory=pms_backup_schema dumpfile=%date:~0,10%exp.dmp logfile=%date:~0,10%exp.log schemas=pmsuser job_name=exp_test_schema
(注意:以上所有代码都写在一行)
以上黑体部分为可替换字符,其说明如下:
system
具有导出权限的用户名
pwd
上述用户密码与用户名使用“/”连接
pms_backup_schema
oracle的目录空间对象名
%date:~0,10%exp.dmp
该字符串指示了导出文件的文件名,“%”之间为系统日期变量,并格式化为从0字符开始的10个字符大小。例如2006年11月30日 星期四,格式化为2006-11-30。
%date:~0,10%exp.log
该字符串指示了导出日志的文件名,规则同上
pmsuser
表空间名
exp_test_schema
作业名
3、复制导出文件到临时文件夹
命令示例如下:
e:
cd E:/oracle/pmsSchemaBackup
copy %date:~0,10%exp.dmp temp/%date:~0,10%exp.dmp
(注意:以上代码分三行)
以上黑体部分为可替换字符,其说明如下:
e:
进入导出文件所在盘符
cd E:/oracle/pmsSchemaBackup
进入导出文件所在文件夹
copy %date:~0,10%exp.dmp temp/%date:~0,10%exp.dmp
复制已导出的文件到temp下,文件名规则同上
4、建立FTP服务器
在源机器(比如数据库所在服务器)或目标机器(比如需要同步备份到的机器)上使用IIS搭建FTP服务器,并设置相应的目录指向和权限。
如在目标机器搭建FTP服务器,将目录指向即将存放备份文件的路径,并使目录可写,这样做的优点是同步执行脚本处于同一机器,有利于统一管理。
如在源机器搭建FTP服务器,则只需将目录指向导出文件所在路径,开放读取权限即可,但以下的脚本需要运行在目标机器上。
这里使用了目标机器搭建FTP服务器。
5、建立FTP操作脚本
创建一个新文件,并命名为ftpup.src,其内容如下:
open 127.0.0.1
user oracleBackup
password
put E:/oracle/pmsSchemaBackup/temp/*EXP.DMP
close
quit
(注意:以上代码分行是必须的)
以上黑体部分为可替换字符,其说明如下:
open 127.0.0.1
登录指定IP的FTP服务器
user oracleBackup
用户名
password
该行必须位于单独一行,为密码
put E:/oracle/pmsSchemaBackup/temp/*EXP.DMP
上传temp目录下所有的文件
close
关闭连接
quit
退出
6、在exportOracle.bat中加入FTP操作脚本
在exportOracle.bat后追加代码:
ftp -n -s:E:/oracle/pmsSchemaBackup/ftpup.src
黑体部分为步骤5创建的ftpup.src文件的绝对路径
7、删除临时文件
命令:
del temp/*exp.dmp
以删除temp的临时文件
8、建立计划任务
打开windows计划任务,新建一个计划,设定运行文件为exportOracle.bat,并设置相应的时间间隔。
如果选择了源机器搭建FTP数据库,则需要在源机器和目标机器上分别建立计划任务。