写道
@echo off
set backhome=back
set year=%date:~0,4%
set month=%date:~5,2%
set day=%date:~8,2%
set mydate=%year%%month%%day%
set hhmmss=%time:~0,2%%time:~3,2%%time:~6,2%
if "%hhmmss:~0,1%"==" " set hhmmss=0%time:~1,1%%time:~3,2%%time:~6,2%
mkdir e:\%backhome%\%mydate%
echo ------------------------------------------------ >> e:\%backhome%\%mydate%\log.txt
echo start backup at %mydate%_%hhmmss% >> e:\%backhome%\%mydate%\log.txt
echo ------------------------------------------------ >> e:\%backhome%\%mydate%\log.txt
exp andacms/******@ORCL file=e:\%backhome%\%mydate%\andacms_%mydate%.dmp owner=andacms BUFFER=512000000 2>> e:\%backhome%\%mydate%\log.txt
echo ------------------------------------------------ >> e:\%backhome%\%mydate%\log.txt
set endyear=%date:~0,4%
set endmonth=%date:~5,2%
set endday=%date:~8,2%
set enddate=%endyear%%endmonth%%endday%
set endhhmmss=%time:~0,2%%time:~3,2%%time:~6,2%
if "%endhhmmss:~0,1%"==" " set endhhmmss=0%time:~1,1%%time:~3,2%%time:~6,2%
echo backup finished at %enddate%_%endhhmmss% >> e:\%backhome%\%mydate%\log.txt
echo ------------------------------------------------ >> e:\%backhome%\%mydate%\log.txt
rem 计算指定天数之前的日期
set DaysAgo=7
rem 假设系统日期的格式为yyyymmdd
call :DateToDays %date:~0,4% %date:~5,2% %date:~8,2% PassDays
set /a PassDays-=%DaysAgo%
call :DaysToDate %PassDays% DstYear DstMonth DstDay
set DstDate=%DstYear%%DstMonth%%DstDay%
if exist e:\%backhome%\%DstDate% (
echo 删除%DaysAgo%天前的数据:%DstDate% >>e:\%backhome%\%mydate%\log.txt
rmdir /s/q e:\%backhome%\%DstDate%
)
goto :eof
:DateToDays %yy% %mm% %dd% days
setlocal ENABLEEXTENSIONS
set yy=%1&set mm=%2&set dd=%3
if 1%yy% LSS 200 if 1%yy% LSS 170 (set yy=20%yy%) else (set yy=19%yy%)
set /a dd=100%dd%%%100,mm=100%mm%%%100
set /a z=14-mm,z/=12,y=yy+4800-z,m=mm+12*z-3,j=153*m+2
set /a j=j/5+dd+y*365+y/4-y/100+y/400-2472633
endlocal&set %4=%j%&goto :EOF
:DaysToDate %days% yy mm dd
setlocal ENABLEEXTENSIONS
set /a a=%1+2472632,b=4*a+3,b/=146097,c=-b*146097,c/=4,c+=a
set /a d=4*c+3,d/=1461,e=-1461*d,e/=4,e+=c,m=5*e+2,m/=153,dd=153*m+2,dd/=5
set /a dd=-dd+e+1,mm=-m/10,mm*=12,mm+=m+3,yy=b*100+d-4800+m/10
(if %mm% LSS 10 set mm=0%mm%)&(if %dd% LSS 10 set dd=0%dd%)
endlocal&set %2=%yy%&set %3=%mm%&set %4=%dd%&goto :EOF
分享到:
相关推荐
本案例中,客户提出的需求是备份Oracle数据库,并且要求对导出的`.dmp`文件进行压缩处理,最终只保留指定天数内的备份文件。 ##### 1.2 目标设定 - **目标一:**定期备份Oracle数据库,确保数据安全。 - **目标二:...
7. Windows下定期备份数据库:Windows环境下定时备份数据库的步骤与Linux类似,但需要编写的是批处理文件(.bat或.txt文件)。批处理文件中同样需要执行导出操作,通常是使用exp工具,并进行日志记录。在Windows下,...
本文将详细介绍如何利用Oracle中的`exp`和`expdp`命令配合Windows批处理脚本以及计划任务来实现Oracle数据库的自动化备份。 #### 备份方法概述 在Oracle数据库中,可以通过两种主要方式来进行数据备份:使用`exp`...
- **清理旧文件**:脚本最后部分用于清理超过7天的备份文件,确保文件夹中只保留最新的7个备份文件。 #### 配置Windows任务计划程序 为了实现定时自动备份,还需要配置Windows的任务计划程序。 1. **创建新任务**:...
在AIX操作系统环境下,对Oracle数据库进行自动化备份是确保数据安全和系统稳定运行的重要环节。以下是如何在AIX系统下实现Oracle数据库的自动备份的详细步骤: 1. **创建备份脚本**: 首先,你需要创建一个Shell...
- 使用`exp`命令执行实际的备份操作,将指定的数据表导出到`.dmp`文件中,并记录备份过程的日志到`.log`文件。 5. **压缩备份文件**: - 使用之前定义的`RAR_CMD`命令对生成的`.dmp`文件进行压缩,生成`.rar`格式...
RMAN命令备份:配置RMAN参数,设置有效保存时间及份数,编写RMAN脚本,每天增量备份,定期7天做一次全备,清理过期备份。 阿里云ECS上备份Oracle数据库到OSS存储 在阿里云ECS上备份Oracle数据库到OSS存储,需要...
在这个场景中,用户希望利用Linux命令行工具实现Oracle数据库的EXP导出备份。Oracle EXP是Oracle数据库提供的一个实用程序,用于导出数据库对象到一个二进制文件,以便于数据迁移、恢复或存档。 首先,我们看到邮件...
综上所述,Oracle批处理文件结合了Oracle EXP导出、Windows任务计划、日期格式化和文件管理策略,实现了自动化的数据库备份流程。这不仅提高了工作效率,也确保了数据的安全性和可恢复性。通过定制和调整这些批处理...
Oracle 10g在Linux环境下进行定时备份是数据库管理中的重要任务,确保数据的安全性和可恢复性。以下是一份详细的Oracle 10g Linux定时备份手册: 1. **使用crontab设置定时任务** 在Linux系统中,我们通常使用`...
1. **EXP导出功能**: Oracle的`EXP`工具是用于导出数据库对象(如表、索引、存储过程等)的数据和结构的实用程序。在批处理文件中,通过指定用户名、口令、导出文件名、所有者(即数据库用户)和其他选项,可以...
本文将详细介绍如何在AIX系统上通过定时任务来实现Oracle数据库的备份及备份文件的自动清理工作,以确保系统仅保留最近一周的数据。 #### 一、环境配置 根据提供的部分内容,我们可以看到所使用的Oracle版本为10.2...
1. **导出RMAN用户数据脚本`exp_rman.par`:** - 设置用户名、密码及导出文件的路径。 ```bash userid=rman_dlp/dlp file=/dinglp/ora_managed/backup/export/rman.dmp log=/dinglp/ora_managed/backup/log/...
EXP_FULL_DATABASE, IMP_FULL_DATABASE这两个角色用于数据导入导出工具的使用。 自定义角色 Oracle建议我们自定义自己的角色,使我们更加灵活方便去管理用户 创建角色 SQL> create role admin; 授权给...
### Oracle常用命令详解 ...以上是关于Oracle常用命令的详细介绍,这些命令涵盖了数据库管理的基本操作,包括启动、关闭、数据导入导出以及常用的数据库操作。对于DBA和开发人员来说,掌握这些命令是非常必要的。
4. **数据泵(Data Pump)**:这是一个新的高速数据传输工具,用于导出和导入数据,比传统的EXP和IMP更快,支持并行操作,可以大大提高数据迁移的效率。 5. **分区增强**:在10g中,分区功能得到了显著加强,包括...
本文件提供的"linux oracle自动备份脚本"是一个用于Linux环境下Oracle数据库自动备份的shell脚本,旨在简化和自动化备份过程。 脚本开始时,设置了Oracle相关的环境变量,包括`ORACLE_BASE`(Oracle基础目录)、`...
2. Oracle中用于数据导出的命令是`exp`,对应的导入命令是`imp`。 3. DML(Data Manipulation Language)是用于控制数据访问的语言,包括INSERT、UPDATE、DELETE等操作。 4. NULL在数据库中表示没有值,它既不是0...
备份过程通过`exp`命令(Oracle的导出工具)执行,它会将数据库的数据导出到指定的DMP文件,并记录操作的日志。最后,脚本删除了7天前的旧备份,以保持备份存储空间的整洁。 要使这个脚本自动化,可以使用Linux的...