oracle数据备份和恢复,oracle备份和恢复

oracle数据备份和恢复,oracle备份和恢复,Oracle数据库的备份与恢复案例详解

本文介绍了Oracle数据库的备份和恢复方法,并通过示例代码进行了详细介绍。对大家的学习或工作都有一定的参考价值。让我们和边肖一起为有需要的朋友学习吧。

目录

1逻辑备份/恢复(导出/导入)1。必需参数2 .所有者参数3 .表参数4。关于inctype参数2物理备份/恢复1。冷备份/恢复2。热备份/恢复3使用PL/SQL Developer备份数据库。在使用Oracle数据库的过程中,备份和恢复是常见的操作。Oracle中的备份可以分为两类:逻辑备份和物理备份。物理备份可以分为两类:冷备份和热备份。本节将简要介绍如何使用各种备份方法来备份和恢复Oracle数据库。

1 逻辑备份/恢复(导出/导入)

逻辑备份是指使用exp命令进行备份。使用该命令进行备份简单易行,并且不会影响正常的数据库操作。因此,它经常被用作日常备份的一种手段。Exp命令可以添加多个参数选项来实现不同的导出策略。是的,exp?命令来查看。常用参数包括:owner、table和inctype。

1.必备参数

对于导出命令,只能使用必需的参数,如示例1所示。

[示例1]演示导出命令的使用。

c: Documents and Settings administrator exp system/ABC 123 file=d:/b . DMP

【代码描述】system/abc123是登录数据库时使用的用户名和密码;File=d:/b.dmp指定导出数据的文件的完整路径。这里需要注意的是,这个命令没有指定要登录到哪个数据库实例,所以将使用由系统环境变量ORACLE_SID指定的数据库实例。

注意:在另一种特殊情况下,如果在环境变量列表中找不到ORACLE_SID,可以在注册表中搜索ORACLE_SID键。Oracle还引用注册表中此项的值来设置环境。

2.owner参数

Owner参数,该参数可以指定用户名列表。导出时,只有用户名列表中的用户所拥有的对象才会被导出,如示例2所示。

[示例2]演示owner参数的使用。

c: Documents and Settings administrator exp system/ABC 123 owner=(test,oracle) file=d:/b.dmp

【代码描述】owner=(test,oracle)指定exp命令只导出test和oracle用户拥有的对象。如果用户不存在,例如本例中不存在用户oracle,则会给出相应的警告,但不会影响用户测试对象的导出。

3.tables参数

使用exp命令时,还可以指定tables参数。此参数用于指定导出哪些数据表。示例3演示了该参数的用法。

[例3]演示tables参数的使用。

exp system/abc123 tables=(人员、员工)file=d:/b.dmp

[代码描述] tables=(people,employees)指定要导出的数据表列表。当执行exp命令时,只导出用户系统的people和employees表。如果要导出的表不存在,将给出警告消息。但不会影响其他表的导出。

4.关于inctype参数

在Oracle 9i之前,您可以使用inctype参数来指定导出的增量类型。但是,在Oracle 9i和更高版本中,不再使用该参数。示例4演示了在Oracle 10g中使用该参数的错误消息。

【例4】Oracle 10g中的参数inctype已被取消。

c: Documents and Settings administrator exp system/ABC 123 inctype=complete file=d:/b . DMP

[代码描述]在exp命令中使用inctype参数,Oracle将抛出一条错误消息,

对于逻辑备份,对应的恢复命令是imp。如果数据库损坏,您可以使用以下命令来恢复它:

c: Documents and Settings administrator imp system/ABC 123 file=d:/b . DMP

imp命令也可以指定参数。例如,使用owner参数仅导入特定用户的对象;使用tables参数仅导入特定的表。代码如下:

c: Documents and Settings administrator imp system/ABC 123 file=d:/b . DMP tables=(人员、员工)

该命令将只导入名为people和employees的表。

2 物理备份/恢复

物理备份是指直接备份数据库的文件。物理备份分为冷备份和热备份两种。

1.冷备份/恢复

冷备份是指在数据库关闭时备份所有数据库文件。这些文件包括:所有数据文件、所有控制文件、所有在线重做日志文件和Init.ora文件(可选)。

[示例5]演示数据库冷备份。

(1)首先以管理员身份登录数据库,关闭数据库。

c: Documents and Settings administrator SQL plus/as SYSDBA

SQL正常关闭;

数据库关闭。

数据库已卸载。

ORACLE实例关闭。

(2)数据库关闭后,可以备份其物理文件。默认情况下,这些物理文件位于{ Oracle _ home } product 10 . 1 . 0 oradata test中,其中test是数据库名称。因此,首先返回Windows命令行使用copy命令,或者在SQL命令行中添加host关键字直接使用host命令:

SQL主机副本D: Oracle product 10 . 1 . 0 oradata test f: backup

d: Oracle product 10 . 1 . 0 oradata test control 01。细胞毒性T淋巴细胞

d: Oracle product 10 . 1 . 0 oradata test control 02。细胞毒性T淋巴细胞

d: Oracle product 10 . 1 . 0 oradata test control 03。细胞毒性T淋巴细胞

至此,整个数据库的冷备份已经实现。冷备份的恢复非常方便,只要关闭数据库,将备份的文件复制到原位置即可。

2.热备份/恢复

数据库热备份是指数据库在启动状态下的备份。要预热数据库,我们必须首先确保数据库在归档模式下运行,然后备份表空间的数据文件,最后备份控制文件。

[例6]演示数据库热备份。

(1)在切换日志模式之前,必须正常关闭正在运行的数据库。因此,您应该首先以管理员身份登录数据库并关闭数据库。

SQL立即关闭;

数据库关闭。

数据库已卸载。

ORACLE实例关闭。

(2)在不打开数据库的情况下重新启动数据库实例。

SQL启动装载;

ORACLE实例已启动。

总系统全局区171966464字节

固定大小787988字节

可变大小145488364字节

数据库缓冲区25165824字节

重做缓冲区524288字节

数据库已安装。

(3)使用alter命令将数据库切换到存档模式。

SQL alter database archivelog

数据库改变了。

(4)打开数据库进行操作。

SQL alter数据库打开;

数据库改变了。

(5)使用存档日志列表命令确认当前数据库处于存档模式。

SQL存档日志列表;

数据库日志模式存档模式

自动存档已启用

归档目标使用数据库恢复文件DEST

最旧的在线日志序列538

要存档的下一个日志序列540

当前日志序列540

存档模式表示当前数据库处于存档模式。Oracle数据库有在线重做日志,用来记录用户的数据库操作,如插入、删除或更新数据。通常,每个Oracle数据库至少包含两个在线重做日志组。当在线重做日志组已满时,会发生日志切换。另一个在线日志由当前使用的日志组成,继续记录用户操作。当当前在线日志组已满时,它将切换到第一个在线日志组并覆盖其中的数据。

如果数据库处于非归档模式,在线日志将在切换时丢弃现有信息。在存档模式下,当发生日志切换时,将首先存档切换的日志,并将信息复制到其他目录。这样,在线日志信息就不会丢失。

(6)使用以下代码将数据库中的表空间用户设置为备份模式:

SQL alter表空间用户开始备份;

表空间已更改。

(7)使用以下代码将实际表空间的数据文件复制到备份目录中:

SQL主机副本D: Oracle product 10 . 1 . 0 oradata test users 01 . DBF D: back;

已复制1个文件。

使用以下代码关闭表空间的备份模式:

SQL alter表空间用户结束备份;

表空间已更改。

(8)用同样的方法备份数据库中其他表空间的数据文件。

(9)使用以下代码备份控制文件:

结构化查询语言将数据库备份控制文件更改为" F:备份测试备份"重用;

数据库改变了。

(10)备份控制文件的创建脚本,代码如下:

结构化查询语言将数据库备份控制文件更改为找到;查出

数据库改变了。

此时会在{ ORACLE _ HOME } admin {实例名}udump目录下生成新的控制文件的跟踪文件。在本例中其路径为d: Oracle product 10。1 .0 admin test udump。在目录中获得最新的跟踪文件,该文件记录了数据库控制文件的创建脚本。以下代码为文件片段:

-以下命令将创建一个新的控制文件并使用它

-打开数据库。

-恢复管理器使用的数据将会丢失。

-在线日志的内容将会丢失,所有备份也将丢失

——被作废。仅当在线日志损坏时使用此选项。

-挂载创建的控制文件后,以下结构化查询语言

-语句会将数据库放在适当的

-保护模式:

-更改数据库集袖手旁观数据库以最大化性能

启动无限额

创建控制文件重用数据库"测试"重置日志归档日志

最大日志文件16

MAXLOGMEMBERS 3

最大数据文件100

最大实例数8

MAXLOGHISTORY 454

登录档

组1 D: ORACLE PRODUCT 10。1 . 0 ORADATA TEST redo 01 .原木尺寸10M,

组2 D: ORACLE PRODUCT 10。1 . 0 ORADATA TEST redo 02 .原木尺寸10M,

组3 D: ORACLE PRODUCT 10。1 . 0 ORADATA TEST redo 03 .原木尺寸10M

-待机日志

复制该文件,并将该文件复制到备份目录下。至此,热备份的过程结束。

在备份成功之后,一旦出现数据库故障,即可以利用备份文件进行恢复工作。例如,如果数据文件d: Oracle product 10。1 .0 oradata test users 01。DBF损坏,那么在启动数据库时会抛出错误。

结构化查询语言启动装载;

神谕实例已启动。

总系统全局区171966464字节

固定大小787988字节

可变大小145488364字节

数据库缓冲区25165824字节

重做缓冲区524288字节

数据库已安装。

SQL变更数据库打开;

改变数据库打开

*

第一行出错:

ORA-01157:无法识别/锁定数据文件4-请参阅DBWR跟踪文件

ORA-01110:数据文件4: D: ORACLE PRODUCT 10。1 .0 ORADATA TEST users 01 .DBF的

由于无法找到数据文件用户01。DBF,数据库启动失败。此时,需要将以前备份的数据文件复制到原目录中。

结构化查询语言主机副本f:备份用户01。DBF D:甲骨文产品 10。1 .0 ORADATA

试验用户01。DBF;

已复制一个文件。

此时,重新启动数据库。

SQL变更数据库打开;

改变数据库打开

*

第一行出错:

ORA-01113:文件四需要介质恢复

ORA-01110:数据文件4: D: ORACLE PRODUCT 10。1 .0 ORADATA TEST users 01 .DBF的

神谕在启动时,总是会检查控制文件中的标识(检查点计数与检查点SCN)与数据文件中的标识是否相同。如果不同,则需要重新恢复数据文件,以同步控制文件中的标识与数据文件中的标识。恢复的命令如下:

结构化查询语言恢复数据文件D: ORACLE PRODUCT 10。1 .0 ORADATA TEST users 01 .DBF ;

当然,也可以使用如下语句代替。

结构化查询语言恢复数据文件4;

此时,甲骨文可能会要求用户指定归档日志。归档日志默认存储在{ ORACLE _ HOME } 闪存恢复区 {数据库名称} 归档日志下,为恢复命令选择最近的归档日志或使用神谕建议的归档日志,如图所示。

选择归档日志

在选择了归档日志之后,甲骨文将使用该归档日志进行恢复。恢复成功之后,可以成功打开数据库。

SQL变更数据库打开;

数据库改变了。

备份控制文件的意义在于,当控制文件丢失时,可以将热备份的控制文件还原。而备份跟踪文件的意义在于,当备份的控制文件无法正常使用时,利用跟踪文件重新创建控制文件。

3 利用PL/SQL Developer备份数据库

除了使用各种命令来备份数据库之外,还可以使用PL/SQL Developer来备份数据库。用这个工具做备份,简单易学,不容易出错。使用PL/SQL Developer的备份模式包括整个数据库、一个用户、一些特定的表等。本节以备份用户对象为例,介绍如何使用PL/SQL Developer进行备份。

[示例7]演示使用PL/SQL Developer备份用户系统的所有对象。

(1)打开PL/SQL Developer,使用系统用户登录数据库测试。

(2)在左侧窗口的下拉菜单中选择【我的对象】,确保所有操作都是针对当前用户的对象。

(3)选择菜单栏中工具菜单下的菜单项导出用户对象,会弹出导出窗口,如图所示。

使用PL/SQL Developer备份所有用户的对象

(4)选择列表中的所有对象,并为[输出文件]指定导出文件的路径。导出的文件实际上是SQL脚本文件。其中记录了当前用户的所有对象的创建脚本。一旦数据库出现故障,可以重建数据库,并在其中创建相应的用户(不需要创建系统用户,该用户是数据库的默认用户)。然后,您可以使用该用户登录到数据库,并执行SQL脚本来重新创建数据库对象。

(5)除了备份数据库对象,还需要备份数据表中的数据。要备份表格中的数据,您需要使用[工具]菜单下的[导出表格]功能。

以上是边肖介绍的Oracle数据库备份恢复案例的详细说明。希望对你有帮助。非常感谢您对我们网站的支持!

oracle数据备份和恢复,oracle备份和恢复