Oracle数据迁移技术与方案0221004038.docx
- 文档编号:14319148
- 上传时间:2023-06-22
- 格式:DOCX
- 页数:12
- 大小:24.30KB
Oracle数据迁移技术与方案0221004038.docx
《Oracle数据迁移技术与方案0221004038.docx》由会员分享,可在线阅读,更多相关《Oracle数据迁移技术与方案0221004038.docx(12页珍藏版)》请在冰点文库上搜索。
Oracle数据迁移技术与方案0221004038
OraCIe数据迁移技术与方案
姓
学号:
指导老师:
系名:
软件学院
专业:
计算机科学与技术
班级:
11级12班
2012年5月21日
摘要-I-
第1章ORACLE数据迁移技术-I-
1.1数据迁移技术-I-
1.2数据迁移的一般步骤-1-
13ORACLE数据迁移方法-3-
第2章ORACLE数据迁移方案-6-
2」使用可移动农空间-6-
2.2数据泵导出与导入工具-6-
2.3拖岀表空间-I-
第3章总结-8-
摘要
在企业级应用系统中,新系统的开发,新旧系统的升级换代,以及正常的系统维护,不可避免地涉及到大量的迁移工作。
而在一个以数据为核心的业务系统中,数据的迁移更是无处不在。
比如:
在以数据仓库为架构原型的系统设计中,ETL(抽取,转换,装载)部分的实现就是一种数据迁移:
对大型数据系统的分布式实施,数据迁移就是整个实施过程的主要部分。
而在实践中,渐进式的数据库开发,更是涉及到大量的数据迁移和同步工作。
OraCIe数据库是当今世界上应用访问最为广泛的数据库之一,是关系型数据库的创作者,也是客户/服务器结构、分布式数据库和网格讣算的倡导者和领导者。
基于OraCIe数据库平台的商品化应用软件包,已经广泛应用于国内的政府部门、电信、邮政、公安、金融、保险、能源电力、交通、科教、石化、航空航天、民航等各行各业,当这些系统进行系统升级时,不可避免的要进行数据迁移,因此研究OraCIe环境的数据迁移很有价值。
第1章OraCle数据迁移技术
1.1数据迁移技术
数据迁移(乂称分级存储管理,hierarchicalStOragemanagement,hsιn)是一种将离线存储与在线存储融合的技术。
它将高速、高容量的非在线存储设备作为磁盘设备的下一级设备,然后将磁盘中常用的数据按指定的策略自动迁移到磁带库(简称带库)等二级大容量存储设备上。
当需要使用这些数据时,分级存储系统会自动将这些数据从下一级存储设备调回到上一级磁盘上。
对于用户来说,上述数据迁移技术操作完全是透明的,只是在访问磁盘的速度上略有怠慢,而在逻辑磁盘的容量上明显感觉大大提高To通俗地讲,数据迁移技术是一种可以把大量不经常访问的数据存放在带库、盘库等离线介质上,只在盘阵上保存少量访问频率高的数据的技术。
当那些磁带等介质上数据被访问时,系统自动的把这些数据回迁到盘阵中;同样,盘阵中很久未访问的数据被自动迁移到磁带介质上,从而大大降低投入和管理成本。
1.2数据迁移的一般步骤
在开发环境向运行环境转换、低版本数据库向高版本数据库转换以及两个不同数据库之间进行转换时,数据库中的数据(包括结构定义)需要被转移并使之正常运行,这就是数据库中的数据迁移。
对于中小型数据库,如FoXPr。
中的*.dbf,这种迁移非常简单,一般只需通过简单的CoPy就能完成。
但对于大型数据库系统,如OrdCle数据库,数据迁移就不那么简单了,它需要利用一定的技术和经验,有步骤按计划地完成。
对数据库管理人员来说,数据库数据迁移极具挑战性,一旦措施不当,珍贵的数据资源将面临丢失的危险,要成功地实现数据库数据平滑迁移,需要周密计划和充分准备,并按照一定的步骤来完成。
1∙设讣数据迁移方案
设计数据迁移方案主要包括以下儿个方面工作:
研究与数据迁移相关的资料,或在网站上查询相关内容、评估和选择数据迁移的软硬件平台、选择数据迁移方法、选择数据备份和恢复策略、设计数据迁移和测试方案等。
2.进行数据模拟迁移
根据设计的数据迁移方案,建立一个模拟的数据迁移环境,它既能仿真实际环境乂不影响实际数据,然后在数据模拟迁移环境中测试数据迁移的效果。
数据模拟迁移前也应按备份策略备份模拟数据,以便数据迁移后能按恢复策略进行恢复测试。
3.测试数据模拟迁移
根据设计的数据迁移测试方案测试数据模拟迁移,也就是检查数据模拟迁移后数据和应用软件是否正常,主要包括:
数据一致性测试、应用软件执行功能测试、性能测试、数据备份和恢复测试等。
4.准备实施数据迁移
数据模拟迁移测试成功后,在正式实施数据迁移前还需要做好以下儿个方面工作:
进行完全数据备份、确定数据迁移方案、安装和配置软硬件等。
5.正式实施数据迁移
按照确定的数据迁移方案,正式实施数据迁移。
6.测试数据迁移效果
按照数据迁移测试方案测试数据迁移效果,并对数据迁移后的数据库参数和性能进行调整,使之满足数据迁移后实际应用系统的需要。
7.移植系统应用软件
将实际应用系统的应用软件移植到数据迁移后的数据库系统上,并使之正常运行。
8.正式运行应用系统
在正式实施数据迁移成功并且数据库参数和性能达到要求后,就可以正式运行应用系统,并投入实际使用。
1.3OraCIe数据迁移方法
OraCIe数据库系统本身提供了实现OraCIe数据库数据迁移的多种工具,我们还可以利用PoWerBUilder的数据管道功能实现OraCIe数据库数据迁移。
,以下介绍可以实现数据库数据迁移的儿种方法:
移植实用程序(MigrdtiOnUtility),OraCIe数据移植助理(OrdeledataMigratiOnASSiStant),导入/导出一匸具(EXPOrt/Import),SQl*Loader工具,SQL*PLUSCOPY命令,POWerBUilder数据管道工具(PiPeIine)。
1:
移植实用程序(MigratiOnUtility)
MlG是OraCIe提供的用于OraCIe数据库之间数据迁移的命令行方式实用程序。
使用MlG迁移OraCIe7的数据到OraCIeSi的一般步骤为:
设置OraCIe7数据库环境变量,包括运行注册表编辑器(regedit.exe)和控制面板,设置OraCIe7主目录、字符集和可执行文件路径等,并在DOS命令提示符下设置OraC1e_sid-0rac1e7_sid,并正常关闭OraCIe7数据库。
运行OraCIeSi的MIG应用程序,生成一个转换文件,用于数据库转换。
从WindOWSNT控制面板终止OraCIe7数据库服务,并使用实例管理器删除OraCIe7数据库服务。
设置OraCIeSi数据库环境变量,包括运行注册表编辑器(regedit.exe)和控制面板,设置OracleSi主目录、字符集和可执行文件路径等;由oradim命令使用OraCIe7_Sid和init.ora文件创建OraCIeSi服务;重新命名数据库控制文件;编辑init.Ora文件,设置COmPatibIe为8.1.5.0.0;删除init.Ora文件中不再使用的参数:
在DOS命令提示符下设置OraC1e_Sid-0rac1e8_sid□
实现数据迁移,以内部用户账号连接服务器管理器;以非登录方式启动OraCIeSi数据库;由alterdatabaseCOVert命令生成新的控制文件,并把文件头转换为OraCIe8i数据库文件格式;山alterdatabaseOPenresetlog命令打开数据库并且重新设置日志文件;山SPOOImigscripts.IOg命令创建输出LI标文件,该文件保存前面命令脚本文件的运行结果;运行U0703030.sql,当使用数据库高级复制功能选项时,运行Catrep.sql,当使用OraCIeParalIeISerVer选项时,运行catparr.SqI;由SPOOIOUt命令结束结果输出,并关闭数据库和备份数据库。
查看migscripts.OUtSPOOI文件,确认脚本文件执行成功,如果脚本文件没有成功执行,返回到脚本文件,检查可能出现的问题。
2:
OraCIe数据移植助理(OraCIedataMigratiOnASSiStant)
OraCIe数据移植助手用于将OraCIe7数据库移植到OraCIe8数据库。
升级OraCIe8数据库较早版本到OraCIe8数据库新版本。
OraCIe数据移植助手不用于升级较低版本OraCIe7数据库到较高版本OraCIe7数据库。
使用OraCIe数据移植助手迁移OraCIe7数据库数据到OraCIe8i的一般步骤是:
关闭OraCIe7数据库,终止所有OraCle数据库服务;编辑init.。
“文件,设置COmPatibIe为8.1.5.0.0;删除init.Ora文件中不再使用的参数。
运行OraCIe数据移植助手,在DatabaSeInStanCe页,选择移植的数据库实例,输人internal用户账号密码,并提供init.ora文件位置;在MOVingtheDatabaSe页,指定数据库移植的新位置;如果用户还没有进行备份,在BaCkUPtheDatabaSe页,允许用户进行数据库备份;在CharaCterSet页,指定移植后的数据库使用的字符集。
开始移植过程。
移植过程需要的时间取决于系统内存容量、硬盘速度、CPU速度等因素。
移植完成后,可以查看MigratiOnRePOrt页,检査移植是否成功执行。
如果移植没有成功,应当把数据库系统返回到备份的OraCIe7数据库。
编辑init.ora文件,添加在OraCIeSi数据库中会用到的参数。
删除在移植过程中用到的旧的控制文件。
当使用数据库高级复制功能选项时,运行catrep.sql;当使用OraCIeParalIeISerVer选项时,运行catparr.SqIo
3:
导入/导出工具(EXPOrt/Import)
当需要从一个非PC的系统平台(例如,IJniX系统)迁移数据库时,导人/导出方式是一种非常有用的策略,当然相同系统平台的数据迁移导人/导出方式同样适用。
釆用导入/导出方式迁移OraCIe7DatabaSeOnUniX到OraCIe8iDatabaSeOnWindOWSNT数据库的一般步骤是:
以正常方式关闭UniX系统的OraCIe7数据库系统,不要立即终止或者异常终止,然后冷备份数据库。
打开数据库,使用导出工具(EXPortUtility)进行数据库的完全导出。
在WindoWSNT系统安装OraCIe8i数据库软件并创建启动数据库。
使用FTP,将文件传输到WindOWSNT计算机。
必须使用传输模式,否则,可能造成读导出转储文件错误。
确认Ll标数据库在运行,并在DOS命令提示符下设置OraC1e_sid=0rac1e8i_SIDO使用导出转储文件,执行到目标数据库完全的导人。
查看导入日志文件,确认数据库导入执行成功。
4:
SQI*LOaderZE具
SQL*Loader可以将ASCll文件中的数据装入OraCIe数据库。
ASCll文件中的信息可以来自不同的数据源,例如其他OraCIe数据库、非OraCIe数据库以及电子表格等。
采用SQI^LOader工具将数据迁移到OraCIe数据库的一般步骤有:
使用文本文件编辑器创建控制文件。
在DOS命令行下使用SqlIdr命令装载数据文件。
验证数据是否正确装载。
5:
SQL*PLUSCOPY命令
使用SQL*PLUSCOPY命令,迁移OraCIe7数据库到OraCIe8i与导人/导出方式相似,但是,此时需要两个数据库都在线,其一般步骤是:
首先安装OraCIeSi数据库,并创建一个数据库作为目标数据库。
添加所需的表空间和用户到LI标数据库中;安装所需的SQL^Net2或者Net8软件,并配置用于连接数据库的别名。
在DOS命令提示符下设置OraC1e_sid-0rac1e7_sido
以InternaI用户账号连接SQL★PLUS。
创建一个从OraCIe7数据库到OraCIe8i数据库的数据库链接;使用SQL*PLCSCOPY命令从OraCIe7数据库复制表和表内容到OraCIe8i数据库。
将视图、同义词、存储过程等添加到Ll标数据库。
6:
POWerBUilder数据管道工具(PiPeIine)
POWerBUilder数据管道工具是POWerBUilder提供的一个用于转换数据的智能对象,它可以在图形方式下实现不同类型数据库间的数据迁移而无需SQL编程。
POWerBUilder数据管道的操作是在图形方式下实现的,因此比较简单,其一般步骤是:
启动POWerBUildero
点击工具栏上的“DBProf订e〃按钮,通过ODBC或专用接口配置源和IJ标数据库连接,同时连接到源和Ll标数据库。
单击工具栏上的“Pipeline"按钮,建一个新的数据管道,确定好源和目标数据库。
选择要传输数据的表,并根据需要选中想传输的列。
选择数据迁移方式,Create-AddTabIe(在目标库中建立一个新表并复制数据)、RePIaCe—Drop/AddTabIe(删除旧表并复制数据)、RefreSh-DeleteRows(删除表中的现有数据并复制数据)、Append-InsertRows(在现有数据基础上增加新数据)、UPdate-Update/InsertRows(新增数据的键值如果与现有数据某行的键值一样则覆盖现有数据,否则插入新数据)。
单击“Execute"按钮运行定义好的数据管道完成数据迁移。
第2章OraCle数据迁移方案
为了有效地实现数据集市的方法,数据专家必须能将数据快速、有效地放入数据集市中。
如何用数据仓库中的数据快速刷新数据集市中的数据,而这些数据集市乂运行在各个结构不同的平台上。
以下是OraCle数据迁移技术的儿种方案。
2.1使用可移动表空间
把整个表空间移动到目标系统的最快速方法是用FTP(文件传输协议)或rep(远程复制)来简单地转移表空间的基本文件。
但是,仅仅复制OraCle数据文件还不够,IJ标数据库必须识别出并导入文件以及相应的表空间,最终用户才能使用表空间数据。
使用可移动表空间包括复制表空间文件和使它们中的数据在LI标数据库中可用。
要移动表空间,使用OraeIe数据库IOg中的数据泵导出(DataPUmPEXPOrt)工具。
数据泵是OnlCb的新一代数据转移工具,它替换了早期的OraCIeEXPort(EXP)和ImPOrt(IMP)工具。
这些老的工具使用正则SQL来提取和插入数据,而数据泵则与它们不同,它使用能绕过SQL缓冲区的专用APb从而使操作过程速度变得极快。
此外,数据泵可以提取特定的对象,如特定的存储过程或特定表空间的表集合。
数据泵的导出和导入可以山作业控制,数据库管理员可以随时暂停、重启或终止这些作业。
22数据泵导出与导入工具
选择可移动表空间的限制之一是在转移文件时源表空间必须是只读模式。
在现实世界中,并不总是能满足这一要求。
例如,在OLTP数据库中,可能对表要经常进行读写操作。
'使用OraCle数据库IOg中的数据泵实用工具来转移表空间。
对这种方法进行的测试包括移动TSl和TS2表空间内容的以下步骤:
(1)创建一个目录对象来存放转储的文件。
CREATEDIRECTORYdump.dirAS7u01/dumps*;
(2)用数据泵导出工具导出数确。
expdplora/lora123TABLESPACES=∕(ts1,ts2∕)DUMPDIRECTORY=dump_dir这一步创建一个包含TSl和TS2表空间内容的文件∕uθl/dumps/tsl_ts2.dmpo
(3)将文件tsl_ts2.dmp转移到远程系统中,放在目录∕uθl/dumps下(用文7牛传输的方法如)。
(4)在目标数据库中创建一个目录对象。
CREATEDIRECTORYdump_dir
AS7u01/dumps';
(5)使用数据泵导入工具将该文件导入到该数据库中。
impdplora∕IoraI23DIRECTORY=dump_dirDUMP
如果表空间内的数据量相对较小,则Lora可以只用一条命令执行上面的所有步骤:
impdplora∕IOral23DIRECTORY=dump_dirNETWORK-LINK=,srcdb,
TABLESPACES=∕(ts1,ts2∕)
这条命令使用数据泵导入工具将通过数据库链接SrCdb(在以前的章节中已讨论过)检索到的数据加载到表中。
但是,由于网络带宽通常是受到限制的,因此这种方法可能比使用导出/传输/导入周期方法要慢一些。
如果只需将特定的表或表集合进行转移,那么可以在expdp命令中使用TABLES=
2.3拖出表空间
使用OraCle数据库IOg中的新工具,它简化了可移动表空间的移动方法,因此只涉及执行一个打包过程。
在这种方法中,用户利用所提供的DBMS.STREAMS.TABLESPACE_ADM包从源系统中”拖?
qιιot;表空间。
这个包使用数据泵转移表空间并】务数据文件转林成口标系统的格式。
它还自动执行任何所需的字节顺序变换。
下面给出在最简单的情况下使用这种方法的过程-涉及单个简单表空间(更复杂的情况在下一节介绍)。
如果一个表空间只有一个数据文件,则这个表空间称为简单表空间。
DBMS,STREAMS_TABLESPACE_ADM包中PULL_SIMPLE.TABLESPACEi⅛程的使用方法:
(1)在存放数据文件的目录所在的(远程)数据仓库数据库中创建一个目录对象。
CREATEDIRECTORYdbf_dirAS7u01∕Oradata∕dw,;
(2)设置远程数据库中的表空间TSl为只读。
ALTERTABLESPACETSlREADONLY;
剩下的一些步骤在本地(数据集市)数据库中完成。
(3)创建一个连接到远程(数据仓库)数据库(在LOra的例子中是dwdb)的数据库链接。
CREATEDATABASELINKdwdbUSING,dwdb,;
(4)创建一个数据文件将被转移到其中的曰录对象。
CREATEDIRECTORYdbf_dirAS7u01∕Oradata∕mart,;
(5)从远程数据库中拖出表空间。
BEGIN
DBMS_STREAMS_TABLESPACE_ADM
.PULL_SIMPLE.TABLESPACE(
tableSPaCeename=>'TS1;
databasejink=>'dwdb;
directOryeObjeCt=>,DBFβDIR,,
conversion_extension=>,linux,
);
END;
该操作在后台完成了许多步骤:
设置源表空间为只读;用数据泵导出工具进行一次表空间的元数据转储;用DBMS.包移动数据文件和转储的文件;把源表空间恢复到其最初的读写状态;使用数据泵导入工具将表空间插入到本地数据库中。
山于源数据库运行在LinUX±,而IJ标数据库运行在SOlariS上,因此这一操作首先复制原始数据文件(LilWX的文件格式),然后将它转换到目标平台上(SoIariS)的文件格式。
复制过程保持最初被转移的文件,而创建一个新文件用于转换。
新文件与最初的文件同名,但具有CONVERSION.EXTENSION参数指定的IinuX扩展名。
在Ll标数据库中创建的表空间为只读表空间。
该操作还在与数据文件相同的IJ录下创建一个名为tsl.01.plg的日志文件。
如果执行该过程返回错误信息,则检查该文件的内容可能有助于找到错误的原因。
拖出多个表空间
上面的例子针对的是单个简单表空间的情况。
但如果想移动一组表空间,或者一些表空间的数据文件多于一个,该怎么办呢?
在这种情况下,她可以使用同一个包中的另一个过程PULL.TABLESPACESO代码清单2给出的例子说明LOra⅛∏何转移两个表空间TS7和TS8,而不管它们有多少个数据文件。
该过程要求以VARCHAR2数据类型给出表空间名和H录名。
代码清单2中第2行到第5行展示出了这些变量的声明,笫10行到第13行展示出这些变量被赋值给相应的表空间名和IJ录名。
由于定义了两个H录,因此第一个文件在第一个口录中创建,下一个文件在第二个目录中创建,第三个文件再次在第一个H录中创建,如此等等。
这些操作通过数据泵作业来执行,作业名在第17行指定。
如果需要的话,源系统字节顺序的数据文件会自动转换为Ll标系统的字节顺序。
在H标数据库中创建的新文件获得IinUX扩展名,如第21行代码所示。
处理过程记录在由LJ录对象LOG-DIR指定的Ll录中的ts7_ts8.logB志文件中(第14行)o
这种方法的优点显而易见。
从一个系统把一个表空间转移到另一个系统所需的所有操作任务都封装在一个程序单元中,并且细节对用户完全透明。
其至把文件从源系统转移到Ll标系统的工作也在这个过程中通过所提供的DBMS_包来完成。
用户简单地用表空间名调用该过程,表空间就会在本地数据库中被刷新。
他们不必操心底层的细节(如操作系统),因为文件转移过程自动转换文件。
这种方法有什么不好的地方吗?
它的主要缺点就是将各个功能封装在一个单一的过程内,这可能会掩盖某一步产生的错误,使问题的诊断变得很复杂。
手工转移一个表空间的方法要求各条命令都是透明的,因而其好处是用户能够看到每一步操作的结果。
第3章总结
只有当数据实际被写入时,占据了磁盘上的空间,自动精简配置才可以帮助保留存储空间。
不是容量第一次被应用或用户设置实用就有作用的,当应用或用户不需要磁盘空间时,自动精简配置可以消除浪费。
但是,很多数据迁移工具在一个IJ标系统内写入“从block0到最后一个block”,而不管那一块是使用过的,浪费掉了用户设置的自动精简配置的好处。
在决定写入前,文件系统实用程序或基于主机容量管理“足够智能来判断是否block被访问”这样可以帮助遏制这个问题。
BIOCk-IeVeI的迁移技术对于保留数据安全问题是很有效果的,但是对于自动精简配置却不是很有效果。
在迁移数据后,可能会引起服务器崩溃。
在存储阵列上迁移数据也要求从服务器上下载之前供应商的软件,把新的供应商的软件上传上去。
这不仅要求时间,如果没有完全卸载旧的软件,它会和其他应用发生冲突,从而引发不稳定。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Oracle 数据 迁移 技术 方案 0221004038
![提示](https://static.bingdoc.com/images/bang_tan.gif)