Oracle数据库迁移几种方式

简介:

我们常需要对数据进行迁移,迁移到更加高级的主机上、迁移到远程的机房上、迁移到不同的平台下……

  一、exp/imp:

  这也算是最常用最简单的方法了,一般是基于应用的owner级做导出导入。

  操作方法为:在新库建立好owner和表空间,停老库的应用,在老库做exp user/pwd owner=XXX file=exp_xxx.dmp log=exp_xxx.log buffer=6000000,传dmp文件到新库,在新库做imp user/pwd fromuser=XXX touser=XXX file=exp_xxx.dmp log=imp_xxx.log ignore=y.

  优缺点:优点是可以跨平台使用;缺点是停机时间长,停机时间为从exp到网络传输到新库,再加上imp的时间。

  二、存储迁移:

  这种情况下,数据文件、控制文件、日志文件、spfile都在存储上(一般情况下是裸设备),我们可以直接把存储挂到新机器上,然后在新机器上启动数据库。

  操作方法:将老库的pfile(因为里面有指向裸设备的spfile链接),tnsnames.ora,listener.ora,密码文件传到新库的对应位置。将存储切至新机,或者用文件拷贝或dd的方式复制数据文件,启动数据库。

  优缺点:优点是该迁移方式非常简单,主要的工作是主机工程师的工作,dba只需配合即可,停机时间为当库、切存储、起库的时间。缺点是要求新老库都是同一平台,是相同的数据库版本。

  三、利用data guard迁移:

  用dg我们不仅可以用来做容灾,物理的dg我们还可以作为迁移的方式。

  操作方法:可见http://www.oracleblog.cn/study-note/dg-created-by-rman/或者http://www.oracleblog.cn/study-note/create-dg-by-rman-one-datafile-by-one-datafile/或者其他相关网文。注意switch over之后,可以将dg拆掉,去掉log_archive_dest_2、FAL_SERVER、FAL_CLIENT、standby_file_management参数。另外还要注意如果用rman做dg,注意手工添加tempfile。

  优缺点:优点是停机时间短,停机时间为switch over的时间。缺点:主机必须双份、存储必须双份。

  四、用rman做迁移:

  rman比较适合于跨文件系统的迁移,如同平台下的不同文件系统。

  操作方法:

  1.停第三方的归档备份,如legato或dp

  2.backup数据库:

在一次周末的课程试验中,频繁的看到 Data file init write 等待事件。

  在这里做一点记录说明,以下是来自跟踪文件的记录信息:


WAIT #2: nam=’Data file init write’ ela= 13031 count=1 intr=256 timeout=-1 obj#=51706 tim=6068271611 
WAIT #2: nam=’Data file init write’ ela= 118163 count=1 intr=256 timeout=-1 obj#=51706 tim=6068392491 
WAIT #2: nam=’Data file init write’ ela= 94036 count=1 intr=256 timeout=-1 obj#=51706 tim=6068490286 
WAIT #2: nam=’Data file init write’ ela= 52412 count=1 intr=256 timeout=-1 obj#=51706 tim=6068545333 
WAIT #2: nam=’Data file init write’ ela= 4 count=0 intr=32 timeout=2147483647 obj#=51706 tim=6068545596 
WAIT #2: nam=’Data file init write’ ela= 26 count=1 intr=32 timeout=2147483647 obj#=51706 tim=6068545641 
WAIT #2: nam=’Data file init write’ ela= 101743 count=1 intr=256 timeout=-1 obj#=51706 tim=6068648487 
WAIT #2: nam=’Data file init write’ ela= 44854 count=1 intr=256 timeout=-1 obj#=51706 tim=6068694281 
WAIT #2: nam=’Data file init write’ ela= 52841 count=1 intr=256 timeout=-1 obj#=51706 tim=6068748054 
WAIT #2: nam=’Data file init write’ ela= 48984 count=1 intr=256 timeout=-1 obj#=51706 tim=6068798310 
WAIT #2: nam=’Data file init write’ ela= 3 count=0 intr=32 timeout=2147483647 obj#=51706 tim=6068798365 
WAIT #2: nam=’Data file init write’ ela= 26 count=1 intr=32 timeout=2147483647 obj#=51706 tim=6068798409 
WAIT #2: nam=’Data file init write’ ela= 101899 count=1 intr=256 timeout=-1 obj#=51706 tim=6068900931 
WAIT #2: nam=’Data file init write’ ela= 21 count=-1 intr=32 timeout=2147483647 obj#=51706 tim=6068901053 

  测试数据库是Oracle10g 10.2.0.3,实际上这个等待事件也是从Oracle 10g开始引入的,用来标识表空间或数据文件扩展时的等待。

  Oracle 需要将系统块格式化为Oracle数据块,然后才能提供数据库使用。

  在这个流程处理中,Oracle经过如下三个步骤:

  1.扩展数据文件

  select file# from file$ where ts#=:1

  2.更新用户空间限额

  update tsq$ set blocks=:3,maxblocks=:4,grantor#=:5,priv1=:6,priv2=:7,priv3=:8 where ts#=:1 and user#=:2

  3.扩展数据段

  update seg$ set type#=:4,blocks=:5,extents=:6,minexts=:7,maxexts=:8,extsize=:9,extpct=:10,user#=:11,iniexts=:12,lists=decode(:13, 65535, NULL, :13),groups=decode(:14, 65535, NULL, :14), cachehint=:15, hwmincr=:16, spare1=DECODE(:17,0,NULL,:17),scanhint=:18 where ts#=:1 and file#=:2 and block#=:3

  这就是Oracle10g中空间扩展时内部流程。


 









本文转自东方之子736651CTO博客,原文链接:http://blog.51cto.com/ecloud/1336762 ,如需转载请自行联系原作者






相关文章
|
8天前
|
SQL Oracle 关系型数据库
【Oracle】玩转Oracle数据库(一):装上去,飞起来!
【Oracle】玩转Oracle数据库(一):装上去,飞起来!
48 7
|
26天前
|
Oracle 关系型数据库 数据库
Oracle数据库基本概念理解(3)
Oracle数据库基本概念理解(3)
18 2
|
8天前
|
SQL Oracle 关系型数据库
【Oracle】玩转Oracle数据库(七):RMAN恢复管理器
【Oracle】玩转Oracle数据库(七):RMAN恢复管理器
36 5
|
26天前
|
Oracle 关系型数据库 数据库
Oracle数据库基本概念理解(2)
Oracle数据库基本概念理解(2)
13 1
|
8天前
|
存储 SQL Oracle
【Oracle】玩转Oracle数据库(二):体系结构、存储结构与各类参数
【Oracle】玩转Oracle数据库(二):体系结构、存储结构与各类参数
32 7
|
26天前
|
Oracle 关系型数据库 数据库
Oracle数据库基本概念理解(1)
Oracle数据库基本概念理解(1)
12 1
|
26天前
|
Oracle 关系型数据库 MySQL
Seata常见问题之oracle 数据库 报 just support mysql如何解决
Seata 是一个开源的分布式事务解决方案,旨在提供高效且简单的事务协调机制,以解决微服务架构下跨服务调用(分布式场景)的一致性问题。以下是Seata常见问题的一个合集
53 0
|
1月前
|
Oracle Java 关系型数据库
SpringBoot整合Mybatis连接Oracle数据库
SpringBoot整合Mybatis连接Oracle数据库
SpringBoot整合Mybatis连接Oracle数据库
|
1月前
|
存储 Oracle 关系型数据库
Oracle系列十六:数据库备份
Oracle系列十六:数据库备份
|
1月前
|
SQL Oracle 关系型数据库
Oracle数据库启动时:ORA-00119: invalid specification for system parameter LOCAL_LISTENER;
Oracle数据库启动时:ORA-00119: invalid specification for system parameter LOCAL_LISTENER;

推荐镜像

更多