`
xiaojiit
  • 浏览: 133187 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

windows 下利用 exp自动导出oracle数据,只保留7天

阅读更多

 

 写道
@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
1
0
分享到:
评论

相关推荐

    备份oracle数据库并保留指定天数(day)的备份文件(rar)

    本案例中,客户提出的需求是备份Oracle数据库,并且要求对导出的`.dmp`文件进行压缩处理,最终只保留指定天数内的备份文件。 ##### 1.2 目标设定 - **目标一:**定期备份Oracle数据库,确保数据安全。 - **目标二:...

    linux下和win7下定时备份oracle数据库

    7. Windows下定期备份数据库:Windows环境下定时备份数据库的步骤与Linux类似,但需要编写的是批处理文件(.bat或.txt文件)。批处理文件中同样需要执行导出操作,通常是使用exp工具,并进行日志记录。在Windows下,...

    Oracle通过批处理实现自动备份

    本文将详细介绍如何利用Oracle中的`exp`和`expdp`命令配合Windows批处理脚本以及计划任务来实现Oracle数据库的自动化备份。 #### 备份方法概述 在Oracle数据库中,可以通过两种主要方式来进行数据备份:使用`exp`...

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

    - **清理旧文件**:脚本最后部分用于清理超过7天的备份文件,确保文件夹中只保留最新的7个备份文件。 #### 配置Windows任务计划程序 为了实现定时自动备份,还需要配置Windows的任务计划程序。 1. **创建新任务**:...

    AIX下自动备份ORACLE

    在AIX操作系统环境下,对Oracle数据库进行自动化备份是确保数据安全和系统稳定运行的重要环节。以下是如何在AIX系统下实现Oracle数据库的自动备份的详细步骤: 1. **创建备份脚本**: 首先,你需要创建一个Shell...

    Oracle 10g数据库自动备份

    - 使用`exp`命令执行实际的备份操作,将指定的数据表导出到`.dmp`文件中,并记录备份过程的日志到`.log`文件。 5. **压缩备份文件**: - 使用之前定义的`RAR_CMD`命令对生成的`.dmp`文件进行压缩,生成`.rar`格式...

    阿里云ECS上备份oracle数据库到OSS存储(单机模式)

    RMAN命令备份:配置RMAN参数,设置有效保存时间及份数,编写RMAN脚本,每天增量备份,定期7天做一次全备,清理过期备份。 阿里云ECS上备份Oracle数据库到OSS存储 在阿里云ECS上备份Oracle数据库到OSS存储,需要...

    Oracle_备份脚本

    在这个场景中,用户希望利用Linux命令行工具实现Oracle数据库的EXP导出备份。Oracle EXP是Oracle数据库提供的一个实用程序,用于导出数据库对象到一个二进制文件,以便于数据迁移、恢复或存档。 首先,我们看到邮件...

    oracle批处理文件.docx

    综上所述,Oracle批处理文件结合了Oracle EXP导出、Windows任务计划、日期格式化和文件管理策略,实现了自动化的数据库备份流程。这不仅提高了工作效率,也确保了数据的安全性和可恢复性。通过定制和调整这些批处理...

    oracle 10g在linux下定时备份手册

    Oracle 10g在Linux环境下进行定时备份是数据库管理中的重要任务,确保数据的安全性和可恢复性。以下是一份详细的Oracle 10g Linux定时备份手册: 1. **使用crontab设置定时任务** 在Linux系统中,我们通常使用`...

    oracle批处理文件.pdf

    1. **EXP导出功能**: Oracle的`EXP`工具是用于导出数据库对象(如表、索引、存储过程等)的数据和结构的实用程序。在批处理文件中,通过指定用户名、口令、导出文件名、所有者(即数据库用户)和其他选项,可以...

    aix系统定时执行oracle数据库删除备份脚本

    本文将详细介绍如何在AIX系统上通过定时任务来实现Oracle数据库的备份及备份文件的自动清理工作,以确保系统仅保留最近一周的数据。 #### 一、环境配置 根据提供的部分内容,我们可以看到所使用的Oracle版本为10.2...

    oracle_rman增量备份脚本

    1. **导出RMAN用户数据脚本`exp_rman.par`:** - 设置用户名、密码及导出文件的路径。 ```bash userid=rman_dlp/dlp file=/dinglp/ora_managed/backup/export/rman.dmp log=/dinglp/ora_managed/backup/log/...

    oracle学习文档 笔记 全面 深刻 详细 通俗易懂 doc word格式 清晰 连接字符串

     EXP_FULL_DATABASE, IMP_FULL_DATABASE这两个角色用于数据导入导出工具的使用。  自定义角色 Oracle建议我们自定义自己的角色,使我们更加灵活方便去管理用户  创建角色 SQL> create role admin;  授权给...

    oracle常用命令

    ### Oracle常用命令详解 ...以上是关于Oracle常用命令的详细介绍,这些命令涵盖了数据库管理的基本操作,包括启动、关闭、数据导入导出以及常用的数据库操作。对于DBA和开发人员来说,掌握这些命令是非常必要的。

    oracle 10g 培训资料4

    4. **数据泵(Data Pump)**:这是一个新的高速数据传输工具,用于导出和导入数据,比传统的EXP和IMP更快,支持并行操作,可以大大提高数据迁移的效率。 5. **分区增强**:在10g中,分区功能得到了显著加强,包括...

    linuxoracle自动备份脚本.pdf

    本文件提供的"linux oracle自动备份脚本"是一个用于Linux环境下Oracle数据库自动备份的shell脚本,旨在简化和自动化备份过程。 脚本开始时,设置了Oracle相关的环境变量,包括`ORACLE_BASE`(Oracle基础目录)、`...

    ORACLE数据库习题.pdf

    2. Oracle中用于数据导出的命令是`exp`,对应的导入命令是`imp`。 3. DML(Data Manipulation Language)是用于控制数据访问的语言,包括INSERT、UPDATE、DELETE等操作。 4. NULL在数据库中表示没有值,它既不是0...

    linuxoracle自动备份脚本实用.pdf

    备份过程通过`exp`命令(Oracle的导出工具)执行,它会将数据库的数据导出到指定的DMP文件,并记录操作的日志。最后,脚本删除了7天前的旧备份,以保持备份存储空间的整洁。 要使这个脚本自动化,可以使用Linux的...

Global site tag (gtag.js) - Google Analytics