`
avery_leo
  • 浏览: 387972 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

oracle热备份和恢复自动产生sql源代码

阅读更多

 oracle热备份和恢复自动产生sql源代码
  各变量含义为:
  HOT_BACK_DIR: 热备份文件存放目录
  SCRIPT_FILE: 此代码所生成的批处理文件路径及文件名称
  LOG_FILE: 备份日志文件存放路径及文件名称
  INT_PWD: internal用户的口令
  以下代码存成sql文件后
  可以通过COMMAND :sqlplus internal/oracle@sqcdb @产生备份SQL代码的原文件名 <参数> 来运行。
  
  热备份SQL源代码如下:
  define HOT_BACK_DIR = e:\oradb\hotbackups
  define SCRIPT_FILE = e:\back\hotbackup.sql
  define LOG_FILE= e:\back\hotbackup.log
  define INT_PWD = oracle
  
  /* Create Temporary Table with Tablespace Data */
  drop table dsc_hot_stage;
  create table dsc_hot_stage
  (tablespace_name varchar2(30),
  file_name varchar2(200)
  );
  
  insert into dsc_hot_stage
  select rtrim(tablespace_name),rtrim(file_name) from sys.dba_data_files;
  
  /**** Set up the parameters for the spool file */
  set feedback off
  set heading off
  set pagesize 0
  set linesize 128
  set verify off
  set termout oN
  set echo off
  
  spool &SCRIPT_FILE
  
  select '/* ',
  'This is the hot backup script and has been generated',
  ' by gen_hotbk.sql',
  ' ' || to_char(sysdate, 'YYYY-MM-DD HH24:MI:SS') ,
  ' */'
  from dual;
  
  -- select 'connect internal/&INT_PWD'||'@sqcdb.sqc.com' from dual;
  select '$md e:\oradb' from dual;
  select '$md e:\oradb\hotbackups' from dual;
  select '$md e:\oradb\hotbackups\ctrl' from dual;
  select '$md e:\oradb\hotbackups\archive' from dual;
  -- select '$md e:\oradb\hotbackups\ora' from dual;
  
  -- Create Script to backup Control File to Trace
  select 'alter database backup controlfile to trace; ' from dual;
  select 'alter database backup controlfile to &HOT_BACK_DIR\CTRL\ctrsqcdb.ctl; ' from dual;
  
  -- Create Script to backup Archive File
  -- select 'alter system archive log all;' from dual;
  select 'alter system archive log current;' from dual;
  
  -- Create Script to backup actual data files to a directory
  select 'alter tablespace '|| tablespace_name||' begin backup;' c1 ,'$copy '||file_name||' &HOT_BACK_DIR'||'\'||substr(file_name,instr(rtrim(file_name),'\',-1,1)+1,length(rtrim(file_name))) c2, 'alter tablespace '|| tablespace_name||' end backup;' c3 from dsc_hot_stage
  group by tablespace_name,file_name order by 1;
  
  -- Create Script to backup Init.ora files
  --select '$copy c:\oracle\admin\sqcdb\pfile\init.ora --&HOT_BACK_DIR\ora'||' /y' from dual;
  
  -- Create Script to backup Net Config files
  --select '$copy C:\Oracle\Ora81\NETWORK\ADMIN\*.ora --&HOT_BACK_DIR\ora'||' /y'from dual;
  
  select 'spool &LOG_FILE ' from dual;
  select 'prompt ' ,'COMPLETE HOT BACKUP DATABASE SQCDB ON ' ,to_char(sysdate, 'YYYY-MM-DD HH24:MI:SS') from dual;
  select 'spool off' from dual;
  
  select 'exit' from dual;
  
  spool off
  
  @&SCRIPT_FILE
  
  $del &SCRIPT_FILE
  exit
  
  热恢复SQL源代码如下
  define HOT_BACK_DIR = e:\oradb\hotbackups
  define SCRIPT_FILE = e:\back\hotrev.bat
  define LOG_FILE= e:\back\hotrev.log
  define INT_PWD = oracle
  
  /* Create Temporary Table with Tablespace Data */
  drop table dsc_hot_stage;
  create table dsc_hot_stage
  (
  tablespace_name varchar2(30),
  file_name varchar2(200)
  );
  
  insert into dsc_hot_stage
  select rtrim(tablespace_name),rtrim(file_name) from sys.dba_data_files;
  
  /**** Set up the parameters for the spool file */
  set feedback off
  set heading off
  set pagesize 0
  set linesize 128
  set verify off
  set termout oN
  set echo off
  set pages 0 feed off echo off time off
  col a new_value b
  col c new_value d
  select value a,to_char(sysdate, 'YYYY-MM-DD HH24:MI:SS') c from v$parameter where name ='db_name';
  
  spool &SCRIPT_FILE
  
  select 'rem','This is the hot recover script and has been generated',' by gen_hotrev.sql'||' on &d' from dual;
  
  prompt set ShutDownFile=C:\ShutDown.SQL
  prompt echo connect internal/&INT_PWD > %ShutDownFile%
  prompt echo shutdown immediate >> %ShutDownFile%
  prompt echo startup >> %ShutDownFile%
  prompt echo shutdown normal >> %ShutDownFile%
  prompt echo exit >> %ShutDownFile%
  prompt
  prompt rem ***** SHUTDOWN THE DATABASE *******
  prompt set oracle_sid=&b
  prompt svrmgrl @%ShutDownFile%
  
  -- Create Script to Recover actual data files to original directory
  select 'copy '||'&HOT_BACK_DIR'||'\'|| substr(file_name,instr(rtrim(file_name),'\',-1,1)+1,length(rtrim(file_name)))||' '|| file_name from dsc_hot_stage;
  
  
  prompt set RevFile=C:\hotrev.SQL
  prompt echo connect internal/&INT_PWD > %RevFile%
  prompt echo startup mount >> %RevFile%
  prompt echo set autorecovery on >> %RevFile%
  prompt echo recover database >> %RevFile%
  prompt echo alter database open; >> %RevFile%
  prompt rem ***** RECOVER THE DATABASE *******
  prompt svrmgrl @%RevFile%
  prompt
  prompt del /Q %RevFile%
  prompt set LogFile=&LOG_FILE
  prompt echo COMPLETE HOT RECOVER FOR sqcdb DATABASE STARTED ON &d ...> %logFile%
  prompt rem exit
  spool off
  
  $&SCRIPT_FILE
  
  $del &SCRIPT_FILE

分享到:
评论

相关推荐

    三种oracle备份和恢复机制的sql代码自动产生源文件

    这些是自动产生ORACLE备份SQL代码的源文件。 包括冷备份、冷恢复、热备份、热恢复、EXP导出备份, IMP整个用户导入,单个表导入等SQL源代码。 可以通过COMMAND : sqlplus internal/oracle@sqcdb @产生备份SQL ...

    Oracle 备份工具,基于.net

    例如,可以增加对热备份的支持,允许在数据库运行时进行备份,提高备份效率;或者添加备份验证功能,确保备份文件的完整性和可用性。 联系人邮箱"micro__yang@hotmail.com"可能为寻求技术支持或进一步交流提供了...

    《Oracle 10g管理及应用》-王路群-源代码

    - RMAN(Recovery Manager):Oracle提供的备份和恢复工具,用于自动化备份过程。 - 数据库恢复:学习如何使用闪回技术、归档日志进行数据恢复。 5. **性能优化**: - Explain Plan:利用查询执行计划分析SQL...

    ORACLE第4天

    【标签】"源码 工具"可能意味着在学习过程中,还涉及到了Oracle的源代码分析,理解数据库内部的工作原理,以及使用各种工具进行数据库管理和监控,如SQL*Plus、Oracle Enterprise Manager等。 在【压缩包子文件的...

    oracle应用服务器教程

    Oracle应用服务器支持多种高可用性方案,如集群、故障切换、热备份等。理解这些机制并能正确配置,可以确保应用在故障时仍能正常运行。 10. **性能优化** 通过对JVM参数调整、内存分配、数据库连接池配置、应用...

    ORACLE面试测试题目

    - 优点:备份和恢复操作简单,数据库可以工作在非归档模式下,性能稍好。 - **热备份**:数据库仍在运行时进行备份。仅适用于归档模式的数据库。 - 优点:备份过程中数据库仍可用,可以恢复到任意时间点。 ### 8....

    在Solaris10上安装Oracle 11g OCP学习实操平台搭建

    - **灾难恢复计划**:制定恢复策略,包括冷备份、热备份和归档日志模式。 9. **故障排查**: - **日志分析**:监控`alert.log`和其他相关日志文件,及时发现和解决问题。 - **性能监控工具**:利用`gdb`、`kstat...

    Oracle 10g数据库基础教程数据库脚本

    Oracle 10g数据库是Oracle公司...源代码文件可能包含了示例数据库的创建、数据导入导出、备份恢复等脚本,是动手操作的最佳参考资料。在实践中学习,将理论知识转化为实际技能,对于提升Oracle 10g的使用能力至关重要。

    coldbak.sql

    与热备份不同,冷备份是在数据库处于非活动状态时执行的,这意味着在备份过程中,任何用户都无法访问数据库。这种备份方式适用于那些能够承受短暂停机时间的应用场景。 #### 二、冷备份脚本解析 根据提供的脚本...

    Oracle8i/9i精髓 第二版 (PDF扫描版)

    5. **备份与恢复**:介绍Oracle的备份策略,如冷备份、热备份和逻辑备份,以及如何进行数据库恢复。 6. **高可用性与容错**:解析RAC技术,以及故障切换和故障恢复机制。 7. **Internet特性**:讲解Oracle8i中的Web...

    蓝色风格地方大型人才招聘门户系统源代码

    在源代码层面,可能使用了PHP、Java或.NET等后端开发语言,配合MySQL、Oracle或SQL Server等关系型数据库进行数据存储和处理。后端开发者需要熟练掌握MVC(Model-View-Controller)架构模式,以实现业务逻辑与视图的...

    ORACLE数据库智能化管理系统2012

    数据库状态及运行情况综合查看,使您了解ORACLE运行状况及空间、日志归档、数据文件等使用情况更直观,并可智能生成数据库热备份脚本和备份恢复方案,为您的数据库保驾护航,使您高枕无忧。 本系统可执行SQL分组语句后...

    Oracle10gRAC应用于数据库的优势分析.docx

    - Linux 是一种开放源代码操作系统,具有较好的稳定性和安全性,且与 Oracle RAC 的兼容性较好。 #### 结论 综上所述,Oracle10g RAC 作为一种先进的数据库集群解决方案,能够有效解决医保数据库系统面临的诸多...

    OracleRAC体系结构与优势.docx

    集群件负责管理节点之间的通信、故障检测和恢复等核心功能。 **2. 硬件体系结构** RAC 架构通常基于标准化的硬件,如普通的 x86 服务器。这些服务器通过高速网络(如 InfiniBand 或者高速以太网)相互联通,形成一...

    Oracle 50 道面试题及答案.docx

    13. **加密PL/SQL**:Oracle提供WRAP工具对PL/SQL代码进行加密,保护源代码安全。 14. **FUNCTION, PROCEDURE, PACKAGE的区别**: - **FUNCTION**不返回结果,用于计算并返回一个值。 - **PROCEDURE**不返回值,...

    oracle面试题

    这可以保护PL/SQL程序的源代码不被直接查看,增强安全性。 #### 24. 解释FUNCTION、PROCEDURE和PACKAGE的区别 - **FUNCTION**: 用于返回一个值的PL/SQL代码块。 - **PROCEDURE**: 不返回值的PL/SQL代码块。 - **...

    IT笔试题全集_数据库Oracle篇_追雨制作_2011版[参照].pdf

    热备份适合归档模式,能提供更强大的恢复能力。 8. **TRUNCATE与DELETE命令** - **TRUNCATE** 是DDL,快速删除所有记录,不记录回滚信息,无法撤销。 - **DELETE** 是DML,记录回滚信息,可以撤销,但执行速度较...

    oracle数据库期末考试试题与答案.doc

    Oracle数据库期末考试试题涉及到多个方面的知识点,包括数据库内存结构、数据存储、用户管理、网络连接、SQL语法、索引类型、异常处理、游标操作、存储过程与包、触发器、备份与恢复策略以及数据导出导入等。...

Global site tag (gtag.js) - Google Analytics