logo资料库

Oracle数据库在Windows2008中的自动备份脚本及配置说明.docx

第1页 / 共9页
第2页 / 共9页
第3页 / 共9页
第4页 / 共9页
第5页 / 共9页
第6页 / 共9页
第7页 / 共9页
第8页 / 共9页
资料共9页,剩余部分请下载后查看
Oracle数据库在Windows2008中的备份脚本
Oracle 数据库在 Windows2008 中的备份脚本 本文所使用的环境为: 操作系统:Windows server 2008 R2 数据库软件:oracle 11g 11.2.0.3 一、本地备份 本次项目的数据库备份使用 oracle 自带的 expdp 和 exp 工具,其中 expdp 又称为数据泵, 具有数据传输快,可使用多线程的特点。适用于大数据量的表和数据库。但只能在数据库服 务器本地使用。 使用方法参考下面的步骤: 1、 在备份文件所放置的硬盘下建立一个 db_backup 文件夹。如本次使用的目录为: C:\db_backup。然后在数据库中设置该目录的虚拟目录: create directory dir_dp as 'C:\db_backup'; 本次创建的虚拟目录名为:dir_dp 本例子导出的用户使用的是 sys,所以不需要赋权。 如果是其他用户导出,则需要授予该目录的读写权限,如下语句: Grant read,write on directory dir_dp to XXXX; 在 db_backup 文件夹下建立一个文本文档,如 expdp.txt,编辑该文档加入以下内容: @echo off set RAR_CMD="C:\Program Files\WinRAR\WinRAR.exe" set FILENAME=oracle set hour=%time:~,2% if "%time:~,1%"==" " set hour=0%time:~1,1% //设置 dmp 的文件名以实时时间结尾 //产生的 dmp 文件名头一个字段 //rar 压缩程序安装位置
set TIMESTYLE=%date:~0,4%-%date:~5,2%-%date:~8,2%-%hour%-%time:~3,2%-%time:~6,2% set FILEPATH=%FILENAME%_%TIMESTYLE%.dmp set LOGPATH=%FILENAME%_%TIMESTYLE%.log set RARPATH=%FILENAME%_%TIMESTYLE%.rar echo ============================================ echo 正在备份 Oracle 数据库,请稍等...... echo ============================================ expdp '/ as sysdba' directory=dir_dp dumpfile=%FILEPATH% logfile=%LOGPATH% //schemas 是数据库的某一用户名,按需要修改; schemas=alfresco parallel=4 parallel 是任务的进程数,按服务器的性能适当修改 echo 备份完成! echo ============================================ echo 压缩备份文件,请稍等...... echo ============================================ %RAR_CMD% a -df "%RARPATH%" "%FILEPATH%" "%LOGPATH%" //将产生的备份 文件压缩 echo 压缩完成! echo ============================================ echo 正在计算压缩文件数量..... set f=rar for /f %%i in ('dir /b /s /a-d *.%f% ^| find "." /c') do set s=%%i echo %f% 文件数量有:%s% if %s% equ 8 (
for /f %%i in ('dir %p% /a-d *.%f% ^/b /od /tc') do del %%i /a /f &goto x :x echo 删除成功! //保留 7 天的备份文件,多于 7 天则删除前面的文件 ) 注意:复制入文本后将红色字的注释全部删除! 复制完毕,并按实际情况修改好后将文本的后缀名改为 bat,即可双击试运行。如下图: 正常运行完毕后,产生一个 rar 压缩包。如下图: 有条件也可把这个包复制 7 个,再运行一次脚本验证是否只保留 7 个备份文件。 自此,expdp 脚本编译完成。
下面设置 Windows 2008 的任务计划程序,打开位置如下图: 创建一个任务:
新建一个触发器,每天 0 点开始启动脚本,启用项打钩:
这里输入脚本的位置。注意:“起始于”这项一定要填上脚本文件所在的目录,否则 rar 压缩程序将不能执行。
自此,expdp 在 Windows 2008 下的配置完成,可以将系统时间调到快接近 0 点,验证 自动备份是否正常。 二、网络备份 因数据库服务器本身空间不是很够,有可能会将数据备份产生的文件放到另外的计算机 设备上,这种情况下我们使用 exp 工具。此时的计算机设备应该能和数据库服务器联网,并 且能够登录数据库。自动备份脚本如下: @echo off set RAR_CMD="C:\Program Files\WinRAR\WinRAR.exe" set USERNAME=alfresco //目标数据库用户名 set PASSWORD=alfresco //目标数据库用户密码 set SIDDISCRIBE=alfresco //对目标数据库的监听配置名 set CONDETION1=%USERNAME%/%PASSWORD%@%SIDDISCRIBE%
set FILENAME=oradata set hour=%time:~,2% if "%time:~,1%"==" " set hour=0%time:~1,1% set TIMESTYLE=%date:~0,4%-%date:~5,2%-%date:~8,2%-%hour%-%time:~3,2%-%time:~6,2% set FILEPATH=%FILENAME%_%TIMESTYLE%.dmp set LOGPATH=%FILENAME%_%TIMESTYLE%.log set RARPATH=%FILENAME%_%TIMESTYLE%.rar echo ============================================ echo 正在备份 Oracle 数据库,请稍等...... echo ============================================ exp userid=%CONDETION1% file=%FILEPATH% log=%LOGPATH% echo 备份完成! echo ============================================ echo 压缩备份文件,请稍等...... echo ============================================ %RAR_CMD% a -df "%RARPATH%" "%FILEPATH%" "%LOGPATH%" echo 压缩完成! echo ============================================ echo 正在计算压缩文件数量..... set f=rar
分享到:
收藏