现在的ORACLE一般都采用RMAN进行备份,不过在8及以前一般都是DBA自己写的一些备份脚本。
这是一个比较简单的windows系统不用RMAN的oracle数据库热备脚本。仅供参考学习用。
本代码包括以下两个文件。
主文件backup.bat,用来执行备份的批处理文件,配置好参数,直接运行即可。
rem 作者:叶正盛(MKing),2008-06-25
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
connect / as SYSDBA
--关闭屏幕输出
set term off;
--关闭输出列头信息
set heading off;
--设置行长度
set linesize 500;
--关闭输出统计行数信息
set feedback off;
--关闭变量扫描
SET SCAN off;
--打开输出
SET SERVEROUTPUT ON SIZE 100000;
spool off
--将生成的脚本输出到mybackup.sql文件
spool mybackup.sql
declare
--读取数据表空间
cursor cur_tbs is
select distinct b.*
from v$datafile a, v$tablespace b
where a.TS# = b.TS#;
--读取表空间数据文件
cursor cur_datafile(iTS integer) is
select * from v$datafile a where a.TS# = iTS;
--读取控制文件
cursor cur_controlfile is
select * from v$controlfile;
--读取重做日志文件
cursor cur_redofile is
select * from v$logfile;
begin
--输出连接数据库命令
dbms_output.put_line('connect / as SYSDBA;');
for rec_tbs in cur_tbs loop
--输出开始备份表空间命令
dbms_output.put_line('alter tablespace ' || rec_tbs.name ||' begin backup;');
for rec_datafile in cur_datafile(rec_tbs.ts#) loop
--输出操作系统复制数据文件命令
dbms_output.put_line('host copy /Y "'||rec_datafile.name||'" "&1";');
end loop;
--输出结束备份表空间命令
dbms_output.put_line('alter tablespace ' || rec_tbs.name || ' end backup;');
end loop;
for rec_controlfile in cur_controlfile loop
--输出操作系统复制控制文件命令
dbms_output.put_line('host copy /Y "'||rec_controlfile.name||'" "&1";');
end loop;
--输出切换日志命令
dbms_output.put_line('alter system archive log current;');
--输出备份归档日志文件命令
dbms_output.put_line('host move /Y "&2*.*" "&1";');
for rec_redofile in cur_redofile loop
--输出备份重做日志文件命令
dbms_output.put_line('host copy /Y "'||rec_redofile.member||'" "&1";');
end loop;
--输出退出sqlplus命令
dbms_output.put_line('exit;');
end;
/
spool off
exit;
分享到:
相关推荐
RMAN(Recovery Manager)是Oracle数据库的备份和恢复工具,它提供了多种备份方式,包括冷备、热备和增量备份等。冷备是指数据库处于关闭状态或mount状态下进行的备份,热备是指数据库处于打开状态下进行的备份。 ...
总结起来,这个压缩包提供了Windows和Linux环境下Oracle数据库的自动备份解决方案,通过批处理和shell脚本结合操作系统自带的任务调度工具,实现了数据库的自动化备份。同时,附带的说明文档详细解释了设置过程,...
RMAN(Recovery Manager)是一种Oracle数据库备份和恢复工具,能够帮助DBA快速备份和恢复数据库。下面将详细介绍RMAN自动备份和恢复的相关知识点。 一、为什么需要设置自动归档模式? 在使用RMAN进行备份和恢复时...
### Oracle数据库备份与恢复知识点总结 #### 一、EXP/IMP (导出与导入) **1.1 基本命令** - **EXP**: 用于从数据库导出数据。 - `exp username/password [参数]` - **IMP**: 用于向数据库导入数据。 - `imp ...
介绍oracle热备基础知识,包含备份检查,增量备份,各数据库文件备份方法等。
### RMAN初学者指南:深入理解冷备与热备 #### RMAN——Oracle数据库的守护神 RMAN(Recovery Manager...随着技术的发展,RMAN不断进化,适应着日益复杂的数据管理需求,成为Oracle数据库生态系统中的一颗璀璨明珠。
### Oracle 数据库备份与恢复知识点总结 #### 一、EXP/IMP(导出与导入,装库与卸库) **1.1 基本命令** - **获取帮助**: 使用`expdp help=yes`或`impdp help=yes`来获取命令的帮助信息。 - **三种工作方式**: -...
Oracle数据库是企业级广泛应用的关系型数据库系统,其数据的安全性和稳定性至关重要。数据备份与恢复是保障数据完整性和可用性的重要手段。在这个主题中,我们将深入探讨Oracle数据库的备份策略、备份类型以及恢复...
- Oracle RAC环境中只有一个历史全备(热备),即通过`Oracle RAC on rman>backup database;`命令生成的备份。 - 缺乏增量备份和归档备份。 #### 恢复流程 ##### 步骤1: 修改参数文件并启动数据库到NOMOUNT模式 ...
通过在两台服务器上部署HA(High Availability)集群服务,共享RAID磁盘阵列,可以实现双机热备,确保Oracle数据库和RMAN(Recovery Manager)自动备份的连续运行。正常情况下,一台服务器运行Oracle数据库,另一台...
总结来看,Oracle数据库的备份与恢复技术是相当全面且复杂的,涵盖了从基础的数据导出导入工具EXP/IMP,到高级的数据加载工具SQL*Loader,再到操作系统级别的备份与恢复,以及专业的RMAN管理器。Oracle用户需要根据...
Oracle数据库的控制文件是数据库系统的关键组成部分,它记录了数据库的结构信息,包括数据文件、重做日志文件的位置和状态,确保数据库的一致性。本文将深入探讨控制文件的作用、管理和常见操作。 一、控制文件的...
1. **有效备份**:指通过RMAN工具进行的数据库全备(热备),包括所有的datafile、archivelog、spfile、controlfile。 - Archivelog必须覆盖所有datafile的SCN号,确保完整备份。 - Spfile虽然可以不备份,但通常...
Oracle Database 19c是甲骨文公司推出的最新版本之一的数据库管理系统,它继承了Oracle Database的传统优势,并在此基础上增加了许多新特性。19c中的“c”代表“持续”,表明这是一个长期支持版本,具有稳定性和兼容...
Oracle数据库的备份与恢复是数据库管理员(DBA)的核心任务之一,它关乎到数据的安全性和业务的连续性。Oracle提供了一系列强大的工具和技术来确保在数据丢失或系统故障时能够快速恢复。以下是对Oracle备份与还原的...
### Oracle备份与恢复总结 #### 一、EXP/IMP(导出与导入) **1.1 基本命令** EXP/IMP是Oracle提供的一种数据迁移工具,主要用于数据的导出与导入。EXP用于导出数据,IMP用于导入数据。 **1. 获取帮助** 在使用...
### Oracle备份与恢复知识点概述 ...以上是关于Oracle备份与恢复的重要知识点概览,这些知识点涵盖了从基础命令到高级应用的各个方面,对于理解Oracle数据库的备份机制以及如何有效地进行数据保护具有重要的指导意义。