上帝大脸 发表于 2018-9-21 11:48:30

oracle数据库定时备份、导入

  PLM项目正式已经上线测试中,数据管理是重中之重,便于故障恢复处理,避免数据丢失。思路:数据导出+定时备份+数据循环清理
  1、拷贝Oracle安装目录bin下面exp.exe(也可设置exp.exe环境变量)至备份文件夹 oraclebackup文件(没有可以新建)
  2、导出数据xxx库新建文件夹编辑
  

@echo off  
echo 删除10天前的备分文件和日志
  

  
forfiles /p "E:\oraclebackup" /m *.dmp /d -10 /c "cmd /c del @path"
  
forfiles /p "E:\oraclebackup" /m *.log /d -10 /c "cmd /c del @path"
  

  
echo 正在备份 Oracle 数据库,请稍等……
  
exp system/infodba@xxx file=E:/oraclebackup/mdb%date:~0,4%%date:~5,2%%date:~8,2%.dmp log=E:/oraclebackup/mdb%date:~0,4%%date:~5,2%%date:~8,2%.log full=y buffer=65535
  
echo 任务完成!
  

  修改后缀名.bat
  3、数据恢复
  选定备份数据最新数据文件
  imp   system/infodba@xxxfile=E:/oraclebackup/mdb.dmp full=y ignore=y
  4、设置windows 备份
  任务计划——>添加任务——>选择时间——>选择dos文件——>执行测试
  相关知识点说明:
  dos命令相关:
  forfiles /p "E:\oraclebackup" /m *.dmp /d -10 /c "cmd /c del @path"
  dos命令 forfiles文件夹遍历循环
  /p 指定的路径
  /s 包括子目录
  /m 查找的文件名掩码
  /d 指定日期,有绝对日期和相对日期, 此处-7指当前日期 的7天前
  /c 运行的命令行   表示为每个文件执行的命令。命令字符串应该用双引号括起来。
  

                  默认命令是 "cmd /c echo @file"。下列变量  

  可以用在命令字符串中:
  

  @file    - 返回文件名。
  

  @fname   - 返回不带扩展名的文件名。
  

  @ext   - 只返回文件的扩展。
  

  @path    - 返回文件的完整路径。
  

  @relpath - 返回文件的相对路径。
  

  @isdir   - 如果文件类型是目录,返回 "TRUE"; 如果是文件,返回 "FALSE"。
  

  @fsize   - 以字节为单位返回文件大小。
  

  @fdate   - 返回文件上一次修改的日期。
  

  @ftime   - 返回文件上一次修改的时间。
  

  数据库相关
  exp是数据导出执行文件


  imp是导入执行文件





页: [1]
查看完整版本: oracle数据库定时备份、导入