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 创建备份的SQLPLUS脚本到mybackup.sql文件

    sqlplus /nolog @createscript.sql

    rem 执行数据库备份

    sqlplus /nolog @mybackup.sql %backup_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 100;
    14
    15 --关闭输出统计行数信息
    16
    17 set feedback off;
    18
    19 --关闭变量扫描
    20
    21 SET SCAN off;
    22
    23 --关闭变量定义
    24
    25 SET DEFINE off;
    26
    27 --打开输出
    28
    29 SET SERVEROUTPUT ON SIZE 100000;
    30
    31 spool off
    32
    33 --将生成的脚本输出到mybackup.sql文件
    34
    35 spool mybackup.sql
    36
    37 declare
    38
    39 --读取数据文件
    40
    41 cursor cur_datafile is
    42
    43 select * from v$datafile;
    44
    45 --读取临时文件
    46
    47 cursor cur_tempfile is
    48
    49 select * from v$tempfile;
    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 --输出备份spfile文件命令
    70
    71 dbms_output.put_line('create pfile=''&1/pfile.ora'' from spfile;');
    72
    73 --输出关闭数据库命令
    74
    75 dbms_output.put_line('shutdown immediate;');
    76
    77 for rec_datafile in cur_datafile loop
    78
    79 --输出操作系统复制数据文件命令
    80
    81 dbms_output.put_line('host copy /Y "'||rec_datafile.name||'" "&1";');
    82
    83 end loop;
    84
    85 for rec_tempfile in cur_tempfile loop
    86
    87 --输出操作系统复制临时文件命令
    88
    89 dbms_output.put_line('host copy /Y "'||rec_tempfile.name||'" "&1";');
    90
    91 end loop;
    92
    93 for rec_controlfile in cur_controlfile loop
    94
    95 --输出操作系统复制控制文件命令
    96
    97 dbms_output.put_line('host copy /Y "'||rec_controlfile.name||'" "&1";');
    98
    99 end loop;
    100
    101 for rec_redofile in cur_redofile loop
    102
    103 --输出备份重做日志文件命令
    104
    105 dbms_output.put_line('host copy /Y "'||rec_redofile.member||'" "&1";');
    106
    107 end loop;
    108
    109 --输出启动数据库命令
    110
    111 dbms_output.put_line('startup;');
    112
    113 --输出退出sqlplus命令
    114
    115 dbms_output.put_line('exit;');
    116
    117 end;
    118
    119 /
    120
    121 spool off
    122
    123 exit;


  • 相关阅读:
    Pytest(2)使用和调用方法
    lnmp一键搭建环境 running
    cd / 、cd~、cd .和cd..区别 running
    php算法之冒泡排序 running
    linux系统安装 running
    webpack之urlloader running
    Unix系列shell程序编写(下)
    目标文件格式分析工具: ar,nm,objdump,objcopy,readelf
    Unix系列shell程序编写(上)
    在vmware下安装的linux系统上添加eth1
  • 原文地址:https://www.cnblogs.com/linximf/p/2257097.html
Copyright © 2011-2022 走看看