Oracle数据库的备份方法

简介:
1、引言
   Oracle 数据库的备份方法很多,无论使用那种备份方法,备份的目的都是为了在出现故障后能够以尽可能小的时间和代价恢复系统。比如使用export实用程序导出数据库对象、使用Oracle备份数据库、使用Oracle对称复制、使用Oracle并行服务器、使用Oracle冷备份、使用Oracle热备份等各种备份方法都有其优缺点、适用的场合和相应的软硬件要求。本文主要就用export实用程序导出数据库对象、Oracle冷备份、Oracle热备份这三种最基本的备份方法进行详细的探讨,分析各自的优缺点和适用的场合,并给出自动执行这些备份方案的脚本文件。
   2、三种备份方案的比较
  冷备份
  冷备份是Oracle最简单的一种备份;执行冷备份前必须关闭数据库;然后使用 操作系统实用工具或者第三方工具备份所有相关的数据库文件。
  优点:能简单快速地备份。能简单快速地恢复。执行简单。
  缺点:必须关闭数据库,不能进行点恢复。
  热备份
  热备份是当数据库正在运行时进行数据备份的过程。执行热备份的前提是:数据库运行在可归档 日志模式。适用于24X7不间断运行的关键应用系统。
  优点:备份时数据库可以是打开的。热备份可以用来进行点恢复。初始化参数文件、归档日志在数据库正常运行时是关闭的,可用操作系统命令拷贝。
  缺点:执行过程复杂。由于数据库不间断运行, 测试比较困难。不能用操作系统实用工具拷贝打开的文件。必须使用Oracle提供的ocopy工具来拷贝打开的文件。热备份可能造成CPU、I/O过载,应在数据库不太忙时进行。
  Export导出数据库对象
  冷备份和热备份都备份物理数据库文件,因而被称为物理备份。而export备份的是数据库对象,因此被称为逻辑备份。
  优点:能执行对象或者行恢复。备份和恢复速度更快。能够跨操作系统平台迁移数据库。数据库可一直运行。
  缺点:export并不是冷备份和热备份的替代工具。冷、热备份可保护介质失效。export备份可保护用户或应用错误。
   3、冷备份方案的实施
  3.1 冷备份数据库的步骤
  (1)关闭数据库;
  (2)备份所有相关的数据库文件:初始化参数文件、控制文件(可用select name from v$controlfile;列出所有
  控制文件)、数据文件(可用select name from v$datafile;列出所有数据文件)、Redo日志(可用select member from v$logfile;列出所有redo日志文件)、归档的Redo日志(可用select sequence#,first_time from v$loghist;列出所有归档redo日志文件的顺序号和产生时间)。
   3.2 冷备份数据库的脚本文件coldbackup.bat
  4、热备份方案的实施
  4.1 热备份数据库的前提条件:数据库运行在归档模式
  Oracle数据库的redo日志记录在数据库上进行的所有活动。LGWR后台进程以一种循环方式写这些日志文件,从第一个redo日志到下一个,直到该组的最后一个,然后由从第一个日志写起。
  在非归档模式下,当循环写到最后一个日志文件后,就重写第一个日志。因此,非归档模式下唯一的数据库恢复办法就是使用冷备份。
  在归档模式下,当redo日志满时,一个ARCH后台进程就读取全部redo日志,然后将其写到归档日志。因此,可以使用热备份和点恢复。在归档日志模式下,如果归档日志目的空间已满,数据库活动将暂时停止,只有释放一些空间后,数据库才能继续运行。通常,background_dump_destination将产生一个跟踪文件来显示归档方面的问题。
  Oracle数据库安装默认运行在非归档模式,通过以下步骤可以从非归档模式转换为归档模式:
  (1)编辑参数文件init.ora,设置以下参数
  # 设置数据库自动归档
  log_archive_start = true
  # 设置归档日志文件的目录,该目录必须事先已建立,并有大量可利用的空间
  log_archive_dest_1="location=%oracle_base%\ oradata\%oracle_sid%\archive"
  # 设置归档日志文件名的格式。%s表示顺序号,%t表示线程号。
  log_archive_format = "%oracle_sid%%T%S.ARC"
  (2)在sqlplus上运行以下命令
sqlplus>;connect sys/qazwsx as sysdba
sqlplus>;shutdown immediate;
sqlplus>;startup mount exclusive;
sqlplus>;alter database archivelog;
sqlplus>;alter database open;
sqlplus>;shutdown immediate;
  (3)执行数据库冷备份
  当数据库运行在归档模式下,数据库恢复过程要求使用冷备份时,归档日志是必需的。
  (4)正常启动数据库,并确认数据库运行在归档模式
sqlplus >; startup;
sqlplus >; select * from v$database; 其log_mode会显示数据库是否归档模式
sqlplus >; archive log list; 也会显示数据库是否归档模式

 如果Oracle数据库运行在归档模式,当进行数据库维护时,可能需要暂停数据库的归档,在完成维护后,再重新启动归档模式。通过以下步骤可以从归档模式转换为非归档模式:
sqlplus>;connect sys/qazwsx as sysdba
sqlplus>;shutdown immediate;
sqlplus>;startup mount exclusive;
sqlplus>;alter database noarchivelog;
sqlplus>;alter database open;
sqlplus >; select * from v$database; 其log_mode会显示数据库是否归档模式
sqlplus >; archive log list; 也会显示数据库是否归档模式
   4.2 热备份数据库的步骤
  (1)拷贝init.ora文件到备份目录(参数文件在数据库启动后处于关闭状态)。
  (2)将需要备份的某个表空间置于开始备份模式。
  (3)使用ocopy.exe拷贝表空间,然后将该表空间置于结束备份模式中(ocopy.exe不能用于直接拷贝联机的数据库文件)。
  (4)对数据库中的每个表空间执行步骤2和3(可以通过视图dba_tablespaces和v$datafile查看数据库中有哪些表空间和数据文件)。
  (5)通过在sqlplus上执行archive log list命令获取当前的日志顺序号,从oldest online log sequence开始到current log sequence的联机redo日志应该是热备份的一部分。
  (6)在sqlplus上执行alter system switch logfile;命令来强迫日志切换,以便所有的日志都被归档。
  (7)使用alter database backup controlfile to trace;命令获得控制文件的一个备份,可以到%oracle_base%\admin\%oracle_sid%\udump目录中寻找最新的跟踪文件,其中有重建控制文件的全部命令。
  (8)使用windows nt的命令从%log_archive_dest%中拷贝归档的日志文件到备份目录。
   4.3 热备份数据库的脚本文件hotbackup.bat
  5、使用export作为备份策略
  5.1 export的命令选项说明
  Oracle数据库的exp工具提供tables、users、full database、tablespace四种级别的导出方式,把指定的数据库内容导出到一个或者多个oracle二进制文件中,该文件只允许用imp工具来读取,imp的命令选项可用imp help=y来查阅。
  您可以通过输入 EXP 命令以及各种自变量来控制“导出”的运行方式。要指定参数,您可以使用关键字:
  格式:EXP KEYWORD=value 或 KEYWORD=(value1,value2,...,valueN)
  实例:EXP SCOTT/TIGER GRANTS=Y TABLES=(EMP,DEPT,MGR)
  或 TABLES=(T11,T12),如果 T1 是分区表
  USERID 必须是命令行中的第一个参数。
  下列关键字仅用于可传输的表空间
  TRANSPORT_TABLESPACE 导出可传输的表空间元数据 (N)
  TABLESPACES 将传输的表空间列表
  5.2 export备份数据库的脚本文件expbackup.bat
  6、各种备份策略的自动执行方法
  不管是冷备份、热备份,还是export备份;不管是unix平台,还是windows平台,都可以利用at命令来定时、自动执行上述备份策略。AT 命令安排在特定日期和时间运行命令和程序,在windows nt平台上必须首先运行调度服务(schedule),才能使用at命令。
  AT命令用法如下:
  AT [\\computername] [ [id] [/DELETE] | /DELETE [/YES]]
  AT [\\computername] time [/INTERACTIVE]
  [ /EVERY:date[,...] | /NEXT:date[,...]] "command"
  \\computername 指定远程计算机。 如果省略这个参数,会计划在本地计算机上运行命令。
  id 指定给已计划命令的识别号。
  /delete 删除某个已计划的命令。如果省略 id,计算机上所有已计划的命令都会被删除。
  /yes 不需要进一步确认时,跟删除所有作业的命令一起使用。
  time 指定运行命令的时间。
  /interactive 允许作业在运行时,与当时登录的用户桌面进行交互。
  /every:date[,...] 每个月或每个星期在指定的日期运行命令。如果省略日期,则默认为在每月的本日运行。
  /next:date[,...] 指定在下一个指定日期(如下周四)运行命令。如果省略日期,则默认为在每月的本日运行。
  "command" 准备运行的 Windows NT 命令或批处理程序。
  举例如下:
  (1) 每周五19:00执行冷备份
  at 19:00 /every:F "coldbak.cmd"
  (2) 每周二20:00执行热备份
  at 20:00 /every:T "coldbak.cmd"
  (3) 每周一、二、三、四、五21:00执行export备份
  at 20:00 /every:M,T,W,Th,F "expbak.cmd"
最新内容请见作者的GitHub页:http://qaseven.github.io/


相关实践学习
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
相关文章
|
3月前
|
Oracle 关系型数据库 Linux
【赵渝强老师】Oracle数据库配置助手:DBCA
Oracle数据库配置助手(DBCA)是用于创建和配置Oracle数据库的工具,支持图形界面和静默执行模式。本文介绍了使用DBCA在Linux环境下创建数据库的完整步骤,包括选择数据库操作类型、配置存储与网络选项、设置管理密码等,并提供了界面截图与视频讲解,帮助用户快速掌握数据库创建流程。
378 93
|
2月前
|
Oracle 关系型数据库 Linux
【赵渝强老师】使用NetManager创建Oracle数据库的监听器
Oracle NetManager是数据库网络配置工具,用于创建监听器、配置服务命名与网络连接,支持多数据库共享监听,确保客户端与服务器通信顺畅。
215 0
|
3月前
|
SQL Oracle 关系型数据库
Oracle数据库创建表空间和索引的SQL语法示例
以上SQL语法提供了一种标准方式去组织Oracle数据库内部结构,并且通过合理使用可以显著改善查询速度及整体性能。需要注意,在实际应用过程当中应该根据具体业务需求、系统资源状况以及预期目标去合理规划并调整参数设置以达到最佳效果。
325 8
|
4月前
|
存储 关系型数据库 MySQL
MySQL数据库中进行日期比较的多种方法介绍。
以上方法提供了灵活多样地处理和对比MySQL数据库中存储地不同格式地日子信息方式。根据实际需求选择适当方式能够有效执行所需操作并保证性能优化。
462 10
|
5月前
|
SQL Oracle 关系型数据库
比较MySQL和Oracle数据库系统,特别是在进行分页查询的方法上的不同
两者的性能差异将取决于数据量大小、索引优化、查询设计以及具体版本的数据库服务器。考虑硬件资源、数据库设计和具体需求对于实现优化的分页查询至关重要。开发者和数据库管理员需要根据自身使用的具体数据库系统版本和环境,选择最合适的分页机制,并进行必要的性能调优来满足应用需求。
281 11
|
5月前
|
Oracle 关系型数据库 数据库
数据库数据恢复—服务器异常断电导致Oracle数据库报错的数据恢复案例
Oracle数据库故障: 某公司一台服务器上部署Oracle数据库。服务器意外断电导致数据库报错,报错内容为“system01.dbf需要更多的恢复来保持一致性”。该Oracle数据库没有备份,仅有一些断断续续的归档日志。 Oracle数据库恢复流程: 1、检测数据库故障情况; 2、尝试挂起并修复数据库; 3、解析数据库文件; 4、导出并验证恢复的数据库文件。
|
5月前
|
存储 Oracle 关系型数据库
服务器数据恢复—光纤存储上oracle数据库数据恢复案例
一台光纤服务器存储上有16块FC硬盘,上层部署了Oracle数据库。服务器存储前面板2个硬盘指示灯显示异常,存储映射到linux操作系统上的卷挂载不上,业务中断。 通过storage manager查看存储状态,发现逻辑卷状态失败。再查看物理磁盘状态,发现其中一块盘报告“警告”,硬盘指示灯显示异常的2块盘报告“失败”。 将当前存储的完整日志状态备份下来,解析备份出来的存储日志并获得了关于逻辑卷结构的部分信息。
|
5月前
|
存储 Oracle 关系型数据库
【赵渝强老师】Oracle RMAN的目录数据库
Oracle RMAN默认将备份元信息存储在控制文件中,但控制文件损坏或丢失会导致恢复失败,且备份增多会使控制文件无限增长。为解决这些问题,Oracle引入了RMAN目录数据库(Catalog Database),专门用于存储RMAN备份的元信息。使用目录数据库可提升备份管理效率,支持多数据库共享、长期备份历史记录存储,并可保存RMAN脚本。本文详细介绍了如何创建目录数据库、注册目标数据库及其操作步骤。
150 0
|
8月前
|
Oracle 安全 关系型数据库
【Oracle】使用Navicat Premium连接Oracle数据库两种方法
以上就是两种使用Navicat Premium连接Oracle数据库的方法介绍,希望对你有所帮助!
1616 28
|
6月前
|
存储 Oracle 关系型数据库
oracle数据恢复—oracle数据库执行错误truncate命令的数据恢复案例
oracle数据库误执行truncate命令导致数据丢失是一种常见情况。通常情况下,oracle数据库误操作删除数据只需要通过备份恢复数据即可。也会碰到一些特殊情况,例如数据库备份无法使用或者还原报错等。下面和大家分享一例oracle数据库误执行truncate命令导致数据丢失的数据库数据恢复过程。

热门文章

最新文章

推荐镜像

更多