生产环境数据迁移问题汇总

简介: 在测试环境中做了3轮数据迁移的演练,最终到了生产环境中,还是出现了不少问题,经过大半夜的奋战,终于是数据都迁移成功了。1)共享存储的配置问题 共享存储使用NFS来共享存储,但是在实际操作中发现配置出了问题,原因是因为两台服务器上的用户不同在,目标机器上没有任何写权限。
在测试环境中做了3轮数据迁移的演练,最终到了生产环境中,还是出现了不少问题,经过大半夜的奋战,终于是数据都迁移成功了。
1)共享存储的配置问题
共享存储使用NFS来共享存储,但是在实际操作中发现配置出了问题,原因是因为两台服务器上的用户不同在,目标机器上没有任何写权限。
-rw-r--r-- 1 3160 dba      6608 Jun 26 23:35 tmp_gunzip.sh        
-rw-r--r-- 1 3160 dba       624 Jun 26 23:30 tmp_gzip.sh          
oraccbs1@ccbdbpr3:/ccbs/migration/ext_datapump/DUMP> ksh gunzip.sh
gunzip.sh[1]: tmp_gunzip.sh: cannot create [Permission denied]    
最终还是采取了保守的方式,使用scp来传输文件。压缩文件后,文件的大小还是可以接受的。而且可以在数据迁移之前完成,虽然在稍后更正了nfs的配置,还是保守的使用了本地文件。

2)人为失误,遗漏了脚本
在数据迁移之前运行了一些脚本来设置table nologging,index nologging,disable trigger..结果把最重要的foreign key的脚本给遗漏了,结果在使用sqlldr加载数据的时候reject了部分的数据。
幸亏及时发现。赶紧执行disable的脚本,报了如下的错误,好吧,对于已经收影响的数据来说,只能通过.bad文件来逐一恢复数据了。
不过个人总结还是觉得对于异常情况的考虑需要需要比较充分,在出问题的时候才不会乱了阵脚。

ALTER TABLE xxxx  DISABLE  CONSTRAINT xxxxx_ACCOUNT_1FK
            *
ERROR at line 1:
ORA-00054: resource busy and acquire with NOWAIT specified or timeout expired

ALTER TABLE xxxx_ACCOUNT disable  CONSTRAINT xxxx_ACCOUNT_1FK
            *
ERROR at line 1:
ORA-00054: resource busy and acquire with NOWAIT specified or timeout expired
最后使用如下的脚本来修复,收到影响的文件有70多个,大半夜修复数据真是压力和痛苦啊。不过还好,数据都最后成功加载了。
 #sqlldr xxxx/xxxx @xxxx control=./TEST_LOG/TEST _BEN_sqlldr.ctl log=./TEST_LOG/Imp_sqlldr_TEST_BEN_10.log  direct=false parallel=true errors=10000000 bindsize=7500000 readsize=7500000 streamsize=7500000 rows=50000 data=./TEST_DUMP/TEST_BEN_10.dat  discard=./TEST _LOG/TEST_BEN_10.di                                                                                                                                                                                                                            
3)内存导致的问题
在数据加载的过程中,cpu使用率一直上不去,开启了150个并行的insert进程,但是cpu使用率还是在90%左右,速度上不去。这和之前在测试环境的测试结果又很大的出入。
180G的内存,但是剩余内存却只有400多M
 top - 03:48:47 up 413 days, 57 min, 11 users,  load average: 7.22, 8.40, 8.79
Tasks: 1906 total,   1 running, 1905 sleeping,   0 stopped,   0 zombie
Cpu(s):  0.4%us,  0.6%sy,  0.0%ni, 98.9%id,  0.0%wa,  0.0%hi,  0.2%si,  0.0%st
Mem:  189675188k total, 189233496k used,   441692k free,    30368k buffers
Swap: 377487328k total,    25844k used, 377461484k free, 117830432k cached
根据我的监控,发现对于大的分区表来说,剩余内存就耗尽了。并行插入数据的时候遇到了瓶颈,可能和生产库没有开启异步io有关,数据库参数为filesystem_io,当前设置为none,而在测试环境中则为setall.
而且根据我的观察Undo的使用率极高,按照之前的统计数据来说不会这么异常。

4)升级的过程中环境非法访问
按照约定,在升级的过程中,环境是不允许开发访问的,但是在这次数据迁移中,发现有一些资源消耗比较的sql语句都是从客户端发过来的。
经过确认是客户的卡发人员想查验数 据迁移的情况,这个会对数据的迁移造成一定的影响。可以通过修改数据库listener的端口号来进行屏蔽,在数据迁移完成之后,在修改端口重启监听即可,对于外部来说,就可以排除不必要的影响

5)统计信息的收集
数据迁移之后,统计信息的收集也是一个很关键的步骤,如果不进行统计信息收集,会导致执行计划有较大的误差。可能导致严重的性能问题。
但是生产系统中时间是最高贵的资源。收集统计信息会耗费不少的时间,这个时候可以根据表的大小来进行统计信息比例的调整。对于比较大的表来说,比例可以在40%左右,开启并行,速度会有一定的提升。

6)外部表加载的性能问题
在之前的测试中,外部表加载的性能还是不错的,但是在生产中发现速度一下子打了折扣,本来一分钟150万的数据加载速度。结果在生产中大概在4,5分钟的样子(150万条数据)
对于这个问题,可能还需要考虑并行的情况。因为cpu的使用率一直没有上去。需要考虑稍后抓取ash报告来查验当时倒底有哪些瓶颈。
目录
相关文章
|
1月前
|
SQL 运维 监控
TiDB集群故障排查与恢复
【2月更文挑战第28天】本章将详细探讨TiDB集群故障排查与恢复的方法。我们将介绍常见的故障类型、排查工具与步骤,以及故障恢复的策略与最佳实践。通过本章的学习,读者将能够掌握TiDB集群故障排查与恢复的技术,确保数据库的稳定性和可用性。
|
4月前
|
消息中间件 SQL 分布式计算
一篇文章搞定数据同步工具SeaTunnel
一篇文章搞定数据同步工具SeaTunnel
523 0
|
存储 文件存储 对象存储
S3存储服务间数据同步工具Rclone迁移教程
目前大多项目我们都会使用各种存储服务,例如oss、cos、minio等。当然,因各种原因,可能需要在不同存储服务间进行数据迁移工作,所以今天就给大家介绍一个比较通用的数据迁移工具Rclone。
S3存储服务间数据同步工具Rclone迁移教程
|
2月前
|
SQL 分布式计算 大数据
maxcompute开发环境问题之同步到生产环境失败如何解决
MaxCompute开发环境是指设置和配置用于开发MaxCompute项目的本地或云端环境;本合集将指导用户如何搭建和管理MaxCompute开发环境,包括工具安装、配置和调试技巧。
|
SQL 存储 分布式计算
ODPS跨集群迁移与数据同步经验分享
集团业务的迅猛发展带来数据量的激增,存储容量告急,迫切需要将生产集群PA上的大量数据迁移到其它集群。如何安全地跨集群迁移几十PB的数据和其上相关业务,是我们面临的第一个挑战。数据迁移之后,两个集群间存在大量的数据依赖,需要互相访问最新的数据,如何安全快速地实现跨集群数据同步,这是紧跟其后的第二个挑战
3935 0
|
8月前
|
数据采集 Cloud Native 关系型数据库
实现业务零停机!NineData的PostgreSQL数据迁移能力解析
NineData推出了PostgreSQL业务不停服数据迁移能力。NineData实现了完全自动化的结构迁移和全量数据迁移,并提供了变更数据的迁移能力。这种能力可以实时监听源PostgreSQL中的变更数据,在完成全量迁移后将变更数据实时复制到目标PostgreSQL,实现源/目标PostgreSQL的动态复制。在PostgreSQL数据迁移过程中,业务可以正常提供服务,无需停服。最终,业务可以根据需求选择对应的时间点切换到目标PostgreSQL。
550 1
|
关系型数据库 MySQL Shell
糟了,生产环境数据竟然不一致,人麻了!
今天发现Mysql的主从数据库没有同步,瞬间整个人头皮发麻
526 0
糟了,生产环境数据竟然不一致,人麻了!
系统迁移
系统迁移
92 0
|
资源调度 分布式计算 NoSQL
推荐一款数据同步工具:FlinkX
FlinkX是基于flink的分布式离线数据同步框架,实现了多种异构数据源之间高效的数据迁移
8929 0
|
存储 消息中间件 分布式计算
系统迁移基本法
社区评论系统在完成了基础功能建设后,开始逐步将老系统业务迁移到新系统,实现整体架构统一、新系统功能赋能老业务、节省系统维护成本;迁移过程本身虽然枯燥无味,但并不妨碍通用解决方案的沉淀,本文以评论新老系统迁移为背景,聊聊系统迁移的基本方法,同时也希望能抛砖引玉,探索更多迁移方案的可能性。