zoukankan      html  css  js  c++  java
  • oracle自动备份

    建议一: 
    利用任务计划、批处理文件和ORACLE的EXP导出功能,可以根据日期自动生成ORACLE备份文件,大大方便了ORACLE数据备份。: 
    1,批处理文件backup.bat\.


    exp system/manager file=d:\backup\oracle\oracle%date:~0,10%.dmp owner=system log=d:\backup\oracle\oracle%date:~0,10%.log


    将生成oracle2006-01-09.dmp文件


    exp system/manager file=d:\backup\oracle\oracle%date:~11,3%.dmp owner=system log=d:\backup\oracle\oracle%date:~11,3%.log


    将生成oracle星期一.dmp文件,则每周循环保留一个备份文件,共7个备份文件循环


    2,添加一个任务计划 
    利用任务计划向导,根据备份策略设置自动执行任务的时间频率(例如每天零时),执行d:\oracle\backup.bat 
    3、以后每天将在目录中生成形如“oracle2005-08-31.dmp和oracle2005-08-31.log”的备份和日志文件。 
    说明: 
    1、%date%的值在不同的系统、语言版本下可能是不一样的,控制面板里面区域选项的设定也会改变%date%的值。请先在命令行中测试 echo %date% 的返回值。%date:~4,10% 是返回日期函数,~后的第一个参数是要截取的起始位置(从0开始),第二个参数是要截取的长度,如没有则是截取到最后,参数可酌情修改。 
    2、如需要准确的时间做为文件名,请用%time%函数,参数同上。


    建议二:


    @echo off 
    set filename=e:\data_bak\%date:~8,2%日 
    exp userid=user/pass@esdata file=%filename%.dmp owner=user INDEXES=y grants=y constraints=y compress=y log=%filename%.log 
    rar a %filename%.rar %filename%.* 
    del %filename%.dmp 
    del %filename%.log

    例:

    set filename=e:\databack\%date:~8,2%日
    exp ccense/ccense@sd file=%filename%.dmp
    rar a %filename%.rar %filename%.dmp 
    del %filename%.dmp


    放计划任务里面定时执行, 
    文件名以日期的day部分来命名 
    备份后调用rar进行压缩 
    这样可以保存一个月的历史数据 
    注意:需要把program files/winrar目录下的rar.exe拷贝到系统system32目录下 
    如果是以星期命名,则需要将set filename=e:\data_bak\%date:~8,2%日修改为 
    set filename=e:\data_bak\%date:~0,3%


    建议三: 
    以下为ORACLE 自动备份批处理文件内容,请配合任务计划实现

    @ECHO OFF 
    SET BACKPATH=d:\ 
    ECHO 准备备份数据库 
    REM 7天一个循环   
    IF EXIST %BACKPATH%\ONE GOTO ONE 
    IF EXIST %BACKPATH%\TWO GOTO TWO 
    IF EXIST %BACKPATH%\THREE GOTO THREE 
    IF EXIST %BACKPATH%\FOUR GOTO FOUR 
    IF EXIST %BACKPATH%\FIVE GOTO FIVE 
    IF EXIST %BACKPATH%\SIX GOTO SIX 
    IF EXIST %BACKPATH%\SEVEN GOTO SEVEN 
    ECHO E > %BACKPATH%\ONE 
    :ONE 
    SET BACKPATH_FULL=%BACKPATH%\ONE
    REN %BACKPATH%\ONE TWO 
    GOTO BACK 
    :TWO 
    SET BACKPATH_FULL=%BACKPATH%\TWO
    REN %BACKPATH%\TWO THREE 
    GOTO BACK 
    :THREE 
    SET BACKPATH_FULL=%BACKPATH%\THREE
    REN %BACKPATH%\THREE FOUR 
    GOTO BACK 
    :FOUR 
    SET BACKPATH_FULL=%BACKPATH%\FOUR
    REN %BACKPATH%\FOUR FIVE 
    GOTO BACK 
    :FIVE 
    SET BACKPATH_FULL=%BACKPATH%\FIVE
    REN %BACKPATH%\FIVE SIX 
    GOTO BACK 
    :SIX 
    SET BACKPATH_FULL=%BACKPATH%\SIX
    REN %BACKPATH%\SIX SEVEN 
    GOTO BACK 
    :SEVEN 
    SET BACKPATH_FULL=%BACKPATH%\SEVEN
    REN %BACKPATH%\SEVEN ONE 
    GOTO BACK 
    :BACKEXP ccense/ccense FILE=%BACKPATH_FULL%.DMP 
    RAR a %BACKPATH_FULL%.rar %BACKPATH_FULL%.DMP
    del %BACKPATH_FULL%.DMP
    SET BACKPATH= 
    SET BACKPATH_FULL=

    注意:需要把program files/winrar目录下的rar.exe拷贝到系统system32目录下 
    EXIT建议四: 
    RMAN TARGET=RMAN/RMAN@ORCL < C:\RMAN.TXT

    建议五: 
    在文本里编辑cmd命令。然后保存成bat文件。在windows中定义任务计划,就 
    可以自动执行了。 
    例: 
    编辑文本文件 
    del c:\exp\*.dmp 
    exp userid=cw/cw@db file='c:\exp\*.dmp' tables=(student) 
    保存成bat文件 
    建议六: 
    写个简单的批处理文件备份恢复: 
    备份:


    @echo off            不显示命令行 
         
    echo 开始备份表.....       打印信息                
    D: DOS切换到D: 盘 
    cd oracle\ora92\bin       切换到cd oracle\ora92\bin目录 
    exp 用户名/密码@数据库 file=d:\config_bak.dmp tables=(table1,table2) 备份表一表二到d:\config_bak.dmp 
    echo 备份完毕! 
    恢复: 
    @echo off            
         
    echo 开始恢复表.....                      
    D: 
    cd oracle\ora92\bin 
    imp 用户名/密码@数据库 file=d:\config_bak.dmp tables=(table1,table2) ignore=y 
    sqlplus /nolog @oraStartup.sql>>oraStartup.log 调用sql文件 
    pause 执行完sql文件以后暂停,看信息 
    echo 恢复完毕! 
    编写oraStartup.sql 
    conn 用户名/密码@数据库 as sysdba 
    select * from table1; 
    quit; 
           
          

     执行环境:可以在SQLPLUS.EXE或者DOS(命令行)中执行, 
      DOS中可以执行时由于 在oracle 8i 中 安装目录\ora81\BIN被设置为全局路径, 
      该目录下有EXP.EXE与IMP.EXE文件被用来执行导入导出。 
      oracle用java编写,我想SQLPLUS.EXE、EXP.EXE、IMP.EXE这俩个文件是被包装后的类文件。 
      SQLPLUS.EXE调用EXP.EXE、IMP.EXE他们所包裹的类,完成导入导出功能。 
      下面介绍的是导入导出的实例,向导入导出看实例基本上就可以完成,因为导入导出很简单。 
      数据导出: 
      1 将数据库TEST完全导出,用户名system 密码manager 导出到D:\daochu.dmp中 
      exp system/manager@TEST file=d:\daochu.dmp full=y 
      2 将数据库中system用户与sys用户的表导出 
      exp system/manager@TEST file=d:\daochu.dmp owner=(system,sys) 
      3 将数据库中的表table1 、table2导出 
      exp system/manager@TEST file=d:\daochu.dmp tables=(table1,table2) 
      4 将数据库中的表table1中的字段filed1以"00"打头的数据导出 
      exp system/manager@TEST file=d:\daochu.dmp tables=(table1) query=\" where filed1 like '00%'\" 
       
      上面是常用的导出,对于压缩我不太在意,用winzip把dmp文件可以很好的压缩。 
      不过在上面命令后面 加上 compress=y 就可以了 
      数据的导入 
      1 将D:\daochu.dmp 中的数据导入 TEST数据库中。 
      imp system/manager@TEST file=d:\daochu.dmp 
      上面可能有点问题,因为有的表已经存在,然后它就报错,对该表就不进行导入。 
      在后面加上 ignore=y 就可以了。 


    附jsce oracle auto backup from ufida nanking


    cd D:\ncback
    del xmv59.dmp
    rename xmv58.dmp xmv59.dmp
    rename xmv57.dmp xmv58.dmp
    rename xmv56.dmp xmv57.dmp
    rename xmv55.dmp xmv56.dmp
    rename xmv54.dmp xmv55.dmp
    rename xmv53.dmp xmv54.dmp
    rename xmv52.dmp xmv53.dmp
    rename xmv51.dmp xmv52.dmp
    rename xmv5.dmp xmv51.dmp



    exp xmv502/nc52 file=D:\ncback\xmv5.dmp log=D:\ncback\xmv5.log owner=xmv502

     

    cd F:\ncback\iufo
    
    del iufo9.dmp
    rename iufo8.dmp iufo9.dmp
    rename iufo7.dmp iufo8.dmp 
    rename iufo6.dmp iufo7.dmp 
    rename iufo5.dmp iufo6.dmp 
    rename iufo4.dmp iufo5.dmp 
    rename iufo3.dmp iufo4.dmp 
    rename iufo2.dmp iufo3.dmp 
    rename iufo1.dmp iufo2.dmp 
    rename iufo.dmp iufo1.dmp 
    
    cd F:\ncback\ncv5
    del ncv59.dmp
    rename ncv58.dmp ncv59.dmp
    rename ncv57.dmp ncv58.dmp 
    rename ncv56.dmp ncv57.dmp 
    rename ncv55.dmp ncv56.dmp 
    rename ncv54.dmp ncv55.dmp 
    rename ncv53.dmp ncv54.dmp 
    rename ncv52.dmp ncv53.dmp 
    rename ncv51.dmp ncv52.dmp 
    rename ncv5.dmp  ncv51.dmp 
    
    
    cd F:\ncback\ncv5
    del xmv59.dmp
    rename xmv58.dmp xmv59.dmp
    rename xmv57.dmp xmv58.dmp 
    rename xmv56.dmp xmv57.dmp 
    rename xmv55.dmp xmv56.dmp 
    rename xmv54.dmp xmv55.dmp 
    rename xmv53.dmp xmv54.dmp 
    rename xmv52.dmp xmv53.dmp 
    rename xmv51.dmp xmv52.dmp 
    rename xmv5.dmp  xmv51.dmp 
    
    
    
    exp ncv5/1@jsce_127.0.0.1 file=f:\ncback\ncv5\ncv5.dmp log=f:\ncback\ncv5\ncv5.log owner=ncv5
    exp xmv502/1@jsce_127.0.0.1 file=f:\ncback\ncv5\xmv5.dmp log=f:\ncback\ncv5\xmv5.log owner=xmv502
    exp iufo/jsce001@jsce_127.0.0.1 file=f:\ncback\iufo\iufo.dmp log=f:\ncback\iufo\iufo.log owner=iufo
  • 相关阅读:
    Django form
    centos 配置yum 源
    VMware clone centos 没有获取到ip
    python 自定义分页
    模态对话框
    Keepalived HAProxy mysql 配置HA
    HAProxy + mysql 配置
    mysql 配置主从
    关于python很好的网站和书籍
    【文件系统】dumpe2fs命令
  • 原文地址:https://www.cnblogs.com/sumsen/p/2525434.html
Copyright © 2011-2022 走看看