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;


  • 相关阅读:
    使用IDEA模拟git命令使用的常见场景
    解决 No converter found for return value of type: class java.util.ArrayList
    Connections could not be acquired from the underlying database! ### The error may exist in mapper/BookMapper.xml
    There is no PasswordEncoder mapped for the id "null"
    The server time zone value '�й���׼ʱ��' is unrecognized or represents more than one time zone
    MySQL错误:2003-Can't connect to MySQL server on 'localhost'(10061 "unknown error")
    镜像源
    读书笔记 Week5 2018-4-5
    [第五周课后作业] 软件创新分析
    C#入门学习笔记
  • 原文地址:https://www.cnblogs.com/linximf/p/2257097.html
Copyright © 2011-2022 走看看