一、使用bat批处理文件备份oracle(前提是配置好oracle数据库客户端)
@echo off
set databasename=orcl //数据库名
set username=ninic //用户名
set password=***//密码
set connect=%username%%password%@%databasename% //获取数据库的连接
set back_path=d:\oracledatabackup //存放备份文件的路径
if not exist %back_path% md %back_path% //如果在此路径下不存在文件夹,则创建一个
set date_string=%date:~0,4%_%date:~5,2%_%date:~8,2% //表示日期年月日
set time_hour=%time:~0,2% //小时
//如果小时少于两位数,在前面补0
if "%time_hour%"==" 0" set time_hour=00
if "%time_hour%"==" 1" set time_hour=01
if "%time_hour%"==" 2" set time_hour=02
if "%time_hour%"==" 3" set time_hour=03
if "%time_hour%"==" 4" set time_hour=04
if "%time_hour%"==" 5" set time_hour=05
if "%time_hour%"==" 6" set time_hour=06
if "%time_hour%"==" 7" set time_hour=07
if "%time_hour%"==" 8" set time_hour=08
if "%time_hour%"==" 9" set time_hour=09
set time_string=%time:~0,2%_%time:~3,2%_%time:~6,2% //表示时间时分秒
set file_string=%back_path%\data_%date_string%_%time_string% //以时间为文件命名
exp ‘%connect% as sysdba ’ file=%file_string%.dmp tables=(Node,NodeInfo,NodeData)
index=y grants=y constraints=y compress=y
//(1)‘%connect% as sysdba ’ 这里这样写是因为我是以sysdba的身份登录的,如果不这样写的话,回事默认以normal身份登录的,这样就没办法登录,如果你是normal身份就直接写%connect%
//(2)后面所有的参数就不一一解释了,根据自己的需要添加,如果想知道每个参数的意思,在dos命令下写 exp help=y 便可看到。
//(3)注:由于ORACLE默认的表名都是不区分大小写,在创建表时,在数据字典中存储的表名为大写。在有些情况下,如果创建的表在表名上加上双引号("),则创建的表其表名在数据字典中不作转换。这样的话上面的tables里面就不能那样写,而是:
//(4)tables='\"Node\"','\"NodeData\"','\"NodeInfo\"','\"Orgnize\"'
"c:\Program Files\7-Zip\7z.exe" a -tzip %file_string%.zip %file_string%.dmp
//上面是我对备份的文件进行了压缩,你如果不压缩用可以不用写(我使用的是7-Zip来压缩文件,所以如果你要用到这一行,你就得下载一个7-Zip压缩软件)
del %file_string%.dmp //删除原来的dmp文件
二:在windows7下面设置定时自动执行任务
开始-》程序-》附件-》任务计划程序-》操作-》创建基本任务-》添加名称(oraclebackup)-》每天-》设置程序运行时间-》点击启动程序
(注:如果你想删除这一任务,点击“任务计划程序库”,在中间一栏找到你刚创建的任务,右击鼠标选择删除就行)
三、上传文件到FTP服务器
echo open IP地址>ftp.up
echo 用户名>>ftp.up
echo 密码>>ftp.up
echo bin>>ftp.up //二进制
echo cd .\dbback>>ftp.up //切换到ftp服务器上你要上传文件的文件夹下
echo put 上传的文件>>ftp.up
echo bye>>ftp.up
ftp -s:ftp.up
del ftp.up /q
pause