- 浏览: 221801 次
- 性别:
- 来自: 魔都
文章分类
最新评论
-
tsinglongwu:
顶,解决了获取Date单元格的内容问题,原来要转换成DateC ...
【转】JXL获取Excel单元格的日期(DateCell.getDate)与实际填写日期相差8小时的解决方法 -
alexyao8:
威武,今天刚遇到这个问题
【转】JXL获取Excel单元格的日期(DateCell.getDate)与实际填写日期相差8小时的解决方法 -
freeren:
...
利用JAVA Bean 反射得到set,get方法 -
pandengzhegt:
我也敬礼!
《Java Annotation 高级应用》 -
yingzhor:
好文! 敬礼!
《Java Annotation 高级应用》
方法一:
方法二:
1. AP服务器上建立c:\backup文件夹(文件夹路径客户自己选择) 2. 打开dbbkup.bat-->修改红字部分-->保存 exp [color=red]citictest/citictest@colm2 file=c:\backup\%date:~4,20%.dmp log=c:\backup\%date:~4,20%.log [/color] compress=y direct=n rows=y [color=red]owner='citictest'[/color] consistent=n constraints=y grants=y indexes=y triggers=y 3. 将dbbkup.bat放置于c:\backup文件夹之下 4. 控制面板-->任务计划-->添加任务计划-->选择程序以进行计划-->浏览-->选中dbbkup.bat-->每日执行-->选择时间-->输入用户名密码-->完成 5. 执行时间过了之后,c:\backup文件夹下面会出现yyyy-mm-dd.dmp命名的DUMP档案
方法二:
@echo off setlocal ENABLEDELAYEDEXPANSION ::读取配置文件 md %windir%\OracleAutoBackup >nul 2>nul set configFile=%windir%\OracleAutoBackup\config.ini set i=0 if not exist %configFile% echo.>%configFile% for /f "delims=" %%x in (%configFile%) do ( if !i!==0 set bak_hou=%%x if !i!==1 set bak_lot=%%x if !i!==2 set bak_dir=%%x if !i! gtr 2 ( set/a gup=!i!-2 set ora[!gup!]=%%x ) set/a i+=1 ) ::取默认值 if "!bak_hou!"=="" set bak_hou=3 echo !bak_hou!|findstr "^[0-9]*$">nul || set bak_hou=3 if "!bak_lot!"=="" set bak_lot=7 echo !bak_lot!|findstr "^[0-9]*$">nul || set bak_lot=7 if "!bak_dir!"=="" set bak_dir=%cd%\数据库备份 for /f "tokens=*" %%x in ("!bak_dir!") do set bak_dir=%%~fx if not exist !bak_dir! md !val! >nul 2>nul ::去掉格式错误的数据库连接配置项 set j=0 for %%i in (1,2,3,4,5,6,7,8,9) do ( set ora[%%i]>nul 2>nul&& ( set ora_cur= for /f "usebackq delims==. tokens=1-3" %%a in (`set ora[%%i]`) do set ora_cur=%%b set ora[%%i]= echo !ora_cur!|findstr "\/">nul 2>nul && echo !ora_cur!|findstr "@">nul 2>nul && ( set/a j+=1 set ora[!j!]=!ora_cur! ) ) ) ::进入管理程序 if "%1"=="" goto init ::检查exp命令是否可用 :checkexp set resultFile=%temp%\%random%.txt del %resultFile% /q>nul 2>nul exp a/a@a%random% file=%temp%\%random%.dmp >nul 2>%resultFile% if exist %resultFile% ( type %resultFile%|find "'exp' 不是内部或外部命令">nul if !errorlevel!==0 ( del %resultFile%>nul echo exp命令不可用!程序即将退出! ping -n 10 127.1 >nul 2>nul exit ) del %resultFile%>nul ) ::1.数据库备份 title 备份进程 echo. echo. echo 一、正在进行备份…… for %%i in (1,2,3,4,5,6,7,8,9) do ( set ora[%%i]>nul 2>nul&& ( set ora_cur= for /f "usebackq delims==. tokens=1-3" %%a in (`set ora[%%i]`) do set ora_cur=%%b set ora_usr= set ora_net= for /f "delims=/" %%a in ('echo !ora_cur!') do set ora_usr=%%a for /f "delims=@ tokens=2" %%a in ('echo !ora_cur!') do set ora_net=%%a echo. echo. echo %%i.正在备份 !ora_usr!/******@!ora_net!…… md !bak_dir!\!ora_net!__!ora_usr!\ >nul 2>nul set ftmr=!time: =0! set bak_cur_dir=!bak_dir!\!ora_net!__!ora_usr!\ set bak_cur_fnm=!ora_net!__!ora_usr!__!date:~0,4!!date:~5,2!!date:~8,2!-!ftmr:~0,2!!ftmr:~3,2! set bakfile=!bak_cur_dir!!bak_cur_fnm!.dmp set logfile=!bak_cur_dir!!bak_cur_fnm!.log exp !ora_cur! file="!bakfile!" log="!logfile!" echo 如果备份成功的话,就进行压缩>nul if exist "!bakfile!" ( pushd !bak_cur_dir! set zipfile= if exist "%ProgramFiles%\winrar\winrar.exe" ( echo 使用WinRAR进行压缩>nul set zipfile=!bak_cur_fnm!.rar "%programfiles%\winrar\winrar" a -r "!zipfile!" "!bak_cur_fnm!.dmp" "!bak_cur_fnm!.log" ) else ( echo 使用ZIP指令进行压缩>nul set zipfile=!bak_cur_fnm!.zip zip "!zipfile!" "!bak_cur_fnm!.dmp" "!bak_cur_fnm!.log">nul ) if exist "!zipfile!" ( del /q "!bakfile!" del /q "!logfile!" ) popd ) ) ) ::2.数据库过期备份删除 echo. echo. echo 二、正在清除过期的备份文件…… for /f "tokens=1,2,3 delims=-" %%a in ('echo wscript.echo date-!bak_lot! ^>t~.vbs ^& cscript //nologo t~.vbs ^& del t~.vbs') do ( set y=%%a&set m=%%b&set d=%%c if %%b lss 10 set m=0%%b&if %%c lss 10 set d=0%%c ) set DateE=!y!-!m!-!d! for %%i in (1,2,3,4,5,6,7,8,9) do ( set ora[%%i]>nul 2>nul&& ( set ora_cur= for /f "usebackq delims==. tokens=1-3" %%a in (`set ora[%%i]`) do set ora_cur=%%b set ora_usr= set ora_net= for /f "delims=/" %%a in ('echo !ora_cur!') do set ora_usr=%%a for /f "delims=@ tokens=2" %%a in ('echo !ora_cur!') do set ora_net=%%a set cur_dir=!bak_dir!\!ora_net!__!ora_usr! for /f "tokens=*" %%x in ("!cur_dir!") do set cur_dir=%%~fx echo 判断文件夹条件是否满足 >nul for %%a in (!cur_dir!\*.dmp,!cur_dir!\*.zip,!cur_dir!\*.rar) do ( echo 判断文件名称条件是否满足 >nul set n=%%a&set n=!n:~-17,-9!&set n=!n:~0,4!-!n:~4,2!-!n:~6,2! set t=%%~ta set FileDate=!t:~0,10! if "!n!"=="!FileDate!" ( echo 判断时间条件是否满足 >nul if !FileDate! leq %DateE% ( echo 删除 %%a del /q "%%a" ) ) ) ) ) ::3.完成退出 echo. echo. echo 三、本次备份操作完成,即将退出。 ping -n 10 127.1 >nul 2>nul exit ::=================================以下是备份程序================================= ::=================================以下是管理程序================================= :init mode con cols=100 lines=40 title Oracle自动备份 - by jason color 0e ::复制到 Windows 目录 copy "%~f0" "%windir%\OracleAutoBackup\OracleAutoBackup.bat" >nul 2>nul ::注册计划任务 :regtasks at|find "服务尚未启动">nul 2>nul&&( net start schedule if not !errorlevel!==0 ( echo Task Scheduler^(计划任务^)服务未能启动,程序即将退出! pause>nul goto exit ) ) set job_tmr=!bak_hou!:00 if !bak_hou! lss 10 set job_tmr=0!bak_hou!:00 at !job_tmr! /every:1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31 %windir%\OracleAutoBackup\OracleAutoBackup.bat -backup >nul 2>nul for /f "usebackq" %%i in (`dir %windir%\tasks\at*.job /b/o:d`) do set lastAt=%%i del %windir%\tasks\Oracle自动备份.job >nul 2>nul rename %windir%\tasks\!lastAt! Oracle自动备份.job ::保存配置文件 :saveconfig echo !bak_hou!>%configFile% echo !bak_lot!>>%configFile% echo !bak_dir!>>%configFile% for %%i in (1,2,3,4,5,6,7,8,9) do ( set ora[%%i]>nul 2>nul&& ( set ora_cur= for /f "usebackq delims==. tokens=1-3" %%a in (`set ora[%%i]`) do set ora_cur=%%b echo !ora_cur!>>%configFile% ) ) ::准备数据库配置字符串 set ora_str= for %%i in (1,2,3,4,5,6,7,8,9) do ( set ora[%%i]>nul 2>nul&& ( set ora_cur= for /f "usebackq delims==. tokens=1-3" %%a in (`set ora[%%i]`) do set ora_cur=%%b set ora_usr= set ora_net= for /f "delims=/" %%a in ('echo !ora_cur!') do set ora_usr=%%a for /f "delims=@ tokens=2" %%a in ('echo !ora_cur!') do set ora_net=%%a set ora_str=!ora_str!%%i. !ora_usr!/******@!ora_net!; ) ) ::开始 :start cls echo -------------------------------------------------------------------------------------------------- echo Oracle自动备份 echo 作者:jason QQ:59006558 echo -------------------------------------------------------------------------------------------------- echo 使用操作系统自带的计划任务功能,每天定时运行exp命令导出指定的Oracle数据库并压缩,然后按需删除 echo 已过期的压缩的导出文件,以实现自动备份的功能。 echo 通常,为了便于管理,在我们公司一个oracle用户有且仅有的全权管理一个数据库,因此该用户的登陆名称 echo 其实可以视做为数据库名称。 echo. echo 1.添加数据库:!ora_str! echo 2.删除数据库 echo 3.设置文件夹:!bak_dir! echo 4.几点钟备份:!bak_hou! echo 5.删除几天前:!bak_lot! echo 6.立即备份 echo 7.退出 echo. ::选择 :cho set choice= set /p choice=请选择: if not "%choice%"=="" set choice=%choice:~0,1% if "%choice%"=="1" goto addora if "%choice%"=="2" goto delora if "%choice%"=="3" goto setdir if "%choice%"=="4" goto sethou if "%choice%"=="5" goto setlot if "%choice%"=="6" goto nowbak if "%choice%"=="7" goto exit echo. echo ================================================================================================= echo =================================== 请选择1~7,按任意键重选!==================================== echo ================================================================================================= pause>nul goto start ::添加数据库 :addora set maxora=0 for %%i in (1,2,3,4,5,6,7,8,9) do (set ora[%%i]>nul 2>nul&&(set maxora=%%i)) set str_result=最多9个! if not !maxora!==9 ( set/a maxora+=1 set new_ora= set/p new_ora=请输入(用户名/密码@网络服务名): set str_result=格式错误! if not "!new_ora!"=="" ( echo !new_ora!|findstr "\/">nul 2>nul && echo !new_ora!|findstr "@">nul 2>nul && ( set ora[!maxora!]=!new_ora! set str_result=添加成功, ) ) ) echo ================================================================================================= echo ==================================== !str_result!按任意键继续!==================================== echo ================================================================================================= pause>nul if "!str_result!"=="添加成功," goto saveconfig goto start ::删除数据库 :delora set str_result=操作错误! set del_idx=0 set/p del_idx=请输入要删除的序数(1~9): if not "%del_idx%"=="" set del_idx=%del_idx:~0,1% if "!del_idx!"=="" set del_idx=0 echo !del_idx!|findstr "^[0-9]*$">nul || set del_idx=0 if not "!del_idx!"=="0" ( set ora[!del_idx!]= set str_result=删除成功, ) ::去掉格式错误的数据库连接配置项 if "!str_result!"=="删除成功," ( set j=0 for %%i in (1,2,3,4,5,6,7,8,9) do ( set ora[%%i]>nul 2>nul&& ( set ora_cur= for /f "usebackq delims==. tokens=1-3" %%a in (`set ora[%%i]`) do set ora_cur=%%b set ora[%%i]= echo !ora_cur!|findstr "\/">nul 2>nul && echo !ora_cur!|findstr "@">nul 2>nul && ( set/a j+=1 set ora[!j!]=!ora_cur! ) ) ) ) echo ================================================================================================= echo ==================================== !str_result!按任意键继续!==================================== echo ================================================================================================= pause>nul if "!str_result!"=="删除成功," goto saveconfig goto start ::设置文件夹 :setdir set new_dir= set/p new_dir=请输入备份用的文件夹: if "!new_dir!"=="" set new_dir=%cd%\数据库备份 for /f "tokens=*" %%x in ("!new_dir!") do set new_dir=%%~fx set bak_dir=!new_dir! echo ================================================================================================= echo ==================================== 设置成功,按任意键继续!==================================== echo ================================================================================================= pause>nul goto saveconfig ::几点钟备份 :sethou set str_result=操作错误! set new_hou= set/p new_hou=请输入每天几点钟备份(0~23): echo !new_hou!|findstr "^[0-9]*$">nul || set new_hou= if not "!new_hou!"=="" ( if !new_hou! geq 0 ( if !new_hou! leq 23 ( set bak_hou=!new_hou! set str_result=设置成功, ) ) ) echo ================================================================================================= echo ==================================== !str_result!按任意键继续!==================================== echo ================================================================================================= pause>nul if "!str_result!"=="设置成功," goto regtasks goto start ::删除几天前 :setlot set str_result=操作错误! set new_lot= set/p new_lot=请输入删除几天之前的备份(大于零): echo !new_lot!|findstr "^[0-9]*$">nul || set new_lot= if not "!new_lot!"=="" ( if !new_lot! gtr 0 ( set bak_lot=!new_lot! set str_result=设置成功, ) ) echo ================================================================================================= echo ==================================== !str_result!按任意键继续!==================================== echo ================================================================================================= pause>nul if "!str_result!"=="设置成功," goto saveconfig goto start ::现在备份 :nowbak start %windir%\OracleAutoBackup\OracleAutoBackup.bat -backup echo ================================================================================================= echo ==================================== 成功启动,按任意键继续!==================================== echo ================================================================================================= pause>nul goto start ::创建计划任务[已方法因为要输入密码,已否决] :saveschtasks if "%ospwd%"=="" ( set/p ospwd=保存计划任务时,无法取得授权,请输入%username%的密码: if "!ospwd!"=="" ( echo 已放弃操作,按任意键返回 pause>nul goto init ) ) set resultFile=%temp%\%random%.txt del %resultFile% /q>nul 2>nul schtasks /create /tn Oracle自动备份 /sc daily /st 03:00 /tr "%windir%\OracleAutoBackup.bat -backup" /ru %username% /rp %ospwd% /f >nul 2>%resultFile% if exist %resultFile% ( type %resultFile%|find "无法设置帐户信息">nul if !errorlevel!==0 ( set ospwd= del %resultFile%>nul schtasks /delete /tn Oracle自动备份 /f >nul 2>nul goto saveschtasks ) del %resultFile%>nul ) goto start ::退出程序 :exit ::pause>nul
发表评论
-
SQL 表数据旋转90度(二维转换)
2012-07-27 16:14 1891/**//* 将表数据旋转90度(2007-11-19于海南 ... -
ORA-12505 错误的解决方案
2012-06-19 16:46 3284引用错误信息 : ORA-12505, TNS:listene ... -
64 位JDK出现八小时时差解决方法
2012-02-27 15:22 2015发布的项目使用64位JDK,Java获取的时间总比正常的时候慢 ... -
更新sequence值的动态sql语句
2011-12-27 16:08 2098一. --导出之前把该语句执行一遍,复制执行结果,然后在导入后 ... -
Hibernate 支持wm_concat等函数
2011-11-14 16:31 1574背景:由于项目需要,我们在查询主信息时,可能需要通过某些明细信 ... -
Oracle计算时间差函数
2011-11-09 16:48 2451两个Date类型字段:START_ ... -
Weblogic 部署 war包
2011-10-14 12:28 2081利用各种IDE工具, ... -
JBOSS 部署 war包
2011-10-14 12:05 115221、 安装 1.1、软件安装 首先要安装J ... -
【转】Apache、Tomcat、JBoss、WebLogic的区别与关系
2011-10-14 11:42 19826概述: Apache:全球应用最广泛的http服务器,免费, ... -
SQL 对指定字段的几个值进行排序
2011-09-06 15:27 1061--就这一句话,大家应该看得懂,嘿嘿 order by (c ... -
Tomcat 启动报错:严重: IOException
2011-08-31 09:52 949Tomcat在启动时出现如下异常问题: ... -
ORA-01652: 无法通过128扩展temp
2011-08-15 10:39 1650通常来说如果出现该错误是由于临时表空间空间不足所致,只要给表空 ... -
【转】Tomcat5.0.18+Apache2.0.50+Linux9整合过程(完全版)
2011-07-02 11:06 1698李高峰 前言:在《APACHE2.0.50+TOMCAT5.0 ... -
Database Link【详解】
2011-02-21 18:55 1439--创建 CREATE public database ... -
ORACLE 闪回 恢复 偶然丢失的数据
2011-01-26 15:42 22211、Oracle 9i的闪回查询功 ... -
批量移动表和索引的表空间
2011-01-26 15:38 1295--1.修改表的空间 alter table table_ ... -
ORACLE误删数据的恢复
2011-01-16 10:48 923有很多原因导致了数据记录的误删,怎样恢复误删的记录呢?先来看看 ... -
Tomcat 集群分布式部署
2011-01-12 13:58 18181.软件环境准备 Apache: apache_2.2 ... -
Tomcat内存、连接数等性能参数设置
2011-01-08 13:55 972默认参数不适合生产环境使用,因此需要修改一些参数 1、 ... -
oracle 10G flashback 学习
2010-12-23 11:31 1115项目开发中,前台人员不小心删除了配置表数据,我用此方法把删除的 ...
相关推荐
本文将围绕“Oracle自动备份脚本”这一主题,深入探讨如何利用脚本实现Oracle数据库的自动备份,确保数据的安全与可恢复性。 ### Oracle自动备份脚本的重要性 在日常运营中,数据的丢失或损坏可能对企业造成不可...
### Linux Oracle自动备份脚本详解 #### 背景与目的 在企业级数据库管理中,数据的安全性和可靠性至关重要。Oracle作为一款广泛使用的数据库管理系统,其数据备份的重要性不言而喻。通过设置自动化的备份机制可以...
通过windows的计划任务,完成Oracle数据的自动备份,利用rar按照系统日期重新命名压缩文件,并通过ftp上传到备份服务器。 具体参见http://blog.csdn.net/z3h/archive/2007/10/05/1812063.aspx 20080125补充一下:...
本文将围绕“Oracle自动备份脚本”这一主题,详细讲解如何利用脚本来实现Oracle数据库的定时备份。 首先,我们要理解标题中的“Oracle自动备份脚本”。这通常指的是一个批处理脚本,它包含了执行Oracle数据库备份的...
windows环境下Oracle数据库的自动备份脚本
linux 下的 oracle 自动备份脚本
对于生产环境,通常需要对数据库执行有定时备份操作,好方便数据库出现异常问题的数据恢复,提高数据库的安全性,这里提供linux服务器下详细操作脚本,供大家参阅
用于ORACLE自动备份用,必须先安装7Z压缩软件才能使用。
实现oracle 数据库自动备份+保留最新的7天数据+另一机器拷贝备份的脚本
"Oracle数据库自动备份脚本FOR WIN.rar" 是一个针对Windows环境设计的自动化备份解决方案,它使得Oracle数据库的备份过程更加简便和可靠。 这个脚本主要有以下三个特点: 1. **动态日期命名**:备份导出文件时,...
### Oracle数据库RMAN的自动备份脚本知识点解析 在企业级数据库管理中,备份与恢复是确保数据安全的重要环节之一。本文将详细解读一个Oracle数据库RMAN(Recovery Manager)的自动备份脚本,该脚本适用于Linux环境...
"oracle数据库自动备份脚本带说明"的标题表明这是一个关于如何自动化执行Oracle数据库备份的脚本,这对于系统管理员来说是非常实用的工具。下面我们将详细探讨Oracle数据库的备份策略、自动备份脚本的工作原理以及...