本文介绍了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数据库备份恢复案例的详细说明。希望对你有帮助。非常感谢您对我们网站的支持!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。