数据迁移方法和装置的制造方法

文档序号:8528181阅读:554来源:国知局
数据迁移方法和装置的制造方法
【技术领域】
[0001] 本发明涉及数据处理领域,具体而言,涉及一种数据迁移方法和装置。
【背景技术】
[0002] 如图1所示,为了将一个数据库中的多个用户数据迁移到另一个数据库中,通常 情况下需要先将用户A、用户B和用户C等用户的用户数据由源数据库导出(即,图1中所示 的"先从源库Exp"),然后在目标数据库建立相对应的用户并授权,再将先前导出的用户数 据导入到目标数据库中(即,图1所示的"再在目标库imp")。然而,上述导出操作需要先获 取用户A、用户B和用户C等用户在源数据库中的用户名和密码。
[0003] 假设源数据库的地址为:192. 168. 0. 1,目标数据库的地址为:192. 168. 0. 2,如图 1所示,现有技术中通常采用以下两种方案来从源数据库向目标数据库导入用户数据:
[0004] 方案一:采用imp技术(〇raCle9i及以下版本)从源数据库向目标数据库导入用 户数据。在执行本方案时,需要先从源数据库导出用户数据,并在目标数据库建立对应的用 户,再将上述导出的用户数据导入到目标数据库中。该方案的具体执行过程可以包括如下 步骤:
[0005] 步骤1 :从源数据库导出用户数据,并使用缓存空间来存储导出的用户数据,该步 骤所对应的指令可以如下所示:
[0006] Exp userA/userAil92. 168. 0.1 file=d:\userA. dmp
[0007] Exp userB/userBil92. 168. 0.1 file=d:\userB. dmp......
[0008] 步骤2 :从缓存空间中将上述导出的用户数据导入到目标数据库中,其中,执行该 操作时或者之前需要在目标数据库建立对应的用户。执行上述建立用户和导入用户数据的 指令可以如下所示:
[0009] Create user userA identified by userA
[0010] Grant dba to userA
[0011] Create user userB identified by userB
[0012] Grant dba to userB......
[0013] Imp userA/userAil92. 168. 0. 2file=d:\userA. dmp full=y
[0014] Imp userB/userBil92. 168. 0. 2file=d:\userB. dmp full=y......
[0015] 上述采用imp技术的方案相对简单,对于只迁移一个或者两个特定用户的数据时 比较方便快捷,然而对于迁移多用户的数据时操作起来则较麻烦,这是因为在从源数据库 导出用户数据时必须要知道各个用户的用户名及密码。也就是说,为了获取每个用户的用 户数据,则每次都需要先获知该用户的用户名及密码,并使用该用户名及密码来访问该用 户的用户数据,这样大大降低了数据迁移的效率。
[0016] 方案二:采用impdp技术(oraclelOG及以上版本推荐)从源数据库向目标数据库 导入用户数据。在执行本方案时,需要先从源数据库导出用户数据,并在目标数据库建立对 应的用户和虚拟目录,其中,建立虚拟目录的指令可以如下所示:
[0017]CreatedirectoryDATA-PUMP-DIRas'/data/oradata'
[0018] 然后将上述导出的用户数据导入到目标数据库中。该方案的具体执行过程可以包 括如下步骤:
[0019] 步骤1 :从源数据库导出用户数据,该步骤所对应的指令可以如下所示:
[0020] ExpdpuserA/userA@192. 168.0.Ifile=d:\userA.dmpdirectory=data_pump_dir schemas=userA
[0021] ExpdpuserB/userB@192.168.0.Ifile=d:\userB.dmpdirectory=data_pump_dir schemas=userB......
[0022] 步骤2 :将上述导出的用户数据导入到目标数据库中,其中,执行该操作时或者之 前需要在目标数据库建立对应的用户。执行上述建立用户和导入用户数据的指令可以如下 所示:
[0023] CreateuseruserAidentifiedbyuserA
[0024] GrantdbatouserA
[0025] CreateuseruserBidentifiedbyuserB
[0026] GrantdbatouserB......
[0027] ImpdpuserA/userA@192. 168. 0. 2file=d:\userA.dmpdirectory=data_pump_dir schemas=userA
[0028] ImpdpuserB/userB@192.168. 0. 2file=d:\userB.dmpdirectory=data_pump_dir schemas=userB......
[0029] 上述采用impdp技术的方案相对于采用imp技术的方案而言,在导入导出数据时 速度更快,从而保证数据迁移的整体速度要优于imp技术。然而,impdp技术的实现逻辑和 imp技术类似,对于迁移多用户的数据时操作起来比较麻烦,这是因为在从源数据库导出用 户数据时必须要知道各个用户的用户名及密码。也就是说,为了获取每个用户的用户数据, 则每次都需要先获知该用户的用户名及密码,并使用该用户名及密码来访问该用户的用户 数据,这样大大降低了数据迁移的效率。
[0030] 综上所述,无论使用imp还是impdp技术,都需要知道源数据库的用户名和密码, 如果涉及到要导入多个用户,就必须要知道源数据库多个用户的用户名及密码,并按照用 户导出多个数据文件,在目标数据库建立多个与源数据库中的用户对应的用户,然后按照 用户分别执行多次导入命令,如此操作将会非常繁复,降低了数据迁移的效率。
[0031] 针对上述的问题,目前尚未提出有效的解决方案。

【发明内容】

[0032] 本发明实施例提供了一种数据迁移方法和装置,以至少解决现有技术中多用户数 据迁移时效率较低技术问题。
[0033] 根据本发明实施例的一个方面,提供了一种数据迁移方法,包括:根据接收到的登 录指令登录第一数据库中的管理帐户,其中,管理帐户具有获取第一数据库中的多个用户 的数据的权限;在管理帐户下获取多个用户中的每个用户的数据所占用的空间大小;将每 个用户的数据从第一数据库迁移到第二数据库中与每个用户对应的大小为空间大小的表 空间中。
[0034] 可选地,将每个用户的数据从第一数据库迁移到第二数据库中与每个用户对应的 大小为空间大小的表空间中包括:在第二数据库中分别建立与每个用户对应的、大小为每 个用户的数据所占用的空间大小的表空间;在第一数据库与第二数据库之间建立链接;通 过链接直接将每个用户的数据从第一数据库迁移到第二数据库中与每个用户对应的表空 间中。
[0035] 可选地,通过链接直接将每个用户的数据从第一数据库迁移到第二数据库中与每 个用户对应的表空间中包括:接收数据迁移指令,其中,数据迁移指令包括每个用户的名称 和迁移目录;响应数据迁移指令直接将每个用户的数据从第一数据库迁移到第二数据库中 的迁移目录下的表空间中。
[0036] 可选地,响应数据迁移指令直接将每个用户的数据
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1