本文参考了其他 dos 计算日期的指令,参考比较多所以没一一指明,若有相关作者看到需要注明出处,请联系我,我必改正,注明出处[联系方式在博文尾部];

备份【导出】

@echo offsetlocal enabledelayedexpansion

::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::echo.echo 取当前时间戳;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 按所需格式拼接日期set u_yyyy=%date:~0,4%set u_mm=%date:~5,2%set u_dd=%date:~8,2%set u_date=%u_yyyy%-%u_mm%-%u_dd%

:: 按所需格式拼接日间set u_hh=%time:~0,2%set u_MM=%time:~3,2%set u_ssff=%time:~6,5%set u_time=%u_hh%.%u_MM%.%u_ssff%

:: 拼接时间戳,并把空格换成0【24 小时制,上午10点前,会出现空格】set u_timestamp=%u_date%-%u_time%set u_timestamp=%u_timestamp: =0%echo %u_timestamp%::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::echo.echo 计算 days 天前或 days 天后的日期;::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

:: 正数:days 天前的日期;负数:days 天后的日期;set days=17

rem program 'begin' 开始:begin:: 判断操作系统ver | find /i "5.0" > nul && goto 2k || goto xp

rem program 'xp';xp 系统:xpfor /f "tokens=1-3 delims=-/. " %%i in ("%date%") do (   set /a yy=%%i, mm=%%j, dd=%%k ) goto nornal

rem program '2k';2k 系统:2kfor /f "tokens=2-4 delims=-/. " %%i in ("%date%") do (   set /a yy=%%i, mm=%%j, dd=%%k )goto nornal

rem program 'nornal';计算日期:nornal:: echo %yy%-%mm%-%dd%;算出%yy%是否是闰年set /a leap="^!(%yy% %% 4) & ^!(^!(%yy% %% 100)) | ^!(%yy% %% 400)"

:: 计算日期相差的天数set /a nd=!dd!-!days!

:: echo [nd]=%nd%  计算当月的天数set /a num=0, mday=0, max=28+leapset str=31 %max% 31 30 31 30 31 31 30 31 30 31for %%i in (%str%) do (   set /a num+=1   if !num! equ !mm! set /a mday=%%i )

::echo yy=%yy% mm=%mm% dd=%dd% nd=%nd% mday=%mday% leap=%leap%; 如果小于等于0则转到xiaoyu块处理if !nd! leq 0 goto xiaoyu:: 如果大于当月天数则转到dayu块处理if !nd! gtr !mday! goto dayu 

set nm=%mm%goto println

rem program 'dayu' 处理日期相差天数大于当月天数的情况:dayuset /a nm=!mm!+1set /a nd=!nd!-!mday!if !nm! gtr 12 (  set /a yy=!yy!+1  set /a nm-=12)set /a leap="^!(%yy% %% 4) & ^!(^!(%yy% %% 100)) | ^!(%yy% %% 400)"set /a num=0, mday=0, max=28+leapset str=31 %max% 31 30 31 30 31 31 30 31 30 31for %%i in (%str%) do (   set /a num+=1   if !num! equ !nm! set /a mday=%%i )set mm=%nm%

::echo yy=%yy% mm=%mm% nd=%nd% mday=%mday% leap=%leap%

if !nd! gtr !mday! goto dayugoto println

rem program 'xiaoyu' 处理日期相差天数小于等于0的情况:xiaoyuset /a nm=!mm!-1if !nm! lss 1 (  set /a yy=!yy!-1  set /a nm+=12)set /a leap="^!(%yy% %% 4) & ^!(^!(%yy% %% 100)) | ^!(%yy% %% 400)"set /a num=0, mday=0, max=28+leapset str=31 %max% 31 30 31 30 31 31 30 31 30 31for %%i in (%str%) do (   set /a num+=1   if !num! equ !nm! set /a mday=%%i )set /a nd=!mday!+!nd!set mm=%nm%

::echo yy=%yy% mm=%mm% nd=%nd% mday=%mday% leap=%leap%

if !nd! leq 0 goto xiaoyugoto println

rem program 'println' 输出:printlnset mm=0%nm%set dd=0%nd%set mm=%mm:~-2%set dd=%dd:~-2%

::按所需格式拼接日期set calc_date=%yy%-%mm%-%dd%set u_calc_date=%calc_date: =0%echo %u_calc_date%::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::echo.echo oracl 按用户导出,备份;::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

:: 导出文件目录set file_dir=[file_dir]:: 备份文件目录set backup_dir=\\[共享文件夹ip]\[backup_dir]

:: 导出文件名【只取计算出的时间戳,按用户导出时,在导出语句中加上用户名做前缀,以免导出多个用户的数据时,文件名重复导致数据文件被覆盖】set fileName=%u_timestamp%:: 删除大史文件名【只取计算出的日期,删除时按文件名模糊匹配】set delete_fileName=%u_calc_date%

:: oracle 导出语句,如果要备份其他用户,加上导出语句就可以,注意文件名前加上用户前缀就可以,其他不需要修改。exp  [USERNAME]/[USERPASSWORD]@[SERVER_NAME] owner=[USERNAME] file=%file_dir%\[USERNAME]_%fileName%.dmp log=%file_dir%\logs\[USERNAME]_%fileName%.log

:: 复制文件到备份目录,包括日志文件copy /B %file_dir%\*%fileName%*.dmp       %backup_dir%copy /B %file_dir%\logs\*%fileName%*.log  %backup_dir%\logs

:: 删除 days 天前的数据文件;【备份目录与导出文件的目录都删除】del /Q /F %file_dir%\*%delete_fileName%-*del /Q /F %file_dir%\logs\*%delete_fileName%-*del /Q /F %backup_dir%\*%delete_fileName%-*del /Q /F %backup_dir%\logs\*%delete_fileName%-*

echo.echo 备份完成::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::echo.pause.

导入:
imp [USER_NAME]/[USER_PASSWORD]@[SERVICE_NAME] fromuser=[SOURCE_USER_NAME] touser=[TARGET_USER_NAME] file=[文件目录/文件名].dmp

--------------------------------------------------------------------
若有其他凝问或文中有错误,请及时向我指出,
我好及时改正,同时也让我们一起进步。
email : binary_space@126.com
qq : 1035862795
敲门砖: 代码谱写人生

windows 下 用 dos 备份 oracle 数据库,并删除七天前的备份相关推荐

  1. Linux下自动备份Oracle数据库并删除指定天数前的备份

    说明: Oracle数据库服务器 操作系统:CentOS IP:192.168.0.198 端口:1521 SID:orcl Oracle数据库版本:Oracle11gR2 具体操作: 1.root用 ...

  2. linux定时备份mysql_linux定时备份MySQL数据库并删除七天前的备份文件

    #!/bin/bash # Name:bakmysql.sh # This is a ShellScript For Auto DB Backup and Delete old Backup #备份地 ...

  3. linux 下备份MySQL数据库 并删除7天前的备份数据

    #!/bin/bash #备份数据库hz jshuabo sdhuabo name=$(date +%Y%m%d) /alidata/server/mysql-5.1.73/bin/mysqldump ...

  4. Windows下C语言连接Oracle数据库

    为什么80%的码农都做不了架构师?>>>    最近公司有个项目需要用到Oracle数据库,我负责前期的调研.由于项目要用到C和PHP两种语言,所以先收集这两种语言连接Oracle的 ...

  5. linux mysql定时删除数据_让linux每天定时备份MySQL数据库并删除五天前的备份文件...

    MYSQL定期备份是一项重要的工作,但人工操作太繁琐,也难避免有所疏漏,使用下面的方法即可让系统定期备份数据.利用系统crontab来定时执行备份文件,按日期对备份结果进行保存,达到备份的目的. 1. ...

  6. aix oracle备份命令,Aix/Linux下自动备份oracle数据库

    曾经有个同事,来回操作开发和生产的数据库,结果误删了生产的数据库,那种心情我想不是一般人能理解的,虽然说oracle可以有方法还原,但并不是彻底的. 所以,在工作中,不管是开发还是维护,备份数据库是非 ...

  7. mysql 自动备份删除_mysql自动备份删除5天前的备份

    1.查看磁盘空间情况: # df -h 2.创建备份目录: 上面我们使用命令看出/home下空间比较充足,所以可以考虑在/home保存备份文件: cd /home mkdir backup cd ba ...

  8. Windows下自动备份Oracle数据库

    Windows下自动备份Oracle数据库 先说说为啥要搞这么个玩意 那是上线前几天[这不是讲故事],测试环境用的数据库崩了[为啥崩了不知道].之前造的一堆测试数据全都没得了[].然后急急忙忙的恢复环 ...

  9. windows执行oracle脚本,Windows下通过计划任务执行数据库备份脚本

    Windows 下通过计划任务执行数据库备份脚本 在Linux下可以通过crontab来设置定时执行数据库的备份脚本,同样Windows 下可以通过设定任务计划程序来设定要执行的自动备份脚本.具体的设 ...

最新文章

  1. python学习费用-在上海学Python贵吗?Python培训费用是多少
  2. android111 java中调用c代码
  3. 如何设置并使用 Synology NAS 共享的多功能打印机
  4. 使用Google GSON:额外的赠品:第一部分
  5. 如何使用功能性JavaScript编写经典游戏Snake并在浏览器中播放-完整的代码示例教程
  6. 软考网络管理员学习笔记8之第八章网络安全技术
  7. flask request传参
  8. mysql 多源复制 过滤_MYSQL 多源复制,过滤复制与应用场景
  9. OFFICE技术讲座:段落的行是如何布局不同对齐方式的
  10. Atitit 图像处理之编程之类库调用的接口api cli gui ws rest attilax大总结.docx
  11. javaaop模式供其他项目调用_结构性模型-静态代理模式
  12. 计算机网络正掩码怎么计算器,计算机网络课设子网掩码计算器.doc
  13. 桌面虚拟化(VDI)的概述
  14. ps动感映像插件ImageMotion 1.3全新功能介绍
  15. c语言输出变量案例,C语言经典例题100例——C语言练习实例41解答(static静态变量的用法)...
  16. Office-页码全为0的原因及解决方法
  17. 数学思想:4、数学归纳法
  18. pdf文档页码怎么添加?分享这几个pdf加页码方法给你
  19. 初入测试如何编写测试用例?从3个方面带你写一个合格的测试用例
  20. apache dubbo 源码分析系列汇总

热门文章

  1. Android 开源项目及库汇总(2)
  2. 2021最新CSGO国服能取回皮肤的国内开箱网站大全
  3. 【营销】史上最全4P、4C、4S、4R、4V、4I营销理论
  4. 动态代理:1 个经纪人如何代理 N 个明星
  5. pytorch深度学习简介(包括cnn,rnn等我只挑我感觉有必要记录)
  6. 基于视频的车辆识别技术
  7. windows10软件图标去除小盾牌
  8. Elasticsearch Doc_Values解析
  9. 计算机网络怎么查看连接打印机驱动,如何查找打印机驱动的方法-电脑自学网...
  10. linux下WMB通过ODBC连接DB2数据库