oracle 迁移用户信息,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我们还可以作为迁移的方式。

操作方法:可见

优缺点:优点是停机时间短,停机时间为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中空间扩展时内部流程。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Oracle 10g数据库迁移到达梦数据库可以通过以下步骤完成: 1. 数据库评估:首先,评估Oracle 10g数据库结构、大小和特性。了解数据库中的表、视图、存储过程、触发器等对象以及它们之间的关系。 2. 数据库转换:根据评估结果,将Oracle 10g数据库中的对象转换为达梦数据库支持的格式。这可能涉及到修改数据类型、更改SQL语句和调整存储过程等。 3. 数据迁移:使用适当的工具或脚本将Oracle 10g数据库中的数据迁移到达梦数据库。这可以通过导出和导入数据、使用ETL工具或编写自定义脚本来完成。 4. 应用程序修改:如果应用程序与Oracle 10g数据库紧密耦合,可能需要修改应用程序代码以适应达梦数据库的语法和特性。这可能涉及到更改SQL查询、调整连接字符串和重新测试应用程序等。 5. 测试和验证:在迁移完成后,进行全面的测试和验证以确保数据的完整性和应用程序的正常运行。这包括执行功能测试、性能测试和回归测试等。 6. 生产环境切换:在测试和验证通过后,将生产环境中的Oracle 10g数据库切换到达梦数据库。这可能需要一段时间的停机来完成数据迁移和应用程序修改。 需要注意的是,迁移过程可能会面临一些挑战,例如语法和特性的差异、性能调优和数据一致性等。因此,在进行迁移之前,建议进行充分的规划和测试,确保迁移过程顺利进行。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值