Oracle数据迁移技术与方案.doc_第1页
Oracle数据迁移技术与方案.doc_第2页
Oracle数据迁移技术与方案.doc_第3页
Oracle数据迁移技术与方案.doc_第4页
Oracle数据迁移技术与方案.doc_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

学习参考 OracleOracle 数据迁移技术与方案数据迁移技术与方案 姓姓 名 名 学学 号 号 指导老师 指导老师 系系 名 名 软件学院 专专 业 业 计算机科学与技术 班班 级 级 11 级 12 班 2012 年 5 月 21 日 学习参考 目录 摘要 1 第 1 章 ORACLE 数据迁移技术 1 1 1 数据迁移技术 1 1 2 数据迁移的一般步骤 1 1 3 ORACLE数据迁移方法 3 第 2 章 ORACLE 数据迁移方案 6 2 1 使用可移动表空间 6 2 2 数据泵导出与导入工具 6 2 3 拖出表空间 7 第 3 章 总结 8 学习参考 摘要 在企业级应用系统中 新系统的开发 新旧系统的升级换代 以及正常的系统维护 不可避免地涉及到大量的迁移工作 而在一个以数据为核心的业务系统中 数据的迁移 更是无处不在 比如 在以数据仓库为架构原型的系统设计中 ETL 抽取 转换 装载 部分的实现就是一种数据迁移 对大型数据系统的分布式实施 数据迁移就是整个实施 过程的主要部分 而在实践中 渐进式的数据库开发 更是涉及到大量的数据迁移和同 步工作 Oracle 数据库是当今世界上应用访问最为广泛的数据库之一 是关系型数据库 的创作者 也是客户 服务器结构 分布式数据库和网格计算的倡导者和领导者 基于 Oracle 数据库平台的商品化应用软件包 已经广泛应用于国内的政府部门 电信 邮政 公安 金融 保险 能源电力 交通 科教 石化 航空航天 民航等各行各业 当这 些系统进行系统升级时 不可避免的要进行数据迁移 因此研究 Oracle 环境的数据迁移 很有价值 第 1 章 Oracle 数据迁移技术 1 1 数据迁移技术 数据迁移 又称分级存储管理 hierarchical storage management hsm 是一种 将离线存储与在线存储融合的技术 它将高速 高容量的非在线存储设备作为磁盘设 备的下一级设备 然后将磁盘中常用的数据按指定的策略自动迁移到磁带库 简称带 库 等二级大容量存储设备上 当需要使用这些数据时 分级存储系统会自动将这些 数据从下一级存储设备调回到上一级磁盘上 对于用户来说 上述数据迁移技术操作 完全是透明的 只是在访问磁盘的速度上略有怠慢 而在逻辑磁盘的容量上明显感觉 大大提高了 通俗地讲 数据迁移技术是一种可以把大量不经常访问的数据存放在带 库 盘库等离线介质上 只在盘阵上保存少量访问频率高的数据的技术 当那些磁带 等介质上数据被访问时 系统自动的把这些数据回迁到盘阵中 同样 盘阵中很久未 访问的数据被自动迁移到磁带介质上 从而大大降低投入和管理成本 1 2 数据迁移的一般步骤 在开发环境向运行环境转换 低版本数据库向高版本数据库转换以及两个不同数 据库之间进行转换时 数据库中的数据 包括结构定义 需要被转移并使之正常运行 这就是数据库中的数据迁移 对于中小型数据库 如 Foxpro 中的 dbf 这种迁移非 学习参考 常简单 一般只需通过简单的 Copy 就能完成 但对于大型数据库系统 如 Oracle 数 据库 数据迁移就不那么简单了 它需要利用一定的技术和经验 有步骤按计划地完 成 对数据库管理人员来说 数据库数据迁移极具挑战性 一旦措施不当 珍贵的数 据资源将面临丢失的危险 要成功地实现数据库数据平滑迁移 需要周密计划和充分 准备 并按照一定的步骤来完成 1 设计数据迁移方案 设计数据迁移方案主要包括以下几个方面工作 研究与数据迁移相关的资料 或 在网站上查询相关内容 评估和选择数据迁移的软硬件平台 选择数据迁移方法 选 择数据备份和恢复策略 设计数据迁移和测试方案等 2 进行数据模拟迁移 根据设计的数据迁移方案 建立一个模拟的数据迁移环境 它既能仿真实际环境 又不影响实际数据 然后在数据模拟迁移环境中测试数据迁移的效果 数据模拟迁移 前也应按备份策略备份模拟数据 以便数据迁移后能按恢复策略进行恢复测试 3 测试数据模拟迁移 根据设计的数据迁移测试方案测试数据模拟迁移 也就是检查数据模拟迁移后数 据和应用软件是否正常 主要包括 数据一致性测试 应用软件执行功能测试 性能 测试 数据备份和恢复测试等 4 准备实施数据迁移 数据模拟迁移测试成功后 在正式实施数据迁移前还需要做好以下几个方面工作 进行完全数据备份 确定数据迁移方案 安装和配置软硬件等 5 正式实施数据迁移 按照确定的数据迁移方案 正式实施数据迁移 6 测试数据迁移效果 按照数据迁移测试方案测试数据迁移效果 并对数据迁移后的数据库参数和性能 进行调整 使之满足数据迁移后实际应用系统的需要 7 移植系统应用软件 将实际应用系统的应用软件移植到数据迁移后的数据库系统上 并使之正常运行 8 正式运行应用系统 学习参考 在正式实施数据迁移成功并且数据库参数和性能达到要求后 就可以正式运行应用系统 并投 入实际使用 1 3 Oracle 数据迁移方法 Oracle 数据库系统本身提供了实现 Oracle 数据库数据迁移的多种工具 我们还可 以利用 PowerBuilder 的数据管道功能实现 Oracle 数据库数据迁移 以下介绍可以实 现数据库数据迁移的几种方法 移植实用程序 Migration Utility Oracle 数据移 植助理 Oracle data Migration Assistant 导入 导出工具 Export Import SQl Loader 工具 SQL PLUS COPY 命令 PowerBuilder 数据管道工具 Pipeline 1 移植实用程序 Migration Utility MIG 是 Oracle 提供的用于 Oracle 数据库之间数据迁移的命令行方式实用程序 使 用 MIG 迁移 Oracle7 的数据到 Oracle8i 的一般步骤为 设置 Oracle7 数据库环境变量 包括运行注册表编辑器 regedit exe 和控制面 板 设置 Oracle7 主目录 字符集和可执行文件路径等 并在 DOS 命令提示符下设置 Oracle sid Oracle7 sid 并正常关闭 Oracle7 数据库 运行 Oracle8i 的 MIG 应用程序 生成一个转换文件 用于数据库转换 从 Windows NT 控制面板终止 Oracle7 数据库服务 并使用实例管理器删除 Oracle7 数据库服务 设置 Oracle8i 数据库环境变量 包括运行注册表编辑器 regedit exe 和控制 面板 设置 Oracle8i 主目录 字符集和可执行文件路径等 由 oradim 命令使用 Oracle7 sid 和 init ora 文件创建 Oracle8i 服务 重新命名数据库控制文件 编辑 init ora 文件 设置 compatible 为 8 1 5 0 0 删除 init ora 文件中不再使用的参 数 在 DOS 命令提示符下设置 Oracle Sid Oracle8 sid 实现数据迁移 以内部用户账号连接服务器管理器 以非登录方式启动 Oracle8i 数据库 由 alter database covert 命令生成新的控制文件 并把文件头转换为 Oracle8i 数据库文件格式 由 alter database open resetlog 命令打开数据库并且重 新设置日志文件 由 spool migscripts log 命令创建输出目标文件 该文件保存前面 命令脚本文件的运行结果 运行 u0703030 sql 当使用数据库高级复制功能选项时 学习参考 运行 Catrep sql 当使用 Oracle Parallel Server 选项时 运行 catparr sql 由 spool out 命令结束结果输出 并关闭数据库和备份数据库 查看 migscripts out spool 文件 确认脚本文件执行成功 如果脚本文件没有成 功执行 返回到脚本文件 检查可能出现的问题 2 Oracle 数据移植助理 Oracle data Migration Assistant Oracle 数据移植助手用于将 Oracle7 数据库移植到 Oracle8 数据库 升级 Oracle8 数据库较早版本到 Oracle8 数据库新版本 Oracle 数据移植助手不用于升级 较低版本 Oracle7 数据库到较高版本 Oracle7 数据库 使用 Oracle 数据移植助手迁移 Oracle7 数据库数据到 Oracle8i 的一般步骤是 关闭 Oracle7 数据库 终止所有 Oracle 数据库服务 编辑 init ora 文件 设置 compatible 为 8 1 5 0 0 删除 init ora 文件中不再使用的参数 运行 Oracle 数据移植助手 在 Database Instance 页 选择移植的数据库实例 输人 internal 用户账号密码 并提供 init ora 文件位置 在 Moving the Database 页 指定数据库移植的新位置 如果用户还没有进行备份 在 Backup the Database 页 允许用户进行数据库备份 在 Character Set 页 指定移植后的数据库使用的字符集 开始移植过程 移植过程需要的时间取决于系统内存容量 硬盘速度 CPU 速度等 因素 移植完成后 可以查看 Migration Report 页 检查移植是否成功执行 如果移植 没有成功 应当把数据库系统返回到备份的 Oracle7 数据库 编辑 init ora 文件 添加在 Oracle8i 数据库中会用到的参数 删除在移植过程 中用到的旧的控制文件 当使用数据库高级复制功能选项时 运行 catrep sql 当使用 Oracle Parallel Server 选项时 运行 catparr sql 3 导入 导出工具 Export Import 当需要从一个非 PC 的系统平台 例如 Unix 系统 迁移数据库时 导人 导出方 式是一种非常有用的策略 当然相同系统平台的数据迁移导人 导出方式同样适用 采用导入 导出方式迁移 Oracle7 Database on Unix 到 Oracle8i Database on Windows NT 数据库的一般步骤是 学习参考 以正常方式关闭 Unix 系统的 Oracle7 数据库系统 不要立即终止或者异常终止 然后冷备份数据库 打开数据库 使用导出工具 Export Utility 进行数据库的完 全导出 在 Windows NT 系统安装 Oracle8i 数据库软件并创建启动数据库 使用 FTP 将文件传输到 Windows NT 计算机 必须使用 FTP 的 binary 传输模式 否则 可能造成读导出转储文件错误 确认目标数据库在运行 并在 DOS 命令提示符下设置 oracle sid Oracle8i SID 使用导出转储文件 执行到目标数据库完全的导人 查看导入日志文件 确认数据库导入执行成功 4 SQl Loader 工具 SQL Loader 可以将 ASCII 文件中的数据装入 Oracle 数据库 ASCII 文件中的信 息可以来自不同的数据源 例如其他 Oracle 数据库 非 Oracle 数据库以及电子表格 等 采用 SQl Loader 工具将数据迁移到 Oracle 数据库的一般步骤有 使用文本文件编辑器创建控制文件 在 DOS 命令行下使用 sqlldr 命令装载数据文件 验证数据是否正确装载 5 SQL PLUS COPY 命令 使用 SQL PLUS COPY 命令 迁移 Oracle7 数据库到 Oracle8i 与导人 导出方式 相似 但是 此时需要两个数据库都在线 其一般步骤是 首先安装 Oracle8i 数据库 并创建一个数据库作为目标数据库 添加所需的表空间和用户到目标数据库中 安装所需的 SQL Net2 或者 Net8 软件 并配置用于连接数据库的别名 在 DOS 命令提示符下设置 oracle sid Oracle7 sid 以 Internal 用户账号连接 SQL PLUS 创建一个从 Oracle7 数据库到 Oracle8i 数据库的数据库链接 使用 SQL PLUS COPY 命令从 Oracle7 数据库复制表和表内容到 Oracle8i 数据库 将视图 同义词 存储过程等添加到目标数据库 6 PowerBuilder 数据管道工具 Pipeline 学习参考 PowerBuilder 数据管道工具是 PowerBuilder 提供的一个用于转换数据的智能对象 它可以在图形方式下实现不同类型数据库间的数据迁移而无需 SQL 编程 PowerBuilder 数据管道的操作是在图形方式下实现的 因此比较简单 其一般步骤是 启动 PowerBuilder 点击工具栏上的 DBProfile 按钮 通过 ODBC 或专用接口配置源和目标数据库连 接 同时连接到源和目标数据库 单击工具栏上的 Pipeline 按钮 建一个新的数据管道 确定好源和目标数据库 选择要传输数据的表 并根据需要选中想传输的列 选择数据迁移方式 Create AddTable 在目标库中建立一个新表并复制数据 Replace Drop AddTable 删除旧表并复制数据 Refresh DeleteRows 删除表中 的现有数据并复制数据 Append InsertRows 在现有数据基础上增加新数据 Update Update InsertRows 新增数据的键值如果与现有数据某行的键值一样则覆盖 现有数据 否则插入新数据 单击 Execute 按钮运行定义好的数据管道完成数据迁移 第 2 章 Oracle 数据迁移方案 为了有效地实现数据集市的方法 数据专家必须能将数据快速 有效地放入数据 集市中 如何用数据仓库中的数据快速刷新数据集市中的数据 而这些数据集市又运 行在各个结构不同的平台上 以下是 Oracle 数据迁移技术的几种方案 2 1 使用可移动表空间 把整个表空间移动到目标系统的最快速方法是用 FTP 文件传输协议 或 rcp 远 程复制 来简单地转移表空间的基本文件 但是 仅仅复制 Oracle 数据文件还不够 目标数据库必须识别出并导入文件以及相应的表空间 最终用户才能使用表空间数据 使用可移动表空间包括复制表空间文件和使它们中的数据在目标数据库中可用 要移动表空间 使用 Oracle 数据库 10g 中的数据泵导出 Data Pump Export 工 具 数据泵是 Oracle 的新一代数据转移工具 它替换了早期的 Oracle Export EXP 和 Import IMP 工具 这些老的工具使用正则 SQL 来提取和插入数据 而数据泵则与 它们不同 它使用能绕过 SQL 缓冲区的专用 API 从而使操作过程速度变得极快 此外 数据泵可以提取特定的对象 如特定的存储过程或特定表空间的表集合 数据泵的导 出和导入可以由作业控制 数据库管理员可以随时暂停 重启或终止这些作业 学习参考 2 2 数据泵导出与导入工具 选择可移动表空间的限制之一是在转移文件时源表空间必须是只读模式 在现实 世界中 并不总是能满足这一要求 例如 在 OLTP 数据库中 可能对表要经常进行读 写操作 使用 Oracle 数据库 10g 中的数据泵实用工具来转移表空间 对这种方法进行的测 试包括移动 TS1 和 TS2 表空间内容的以下步骤 1 创建一个目录对象来存放转储的文件 CREATE DIRECTORY dump dir AS u01 dumps 2 用数据泵导出工具导出数据 expdp lora lora123 TABLESPACES ts1 ts2 DUMPFILE ts1 ts2 dmp DIRECTORY dump dir 这一步创建一个包含 TS1 和 TS2 表空间内容的文件 u01 dumps ts1 ts2 dmp 3 将文件 ts1 ts2 dmp 转移到远程系统中 放在目录 u01 dumps 下 用文件传输 的方法如 FTP 或 rcp 4 在目标数据库中创建一个目录对象 CREATE DIRECTORY dump dir AS u01 dumps 5 使用数据泵导入工具将该文件导入到该数据库中 impdp lora lora123 DIRECTORY dump dir DUMPFILE ts1 ts2 dmp 如果表空间内的数据量相对较小 则 Lora 可以只用一条命令执行上面的所有步骤 impdp lora lora123 DIRECTORY dump dir NETWORK LINK srcdb TABLESPACES ts1 ts2 这条命令使用数据泵导入工具将通过数据库链接 srcdb 在以前的章节中已讨论过 检索到的数据加载到表中 但是 由于网络带宽通常是受到限制的 因此这种方法可 能比使用导出 传输 导入周期方法要慢一些 如果只需将特定的表或表集合进行转移 那么可以在 expdp 命令中使用 TABLES 子句来只下载特定的表或表集合 2 3 拖出表空间 使用 Oracle 数据库 10g 中的新工具 它简化了可移动表空间的移动方法 因此只 涉及执行一个打包过程 在这种方法中 用户利用所提供的 DBMS STREAMS TABLESPACE ADM 包从源系统中 拖 quot 表空间 这个包使用数据泵转 移表空间并将数据文件转换成目标系统的格式 它还自动执行任何所需的字节顺序变 换 下面给出在最简单的情况下使用这种方法的过程 涉及单个简单表空间 更复杂 的情况在下一节介绍 如果一个表空间只有一个数据文件 则这个表空间称为简单 表空间 DBMS STREAMS TABLESPACE ADM 包中 PULL SIMPLE TABLESPACE 过程的使用方 法 1 在存放数据文件的目录所在的 远程 数据仓库数据库中创建一个目录对象 CREATE DIRECTORY dbf dir AS u01 oradata dw 2 设置远程数据库中的表空间 TS1 为只读 学习参考 ALTER TABLESPACE TS1 READ ONLY 剩下的一些步骤在本地 数据集市 数据库中完成 3 创建一个连接到远程 数据仓库 数据库 在 Lora 的例子中是 dwdb 的数 据库链接 CREATE DATABASE LINK dwdb USING dwdb 4 创建一个数据文件将被转移到其中的目录对象 CREATE DIRECTORY dbf dir AS u01 oradata mart 5 从远程数据库中拖出表空间 BEGIN DBMS STREAMS TABLESPACE ADM PULL SIMPLE TABLESPACE tablespace name TS1 database link dwdb directory object DBF DIR conversion extension linux END 该操作在后台完成了许多步骤 设置源表空间为只读 用数据泵导出工具进行一 次表空间的元数据转储 用 DBMS FILE TRANSFER 包移动数据文件和转储的文件 把源 表空间恢复到其最初的读写状态 使用数据泵导入工具将表空间插入到本地数据库中 由于源数据库运行在 Linux 上 而目标数据库运行在 Solaris 上 因此这一操作首先 复制原始数据文件 Linux 的文件格式 然后将它转换到目标平台上 Solaris 的文 件格式 复制过程保持最初被转移的文件 而创建一个新文件用于转换 新文件与最 初的文件同名 但具有 CONVERSION EXTENSION 参数指定的 linux 扩展名 在目标数据 库中创建的表空间为只读表空间 该操作还在与数据文件相同的目录下创建一个名为 ts1 01 plg 的日志文件 如果 执行该过程返回错误信息 则检查该文件的内容可能有助于找到错误的原因 拖出多个表空间 上面的例子针对的是单个简单表空间的情况 但如果想移动一组表空间 或者一 些表空间的数据文件多于一个 该怎么办呢 在这种情况下 她可以使用同一个包中 的另一个过程 PULL TABLESPACES 代码清单 2 给出的例子说明 Lora 如何转移两个表空 间 TS7 和 TS8 而不管它们有多少个数据文件 该过程要求以 VARCHAR2 数据类型给出表空间名和目录名 代码清单 2 中第 2 行到 第 5 行展示出了这些变量的声明 第 10 行到第 13 行展示出这些变量被赋值给相应的 表空间名和目录名 由于定义了两个目录 因此第一个文件在第一个目录中创建 下 一个文件在第二个目录中创建 第三个文件再次在第一个目录中创建 如此等等 这 些操作通过数据泵作业来执行 作业名在第 17 行指定 如果需要的话 源系统字节顺 序的数据文件会自动转换为目标系统的字节顺序 在目标数据库中创建的新文件获得 linux 扩展名 如第 21 行代码所示 处理过程记录在由目录对象 LOG DIR 指定的目录 中的 ts7 ts8 log 日志文件中 第 14 行 这种方法的优点显而易见 从一个系统把一个表空间转移到另一个系统所需的所 有操作任务都封装在一个程

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论