zoukankan      html  css  js  c++  java
  • 比较简单windows系统不用RMAN的oracle数据库热备脚本(转载)

    现在的ORACLE一般都采用RMAN进行备份,不过在8及以前一般都是DBA自己写的一些备份脚本。
    这是一个比较简单的windows系统不用RMAN的oracle数据库热备脚本。仅供参考学习用。
     
    本代码包括以下两个文件。
     
    主文件backup.bat,用来执行备份的批处理文件,配置好参数,直接运行即可。
    rem 设置ORACLE_SID  

    set ORACLE_SID=testdb

    rem 设置备份目录

    set backup_dest_path=H:/oracle/oradata/testdbbackup/

    rem 设置归档日志目录

    set archive_dest_path=H:/oracle/oradata/testdb/archive/

    rem 创建备份的SQLPLUS脚本到mybackup.sql文件

    sqlplus /nolog @createscript.sql

    rem 执行备份

    sqlplus /nolog @mybackup.sql %backup_dest_path% %archive_dest_path%
    生成备份脚本文件createscript.sql 
      1 connect / as SYSDBA  
    2
    3 --关闭屏幕输出
    4
    5 set term off;
    6
    7 --关闭输出列头信息
    8
    9 set heading off;
    10
    11 --设置行长度
    12
    13 set linesize 500;
    14
    15 --关闭输出统计行数信息
    16
    17 set feedback off;
    18
    19 --关闭变量扫描
    20
    21 SET SCAN off;
    22
    23 --打开输出
    24
    25 SET SERVEROUTPUT ON SIZE 100000;
    26
    27 spool off
    28
    29 --将生成的脚本输出到mybackup.sql文件
    30
    31 spool mybackup.sql
    32
    33 declare
    34
    35 --读取数据表空间
    36
    37 cursor cur_tbs is
    38
    39 select distinct b.*
    40
    41 from v$datafile a, v$tablespace b
    42
    43 where a.TS# = b.TS#;
    44
    45 --读取表空间数据文件
    46
    47 cursor cur_datafile(iTS integer) is
    48
    49 select * from v$datafile a where a.TS# = iTS;
    50
    51 --读取控制文件
    52
    53 cursor cur_controlfile is
    54
    55 select * from v$controlfile;
    56
    57 --读取重做日志文件
    58
    59 cursor cur_redofile is
    60
    61 select * from v$logfile;
    62
    63 begin
    64
    65 --输出连接数据库命令
    66
    67 dbms_output.put_line('connect / as SYSDBA;');
    68
    69 for rec_tbs in cur_tbs loop
    70
    71 --输出开始备份表空间命令
    72
    73 dbms_output.put_line('alter tablespace ' || rec_tbs.name ||' begin backup;');
    74
    75 for rec_datafile in cur_datafile(rec_tbs.ts#) loop
    76
    77 --输出操作系统复制数据文件命令
    78
    79 dbms_output.put_line('host copy /Y "'||rec_datafile.name||'" "&1";');
    80
    81 end loop;
    82
    83 --输出结束备份表空间命令
    84
    85 dbms_output.put_line('alter tablespace ' || rec_tbs.name || ' end backup;');
    86
    87 end loop;
    88
    89 for rec_controlfile in cur_controlfile loop
    90
    91 --输出操作系统复制控制文件命令
    92
    93 dbms_output.put_line('host copy /Y "'||rec_controlfile.name||'" "&1";');
    94
    95 end loop;
    96
    97 --输出切换日志命令
    98
    99 dbms_output.put_line('alter system archive log current;');
    100
    101 --输出备份归档日志文件命令
    102
    103 dbms_output.put_line('host move /Y "&2*.*" "&1";');
    104
    105 for rec_redofile in cur_redofile loop
    106
    107 --输出备份重做日志文件命令
    108
    109 dbms_output.put_line('host copy /Y "'||rec_redofile.member||'" "&1";');
    110
    111 end loop;
    112
    113 --输出退出sqlplus命令
    114
    115 dbms_output.put_line('exit;');
    116
    117 end;
    118
    119 /
    120
    121 spool off
    122
    123 exit;


  • 相关阅读:
    nginx简介(轻量级开源高并发web服务器:大陆使用者百度、京东、新浪、网易、腾讯、淘宝等)(并发量5w)(一般网站apache够用了,而且稳定)
    js中json数据简单处理(JSON.parse()和js中嵌套html)
    js中json法创建对象(json里面的:相当于js里面的=)
    SimpleDateFormat使用特定的解释
    eclipse+webservice开发实例
    android在Canvas使用drawBitmap画一幅画
    SoC嵌入式软件架构设计II:没有MMU的CPU虚拟内存管理的设计和实现方法
    SRM 590 DIV1
    菜鸟教程工具(三)——Maven自己主动部署Tomcat
    activity-alias使用
  • 原文地址:https://www.cnblogs.com/linximf/p/2257090.html
Copyright © 2011-2022 走看看