1 / 12
文档名称:

数据迁移方案.docx

格式:docx   大小:406KB   页数:12页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

数据迁移方案.docx

上传人:guoxiachuanyue014 2022/11/24 文件大小:406 KB

下载得到文件列表

数据迁移方案.docx

文档介绍

文档介绍:该【数据迁移方案 】是由【guoxiachuanyue014】上传分享,文档一共【12】页,该文档可以免费在线阅读,需要了解更多关于【数据迁移方案 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。数据迁移通俗的说就是将数据从一个地方转移到另一个地方。主要使用场景有:根据正式系统搭建测试环境、从内网复制到外网、数据库服务器硬件升级等。根据需要迁移的数据量大小、系统架构,可采取不同的迁移方法。
注:以下所说方法,不考虑数据的增量更新、不考虑数据的实时同步、不考虑数据的逻辑转换。如果有这些需求,建议使用第三方ETL工具或使用Oracle的其他数据同步技术。
一、常用示例
?常规方案,使用imp/exp工具,先在源库执行直接路径导出操作,然后在目标库执行导入操作。IMP/EXP的执行速度主要受限于磁盘及网络。
数据量::5分钟导入用时:23分钟导出文件大小:641M导出导入环境:单CPU,700M内存。为力求最大速度,使用直接路径导出、设置最大I/O缓冲、导入导出文件都放在服务器上执行。
?
有,仍然使用impdp/expdp。只是不再将数据导出后导入,而是直接将数据从源库导入到目的库。一
CMD>Impdptes七1@目标库directory二DMPDIRschemas二TESTInetwork_link二源库dblinkremap_schema=TESTI:TESTA上面语句的操作是将源库的TESTI用户的数据,导入到目标库的TESTA用户下。这个操作是局域网内迁移数据最方便的工具,不过也可能是速度最慢的工具。
?
有,换用impdp/expdp。同样在源库执行导出,在目标库执行导入。操作速度能得到极大提升。IMPDP/EXPDP速度主要受限于磁盘,与网络无关。
原数据大小:
expdp导出操作用时:5分钟
impdp导入操作用时:22分钟
导出文件大小:588M
导出导入环境:单CPU,700M内存,并行度二1
??你不是说这个会更快么??请看第四部分总结的解释。
?
使用表空间迁移。将表空间的元数据导出,和数据文件一起,复制到新库。执行元数据导入。一般来说,整个导入导出的数据量不到5M。速度相当快,但使用限制比较多。
导出时间:1分钟
导入时间:3分钟
导出文件:60M+?
查看v$transportable_platform,如果数据编码一致,可尝试直接复制数据文件。否则使用
rman或impdp/expdp或imp/exp。
,需要远程更新到客户数据库上,怎么更新?
使用pl/sqldeveloper,复制、粘贴、提交。
,迁移到测试库来,怎么弄快些?用dblink+脚本,或者使用impdp远程导入。
二、局部数据的迁移
、广域网的迁移
pl/sqldeveloper
广域网下小数据量的迁移,常用pl/sqldeveloper工具来完成。
在本地打开excel文件,复制数据。然后通过“远程桌面”,到远程服务器的pl/sql界面上粘贴,就可以了。操作简单方便。
第一步:在本地复制数据
第二步:打开远程桌面
■j远程桌面町连接
计算机口:-
用户窑:未指走
当您连接时将向您询问凭1■胡
@趣頁鳞L廷拄质厂|[卿助仙
第三步:在远程机器的pl/sql里面粘贴数据

BrowserWindowf
SQLWindcw;細迥t/jewidfrom
第四步:保存数据
sQL]Output]Statisties'|
selectt.,towid±rotwtaloleO1t鸟
毋n|酉士-■/1?#|a
XH:VAL1

Clear丄址R^tz
_
SaveTiesuitsExportReei£LteShI&ctillColumnTo七丄三
-
F:etchNestF建e
AltHPgDn
F览"hLisiF停
Al诃End
Cnit
CtrlH

^C
Copyma'ithHt
CQ口Vta副呼E—・.
=1圍
Browser'^indawIbt
,!SQLWindow-selectt/jowirifrom
r+BdL
©
这种方法在小数据量下很好用。大数据量时,一个表一个表的粘贴比较麻烦,且一粘贴可能就卡在那里了,得等10来分钟。
imp/exp
广域网内大数据量的迁移,通常使用imp/exp工具。先在源库上使用exp工具,导出数据压缩包,通过网络发送到目标数据库。在目标数据库上再imp。第一步:本机连接到源库上,执行exp
Exp一般使用直接路径导出,速度可以达到常规路径导出的3倍以上。
\Uindovs>inptestPorc1parflie
\testfile\paratieter・txt
参数解释:
Parfile:指定导出的参数配置文件
Log:导出日志输出到哪个文件
recordlength=65535:设置最大I/O缓冲为64K(该参数最大64K)Direct=y:数据经直接路径导出,不再经SGA导出
Owner二testi:仅导出用户testi的数据。
第二步:本机连接到目标库上,执行imp
Parfile:指定导入的参数配置文件
Log:导入日志输出到哪个文件
Feedback=1000:每导入1000行,在屏幕上输出一个”.”
Buffer=10000000:设置导入缓冲区大小
Fromuser二testi:仅导入testi用户的数据
Touser二testi:将数据导入到新用户testi下。
、局域网内迁移
局域网内的数据迁移,方案比较灵活。常用的方法有:imp/exp、impdp/expdp、dblink+脚本、表空间迁移。
其中imp/,这里主要介绍其他方法:
+脚本

通过dblink将多个分布式数据库连接起来,对外提供统一的服务。可以实现在一个数据库上,访问多个分布式数据库。使用“dblink+脚本”的方法来转移数据,配置灵活,但脚本写起来比较麻烦。需要为每张表单独写脚本。

主要配置分两步:
创建数据库连接
createdatabaselinkLINKNAMEconnecttoDBUSERidentifiedbypasswordusing'(DESCRIPTION=
(ADDRESS_LIST=
(ADDRESS=(PROTOCOL=
TCP)(HOST=)(PORT=1521))
)
(CONNECT_DATA=
(SERVICE_NAME=ORCL)
)
)';
执行抽取脚本
如:将表B的数据抽取到表A中。
CreatetableAasselect*******@LINKNAME;
对每张需要同步的表分别写脚本。
impdp/expdp

Impdp/expdp就是imp/exp的升级版,在Oracle10g开始引入。其主要加强功能如下:
1)性能优化,导入导出速度明显提升
2)提供并行执行的能力,加快导入导出速度
3)提供交互式界面,可随时暂停导入导出操作
4)提供多种表加载策略,如:追加、替换、跳过等
5)提供数据库对象间的直接交换功能。
6)提供导出文件大小估计功能
7)提供导入、导出进度查看功能
8)自动在导出文件目录下生成导入、导出日志文件。
但impdp/expdp也有比较明显的限制。
1)与imp/exp工具生成的数据包不兼容
2)能远程调用,但导入导出文件必须放到服务器上
总体来说,impdp/expdp优势还是很明显的,所以能使用impdp/expdp时,尽量不使用imp/exp。

Impdp/expdp的使用,主要分为三步:
1)创建目录映射
在数据库上,创建到操作系统目录的映射:
CreatedirectoryDMPDIRas‘c:\oracle\dump\’;
授予用户USER01对该目录的读写权限:
Grantread,writeondirectoryDMPDIRtoUSER01;
2)执行导出脚本
导出:
lUcFosnftWindows[
版权斯有"了Z00^Hlcrosc^ftCorporarlon0保留两有权刹心
|C:XLindowsXSystem32>expdptestl^orclpapfile-*c:XtestXpapameter_txt^
空卿映怦.^..
q11111111m11111112a**********
directOTy=DMFDIiR
=dtirLF_test_^U・
logfile='c:\te5t\'
匚且rallel=4
j□k_">IP
€日匚5EMA5=TE5TI
参数解释:
Directory:数据文件导出到哪个路径下,这里是指定第一步创建的directory。Dumpfile:导出文件名
Logfile:日志文件名
Parallel:设置导出job的并行度,如果对导出速度有较高要求,可设置CPU数-1
Job_name:为导出job命名
SCHEMAS:指定导出哪个用户的数据。
3)执行数据导入脚本
首先仿照第一步,在目标库上创建操作系统目录映射。然后将第二步的导出文件拷贝到目标数据库对应目录下。然后执行以下脚本:
MicvosoFfcWindowsl|{反本6-1^7600]版权所有3、2009Mlct';3sortCorporation<.保幣所有权刑心
C:SWindowsSSystem32>impdptestPtai'getparflle=,c=\test\parameter-1xto11m111!11_i£0:i_i_[_i_i_i_」辿_i_i_lj_i_
dir亡匸匸ciry=DMPD工R
doirpfil亡=d'%:□.dry
logfile=,c:\.匸亡3t\'
pirallel=4
吕jQ^naiEe^ESTIMP
eschZmas^testi
REM^P_SCHI:Mi=TESTI:TESTS
BTA^LE_EXISTSACTIQM=REPLACE
zr^^feW-ixi'..
参数解释:
Directory:导入文件所在的路径
Dumpfile:导入文件名
Logfile:指定生成日志文件的存放位置
Parallel:指定操作并行度job_name:指定导入job名称SCHEMAS:指定要导入的用户名
REMAP_SCHEMA二TESTI:TESTB指定将TESTI用户的数据,导入到TESTB用户下TABLE_EXISTS_ACTION二REPLACE:如果要导入的表已经存在,直接替换。

1)导出界面
a仝二巴土二1世!Jjg凹竪!■■■刃b」=TA"口F:LFLd!0P単曰・1■空[
P:-出九如3■弘破艸p,a-><-^4-Q*a«^£3SZ>R&G^-d^S1■'心ire"町亍驰疔诞il5>Fn£■口也!Fl却1fDF^.llel-9jobn-U»"-tIEK-Hri/-h'j!if
Oracle數据迁移方案
uh3J耳[,卫OtLT13=dd=35
宦茲制;OhcclrDiiriUMCEtfqEfttrriarl-」.B-Irndjuictliii
si:hirm_hiroHii-dtnhi-/••棚占w
fGHDttN冲R】理岭町
tfiMFWi_Tlll>ORl总■VSilThUTOMT
-]-,M?flllLIBDLE
ficiiottiM博n】皿丽Edim?>TniiCftcicqieh即|||***_氐唠以川Lllw.
EI!HI>W_WF&HI再:内111■吐*穴用flhHIA:
'TkETJ-.FT彳出鼻切"
FIE
■TCSI]■T^H:1HJHKXE"
HD
'TE£I]-H.&HP
-3
ME
di&79?
•TEtTl".2ftJilsU1T_EffliU].18"
B.^5^

」Sl:HI-J«1_fflR>H1|-Tin«LI-ZIHHlil-
"tgezj,p.^rinjtsn1'
7,1154
rm
-i&cil挥JiTKEFisutaiiir
7
HD
ba
Hr!(lidFaHHimLndLDbliFandE^i<FIlnlHyuhrlwi〕
己动'SYd^JTBST&tr-1e/lj-********OL¥kIEEEi3A&-SKSDBn1iJjjiELsr>j-i]iiFdi^uni|ifilv^LwxLeUii次J..ih*uwiflllil-3Julig财“砂曲即L・・L丄
「在if迦卫呻眦-
—sIH*'mmHidrrfttiiLi--ra
隠邇
Em、:煞遡
:酒歳津
可看到整个导出文件,。当然,expdp也支持只评估空间,不导出数据。
2)状态查看界面
如果想要查看数据导入进度,新开一个窗口,执行以下脚本:
>******@targetATTACH二TESTIMP
>status
^JfclTESTQHP
攝倍EWPaRT
SA:SCHEMA农态=ENEtJUTINGg'件半耳;V药3??

-ck\tast_dun_zu-dnp
=C:^GRfiBftCK^TE2T_BUH_&
:C=^RfiEftCK^.
=Ci^QRfiEflCK^TE&,HM
1局j-EE=-b笑買馬Jpk'k对』孟
M&r*or4fir<=丄
EMECUTEHG
STRT1STICK
臺:SCHEMfl_EXFORT/IflBLS/STRIJSTICS/TAELE;L;竝eea
fflTKt1
口占卩]«32狀恵,
狀卷=EKECUTIMG幷集方昇IE3TI
胃彖名;D111_VEY4IGt0Wm
才擦冕型=SCHEMfi_EKPORT/IfiBLE^


表空间迁移,相当于将一个数据库的文件,直接用U盘拷贝到另一个数据库使用。虽然这个原理简单,但操作复杂。
这个操作限制比较多:
1)原数据库与目标数据库数据库字符集相同、国家字符集必须相同。可查看视图v$nls_parameters确认;
2)源库与目标数据库最好是同一Oracle版本;
3)不能搬移SYS和SYSTEM用户对象所在表空间。
表空间的迁移,可以用imp/exp或impdp/expdp来完成,主要分3步:
1)完成表空间集的自包含检查
SQL>(‘TBS1',true);执行完成后,查询:select*fromv$transport_set_violations;如果没查出数据,表明可以执行表空间迁移。否则根据查询结果采取其他方法。
2)执行表空间导出
SQL>altertablespaceusersreadonly;
CMD>******@
3)执行表空间导入
、,拷贝到目标库,在目标库上执行导入:
CMD>******@
transport_tablespace二ytablespaces二USERStransport_datafiles二'
c:\...\'
SQL>altertablespaceusersreadwrite;

表空间传输,只是导出表空间的元数据,插入到新库中,因此速度很快。
三、整库迁移
整库迁移,一般用于环境的第一次搭建过程中。就是将整个数据库原封不动的挪到别的机器上。比较适合搭建独立的测试环境时使用。
整库迁移也可以使用前面介绍的imp/exp、impdp/expdp工具,但是速度奇慢,且经常报错。不如下面的方法好用。

冷备迁移,就是将源数据库关闭,然后将数据文件拷贝到新机器的相同位置,直接打开新库就可以了。这个迁移过程,操作相对来说简单一些,也比较好控制,但有其局限性:不能跨操作系统硬件平台及数据库大版本。
Windows下的迁移步骤大致如下:
1)关闭源数据库