文档库 最新最全的文档下载
当前位置:文档库 › Oracle数据库备份与恢复技术

Oracle数据库备份与恢复技术

Oracle数据库备份与恢复技术
Oracle数据库备份与恢复技术

Oracle数据库备份与恢复技术

Oracle是一个适合于大中型企业的数据库管理系统,它主要应用于:银行、电信、移动通信、航空、保险、金融、跨国公司、和电子商务等。备份与恢复是数据库管理中最重要的方面之一。如果数据库崩溃却没有办法恢复它,那么对企业造成的毁灭性结果可能会是数据丢失、收入减少、客户不满等。不管公司是使用单个数据库还是多个数据库来存储数百GB 或TB 的数据,它们都有一个共同点,即需要制订一个备份与恢复方案来备份重要数据并使自身免于灾难,将损失尽量降低到最小。

备份与恢复概述

备份是数据的一个代表性副本。该副本会包含数据库的重要部分,如控制文件、重做日志和数据文件。备份通过提供一种还原原始数据的方法保护数据不受应用程序错误的影响并防止数据的意外丢失。备份分为物理备份和逻辑备份。物理备份是物理数据库文件的副本。“备份与恢复”通常指将复制的文件从一个位置转移到另一个位置,同时对这些文件执行各种操作。

相比而言,逻辑备份包含使用SQL 命令导出并存储在二进制文件中的数据。Oracle 在重做日志缓冲区中记录提交的和未提交的更改。逻辑备份用于补充物理备份。还原物理备份意味着重建它并将其提供给Oracle 服务器。要恢复还原的备份,需要使用事务日志中的重做记录来更新数据。事务日志记录在执行备份之后对数据库所做的更改。

Oracle 在例程故障之后自动执行崩溃恢复和实例恢复。在出现介质故障的情况下,数据库管理员(DBA) 必须启动恢复操作。恢复备份涉及两种不同的操作:通过应用重做数据将备份前滚至一个较近的时间;将在未提交的事务中所做的所有更改回滚至其原来状态。一般而言,恢复指在还原、前滚和回滚备份中涉及的各种操作。备份与恢复指在防止数据库丢失数据和在丢失数据时重建数据库的过程中涉及的各种策略和操作。

备份与恢复操作

备份是数据文件、表空间或某个时间点的数据库等的快照。如果对数据库进行了周期性备份,则在数据丢失时用户可以将存储的重做信息应用到他们最新的备份中,从而恢复数据库的当前状态。Oracle 使用户能够还原一个较早的备份和仅应用某些重做数据,从而将数据库恢复到一个较早的时间点。这种恢复称为不完全介质恢复。如果备份是一致的,那么根本不需要用户应用任何重做数据。

下面用介质恢复的一个简单例子来解释一下这个概念。假定用户在中午为数据库作了一个备份。从中午开始,每一分钟对数据库进行一次更改。在下午 1 点时,一个磁盘驱动器出现故障,导致那个磁盘上的所有数据丢失。幸运的是,Oracle 在重做日志中记录了所有更改。则用户可以将中午的备份还原到一个正常运转的磁盘驱动器上,使用重做数据将数据库恢复到下午1 点,从而重建丢失的更改。

备份与恢复策略要素

尽管备份与恢复操作非常复杂并随因企业而异,但基本原则均遵循这四个简单的步骤:

1.创建联机重做日志的多个副本

2.在ARCHIVELOG 模式下运行数据库,并将重做日志存档至多个位置

3.维护控制文件的多个并发备份

4.时常备份物理数据文件,并将它们存储在一个安全的地方;如果可能,创建多个

副本

只要用户在安全的存储器备份了数据库并存档了重做日志,就可以重建原始数据库。

备份与恢复的主要数据结构

在用户开始认真考虑备份与恢复策略之前,必须明确与备份和恢复操作相关的物理数据结构。本节讨论了以下物理数据结构:

?数据文件

?控制文件

?联机重做日志文件

?存档重做日志文件

?自动管理的撤消

数据文件

每个Oracle 数据库都有属于称为表空间的逻辑结构的一个或多个物理数据文件。数据文件被分为更小的称为数据块的单元。逻辑数据库结构的数据(如表和索引)物理上位于为数据库分配的数据文件的块中。数据文件具有以下特性:

?用户自定义的特性允许数据文件在数据库空间不足时自动扩展。

?一个或多个物理数据文件组成了一个称为表空间的逻辑数据库存储单元。

每个数据文件的第一个块均为头(header)。头包括诸如文件大小、块大小、表空间和创建时间戳记等重要信息。只要打开数据库,Oracle 就检查数据文件头信息是否与存储在控制文件中的信息匹配。如果不匹配,则必须进行恢复。Oracle 在正常操作期间读取数据文件中的数据,并将其存储在缓冲区高速缓存中。例如,假定用户要访问表中的一些数据。如果请求的信息尚未出现缓冲区高速缓存中,则Oracle 将从相应的数据文件中读取它并将其存储在内存中。

控制文件

每个Oracle 数据库都有一个控制文件,该文件包含组成数据库的所有其它文件的操作系统文件名。这个重要的文件还包含在恢复期间使用的一致性信息,如:

?数据库名称

?数据库创建时间戳记

?数据库的数据文件以及联机和存档重做日志文件的名称

?检查点—在重做日志中指示在这个点之前的所有数据库更改都已保存在数据文件中的一条记录。

?恢复管理器(RMAN) 备份元数据

用户可以创建控制文件的多个副本,从而允许Oracle 写控制文件的多个副本以防止灾难的发生。如果操作系统支持磁盘镜像,那么也可以创建控制文件的镜像,从而允许O/S 将控制文件的一个副本写到多个磁盘上。每一次用户挂载Oracle 数据库时,均使用它的控制文件来识别数据文件和联机重做日志文件(必须为数据库操作而打开)。如果更改了数据库的物理组成,如创建了一个新的数据文件或重做日志文件,则Oracle 将修改数据库的控制文件以反映该更改。只要更改了数据库的结构,就应备份控制文件。结构更改可能包括添加、删除或更改数据文件或表空间以及添加或删除联机重做日志。

联机重做日志文件

重做日志对于恢复绝对至关重要。例如,假定一次电力中断使Oracle 无法将修改的数据永久写入数据文件中。在这种情况下,可以把数据文件中较早版本的数据与记录在联机重做日志中的最近更改结合起来重建丢失的数据。每个Oracle 数据库都包含一组两个或多个联机重做日志文件。Oracle 为每个重做日志文件分配一个日志序列号以唯一地标识它。该组数据库重做日志文件共同称为数据库的重做日志。

Oracle 使用重做日志记录对数据库所做的所有更改。Oracle 在重做记录(重做缓冲区中一个描述更改的条目)中记录每一个更改。例如,假定用户更新了工资单表中的一个列值(从5 改为7)。Oracle 将旧值记录在撤销记录中,将新值记录在重做记录中。因为重做日志存储了对数据库所做的每次更改,所以这个事务的重做记录实际上包含了三个部分:

?对撤消事务表所做的更改

?对撤消数据块所做的更改

?对工资单表数据块所做的更改

如果用户随后提交了对工资单表所做的更新—使得由SQL 语句执行的更改变为永

久性的—那么Oracle 将生成另一条重做记录。通过这种方式,系统仔细地监视着在数据库中发生的一切。

重做日志文件的循环使用

日志写入器(LGWR) 将重做日志条目写到磁盘上。重做日志数据是在系统全局区的重做日志缓冲区中生成的。随着事务的提交和日志缓冲区的充满,LGWR 将重做日志条目写到一个联机重做日志文件中。LGWR 以循环方式书写联机重做日志文件:当它写满了当前联机重做日志文件(称为活动文件)时,LGWR 将写入下一个可用非活动重做日志文件。LGWR 循环使用数据库中的联机重做日志文件,覆盖旧的重做数据。根据是否启用了存档,写满的重做日志文件可按以下方式进行重用:

?如果禁用了存档,则一旦将记录在日志中的更改保存到数据文件中,就可再次使用写满的联机重做日志了。

?如果启用了存档,则一旦将更改保存到数据文件中并将文件存档后,就可再次使用写满的联机重做日志了。

存档重做日志文件

存档日志文件是Oracle 已经在其中写满了重做条目、将其以非活动状态提供并拷贝到

一个或多个日志存档目标位置的重做日志。Oracle 可以在两种模式中的任意一种之下运行:

?ARCHIVELOG — Oracle 在周期中重用写满的联机重做日志文件之前将其存档。

?NOARCHIVELOG — Oracle 在周期中重用写满的联机重做日志文件之前不将其存档。

在ARCHIVELOG 模式下运行数据库有以下好处:

?数据库可以从实例故障和介质故障中完全恢复过来。

?用户可以执行联机备份,即在数据库打开并且可供使用的同时备份表空间。

?可将存档的重做日志传输并应用到备用数据库中

?Oracle 支持多重存档日志,以避免存档日志上任何可能的单点故障。

?用户拥有更多恢复选择,如能够执行表空间时间点恢复(TSPITR)

在NOARCHIVELOG 模式下运行数据库有以下后果:

?用户只能在正常停机后、数据库完全关闭时备份数据库。

?一般而言,唯一的介质恢复选择就是还原整个数据库,这将导致丢最后一次备份后执行的所有事务。

自动管理的撤消

每个Oracle 数据库都必须有一种方法来保留用于回滚或撤消对数据库所做更改的信息。这种信息包含了事务的操作的记录(主要在提交这些操作之前)。Oracle 将这些记录统称为撤消。过去,Oracle 曾使用回滚段存储撤消。事实证明,对这些回滚段的空间管理十分复杂。Oracle 现在提供了存储撤消的另一种方法,它消除了管理回滚段空间的复杂性,并为DBA 提供对撤消被覆盖前所保留时间的控制。这种方法使用一个撤消表空间。撤销记录用于:

?在执行ROLLBACK 语句时回滚事务

?恢复数据库

?提供读一致性

当执行回滚语句时,撤销记录用于撤销由未提交的事务对数据库所做的更改。在数据库恢复期间,撤销记录用于撤销从重做日志应用到数据文件中的任何未提交的更改。在一个用户更改数据的同时,撤销记录将为访问数据的另一用户保留数据的前镜像,从而提供读一致性。

了解基本备份

备份策略为防止数据丢失提供了安全防护。回答以下问题可以帮助数据库管理员制订一个强大的备份策略:

?可能出现何种类型的故障?

?应当备份哪些信息?

?应当使用哪种备份方法?

?应当联机还是离线备份?

?备份的频率?

?如何避免危险的备份方法?

可能出现何种类型的故障?

数据丢失的原因各种各样。下面是可能导致数据丢失的一些最常见的故障类型。

语句故障是Oracle 程序在处理语句时的逻辑错误。例如,用户执行了无效SQL 结构的语句。当发生语句故障时,Oracle 自动撤销语句的所有效果并将控制返回给用户。

进程故障是访问Oracle 的用户进程中出现的故障(即异常断开或进程终止)。尽管Oracle 和其他的用户进程可以继续工作,但出现故障的用户进程将不能继续工作。如果用户进程在更改数据库时出现故障,则Oracle 后台进程将撤销未提交事务的效果。

实例故障是使Oracle 实例(即SGA 和后台进程)无法继续工作的问题。实例故障可能源于硬件问题(如电力中断)或软件问题(如操作系统崩溃)。当实例出现故障时,Oracle 不会将SGA 缓冲区中的数据写到数据文件中。

用户或应用程序错误是导致数据丢失的用户错误。例如,用户可能无意地从工资单表中删除数据。这种用户错误可能需要将数据库或对象恢复到该错误发生前的某个时间点上。为了允许从用户错误中恢复过来并满足其他独特的恢复要求,Oracle 提供了闪回技术。

介质故障是当Oracle 试图写或读操作数据库所需要的文件时出现的物理问题。一个常见的例子是磁盘头损坏,它将导致磁盘驱动器上的所有数据丢失。磁盘故障可能影响各种文件(包括数据文件、重做日志文件和控制文件)。因为数据库实例无法继续正常工作,所以它无法将SGA 的数据库缓冲区中的数据写到数据文件中。

应当备份哪些信息?

一个数据库包含各种类型的数据。当制订备份策略时,DBA 必须确定他们要复制哪些信息。基本的备份类型包括:

?联机数据库备份

?离线数据库备份

?整个数据库

?表空间

?数据文件

?控制文件

?存档重做日志

?配置文件

在确定要备份的信息时,基本的原则是根据数据的重要性和更改的程度来确定数据的优先级。例如,虽然存档日志不发生变化,但它们对恢复数据库至关重要,因此如果可

能应维护多个副本。然而,费用帐户表被用户不断更新。因此,应当经常备份该表空间,以防止在恢复时不得不应用过多的重做数据。

可以以多方式组合备份。例如,DBA 可以决定每周执行整个数据库的备份,以确保获得原始数据库信息的一个相对较新的副本,而每天备份使用最频繁的表空间。DBA 还可以为所有重要的控制文件和存档重做日志创建多个副本作为额外的安全防护。

联机数据库备份

联机备份也称为开放备份,其中所有的读-写数据文件和控制文件都没有对相同的SCN 设置检查点。例如,一个读-写数据文件头可能包含一个为100 的SCN,而其他读-写数据文件头包含一个为95 或90 的SCN。在所有这些头SCN 一致前,即将联机重做日志中记录的所有更改都保存到磁盘上的数据文件前,Oracle 无法打开数据库。如果数据库必须保持不间断运行,则您除了在ARCHIVELOG 模式下执行整个数据库的联机备份之外别无选择。

离线数据库备份

在这种备份中,所有的数据文件和控制文件在相同的时间点上都保持一致—例如,对相同的SCN 保持一致。在一个一致的备份中被允许拥有旧SCN 的唯一表空间是只读且“离线-正常”的表空间,它们与备份中的其他数据文件保持一致。这种类型的备份允许用户打开由备份创建的文件集,而无需应用重做日志,这是因为数据已经是一致的了。执行这种备份的唯一方式是正常关闭数据库,然后在数据库关闭时执行备份。一个一致的整个数据库备份是为在NOARCHIVELOG 模式下运行的数据库提供的唯一有

效的备份选择。

整个数据库备份

这种最常见的备份类型—整个数据库备份—包含了控制文件以及属于该数据库的

所有数据库文件。如果在ARCHIVELOG 模式下运行,则DBA 还可以选择在一段时间内备份数据库的不同部分,从而一部分一部分地构建整个数据库备份。

表空间备份

表空间备份是数据库的一个子集。表空间备份只有当数据库在ARCHIVELOG 模式下运行时才有效。表空间备份对于在NOARCHIVELOG 模式下运行的数据库有效的唯一时间是当该表空间只读或离线正常时。

数据文件备份

数据文件备份是单个数据文件的备份。数据文件备份没有表空间备份那么常见,并且只有当数据库在ARCHIVELOG 模式下运行时才有效。数据文件备份对于在NOARCHIVELOG 模式下运行的数据库有效的唯一时间是当数据文件是表空间中唯一的文件时。例如,备份是表空间备份,但表空间只包含一个文件并且只读或离线正常。

控制文件备份

控制文件备份是数据库控制文件的备份。如果数据库是打开的,那么用户可以通过执行以下SQL 语句或使用恢复管理器(RMAN) 来创建有效的备份:ALTER DATABASE BACKUP CONTROLFILE to 'location'。

存档重做日志备份

存档重做日志是成功的介质恢复的关键。您希望根据可用磁盘空间和在数据库上执行的事务的数量在磁盘上尽可能长时间地保留存档日志,并定期备份它们以确保较完整的恢复。

配置文件

配置文件可能包含spfile 文件或init.ora、口令文件、tnsnames.ora 和sqlnet.ora。因为这些文件不经常变化,所以它们不需要频繁备份。如果您丢失了某个配置文件,您可以很容易地重新手动创建它。当还原时间更重要时,还原配置文件的一个备份要比以特定格式手动创建一个文件要快得多。

应当使用哪种备份方法?

Oracle 为用户提供了几种创建备份的基本方法以备选择。这些方法包括:

?恢复管理器(RMAN) —建立与服务器进程的连接并使备份与恢复操作的数据转移自动化的一个组件。

?Oracle 企业管理器—调用恢复管理器的GUI 界面。

?Oracle Data Pump —该实用程序通过将数据以专有格式从Oracle 数据库写入操作系统文件来创建逻辑备份。稍后可以将这种数据导入数据库中。

?用户管理的方法—通过执行特别针对用户操作系统的命令手动备份数据库。

创建恢复管理器备份

恢复管理器(RMAN) 是一个强大的通用程序,它允许用户创建RMAN 备份或用户数据的镜像副本。当用户使用RMAN BACKUP 命令指定文件或存档日志时,RMAN 默认创建一个备份集作为输出。一个备份集是专有格式的一个文件或一些文件,它需要使用RMAN RESTORE 命令来进行恢复操作。相比而言,当使用BACKUP AS COPY 命令创建文件的镜像副本时,它是实例可用(instance-usable) 格式的—用户不需要调用恢复管理器即可还原或恢复它。

当执行RMAN 命令(如备份或还原)时,恢复管理器建立了一个与Oracle 服务器进程的连接。然后服务器进程从目标数据库中备份指定的数据文件、控制文件或存档日志。恢复目录是包含各种对备份和恢复有用的信息的中央信息库。RMAN 自动建立备份所需的所有文件的名称和位置。恢复管理器还支持增量备份—仅备份那些自上次备份以来发生变化的块。在传统的备份方法中,必须备份数据文件中用到的所有数据块。

自动的基于磁盘的备份和恢复

创建不同的与备份和恢复相关的文件的组件对彼此一无所知,或者也不了解它们存储数据的文件系统的大小。利用自动的基于磁盘的备份和恢复,您可以创建一个闪回恢复区,它将使与备份相关的文件的管理自动化。在磁盘上选择一个位置和存储空间的上界,并设置一个保留策略—它控制需要为恢复保留备份文件的时间。数据库在这个空间内为您的数据库管理用于备份的存储器、存档日志和其他与恢复相关的文件。当RMAN 需要为新的文件回收空间时,可以删除不再需要的文件。如果您不使用闪回恢复区,则您必须为与备份相关的文件手动管理磁盘空间并平衡不同类型文件间的空间使用。Oracle Corporation 建议您启用一个闪回恢复区以简化您的备份管理。

Oracle 企业管理器

尽管通常把恢复管理器用作一个命令行实用程序,但Oracle 企业管理器中的备份向导是GUI 界面,通过点击即可实现备份与恢复。Oracle 企业管理器(EM) 支持用户常用的备份与恢复特性。

?备份配置,用于定义和保存常用配置以供重复使用

?备份与恢复向导,用于引导用户完成创建备份脚本的步骤并将其作为计划作业提交

?备份作业库,用于保存可以被检索并应用到多个目标上的常用备份作业

?备份管理,用于查看并在RMAN 备份上进行维护。

使用Data Pump 提供额外备份保护

可以使用Data Pump 实用程序创建数据的逻辑备份来补充物理备份。逻辑备份存储为数据库创建的模式对象的相关信息。Data Pump 以专有格式将数据从数据库写入Oracle 文件中,然后可以使用导入实用程序将这些文件导入数据库中。

用户管理的备份

可以使用操作系统命令(如UNIX dd 或tar 命令)来创建备份。还可以通过编写脚本来使备份操作自动化。用户可以一次性创建整个数据库的备份或备份个别的表空间、数据文件、控制文件或存档日志。个别表空间、数据文件、控制文件和存档日志的备份可以补充整个数据库备份。如果数据库关闭或数据库进入热备份模式来执行联机备份,则还可以使用O/S 命令来执行这些备份。

了解基本的恢复策略

基本的恢复包含两个部分:还原物理备份,然后用自最后一次备份以来对数据库所做的更改更新它。恢复的最重要方面是确保所有的数据文件就相同时间点而言是一致的。Oracle 具有完整性检查,以防止用户在所有数据文件彼此保持一致之前打开数据库。在准备恢复策略时,了解这些问题的答案至关重要:

?恢复如何工作?

?恢复的类型有哪些?

?应当使用哪种恢复方法?

恢复如何工作?

在每一种类型的恢复中,Oracle 都按顺序将重做数据应用到数据块中。Oracle 使用控制文件和数据文件头中的信息来确定是否必须进行恢复。恢复有两个部分:前滚和回滚。当Oracle 前滚时,它将重做数据应用到相应的数据块中。Oracle 系统地遍览重做日志,以确定它需要将哪些更改应用到哪些块中,然后更改这些块。例如,如果用户向表中添加了一行,但服务器在将更改保存到磁盘之前就崩溃了,则Oracle 可以使用这个事务的重做记录来更新该数据块以反映该新行。

一旦Oracle 完成了前滚阶段,就可以打开Oracle 数据库了。回滚阶段在数据库打开后开始。回滚信息存储在事务表中。Oracle 在整个表中搜索未提交的事务,撤销它找到的任何未提交的事务。例如,如果用户从未提交添加行的SQL 语句,则Oracle 将在事务表中发现这一事实并撤销该更改。

恢复的类型有哪些?

有三种基本的恢复类型:实例恢复、崩溃恢复和介质恢复。Oracle 在实例启动时自动执行前两种恢复。只有介质恢复需要用户执行命令。当一个实例发现另一个实例已经崩溃时,实例恢复(只可能在Oracle 真正应用集群配置中存在)将在打开的数据库中进行。一个幸存的实例将自动使用重做日志来恢复数据库缓冲区中已提交但在实例出现故障时丢失的数据。Oracle 还将撤销当实例崩溃时在出现故障的实例上正在进行的任何事务,然后在恢复完成之后清除崩溃的实例拥有的任何锁。

崩溃恢复在单实例数据库崩溃或多实例数据库的所有实例崩溃时发生。在崩溃恢复中,实例必须首先打开数据库,然后执行恢复操作。一般而言,在崩溃或关机退出之后第一个打开数据库的实例将自动执行崩溃恢复。

与崩溃恢复和实例恢复不同,介质恢复通常响应介质故障并根据用户的命令来执行。在介质恢复中,可以使用联机或存档重做日志来使还原的备份为最新或将其更新至一个特定的时间点。介质恢复可以还原整个数据库、一个表空间或一个数据文件并将它们还原至指定的时间。无论何时使用重做日志或将数据库恢复到某个非当前时间,都将执行介质恢复。

总可以使用还原的备份来执行该种恢复。介质恢复主要分为完全恢复和不完全恢复。完全恢复涉及将重做数据与数据库、表空间或数据文件等的备份结合使用以将其更新至最新的时间点。它之所以称为完全备份是因为Oracle 将所有重做更改应用到备份上。通常,介质恢复在介质故障损坏了数据文件或控制文件之后执行。

恢复选项

如果用户没有将数据库完全恢复至最新时间,那么必须指示Oracle 要恢复到什么程度。用户可以执行:

?表空间时间点恢复(TSPITR),它使用户能够将一个或多个表空间恢复至与数据库其余的部分不同的某个时间点。

?基于时间的恢复,也称为时间点恢复(PITR),它将数据恢复至一个指定的时间点。

?基于取消的恢复,它恢复到执行CANCEL 命令为止。

?基于更改的恢复或日志序列恢复。如果使用了O/S 命令,那么基于更改的恢复将一直恢复到重做记录中一个指定的SCN 为止。

?从人为错误中闪回

如果使用了恢复管理器,那么日志序列恢复将一直恢复到一个指定的日志序列号。当执行不完全恢复时,用户必须在打开数据库时重置联机重做日志。重置数据库的新版本称为一个新化身。用RESETLOGS 选项打开数据库将告知Oracle 丢弃一些重做。在Oracle 数据库10g 中,控制文件增加了新的结构,这些结构提供了利用先前化身的备份通过RESETLOGS 操作进行恢复的能力。

从人为错误中恢复

Oracle 数据库10g 体系结构利用了人为错误的数据库恢复领域中独有的技术进展。闪回技术提供了一组新功能,可及时查看数据并在时间上前后滚动数据。使用闪回功能,

可以查询模式对象的过去版本、查询历史数据、执行变化分析,或执行自助修复,以便在数据库联机时从逻辑损坏中恢复。利用Oracle 数据库10g 闪回技术,您完全可以取消过去的操作!

应当使用哪种备份方法?

用户有两种物理文件恢复基本方法可以选择。他们可以:

?使用恢复管理器进行自动恢复。

?执行SQL 命令。

使用恢复管理器进行恢复

基本的RMAN 命令是RESTORE 和RECOVER。RMAN 可用于从备份集或镜像副本中将数据文件还原至它们当前的位置或一个新位置。如果需要任何存档的重做日志来完成恢复操作,RMAN 将自动还原并应用它们。在恢复目录中,RMAN 保留了一个包含与执行过的每次备份相关的所有基本信息的记录。如果没有使用恢复目录,则RMAN 将使用控制文件来获取必需的信息。RMAN RECOVER 命令可以用来执行完全介质恢复,应用增量备份,以及执行不完全介质恢复。

使用SQL*Plus 进行恢复

管理员能够在命令行使用SQL*Plus 实用程序在文件上进行还原和执行介质恢复。用户可以恢复数据库、表空间或数据文件。在执行恢复之前,用户需要:

?确定要恢复哪些文件。通常可以使用表V$RECOVER_FILE。

?还原介质故障永久损坏的文件的备份。即使用户没有备份,在用户拥有必要的重做日志文件且控制文件包含损坏文件的名称时仍可以执行恢复。

?如果无法将文件还原至其原始位置,则用户必须重新定位还原的文件并将该新位置通知控制文件。

?还原必要的存档重做日志文件。

总而言之

Oracle 数据库的备份和恢复对于保护数据不受崩溃、硬件故障和数据故障的影响非常重要。虽然Oracle 提供了许多特性来保护您的数据,但备份是不可或缺的。

Oracle数据库备份方式

Oracle数据库备份方式 Oracle的内核提供数据库的备份和恢复机制,SQL*DBA按表空间进行数据的备份和恢复。Oracle提供两种方式:备份恢复和向前滚动,保证意外故障恢复数据库的一致性和完整性。 ____1. 备份恢复方式 ____对数据库的某个一致状态建立副本,并储存在介质上脱机保存,以此作为数据库恢复的基础。现以Oracle实用程序Export/Import来介绍备份恢复方式。 ____Export/Import是Oracle提供的两个互补性程序,即卸载和装载。它们既完成数据库与操作系统文件的互为转载,同时可以有效地回收数据库的碎片,提供不同版本间Oracle 数据传送的手段,进行不同用户间的数据传送。 ____Export数据卸载,将数据从Oracle写到指定的操作系统文件进行备份。卸载的对象、内容与数量有三种模式:TABLE MODE(表模式)、USER MODE(用户模式)、FULL DATABASEM ODE(所有数据库模式)。使用方式既可用交互方式,也可采用命令行方式,以"关键字=值" 将所需信息在命令行中逐一描述来进行卸载。Export要求用户具有CONNECT或DBA特权。 ____Import与Export互逆,将操作系统文件重新装载至Oracle数据库中,使用方式如Expo rt。使用者要求具有CONNECT和RESOURCE特权,且可选择部分或全部装入。 ____Export/Import非常方便,系统开销小,它的限制是输出的操作系统文件采用专门的压缩方式存放,仅提供给Import使用。 ____也可采用SQL*PLUS和SQL*LOADER实用工具进行备份。使用SQL*PLUS的SPOOL 命令通过脱机定向输出,使用PLUS格式化结果,形成指定格式的ASCII文件,需要时可用SQL*LOADER 进行加载。它的方便之处是ASCII文件可以编辑,可方便地加载至其他数据库(如FoxPro、Sybase中)。 ____2. 向前滚动方式 ____Oracle提供向前滚动方式,使建立备份后成功的事务不会丢失。恢复的基础是数据库的某个一致性状态(即方式1完成的备份恢复),恢复的依据是存档的重作记录文件。启动重作记录文件方法如下: ____(1) 启动Oracle; ____(2) 连接Oracle:CONNECT SYSTEM/PASSWORD; ____(3) 启动ARCHIVE LOG。 ____出现介质故障时,可用SQL*DBA的RECOVER命令,利用存档的重作记录文件恢复一个或多个表空间。RECOVER命令对DATABASE或TABLASPACE进行恢复。前者要求SQL*DBA START UP已被排斥方式装载且未被打开;后者对无活跃回退段的表空间执行脱机,要求数据库已装载且被打

ORACLE数据备份与数据恢复方案

O R A C L E数据备份与数据恢 复方案 Prepared on 24 November 2020

摘要 结合金华电信IT系统目前正在实施的备份与恢复策略,重点介绍电信业务计算机管理系统(简称97系统)和营销支撑系统的ORALCE数据库备份和恢复方案。 Oracle数据库有三种标准的备份方法,它们分别是导出/导入 (EXP/IMP)、热备份和冷备份。要实现简单导出数据(Export)和导入数据(Import),增量导出/导入的按设定日期自动备份,可考虑,将该部分功能开发成可执行程序,然后结合操作系统整合的任务计划,实现特定时间符合备份规划的备份应用程序的运行,实现数据库的本级备份,结合ftp简单开发,实现多服务器的数据更新同步,实现数据备份的异地自动备份。 关键字:数据库远程异地集中备份 目录

一、前言 目前,数据已成为信息系统的基础核心和重要资源,同时也是各单位的宝贵财富,数据的丢失将导致直接经济损失和用户数据的丢失,严重影响对社会提供正常的服务。另一方面,随着信息技术的迅猛发展和广泛应用,业务数据还将会随业务的开展而快速增加。但由于系统故障,数据库有时可能遭到破坏,这时如何尽快恢复数据就成为当务之急。如做了备份,恢复数据就显得很容易。由此可见,做好数据库的备份至关重要。因此,建立一个满足当前和将来的数据备份需求的备份系统是必不可少的。传统的数据备份方式主要采用主机内置或外置的磁带机对数据进行冷备份,这种方式在数据量不大、操作系统种类单一、服务器数量有限的情况下,不失为一种既经济又简明的备份手段。但随着计算机规模的扩大,数据量几何级的增长以及分布式网络环境的兴起,将越来越多的业务分布在不同的机器、不同的操作平台上,这种单机的人工冷备份方式越来越不适应当今分布式网络环境。 因此迫切需要建立一个集中的、自动在线的企业级备份系统。备份的内容应当包括基于业务的业务数据,又包括IT系统中重要的日志文件、参数文件、配置文件、控制文件等。本文以ORACLE数据库为例,结合金华电信的几个相关业务系统目前正在实施的备份方案,介绍ORACLE数据库的备份与恢复。 二、金华电信ORACLE数据库的备份与恢复方案 由于金华电信IT系统以前只采用逻辑备份方式进行数据库备份,速度较慢并且数据存储管理都很分散,甚至出现备份数据不完整的现象。为了提高备份数据的效率,提供可靠的数据备份,完善备份系统,保证备份数据的完整性,降低数据备份对网络和服务器的影响,对每个IT系统的备份数据进行集中管理,我们对备份工作进行了改进,将逻辑备份与物理备份相结合,在远程建立了一个异地集中、自动在线的备份系统即网络存储管理系统。(这里用到的物理备份指热备份)其具备的主要功能如下:(1)集中式管理 :网络存储备份管理系统对整个网络的数据进行管理。利用集中式管理工具的帮助,系统管理员可对全网的备份策略进行统一管理,备份服务器可以监控所有机器的备份作业,也可以修改备份策略,并可即时浏览所有目录。所有数据可以备份到同备份服

eclipse如何连接oracle数据库、访问数据表并显示结果小结

总结eclipse中连接oracle数据库并访问其中的表: (这里我们用的是oracle10g) 为了防止把主要精力放在编程实现上而忽略小细节,我们可以先启动oracle 监听和oracleservice服务。 1 我们首先导入oracle 数据库驱动包:这里有两种方式:(1)把ojdbc14.jar包复制到当前项目的jar文件夹下,或新建一文件夹把ojdbc14.jar放到其下(在eclipse本项目上刷新一下,否则按下面添加时可能找不到),再project--------→properties---------→java build path--------→libraries-------→add jars找到ojdbc14.jar 点击ok. (2)project--------→properties---------→java build path--------→libraries-------→add externals jars找到ojdbc14.jar包,(本人的ojdbc14.jar是在目录E:\oracle\product\10.2.0\db_1\jdbc\lib 下)点击ok。 2 编写程序:可以归纳为6个小部分(1)装载并注册oracle数据库的jdbc驱动程序(2)建立与数据库的连接(3)创建statement对象(4)调用sql语句并执行,结果返回resultset对象(5)查看resultset对象中的记录(6)数据库操作完毕后,需要依次关闭ResultSet、Statement、Connection 对象。如下: Import java.sql.*; public class OracleTest { public static void main(String[] args) throws Exception{ //装载并注册oracle数据库的jdbc驱动程序 try { Class.forName("oracle.jdbc.driver.OracleDriver");//获取并装载jdbc驱动程序 java.sql.DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver()); //注册数据库驱动程序} catch(java.sql.SQLException e) { throw new RuntimeException("error"); } //建立与数据库的连接 String url="jdbc:oracle:thin:@localhost:1521:dbname"; //端口号1521可以通过查看oracle安装目录下E:\oracle\product\10.2.0\db_1\NETWORK\ADMIN的listener.ora文件得知String user="system"; String passworddb="****** "; Connection conn=null; try { conn=DriverManager.getConnection(url, user, passworddb); } catch(Exception ex) { ex.printStackTrace(); } //创建statement对象

oracle数据库备份与恢复方案

oracle数据库备份与恢复方案

目录 一、编写目的 (1) 二、备份工具及备份方式 (1) 三、软件备份 (1) 四、软件恢复 (2) 五、数据备份 (2) 六、备份的存储 (2) 七、备份数据的保存规定 (3) 八、备份介质的格式 (3) 九、数据恢复 (4)

一、编写目的 本文档主要说明公司项目在实施现场的软件及数据的备份和恢复方案。 二、备份工具及备份方式 1.备份工具 Oracle RMAN(Recovery Manager):是一种用于备份(backup)、还原 (restore)和恢复(recover)数据库的Oracle 工具。RMAN只能用于ORACLE8 或更高的版本中。它能够备份整个数据库或数据库部件,如表空间、数据文件、控制文件、归档文件以及Spfile参数文件。RMAN也允许您进行增量数据块级 别的备份,增量RMAN备份是时间和空间有效的,因为他们只备份自上次备 份以来有变化的那些数据块。 2.备份方式 (1)自动备份:由Windows 计划任务调度完成; (2)手工备份:完成特殊情况下的备份,分热备份和冷备份,热备份是指在不 关闭数据库情况下进行备份,冷备份则需要停止Oracle实例服务。 三、软件备份 1.以七天为一个周期每天23:00将所有软件拷贝到其他存储介质上 2.超出七天的备份依次删除 3.每月一号将上月最后7天的备份文件刻录到光盘上

四、软件恢复 1.找出最近的备份程序覆盖到正式运行环境的相应目录中 五、数据备份 1.业务系统或数据库在打重要补丁或升级的前后,必须按要求对业务系统进行停 机备份或非停机备份,备份需包含应用和数据库的文件系统及数据,备份方式为手工备份,使用RMAN执行备份; 2.系统日常备份:作为7*24运行的重要系统,必须最小化数据丢失的同时,还 需要尽可能缩短恢复时间,数据库的日常备份策略如下: (1)确保数据库处于ArchiliveLog模式; (2)每日凌晨01:00执行数据库全备份,含控制文件备份; (3)每四小时间隔执行数据库归档日志备份,含控制文件备份; (4)每间隔两周执行数据库与应用系统文件备份,执行时间:数据库服务器在第一周的周六05:00,应用服务器在第一周的周六7:00。 3.每周一将上周的备份文件拷贝到其它存储介质上; 4.每月一号将上月最后一周的备份文件刻录到光盘上。 六、备份的存储 1.在确保成功备份数据的同时,必须严格保证存储结构的完整性,在备份服务器 或备份带库上需要保留足够的剩余空间,以存储需要保存的多份备份文件; 2.如项目上采用了专门的备份软件,有专用的备份存储,应提前规划好备份的存

oracle数据库恢复方案

目录 数据库恢复方案 (1) 文档控制 (1) 一、相关概念 (3) 1,恢复的两个阶段 (3) 2,Oracle实例启动的三个阶段 (3) 3,RMAN信息的保存位置 (3) 二、完全恢复 (3) (一) 控制文件 (3) 1) 丢失部分控制文件: (3) 2) 丢失全部控制文件 (3) (二) 重做日志文件 (4) 1) 非当前使用的重做日志文件: (4)

2) 当前使用的重做日志文件(未归档): (4) (三) 数据文件 (4) 1) 无归档模式下的完全恢复 (4) 2) 归档模式下的完全恢复 (5) 三、不完全恢复 (6) (一) 基于SCN的不完全恢复 (6) 1) 准备工作 (6) 2) 使用RMAN进行恢复 (7) (二) 基于时间点的不完全恢复 (8) 1) 准备工作 (8) 2) 使用RMAN进行恢复 (8) 四、高级篇 (9)

(一) 使用RMAN进行异机同目录 (9) 1) 准备工作 (9) 2) 通过RMAN进行异机恢复 (10) (二)使用RMAN进行异机异目录 (11) 1) 准备工作 (11) 2) 通过RMAN进行异机恢复 (11) (三)使用RMAN进行在线数据块恢复 (14) 一、相关概念 1,恢复的两个阶段 数据库无论采取哪种方式进行恢复都分为Restore和Recover两个步骤。Restore(还原):把控制文件、重做日志文件和数据文件还原到正确位置。Recover(恢复):恢复还原后的数据文件,使数据库达到一致状态。

2,Oracle实例启动的三个阶段 Oracle实例启动经过三个阶段: l NOMOUNT(未装载):读入参数文件,验证参数文件中的目录是否存在。 l MOUNT(装载):读入参数文件指定位置的控制文件。 l OPEN(打开):验证控制文件中指定的重做日志文件和数据文件是否正确、数据文件是否一致,然后读入数据文件中的数据。 所以按照如下顺序使数据库正确打开。 1) SHUTDOWN(关闭)状态下,确保参数文件指定的文件夹存在,启动到NOMMUNT 状态。 2) NOMOUNT状态下,保证控制文件的位置和命名与参数文件中相同,控制文件中指定的重做日志文件和数据文件存在,然后启动到MOUNT状态。 3) MOUNT状态下,执行RMAN还原和恢复操作。

oracle表的导入导出-命令

数据导出: 1 将数据库TEST完全导出,用户名system 密码manager 导出到D:daochu.dmp中 exp system/manager@TEST file=d:daochu.dmp full=y 2 将数据库中system用户与sys用户的表导出 exp system/manager@TEST file=d:daochu.dmp owner=(system,sys) 3 将数据库中的表inner_notify、notify_staff_relat导出 exp aichannel/aichannel@TESTDB2 file= d:datanewsmgnt.dmp tables=(inner_notify,notify_staff_relat) 4 将数据库中的表table1中的字段filed1以"00"打头的数据导出 exp system/manager@TEST file=d:daochu.dmp tables=(table1) query=" where filed1 like '00%'" 上面是常用的导出,对于压缩,既用winzip把dmp文件可以很好的压缩。 也可以在上面命令后面加上 compress=y 来实现。 数据的导入 1 将D:daochu.dmp 中的数据导入 TEST数据库中。 imp system/manager@TEST file=d:daochu.dmp imp aichannel/aichannel@HUST full=y file=file= d:datanewsmgnt.dmp ignore=y 上面可能有点问题,因为有的表已经存在,然后它就报错,对该表就不进行导入。 在后面加上 ignore=y 就可以了。 2 将d:daochu.dmp中的表table1 导入 imp system/manager@TEST file=d:daochu.dmp tables=(table1) 基本上上面的导入导出够用了。不少情况要先是将表彻底删除,然后导入。 注意: 操作者要有足够的权限,权限不够它会提示。 数据库时可以连上的。可以用tnsping TEST 来获得数据库TEST能否连上。 附录一: 给用户增加导入数据权限的操作 第一,启动sql*puls 第二,以system/manager登陆 第三,create user 用户名 IDENTIFIED BY 密码(如果已经创建过用户,这步可以省略)第四,GRANT CREATE USER,DROP USER,ALTER USER ,CREATE ANY VIEW , DROP ANY VIEW,EXP_FULL_DATABASE,IMP_FULL_DATABASE, DBA,CONNECT,RESOURCE,CREATE SESSION TO 用户名字 第五, 运行-cmd-进入dmp文件所在的目录, imp userid=system/manager full=y file=*.dmp

Oracle Export/Import数据库备份与恢复的三种方法

Oracle数据库备份与恢复的三种方法 Oracle数据库有三种标准的备份方法,它们分别是导出/导入(EXP/IMP)、热备份和冷备份。导出备件是一种逻辑备份,冷备份和热备份是物理备份。 一、导出/导入(Export/Import) 利用Export可将数据从数据库中提取出来,利用Import则可将提取出来的数据送回到Oracle数据库中去。 1、简单导出数据(Export)和导入数据(Import) Oracle支持三种方式类型的输出: (1)、表方式(T方式),将指定表的数据导出。 (2)、用户方式(U方式),将指定用户的所有对象及数据导出。 (3)、全库方式(Full方式),瘵数据库中的所有对象导出。 数据导入(Import)的过程是数据导出(Export)的逆过程,分别将数据文件导入数据库和将数据库数据导出到数据文件。 2、增量导出/导入 增量导出是一种常用的数据备份方法,它只能对整个数据库来实施,并且必须作为SYSTEM来导出。在进行此种导出时,系统不要求回答任何问题。导出文件名缺省为export.dmp,如果不希望自己的输出文件定名为export.dmp,必须在命令行中指出要用的文件名。 增量导出包括三种类型: (1)、“完全”增量导出(Complete) 即备份三个数据库,比如: exp system/manager inctype=complete file=040731.dmp (2)、“增量型”增量导出 备份上一次备份后改变的数据,比如: exp system/manager inctype=incremental file=040731.dmp

SQL Server数据导入到Oracle中的方法

SQL Server数据导入到Oracle中的方法 如果我们需要将SQL Server数据库中的数据导入到Oracle数据库中,应该如何操 作呢?下文对该方法的步骤进行了详细的介绍,供您借鉴参考之用。 在我们使用SQL Server数据库的过程中,有时需要将SQL Server数据导出,导 入到其他的数据库中,比如导入到Oracle中。 假设要将SQL Server中的Northwind数据库中的Products表导出到Oracle 的Scott用户 首先需要有安装SQL Server企业版 1.打开工具: 开始->程序->Microsoft SQLServer->导入和SQL Server数据导出数据 2.下一步,选择数据源 [数据源]选择“用于SQL Server的Microsoft OLE DB提供程序”,这应该是缺省值。 [服务器]选择要导出数据的服务器,如果是本机,选择(local) [数据库]选择要导出的数据所在的库,这里选择Northwind 3.下一步,选择目的 [目的]选择Microsoft ODBC for Oracle [DSN]选择用户/系统DSN一项,然后在下拉列表框中找一个已经连接到了Scott用户的DSN名称。 如果下拉列表中没有,点下拉列表框右侧的[新建],出现创建新数据源界面。 接下来选择系统数据源,下一步,在驱动程序列表中选择Microsoft ODBC for Oracle 下一步,完成,出现Microsoft ODBC for Oracle安装界面 [数据源名称]随便输入,比如sss [说明]可以不填 [用户名称]填入要SQL Server数据导出到的Oracle用户名称,这里是scott

第六章 数据库恢复技术

第六章数据库恢复技术 第六章数据库恢复技术 6.1 事务的基本概念 6.2 数据库恢复概述 6.3 故障的种类 6.4 恢复的实现技术 6.5 恢复策略 6.6 具有检查点的恢复技术 6.7 数据库镜像 6.8 小结 6.1 事务的基本概念 一、什么是事务 二、如何定义事务 三、事务的特性 一、什么是事务 ?事务(Transaction)是数据库的逻辑工作单位,是用户定义的一组操作序列。 ?事务和程序是两个概念 –在关系数据库中,一个事务可以是一条SQL语句,一组SQL语句或整个程序–一个应用程序通常包含多个事务 ?事务是恢复和并发控制的基本单位 二、如何定义事务 ?显式定义方式 BEGIN TRANSACTION BEGIN TRANSACTION SQL 语句1 SQL 语句1 SQL 语句2 SQL 语句2 。。。。。。。。。。 COMMIT ROLLBACK

?隐式方式 当用户没有显式地定义事务时, DBMS 按缺省规定自动划分事务 事务结束 COMMIT 事务正常结束 提交事务的所有操作(读+更新) 事务中所有对数据库的更新永久生效 ROLLBACK 事务异常终止 –事务运行的过程中发生了故障,不能继续执行 回滚事务的所有更新操作 –事务滚回到开始时的状态 三、事务的特性(ACID特性) 事务的ACID特性: ?原子性(Atomicity) ?一致性(Consistency) ?隔离性(Isolation) ?持续性(Durability ) 1. 原子性 ?事务是数据库的逻辑工作单位 –事务中包括的诸操作要么都做,要么都不做 2. 一致性 事务执行的结果必须是使数据库从一个 一致性状态变到另一个一致性状态。 一致性与原子性 银行转帐:从帐号A中取出一万元,存入帐号B。 –定义一个事务,该事务包括两个操作

Oracle数据库备份详细讲解

Oracle数据库备份详解 ORACLE数据库有两类备份方法。第一类为物理备份,该方法实现数据库的完整恢复,但数据库必须运行在归挡模式下(业务数据库在非归挡模式下运行),且需要极大的外部存储设备,例如磁带库;第二类备份方式为逻辑备份,业务数据库采用此种方式,此方法不需要数据库运行在归挡模式下,不但备份简单,而且可以不需要外部存储设备。 一、数据库逻辑备份方法 1 导出工具:exp Exp它是操作系统下一个可执行的文件存放目录/ORACLE_HOME/bin exp导出工具将数据库中数据备份压缩成一个二进制系统文件.可以在不同OS间迁移ORACLE数据库的逻辑备份分为三种模式: a. 表模式:导出用户所有表或者指定的表; b. 用户模式:导出用户所有对象以及对象中的数据; c. 整个数据库:导出数据库中所有对象。 1.1 表模式 备份某个用户模式下指定的对象(表)。业务数据库通常采用这种备份方式。 若备份到本地文件,使用如下命令: exp icdmain/icd rows=y indexes=n compress=n buffer=65536 feedback=100000 volsize=0 file=exp_icdmain_csd_yyyymmdd.dmp log=exp_icdmain_csd_yyyymmdd.log tables=https://www.wendangku.net/doc/b411341278.html,moninformation,icdmain.serviceinfo,icdmain.dealinfo 若直接备份到磁带设备,使用如下命令: exp icdmain/icd rows=y indexes=n compress=n buffer=65536 feedback=100000 volsize=0 file=/dev/rmt0 log=exp_icdmain_csd_yyyymmdd.log tables=https://www.wendangku.net/doc/b411341278.html,moninformation,icdmain.serviceinfo,icdmain.dealinfo 注:在磁盘空间允许的情况下,应先备份到本地服务器,然后再拷贝到磁带。出于速度方面的考虑,尽量不要直接备份到磁带设备。 1.2 用户模式 备份某个用户模式下的所有对象。业务数据库通常采用这种备份方式。

Oracle数据库恢复

Oracle 数据库恢复 一、停止ORACLE数据库 用oracle用户登录,用sqlplus的sysdba用户登录,执行shutdown immediate oracle@JSBC-SIHUA-DB01:~> sqlplus /nolog SQL*Plus: Release 10.2.0.1.0 - Production on Mon Feb 6 14:02:45 2012 Copyright (c) 1982, 2005, Oracle. All rights reserved. SQL> conn /as sysdba Connected. SQL> shutdown immediate SQL>quit 停止监听 oracle@JSBC-SIHUA-DB01:~> lsnrctl stop oracle@JSBC-SIHUA-DB01:~> ps -ef |grep ora root 4655 4524 0 Nov11 ? 00:00:48 hald-addon-storage: polling /dev/sr0 (every 16 sec) root 42514 42162 0 11:40 pts/0 00:00:00 su - oracle oracle 42515 42514 0 11:40 pts/0 00:00:00 -bash root 42853 42815 0 12:02 pts/2 00:00:00 su - oracle oracle 42854 42853 0 12:02 pts/2 00:00:00 -bash root 42924 42889 0 12:03 pts/1 00:00:00 su - oracle oracle 42925 42924 0 12:03 pts/1 00:00:00 -bash oracle 42975 42854 0 12:09 pts/2 00:00:00 ps -ef oracle 42976 42854 0 12:09 pts/2 00:00:00 grep ora 二、数据库备份 #root用户,创建sihua.bak目录 JSBC-SIHUA-DB01:/oradata # mkdir sihua.bak JSBC-SIHUA-DB01:/oradata # chown oracle:dba /oradata/sihua.bak JSBC-SIHUA-DB01:/oradata # ll total 24 drwx------ 2 root root 16384 Sep 16 11:53 lost+found drwxr-x--- 4 oracle dba 4096 Nov 8 14:16 sihua drwxr-xr-x 2 oracle dba 4096 Nov 28 12:15 sihua.bak #oracle用户 JSBC-SIHUA-DB01:/oradata # su - oracle oracle@JSBC-SIHUA-DB01:~> cd /oradata oracle@JSBC-SIHUA-DB01:/oradata> cp -r sihua sihua.bak oracle@JSBC-SIHUA-DB01:/oradata> cd sihua.bak/ oracle@JSBC-SIHUA-DB01:/oradata/sihua.bak> cd sihua/

oracle表的导入导出-命令

oracle表的导入导出-命令.txt12思念是一首诗,让你在普通的日子里读出韵律来;思念是一阵雨,让你在枯燥的日子里湿润起来;思念是一片阳光,让你的阴郁的日子里明朗起来。数据导出: 1 将数据库TEST完全导出,用户名system 密码manager 导出到D:daochu.dmp中 exp system/manager@TEST file=d:daochu.dmp full=y 2 将数据库中system用户与sys用户的表导出 exp system/manager@TEST file=d:daochu.dmp owner=(system,sys) 3 将数据库中的表inner_notify、notify_staff_relat导出 exp aichannel/aichannel@TESTDB2 file= d:datanewsmgnt.dmp tables=(inner_notify,notify_staff_relat) 4 将数据库中的表table1中的字段filed1以"00"打头的数据导出 exp system/manager@TEST file=d:daochu.dmp tables=(table1) query=" where filed1 like '00%'" 上面是常用的导出,对于压缩,既用winzip把dmp文件可以很好的压缩。 也可以在上面命令后面加上compress=y 来实现。 数据的导入 1 将D:daochu.dmp 中的数据导入TEST数据库中。 imp system/manager@TEST file=d:daochu.dmp

实验8 Oracle数据库备份与恢复

实验8 Oracle数据库备份与恢复 1 实验目的 (1)掌握Oracle数据库各种物理备份方法。 (2)掌握Oracle数据库各种物理恢复方法。 (3)掌握利用RMAN工具进行数据库的备份与恢复。 (4)掌握数据的导入与导出操作。 2 实验要求 (1)对BOOKSALES数据库进行一次冷备份。 (2)对BOOKSALES数据库进行一次热备份。 (3)利用RMAN工具对BOOKSALES数据库的数据文件、表空间、控制文件、初始化参数文件、 归档日志文件进行备份。 (4)利用热备份恢复数据库。 (5)利用RMAN备份恢复数据库。 (6)利用备份进行数据库的不完全恢复。 3 实验步骤 (1)关闭BOOKSALES数据库,进行一次完全冷备份。 select file_name from dba_data_files; select member from v$logfile; select value from v$parameter where name='control_files';

(2)启动数据库后,在数据库中创建一个名为cold表,并插入数据,以改变数据库的状态。 CREATE TABLE COLD( ID NUMBER PRIMARY KEY, NAME VARCHAR2(25) );

(3)利用数据库冷备份恢复BOOKSALES数据库到备份时刻的状态并查看恢复后是否存在cold表。 (4)将BOOKSALES数据库设置为归档模式。 shutdown immediate 正常关闭数据 startup mount;将数据库启动到mount状态 3)、关闭flash闪回数据库模式,如果不关闭的话,在后面关闭归档日志的时候就会出现讨厌的ora-38774错误。 alter database flashback off alter database archivelog;发出设置归档模式的命令 alter database open;打开数据库 再次正常关闭数据库,并备份所有的数据文件和控制文件 archive log list;在将数据库设置为归档模式后,可以执行此命令进行确认 Database log mode 为Archive Mode说明当前的数据库为归档模式 Automatic archival为Enable说明启动了自动归档。

oracle数据迁移方法

Oracle数据迁移方案 数据迁移通俗的说就是将数据从一个地方转移到另一个地方。主要使用场景有:根据正式系统搭建测试环境、从内网复制到外网、数据库服务器硬件升级等。根据需要迁移的数据量大小、系统架构,可采取不同的迁移方法。 注:以下所说方法,不考虑数据的增量更新、不考虑数据的实时同步、不考虑数据的逻辑转换。如果有这些需求,建议使用第三方ETL工具或使用Oracle的其他数据同步技术。 一、常用示例 1.1 如何在客户现场搭建测试环境? 常规方案,使用imp/exp工具,先在源库执行直接路径导出操作,然后在目标库执行导入操作。IMP/EXP的执行速度主要受限于磁盘及网络。 数据量:1.5G 导出用时:5分钟 导入用时:23分钟 导出文件大小:641M 导出导入环境:单CPU,700M内存。为力求最大速度,使用直接路径导出、设置最大I/O 缓冲、导入导出文件都放在服务器上执行。 1.2 还有没有更快的办法? 有,仍然使用impdp/expdp。只是不再将数据导出后导入,而是直接将数据从源库导入到目的库。 CMD> Impdp testi@目标库 directory=DMPDIR schemas=TESTI network_link=源库dblink remap_schema=TESTI:TESTA 上面语句的操作是将源库的TESTI用户的数据,导入到目标库的TESTA用户下。 这个操作是局域网内迁移数据最方便的工具,不过也可能是速度最慢的工具。 1.3 有没有还快一点的方法? 有,换用impdp/expdp。同样在源库执行导出,在目标库执行导入。操作速度能得到极大提升。IMPDP/EXPDP速度主要受限于磁盘,与网络无关。

oracle数据库全备份和增量备份

1. 检查数据库模式: sqlplus /nolog conn /as sysdba archive log list (查看数据库是否处于归档模式中) 若为非归档,则修改数据库归档模式。 startup mount alter database archivelog alter database open 2.连接到target数据库 命令:connect target / (connect target system/oracle@ora10g,如果数据库没有起来,也可要直接在rman命令下用startup进行启动数据库) 可以连接到target database.(rman 一边连接到target数据库,另外一边连接到control file(nocatalog mode),control file 中存储rman 的备份信息) 3.用list backupset 命令查看有没有备份 4. 常用备份命令: 备份全库: RMAN> backup database plus archivelog delete input; (备份全库及控制文件、服务器参数文件与所有归档的重做日志,并删除旧的归档日志) 备份表空间: RMAN> backup tablespace system plus archivelog delete input; (备份指定表空间及归档的重做日志,并删除旧的归档日志)_ 备份归档日志: RMAN> backup archivelog all delete input; 1.全库备份(备份数据文件中有数据的,有数据文件,控制文件,归档日志文件,spfile 文件,不备份联机重做日志文件或临时文件) RMAN> CONFIGURE CONTROLFILE AUTOBACKUP ON; --控制文件自动备份 RMAN>CONFIGURE DEVICE TYPE DISK PARALLELISM 2 backup type to compressed backupset; --压缩 RMAN> CONFIGURE channel DEVICE TYPE DISK format 'D:\APP\rman\full_%s.bk'; --备份的路径 RMAN>BACKUP DATABASE; --全备份 RMAN>list backup of database; --检查备份信息 RMAN>backup archivelog all delete input; --备份归档日志并删除归档日志 RMAN> list backup of archivelog all; --检查归档日志 2.差异增量备份 RMAN> backup incremental level 0 database; --0级全备份 RMAN> backup incremental level 2 database;--2级备份

Oracle查看表结构的几种方法

Oracle查看表结构的几种方法 Oracle查看表结构的几种方法 1,DESCRIBE 命令 使用方法如下: SQL> describe nchar_tst(nchar_tst为表名) 显示的结果如下: 名称是否为空? 类型 ----------------------------------------- -------- ---------------------------- NAME NCHAR(6) ADDR NVARCHAR2(16) SAL NUMBER(9,2) 2,DBMS_METADATA.GET_DDL包 使用方法如下: [sql] SQL> SELECT DBMS_METADATA.GET_DDL('TABLE','NCHAR_TST') FROM DUAL; 如果显示的结果并未完整,如下: CREATE TABLE "SCOTT"."NCHAR_TST" ( "NAME" NCHAR(6), "ADDR" NVARCHAR2(16 那么修改如下: [sql] SQL> SET LONG 9999 SQL> SELECT DBMS_METADATA.GET_DDL('TABLE','NCHAR_TST') FROM DUAL; 则显示如下的结果: DBMS_METADATA.GET_DDL('TABLE','NCHAR_TST')

------------------------------------------------------------------------ ------ CREATE TABLE "SCOTT"."NCHAR_TST" ( "NAME" NCHAR(6), "ADDR" NVARCHAR2(16), "SAL" NUMBER(9,2) ) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 LOGGING STORAGE(INITIAL 12288 NEXT 12288 MINEXTENTS 1 MAXEXTENTS 249 PCTINCREASE 50 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT) TABLESPACE "SYSTEM" [Oracle] dbms_metadata.get_ddl 的使用方法总结 以下是对Oracle中dbms_metadata.get_ddl的用法进行了详细的分析介绍,需要的朋友参考下 dbms_metadata.get_ddl()用于获取对象的DDL,其具体用法如下。 注意:在sqlplus里,为了更好的展示DDL,需要设置如下参数: 复制代码代码如下: set line 200 set pagesize 0 set long 99999 set feedback off set echo off 1)获得表、索引、视图、存储过程、函数的DDL 复制代码代码如下:

第10章 数据库恢复技术(习题集)

第十章数据库恢复技术(习题集) 二、选择题 1、一个事务的执行,要么全部完成,要么全部不做,一个事务中对数据库的所有操作都是一个不可分割的操作序列的属性是(A)。 A. 原子性 B. 一致性 C. 独立性 D. 持久性 2、表示两个或多个事务可以同时运行而不互相影响的是(C)。 A. 原子性 B. 一致性 C. 独立性 D. 持久性 3、事务的持续性是指(B) A.事务中包括的所有操作要么都做,要么都不做。 B.事务一旦提交,对数据库的改变是永久的。 C.一个事务内部的操作对并发的其他事务是隔离的。 D.事务必须是使数据库从一个一致性状态变到另一个一致性状态。 4、SQL语言中的COMMIT语句的主要作用是(C)。 A. 结束程序 B. 返回系统 C. 提交事务 D. 存储数据 5、SQL语言中用(B )语句实现事务的回滚 A. CREATE TABLE B. ROLLBACK C. GRANT和REVOKE D. COMMIT 6、若系统在运行过程中,由于某种硬件故障,使存储在外存上的数据部分损失或全部损失,这种情况称为(A)。 A. 介质故障 B. 运行故障 C. 系统故障 D. 事务故障 7、在DBMS中实现事务持久性的子系统是(D)。 A. 安全管理子系统 B. 完整性管理子系统 C. 并发控制子系统 D. 恢复管理子系统 8、后援副本的作用是(C)。 A. 保障安全性 B. 一致性控制 C. 故障后的恢复 D. 数据的转储 9、事务日志用于保存(C)。 A. 程序运行过程 B. 程序的执行结果 C. 对数据的更新操作 D. 数据操作 10、数据库恢复的基础是利用转储的冗余数据。这些转储的冗余数据包括(C)。 A. 数据字典、应用程序、审计档案、数据库后备副本 B. 数据字典、应用程序、审计档案、日志文件 C. 日志文件、数据库后备副本 D. 数据字典、应用程序、数据库后备副本 11、数据恢复最常用的技术是(A )。 A.数据转储和登记日志文件 B.数据转储和备份

Oracle数据库的不同备份方法

Oracle数据库的备份方法 1、引言 Oracle数据库的备份方法很多,无论使用那种备份方法,备份的目的都是为了在出现故障后能够以尽可能小的时间和代价恢复系统。比如使用export实用程序导出数据库对象、使用Oracle备份数据库、使用Oracle对称复制、使用Oracle 并行服务器、使用Oracle冷备份、使用Oracle热备份等各种备份方法都有其优缺点、适用的场合和相应的软硬件要求。本文主要就用export实用程序导出数据库对象、Oracle冷备份、Oracle热备份这三种最基本的备份方法进行详细的探讨,分析各自的优缺点和适用的场合,并给出自动执行这些备份方案的脚本文件。 2、三种备份方案的比较 2.1冷备份 冷备份是Oracle最简单的一种备份;执行冷备份前必须关闭数据库;然后使用操作系统实用工具或者第三方工具备份所有相关的数据库文件。 优点:能简单快速地备份。能简单快速地恢复。执行简单。 缺点:必须关闭数据库,不能进行点恢复。 2.2热备份 热备份是当数据库正在运行时进行数据备份的过程。执行热备份的前提是:数据库运行在可归档日志模式。适用于24X7不间断运行的关键应用系统。 优点:备份时数据库可以是打开的。热备份可以用来进行点恢复。初始化参数文件、归档日志在数据库正常运行时是关闭的,可用操作系统命令拷贝。 缺点:执行过程复杂。由于数据库不间断运行,测试比较困难。不能用操作系统实用工具拷贝打开的文件。必须使用Oracle提供的ocopy工具来拷贝打开的文件。热备份可能造成CPU、I/O过载,应在数据库不太忙时进行。 2.3Export导出数据库对象 冷备份和热备份都备份物理数据库文件,因而被称为物理备份。而export备份的是数据库对象,因此被称为逻辑备份。 优点:能执行对象或者行恢复。备份和恢复速度更快。能够跨操作系统平台迁移数据库。数据库可一直运行。 缺点:export并不是冷备份和热备份的替代工具。冷、热备份可保护介质失效。export备份可保护用户或应用错误。 3、冷备份方案的实施 3.1冷备份数据库的步骤 (1)关闭数据库; (2)备份所有相关的数据库文件:初始化参数文件、控制文件(可用select

相关文档