扒一扒Oracle数据库迁移中的各种坑

简介:
\
 

 

Oracle迁移是数据库运维中一项必不可少的工作,具体到项目层面上则有系统割接、数据库版本升级迁移、数据库主机更换、数据库拆库、数据库合库、测试系统搭建等等各类场景,然而正所谓万变不离其宗,迁移总的来说就是Dataguard、RMAN、底层复制等物理方式以及Datapump、GoldenGate等逻辑方式。本文目的在于从笔者实际参与的各种迁移类项目出发,简明扼要地从宏观的角度数一数迁移类项目中可能遇到的坑。

 

无法绕过的架构类问题
 

 

对于一个核心的系统来说,数据库很可能并不是孤立的,而是涉及应急、容灾、BCV、备份等各个方面,同时这个数据库又可能是别的数据库的数据源的源端或者目标端。当进行这种复杂系统的迁移时,务必考虑到这些方面。

 

笔者进行参与的某运营商数据库升级项目是通过GoldenGate方式实现换机器方式升级的,这个运营商的某核心库则相当复杂了,其涉及的外围因素如下:

  1. 通过赛门铁克底层同步库软件实现的容灾库;

  2. 通过赛门铁克底层同步库软件实现的BCV库;

  3. 通过GoldenGate软件实现的应急系统。

 

由于涉及的数据库较多,我们在处理这个项目时,采用了提前升级应用系统,同时升级主系统以及容灾系统,最后升级BCV系统的方式进行调配。

 

不能掉以轻心的资源问题
 

 

迁移工作应当尽可能降低对现网运维工作的影响,由于迁移工作而引发的现网系统出现问题是客户很难接受的事情,然而在实际的迁移工作中,因为疏忽大意或者对系统架构不了解而导致问题。

 

对于需要从源端数据库直接进行DATAPUMP等方式数据导出的迁移工作而言,需要注意导出工作对源端造成的CPU、内存、IO、文件系统等影响相信很多DBA都能想到,但在后续的传输以及入库中,则反而容易遇到不了解系统架构的问题了,例如下述两个例子:

  1. 网络未分离,过多ftp进程并发传输占用网络带宽,进而影响应用系统;

  2. 目标数据上没有应用,但其存储与现网是共用的,大并发进行数据导入导致影响现网。

 

对于目标端本身就是生产系统的情况,则操作更得小心翼翼了,除了常规的CPU、内存等指标外,还得注意归档、表空间等细节,遗漏其中一项都可能引发故障,这种迁移只能步步为营,慢慢搞了。

 

难以省心的应用
 

 

迁移工作的完成需要应用厂商和数据库的相互支撑,然而,从笔者亲身的项目经验来看,偶尔也会遇到个别不靠谱的开发人员,进而影响整个项目的推进,下面是笔者遇过的几个例子:

  1. 割接后跑过来抗议说新库和旧库数据不一致,核查原因发现旧库应用未停止干净,幸亏提前做了监控,否则问题说不清;

  2. 未正确修改应用配置,导致连错实例,影响进度;

  3. 前期未充分测试,在升级期间才发现,处理起来相当被动。

 

五花八门的数据库问题
 

 

与上面相比起来,数据库本身的问题就更复杂了,需要通过项目经理来积累了,下面是笔者总结的类型:

  1. SQL语句性能类,例如版本变更导致的语句性能退化;

  2. 对象及权限类问题,例如对象编译不通过,这种问题留到割接期间会显得相当被动;

  3. JOB调度问题,例如实例重启导致的job多余调度导致脏数据;

  4. 数据库管理问题,例如监控或者备份机制跟不上;

  5. 数据库配置问题,例如参数设置不合理;

  6. 特殊对象类型问题,例如不常用的QUEUE仅迁移而未START导致应用报错。

 

 

 

本文来自云栖社区合作伙伴"DBAplus",原文发布时间:2015-12-07

目录
相关文章
|
14天前
|
弹性计算 安全 关系型数据库
活动实践 | 自建数据库迁移到云数据库
通过阿里云RDS,用户可获得稳定、安全的企业级数据库服务,无需担心数据库管理与维护。该方案使用RDS确保数据库的可靠性、可用性和安全性,结合ECS和DTS服务,实现自建数据库平滑迁移到云端,支持WordPress等应用的快速部署与运行。通过一键部署模板,用户能迅速搭建ECS和RDS实例,完成数据迁移及应用上线,显著提升业务灵活性和效率。
|
8天前
|
存储 Oracle 关系型数据库
数据库数据恢复—ORACLE常见故障的数据恢复方案
Oracle数据库常见故障表现: 1、ORACLE数据库无法启动或无法正常工作。 2、ORACLE ASM存储破坏。 3、ORACLE数据文件丢失。 4、ORACLE数据文件部分损坏。 5、ORACLE DUMP文件损坏。
41 11
|
21天前
|
Oracle 关系型数据库 数据库
Oracle数据恢复—Oracle数据库文件有坏快损坏的数据恢复案例
一台Oracle数据库打开报错,报错信息: “system01.dbf需要更多的恢复来保持一致性,数据库无法打开”。管理员联系我们数据恢复中心寻求帮助,并提供了Oracle_Home目录的所有文件。用户方要求恢复zxfg用户下的数据。 由于数据库没有备份,无法通过备份去恢复数据库。
|
27天前
|
存储 Oracle 关系型数据库
oracle数据恢复—Oracle数据库文件大小变为0kb的数据恢复案例
存储掉盘超过上限,lun无法识别。管理员重组存储的位图信息并导出lun,发现linux操作系统上部署的oracle数据库中有上百个数据文件的大小变为0kb。数据库的大小缩水了80%以上。 取出&并分析oracle数据库的控制文件。重组存储位图信息,重新导出控制文件中记录的数据文件,发现这些文件的大小依然为0kb。
|
13天前
|
安全 关系型数据库 MySQL
体验自建数据库迁移到云数据库RDS,领取桌面置物架!
「技术解决方案【Cloud Up 挑战赛】」正式开启!本方案旨在帮助用户将自建数据库平滑迁移至阿里云RDS MySQL,享受稳定、高效、安全的数据库服务,助力业务快速发展。完成指定任务即可赢取桌面置物架等奖励,限量供应,先到先得。活动时间:2024年12月3日至12月31日16点。
|
14天前
|
存储 Oracle 关系型数据库
服务器数据恢复—华为S5300存储Oracle数据库恢复案例
服务器存储数据恢复环境: 华为S5300存储中有12块FC硬盘,其中11块硬盘作为数据盘组建了一组RAID5阵列,剩下的1块硬盘作为热备盘使用。基于RAID的LUN分配给linux操作系统使用,存放的数据主要是Oracle数据库。 服务器存储故障: RAID5阵列中1块硬盘出现故障离线,热备盘自动激活开始同步数据,在同步数据的过程中又一块硬盘离线,RAID5阵列瘫痪,上层LUN无法使用。
|
1月前
|
SQL Oracle 关系型数据库
Oracle数据库优化方法
【10月更文挑战第25天】Oracle数据库优化方法
47 7
|
1月前
|
存储 Oracle 关系型数据库
Oracle数据库优化策略
【10月更文挑战第25天】Oracle数据库优化策略
29 5
|
8天前
|
关系型数据库 MySQL 数据库
Python处理数据库:MySQL与SQLite详解 | python小知识
本文详细介绍了如何使用Python操作MySQL和SQLite数据库,包括安装必要的库、连接数据库、执行增删改查等基本操作,适合初学者快速上手。
71 15
|
2天前
|
SQL 关系型数据库 MySQL
数据库数据恢复—Mysql数据库表记录丢失的数据恢复方案
Mysql数据库故障: Mysql数据库表记录丢失。 Mysql数据库故障表现: 1、Mysql数据库表中无任何数据或只有部分数据。 2、客户端无法查询到完整的信息。

推荐镜像

更多