ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 使用Windows脚本进行逻辑备份

使用Windows脚本进行逻辑备份

原创 Linux操作系统 作者:壹頁書 时间:2013-11-11 20:47:01 0 删除 编辑
开发、测试和演示的数据库可以使用逻辑备份。
首先,得到所有非系统用户,然后进行逻辑备份,最后删除过期的数据。
配合Windows任务调度,可以实现定期备份。

backup.bat
  1. rem 设置备份路径
  2. set backupdir=c:\tmp\

  3. rem 获取所有用户的列表
  4. @echo off
  5. @echo set echo off         >getUsers.sql
  6. @echo set feedback off    >>getUsers.sql
  7. @echo set newpage none    >>getUsers.sql
  8. @echo set pagesize 5000   >>getUsers.sql
  9. @echo set linesize 500    >>getUsers.sql
  10. @echo set verify off      >>getUsers.sql
  11. @echo set pagesize 0      >>getUsers.sql
  12. @echo set term off        >>getUsers.sql
  13. @echo set trims on        >>getUsers.sql
  14. @echo set linesize 600    >>getUsers.sql
  15. @echo set heading off     >>getUsers.sql
  16. @echo set timing off      >>getUsers.sql
  17. @echo set verify off      >>getUsers.sql
  18. @echo set numwidth 38     >>getUsers.sql
  19. @echo spool users.txt     >>getUsers.sql
  20. @echo select username from dba_users where account_status='OPEN' and username not in('SYSMAN','DBSNMP','SYSTEM','SYS','MGMT_VIEW'); >>getUsers.sql
  21. @echo spool off           >>getUsers.sql
  22. @echo exit                >>getUsers.sql
  23. sqlplus / as sysdba @getUsers.sql

  24. rem 备份
  25. for /f %%i in (users.txt) do (
  26.     exp userid='/ as sysdba' owner=%%i file=%backupdir%%%i_%date:~0,4%%date:~5,2%%date:~8,2%.dmp log=%backupdir%%%i_%date:~0,4%%date:~5,2%%date:~8,2%.log
  27. )

  28. rem 删除7天之前的备份
  29. forfiles /P %backupdir% /D -7 /S /M * /C "cmd /c if @isdir==FALSE echo deleting @file>>%backupdir%log.txt && del /q @file"

  30. rem 清理
  31. del getUsers.sql
  32. del users.txt

  33. @echo on


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29254281/viewspace-776338/,如需转载,请注明出处,否则将追究法律责任。

下一篇: SQL生成日历
请登录后发表评论 登录
全部评论

注册时间:2013-10-19

  • 博文量
    621
  • 访问量
    5986171