`
baobaojinjin
  • 浏览: 142100 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Oracle备份与恢复介绍(物理备份与逻辑备份)

 
阅读更多

一、Oracle备份方式分类:
Oracle有两类备份方式:
(1)物理备份:是将实际组成数据库的操作系统文件从一处拷贝到另一处的备份过程,通常是从磁盘到磁带。
物理备份又分为冷备份、热备份;   
(2)逻辑备份:是利用SQL语言从数据库中抽取数据并存于二进制文件的过程。
逻辑备份使用导入导出工具:EXPDP/IMPDP或EXP/IMP;

备份方式的优缺点及使用时机比较如下图:


二、Oracle备份方式介绍:
1、物理备份之冷备份(条件-NonArchiveLog):
  当数据库可以暂时处于关闭状态时,我们需要将它在这一稳定时刻的数据相关文件转移到安全的区域,当数据库遭到破坏,再从安全区域将备份的数据库相关文件拷贝回原来的位置,这样,就完成了一次快捷安全等数据转移。由于是在数据库不提供服务的关闭状态,所以称为冷备份。冷备份具有很多优良特性,比如上面图中我们提到的,快速,方便,以及高效。一次完整的冷备份步骤应该是:
(1)首先关闭数据库(shutdown normal)
(2)拷贝相关文件到安全区域(利用操作系统命令拷贝数据库的所有的数据文件、日志文件、控制文件、参数文件、口令文件等(包括路径))
(3)重新启动数据库(startup)
以上的步骤我们可以用一个脚本来完成操作:
  su – oracle <      sqlplus /nolog 
  connect / as sysdba
  shutdown immediate;
  !cp 文件   备份位置(所有的日志、数据、控制及参数文件);
  startup;
  exit;
这样,我们就完成了一次冷备份,请确定你对这些相应的目录(包括写入的目标文件夹)有相应的权限。
物理冷备份的恢复:
恢复的时候,相对比较简单了,我们停掉数据库,将文件拷贝回相应位置,重启数据库就可以了,当然也可以用脚本来完成。

2、物理备份之热备份:(条件-ArchiveLog)
  当我们需要做一个精度比较高的备份,而且我们的数据库不可能停掉(少许访问量)时,这个情况下,我们就需要归档方式下的备份,就是下面讨论的热备份。热备份可以非常精确的备份表空间级和用户级的数据,由于它是根据归档日志的时间轴来备份恢复的,理论上可以恢复到前一个操作,甚至就是前一秒的操作。具体步骤如下:
(1)通过视图v$database,查看数据库是否在Archive模式下:        
     SQL> select log_mode from v$database;
  如果不是Archive模式,则设定数据库运行于归档模式下:
    SQL>shutdown immediate
  SQL>startup mount
  SQL>alter database archivelog;
  SQL>alter database open;
  如果Automaticarchival显示为“Enabled”,则数据库归档方式为自动归档。否则需要手工归档,或者将归档方式修改为自动归档,如:
  正常shutdown数据库,在参数文件中init.ora中加入如下参数
  SQL>shutdown immediate
   修改init.ora:
  LOG_ARCHIVE_START=TRUE
  LOG_ARCHIVE_DEST1=ORACLE_HOME/admin/o816/arch(归档日志存放位置可以自己定义)
  SQL>startup
  然后,重新启动数据库,此时Oracle数据库将以自动归档的方式工作在Archive模式下。其中参数LOG_ARCHIVE_DEST1是指定的归档日志文件的路径,建议与Oracle数据库文件存在不同的硬盘,一方面减少磁盘I/O竞争,另外一方面也可以避免数据库文件所在硬盘毁坏之后的文件丢失。归档路径也可以直接指定为磁带等其它物理存储设备,但可能要考虑读写速度、可写条件和性能等因素。      
  注意:当数据库处在ARCHIVE模式下时,一定要保证指定的归档路径可写,否则数据库就会挂起,直到能够归档所有归档信息后才可以使用。另外,为创建一个有效的备份,当数据库在创建时,必须履行一个全数据库的冷备份,就是说数据库需要运行在归档方式,然后正常关闭数据库,备份所有的数据库组成文件。这一备份是整个备份的基础,因为该备份提供了一个所有数据库文件的拷贝。(体现了冷备份与热备份的合作关系,以及强大的能力)
(2)表空间文件备份步骤:
  a,首先,修改表空间文件为备份模式 ALTER TABLESPACE tablespace_name BEGIN BACKUP;
  b,然后,拷贝表空间文件到安全区域 !CP tablespace_name D_PATH;
  c,最后,将表空间的备份模式关闭    ALTER TABLESPACE tablespace_name END BACKUP;
(3)归档日志文件备份步骤:
  停止归档进程-->备份归档日志文件-->启动归档进程
  如果日志文档比较多,我们将它们写入一个文件成为一个恢复的参考:$   files `ls <归档文件路径>/arch*.dbf`;export files
(4)控制文件备份步骤:
  SQL> alter database backup controlfile to 'controlfile_back_name(一般用2004-11-20的方式)' reuse;
  当然,我们也可以将上面的东东写为一个脚本,在需要的时候执行就可以了:
  脚本范例:
  su – oracle <      sqlplus /nolog 
  connect / as sysdba
  ALTER TABLESPACE tablespace_name BEGIN BACKUP
  !CP tablespace_name D_PATH
  ALTER TABLESPACE tablespace_name END BACKUP
  alter database backup controlfile to 'controlfile_back_name(一般用2004-11-20的方式)' reuse;
  !files `ls <归档文件路径>/arch*.dbf`;export files
物理热备份的恢复:   
热备份的恢复,对于归档方式数据库的恢复要求不但有有效的日志备份还要求有一个在归档方式下作的有效的全库备份。归档备份在理论上可以无数据丢失,但是对于硬件以及操作人员的要求都比较高。在我们使用归档方式备份的时候,全库物理备份也是非常重要的。归档方式下数据库的恢复要求从全备份到失败点所有的日志都要完好无缺。
  恢复步骤:LOG_ARCHIVE_DEST_1
  (1)shutdown数据库。
  (2)将全备份的数据文件放到原来系统的目录中。
  (3)将全备份到失败点的所有归档日志放到参数LOG_ARCHIVE_DEST_1所指定的位置。
  (4)利用sqlplus登陆到空实例。(connect / as sysdba)
          startup mount
          set autorecovery on
          recover database;
          alter database open;   

3、逻辑备份之EXP/IMP:
EXP和IMP是客户端工具程序,它们既可以在客户端使用,也可以在服务端使用。
EXPDP和IMPDP是服务端的工具程序,他们只能在ORACLE服务端使用,不能在客户端使用。
IMP只适用于EXP导出的文件,不适用于EXPDP导出文件;IMPDP只适用于EXPDP导出的文件,而不适用于EXP导出文件。
使用EXP/IMP导出/导入包括三种方式:
  (1)表方式(T)    可以将指定的表导出备份;
    (2)用户方式(U)     可以将指定的用户相应的所有数据对象导出;
  (3)全库方式(Full)     将数据库中的所有对象导出;
(1)导出表:
E:\>exp system/oracle TABLES=scott.dept,scott.emp FILE=a.dmp
(2)导出方案:
E:\>exp system/oracle OWNER=scott FILE=b.dmp
(3)导出数据库:
E:\>exp system/oracle FILE=c.dmp FULL=Y
(4)导入表:
SQL> drop table scott.emp;
SQL> drop table scott.dept;
E:\>impdp scott/tiger file=a.dmp tables=dept,emp
(5)导入方案:
SQL> drop user scott cascade;
SQL> create user scott identified by tiger;
SQL> grant dba to scott;
E:\>impdp scott/tiger file=b.dmp
E:\>impdp system/oracle file=b.dmp owner=scott
(6)导入数据库:
impdp system/oracle file=c.dmp full=y
在导入导出备份方式中,提供了很强大的一种方法,就是增量导出/导入,但是它必须作为System来完成增量的导入导出,而且只能是对整个数据库进行实施。增量导出又可以分为三种类别:
(1)完全增量导出(Complete Export)     这种方式将把整个数据库文件导出备份;exp system/manager inctype=complete file=20041125.dmp(为了方便检索和事后的查询,通常我们将备份文件以日期或者其他有明确含义的字符命名)
(2)增量型增量导出(Incremental Export)     这种方式将只会备份上一次备份后改变的结果;exp system/manager inctype=incremental file=20041125.dmp
(3)累积型增量导出(Cumulate Export)      这种方式的话,是导出自上次完全增量导出后数据库变化的信息。exp system/manager inctype=cumulative file=20041125.dmp
通常情况下,DBA们所要做的,就是按照企业指定或者是自己习惯的标准(如果是自己指定的标准,建议写好计划说明),一般,我们采用普遍认可的下面的方式进行每天的增量备份:
   Mon: 完全备份(A) 
   Tue: 增量导出(B) 
   Wed: 增量导出(C) 
   Thu: 增量导出(D) 
   Fri: 累计导出(E) 
   Sat: 增量导出(F) 
   Sun: 增量导出(G)
这样,我们可以保证每周数据的完整性,以及恢复时的快捷和最大限度的数据损失。恢复的时候,假设事故发生在周末,DBA可按这样的步骤来恢复数据库: 
   第一步:用命令CREATE DATABASE重新生成数据库结构; 
   第二步:创建一个足够大的附加回滚。 
   第三步:完全增量导入A: 
   imp system/manager inctype=RESTORE FULL=y FILE=A 
   第四步:累计增量导入E: 
   imp system/manager inctype=RESTORE FULL=Y FILE=E 
   第五步:最近增量导入F: 
   imp system/manager inctype=RESTORE FULL=Y FILE=F 
 通常情况下,DBA所要做的导入导出备份就算完成,只要科学的按照规律作出备份,就可以将数据的损失降低到最小,提供更可靠的服务。另外,DBA最好对每次的备份做一个比较详细的说明文档,使得数据库的恢复更加可靠。

4、逻辑备份之EXPDP/IMPDP
使用数据泵(Data Dump)导出/导入包括4种方式:导出表、导出方案、导出表空间、导出数据库。
(1)导出表
在E盘建立目录oracledump;
SQL> CREATE DIRECTORY dump_dir AS 'E:\oracledump';
SQL> GRANT READ,WRITE ON DIRECTORY dump_dir TO scott;
E:\>expdp scott/tiger DIRECTORY=dump_dir DUMPFILE=tab.dmp TABLES=dept,emp
(2)导出方案:
E:\>expdp scott/tiger DIRECTORY=dump_dir DUMPFILE=schemaScott.dmp SCHEMAS='SCOTT';
(3)导出表空间:
E:\>expdp system/oracle directory=dump_dir dumpfile=tablespaceUsers.dmp ESTIMATE_ONLY
(4)导出数据库:
E:\>expdp system/oracle directory=dump_dir dumpfile=database.dmp FULL=Y
(5)导入表:
SQL> drop table scott.emp;
SQL> drop table scott.dept;
E:\>impdp scott/tiger directory=dump_dir dumpfile=tab.dmp tables=dept,emp
(6)导入方案:
SQL> drop user scott cascade;
SQL> create user scott identified by tiger;
SQL> grant dba to scott;
E:\>impdp system/oracle directory=dump_dir dumpfile=schemaScott.dmp schemas=scott
(7)导入表空间:
impdp system/oracle directory=dump_dir dumpfile=tablespaceUsers.dmp tablespaces=users
(8)导入数据库:
impdp system/oracle directory=dump_dir dumpfile=database.dmp FULL=Y

分享到:
评论

相关推荐

    Oracle备份与恢复

    Oracle备份与恢复 备份与恢复概述 物理备份与恢复 逻辑备份与恢复 备份与恢复策略

    oracle备份与恢复

    逻辑备份:指通过逻辑导出对数据进行备份。将数据库中的用户对象导出到一个二进制文件中,逻辑备份...逻辑备份则是对物理备份的方式的一种补充,由于逻辑备份具有平台无关性,逻辑备份被作为数据迁移及移动的主要手段。

    oracle备份与恢复.ppt

    1.有关联机日志文件的一些操作 2.不使用Oracle Recovery Manager 的物理备份 3.非归档方式下的恢复 4.归档方式下的完全恢复 5.归档方式下的不完全恢复 6. 逻辑备份--Oracle Export and Import 实用工具

    Oracle_RMAN物理备份技术详解

    ORACLE备份分为物理备份和逻辑备份两种。物理备份就是转储ORACLE物理文件(如数据文件、控制文件、归档日志文件等),一旦数据库发生故障,可以利用这些文件进行还原;逻辑备份就是对数据库对象(如用户、表、存储过程...

    ORACLE数据库备份与恢复

    Oracle的备份与恢复有三种标准的模式,大致分为两大类,备份恢复(物理上的)以及导入导出(逻辑上的),而备份恢复又可以根据数据库的工作模式分为非归档模式

    oracle备份与还原数据库

    oracle备份与还原数据库Oracle数据库有三种标准的备份方法,它们分别是导出/导入(EXP/IMP)、热备份和冷备份。导出备件是一种逻辑备份,冷备份和热备份是物理备份。

    Oracle12C备份恢复培训整体内容.docx

    2.1.1 Oracle逻辑备份的概念: 逻辑备份就是创建数据库对象的逻辑拷贝并存入一个二进制转储文件:.dmp文件 这些记录的导出与其物理位置无关。 导入的实质就是读取被导出的二进制转储文件并将其恢复到数据库。

    ORACLE数据库备份与恢复详解

    Oracle的备份与恢复有三种标准的模式,大致分为两大类,备份恢复(物理上的)以及导入导出(逻辑上的),而备份恢复又可以根据数据库的工作模式分为非归档模式(Nonarchivelog-style)和归档模式(Archivelog-style),通常,...

    ORACLE9I_备份与恢复.doc

    oracle 备份与恢复 第一章 备份和恢复的基本概念 1. 数据丢失的分类 数据丢失可分为逻辑丢失和物理丢失。 逻辑丢失:用户错误操作和应用程序错误造成数据丢失。 物理丢失:数据库物理结构破坏。 2. 备份和恢复的...

    Oracle 数据库的备份与恢复

    Oracle 数据库的备份与恢复 Oracle数据库有三种标准的备份方法,它们分别是导出/导入(EXP/IMP)、热备份和冷备份。导出备件是一种逻辑备份,冷备份和热备份是物理备份。

    精通ORACLE 10G备份与恢复

    通过学习本书,读者不仅可以掌握Oracle数据库的基本备份与恢复方法,而且还可以了解并掌握Oracle数据库备份与恢复的高级特征(表空间时间点恢复、复制数据库、物理备用数据库以及逻辑备用数据库等)。本书不仅适合于...

    oracle备份恢复

    描述oracle的物理备份,逻辑备份已经相应恢复

    Oracle数据库逻辑备份的实现

    这种逻辑备份需要在数据库启动的情况下使用, 其导出实质就是读取一个数据库记录集(甚至可以包括数据字典)并将这个记录集写入一个文件,这些记录的导出与其物理位置无关,导入实质就是读取转储文件并执行其中的命令...

    oracle 常用语句 oracle备份 oracle冷备份 oracle启停 oracle导出 oracle导入

    如果仅采用“逻辑备份”方式,恢复时会有以下两个主要问题: .................. 1. Oracle逻辑错误造成无法启动 .................. 2. 某一个datafile故障或丢失 .................. 3. 某一个tablespace故障...

    ORACLE 数据库的逻辑备份

    第一类为物理备份,该方法实现数据库的完整恢复,但数据库必须运行在归挡模式下(业务数据库在非归挡模式下运行),且需要极大的外部存储设备,例如磁带库;第二类备份方式为逻辑备份,业务数据库采用此种方式,此...

    精通Oracle 10g备份与恢复(中文 共两个分卷).part2

    通过学习本书,读者不仅可以掌握Oracle数据库的基本备份与恢复方法,而且还可以了解并掌握Oracle数据库备份与恢复的高级特征(表空间时间点恢复、复制数据库、物理备用数据库以及逻辑备用数据库等)。 本书不仅适合...

    RMAN参考手册 - oracle 10g

    ORACLE备份分为物理备份和逻辑备份两种:物理备份就是转储ORACLE物理文件(如数据文件、控制文件、归档日志文件等),一旦数据库发生故障,我们可以利用这些文件进行还原;逻辑备份就是对数据库对象(如用户、表、存储...

    Oracle 冷备份与热备份的区别

    物理备份:是将实际组成数据库的操作系统文件从一处拷贝到另一处的备份过程,通常是从磁盘到磁带。 逻辑备份:是利用SQL语言从数据库中抽取数据并存于二进制文件的过程。

Global site tag (gtag.js) - Google Analytics