编辑: AA003 2016-04-29

SYS_T1.txt'

STR X'

0a'

APPEND INTO TABLE SYS . T1 FIELDS TERMINATED BY X'

7c'

TRAILING NULLCOLS ( OWNER CHAR(30), OBJECT_NAME CHAR(128), SUBOBJECT_NAME CHAR(30), OBJECT_ID , DATA_OBJECT_ID , OBJECT_TYPE CHAR(19), CREATED DATE yyyy-mm-dd hh24:mi:ss , LAST_DDL_TIME DATE yyyy-mm-dd hh24:mi:ss , TIMESTAMP CHAR(19), STATUS CHAR(7), TEMPORARY CHAR(1), GENERATED CHAR(1), SECONDARY CHAR(1) ) SYS_T1.sql 是创建 SYS.T1 表的 SQL 语句,而SYS_T1.ctl 是用于将恢复的数据使用 SQL*Loader 导入到新数据库中的控制文件.而SYS_T1.txt 则是实际存储了 SYS.T1 表 数据的文本文件. 使用 Oracle 的SQL*Loader(sqlldr)工具将 SYS_T1.txt 文件导入到新的数据库中即完成 了SYS 用户下 T1 表的数据恢复. 使用 ODU 恢复数据完整步骤 虽然利用 ODU 来恢复 Oracle 数据库的数据比较简单,但是为了更顺利、更迅速地完成数据 恢复,建议按以下步骤来完成恢复: 1) 确定数据库数据丢失程度和恢复范围. 第14 页共72 页ODU 使用指南 在恢复之前,确定数据丢失程度,是需要恢复少量被 DROP/TRUNCATE 的表,或者是少量 存在数据损坏的表, 或者是数据库用户被删除需要恢复一个用户下的所有数据, 或者是数据 库完全不能打开需要恢复全库. 2) 确认数据库损坏程度. 需要确认数据库数据文件是否齐备,特别是 SYSTEM 表空间是否完好.在使用了 ASM 的 情况下 ASM 磁盘是否齐备、ASM 磁盘组是否能 MOUNT.如果 SYSTEM 表空间丢失或损 坏,或者是表或用户被 DROP,需要使用基于无数据字典情况下的恢复.在这种情况下,建 议请非常熟悉系统数据和数据库结构的维护人员或开发人员参与数据恢复. 3) 估算需要的存储空间以及准备足够的空间来保存恢复的数据. 在前一步确定了恢复范围的情况下,估算需要的存储空间,如果没有足够的存储空间,应该 寻求系统管理员和存储管理员的帮助,以分配到足够的空间. 4) 收集足够的信息 这些信息包括 ASM 磁盘的路径、数据文件的名称、数据库的平台、数据库的版本、数据库 在使用裸设备的情况下确认裸设备是否存在头部偏移. 5) 确定数据恢复保存的格式 ODU 支持两种类型的保存格式,一种为可以使用 SQL*Loader(SQLLDR)导入数据的文本 文件格式,另一种为可以使用 IMP 工具导入的 DMP 文件格式.如果数据比较复杂,比如有 LONG 类型、LOB 类型、带有特殊字符的 VARCHAR2 类型,建议使用 DMP 格式保存. 6) 配置 ODU 在完成前面所述步骤之后,根据收集到的信息修改 ODU 配置参数、修改 ODU 控制文件和 ASM 磁盘信息文件(如果使用了 ASM 磁盘组) . 关于 ODU 配置参数,请参见后面关于 ODU 配置参数参考章节. 关于 ODU 控制文件和磁盘信息文件,请参见后面关于 ODU 控制文件和磁盘信息文件参考 章节. 7) 获得 ODU 正式版 License 根据http://www.oracleodu.com/cn/buy的步骤,获取ODU正式版License. 8) 使用 ODU 恢复数据 使用 ODU 的unload 命令恢复数据.关于 ODU 命令,请参见后面关于 ODU 命令参考章节. 9) 导入恢复的数据并确认数据 使用 ODU 将数据恢复为文件后,使用 SQL*Loader(SQLLDR)或IMP 工具将数据导入到 新的完好的数据库中.建议不要导入到原来的数据库中,这是为了保护现场,避免导入数据 时覆盖了原来的空间.只要在确认数据没有问题后,再将数据导入到生产库中. 10) 创建其他对象 数据恢复之后,还应该创建其他的对象,才能真正用于生产系统.这些对象包括索引、主外 第15 页共72 页ODU 使用指南 键约束、触发器.而在用户或数据库全库恢复时,还需要创建存储过程等对象. 以下的章节将详细描述如何使用 ODU 提供的功能来恢复数据. ODU 恢复数据的几种场景 本节将介绍几种场景下使用 ODU 进行数据恢复时,使用的命令序列. 场景 1. 数据库不能启动,但是 SYSTEM 表空间中的数据 字典是完整的 z 生成数据字典:unload dict z 列出用户:list user z 列出用户下的所有表:list table username z 恢复每张表:unload table username.tablename z 也可以按用户恢复:unload user username 场景 2. 表被 TRUNCATE z OFFLINE 表所在的表空间 z 生成数据字典:unload dict z 扫描数据:scan extent z 恢复表:unload table username.tablename object truncate 如果上述步骤不成功,继续执行下面的步骤: z 显示表的段头:desc username.tablename z 找到实际的 data object id: dump datafile file# block block# z 恢复表:unload table username.tablename object 场景 3. 表被 DROP z OFFLINE 表所在的表空间 z 使用 logminer 从日志里面挖掘被 drop 掉的表的 data object id,或使用闪回查询 SYS.OBJ$表得到 DROP 表的 data object id,如果不能得到 data object id,按下面的 场景

下载(注:源文件不在本站服务器,都将跳转到源网站下载)
备用下载
发帖评论
相关话题
发布一个新话题