我现在为客户做了一套数据库应用系统,在应用现场没有数据库管理员,为了保证数据安全,现在需要经常做数据备份,备份方式采用热备份,不需要人工干预,最好能由操作系统进行,不知道如何实现。
WIN2000 SERVER
ORACLE  8.1.6

解决方案 »

  1.   

    自动,人类自诞生以来就希望每件事都能自动完成,实际上还是要手动做一些事的:-)热备份->EXPORT? 1. write your own export command and parfile 
     2. put it in the bat batch .(backup.bat)
     3. schedule the bat by using AT commnd
      

  2.   

    给你一个热备份的脚本,热备份最大的好处就是可以进行数据的完全或非完全恢复,如0点备份,23点崩溃,数据库可以恢复到23点,也可以选择性的恢复到12点。关于恢复的资料,最好自己看书,很多。
    rem     script:hotbak.sql
    rem     creater:chenjiping
    rem     date:4.4.2002
    rem     desc:backup database datafile in archive--connect database
    connect internal/virpure;--archive
    alter system checkpoint;
    alter system archive log all;
    alter system switch logfile;
    --start
    alter tablespace afis_remote begin backup;
    !xcopy e:\orant\database\remote_data1.ora e:\databak/H/R;
    !xcopy e:\orant\database\remote_data2.ora e:\databak/H/R; 
    alter tablespace afis_remote end backup;alter tablespace afis_rmtafis begin backup;
    !xcopy e:\orant\database\rmtafis_data1.ora e:\databak/H/R;
    !xcopy e:\orant\database\rmtafis_data2.ora e:\databak/H/R; 
    alter tablespace afis_rmtafis end backup;alter tablespace afis_lquser begin backup;
    !xcopy e:\orant\database\lquser_data.ora e:\databak/H/R;
    alter tablespace afis_lquser end backup;alter tablespace afis_transf begin backup;
    !xcopy e:\orant\database\transf1_data.ora e:\databak/H/R;
    !xcopy e:\orant\database\transf2_data.ora e:\databak/H/R; 
    alter tablespace afis_transf end backup;alter tablespace system begin backup;
    !xcopy e:\orant\database\sys1afis.ora e:\databak/H/R;
    alter tablespace system end backup;alter tablespace rbs begin backup;
    !xcopy e:\orant\database\rbs1afis.ora e:\databak/H/R;
    alter tablespace rbs end backup;alter tablespace usr begin backup;
    !xcopy e:\orant\database\usr1afis.ora e:\databak/H/R;
    alter tablespace usr end backup;
    alter tablespace temporary begin backup;
    !xcopy e:\orant\database\tmp1afis.ora e:\databak/H/R;
    alter tablespace temporary end backup;
    --end--bak control file
    --bin
    alter database backup controlfile to 'e:\databak\controlbinbak.000';
    --ascii
    alter database backup controlfile to trace;alter system switch logfile;
    alter system switch logfile;
    以下是调用以上脚本的bat,照样可以加到任务计划中,一般热备份每周备份一次就够了,主要看情况不同而定。
    rem     script:hotbak.bat
    rem     creater:chenjiping
    rem     date:4.4.2002
    rem     desc:backup database datafile in archiveecho del old temp backup file
    del  f:\datatmp\*.*/q
    del  e:\datatmp\*.*/q
    echo bak backup file to temp
    move e:\databak\*.* e:\datatmp\
    move f:\Archive\*.* f:\datatmp\
    echo start new bak to e:\databak
    svrmgrl @e:\sql\hotbak.sql
      

  3.   

    1.在d:盘中建立备份文件夹,如:d:\数据库备份;再建立5个(最多7个)子目录,如d:\数据库备份\星期一,d:\数据库备份\星期二,......,如此可保证每周的备份;
    2.在d:\数据库备份目录下建立5个批处理文件,如:星期一.bat(可为7个);
    3.编辑星期一.bat,写入:
    exp system/manager owner=(test1) file=d:\数据库备份\星期一\test1.dmp
    log=d:\数据库备份\星期一\test1.log buffer=655000;
    (注意有几个库写几个)4.将批理文件加入“控制面板”、“任务计划”、“备份”、“每天”,时间可为凌晨1-3点,OK!