- 1、本文档共78页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Oracle数据迁移
两个表同时进行check,因为主外键包含在里面,因此不会产生自包含冲突。 使用生产用户建表。 同时检查tb1和tb2时候,发现两个表空间至今的冲突没有了,但是主键索引冲突又来了。Tb1和users之间的主键索引冲突又出现了。 因此对于自包含问题,有两种解决方法 1、删除索引或者外键,让表空间自包含 2、表空间同时传输 2、解决完成自包含以后,将表空间设置成只读状态 3、调入导出命令,进行可传输表空间模式的导出,必须以sysdba权限进行登录数据库 如果是unix或者linux,需要进行转义 exp \/ as sysdba\ file=tb3.dmp transport_tablespace=y tablespaces=tb3 4、将导出文件、数据文件(tb3对应的数据文件)一起复制到目标数据库上 5、在目标数据库上创建被传输的表空间所包含的对象的属主 6、调用导入命令,进行可传输表空间模式的导入 需要为表空间指定新的数据文件位置。 7、导入完毕,在目标数据库上,将导入的表空间设置为读写状态。 在oracle 10g之前,我们只能在相同平台之间进行表空间的传输,到了10g以后,我们可以在不同的平台之间进行表空间的传输。 不同平台的数据文件之所以不能够通用,主要在于不同的平台对相同的数据采用了不同的字节顺序的原因。目前存在两种主要的字节排列顺序: little-endian和big-endian 对于采用两个字节来表示的整数1来说,在big-endian平台上(sun的 SPARC Soalris)会以0x0001(较大的值排在前面,较小的排在后面),对于little-endian来说,则会以0x0100来表示(较小的值排在前面,较大的值排在后面) Oracle 10g中,我们可以通过RMAN命令在不同的平台之间,对数据文件进行格式转换。 能够进行转换的平台 当前数据库所在的平台 在进行转换之前,我们必须确保满足以下的条件 1、源数据库和目标数据库的初始化参数compatible必须设置为10.0.0或以上 2、数据文件头部必须是平台认知(platform-aware)的 当初始化参数compatible设置为10.0.0或以上时,数据文件在第一次以读写方式打开的时候,会在数据文件头部记录平台相关的信息,这个过程叫做平台认知。如果要进行跨平台传输的数据文件当前为只读或者离线状态,同时在将该数据文件设置为只读或者离线时,compatible为10.0.0之前的值,那么首先需要将数据文件设置为读写或者在线,从而使得数据文件成为平台认知以后,再将这些数据文件返回到只读或者离线状态 进行数据文件平台转换工作时,按照下面的步骤完成 1、把要传输的表空间设置为只读状态 2、以传输表空间模式(transport_tablespace=y)将表空间的元数据导出到转储文件 3、判断源数据库和目标数据库所在的平台是否是相同的endian,如果相同,直接将导出和数据文件一起发送到目标平台上,如果不同,需要进行endian的转换。 4、转换数据文件格式(既可以在源数据库上完成,也可以在目标数据库上完成) 例如我们需要将users表空间从aix平台转换到windows平台 1、在源数据库完成 启动rman,与源数据库建立连接 RMANconvert tablespace users to platform ‘Microsoft Window IA (32-bit)’ format ‘/u01/trans/%N_%f’; 执行完成该命令以后,RMAN会将users表空间里所有的数据文件转换为windows平台的little-endian格式并将这些文件放在/u01/trans目录下,然后我们就可以将这些数据文件、转储文件一起发送到目标平台。 2、可以先不进行转换,而是直接将数据文件从源平台发送到目标平台上去,然后在目标平台上再进行转化 RMANconvert datafile ‘d:\trans\users_4’ from paltform ‘AIX-Based Systems(64-bit)’ format ‘/u01/trans/users_%f’; 5、以传输表空间模式(transport_tablespace=y)将表空间的元数据和目标平台上的数据文件导入到数据库中 6、将导入的表空间设置为读写模式 数据泵(data pump) 从oracle 10g开始,引入了一个全新的、用于快速迁移数据的方式:数据泵 1、导出数据泵生成二进制的转储文件 2、导入数据泵读取转储文件 3、数据泵是位于服务器端的工具,通过数据泵导出的转储文件只能位于数据库服务器端,不能将转储文件导出到客户端 4、导入和导出通过包DBMS_DATAPUMP来实现 数据泵
文档评论(0)