datapump跨平台升级迁移的对比测试和优化

简介:     目前计划对跨平台的数据库环境进行迁移,一来降低运维成本,二来更加可控。其实对于很多机器来说,如果机器跑了很多年,一直没有重启过,那么时间长了,一个直观的感受就是稳定,这也是小机口碑远远好于PC的一个重要原因吧,但是如果机器有一天出了问题,那么可能就会让大家坐立不安。
    目前计划对跨平台的数据库环境进行迁移,一来降低运维成本,二来更加可控。其实对于很多机器来说,如果机器跑了很多年,一直没有重启过,那么时间长了,一个直观的感受就是稳定,这也是小机口碑远远好于PC的一个重要原因吧,但是如果机器有一天出了问题,那么可能就会让大家坐立不安。其实这也能够折射出很多的运维管理的一些误区,很多问题没有发生,不代表不会发生,这个时候墨菲定律就是大家公认的运维法则了。而且小机虽好,但是超过了服役期,那么就有可能是定时炸弹,毕竟服役时间远远大于预期,于情于理都能说得通了。
    当然也综合评估了很多的原因,一来是datapump迁移步骤相对简单,很多复杂的schema对象可以直接通过导入来完成,如果是全库导入,那么可操心的事情就更少了。用户,角色,表空间等等全部都有。而且另外一个方面是考虑到datapump的迁移模式,这种逻辑迁移完全可以支持跨平台跨数据库版本,所以灵活性很高。最后就是性能了,在中小型的数据迁移中还是留有一席之地的。
    那么采用了datapump,我们做跨平台的迁移,之前的测试不到200G的数据迁移大概需要1个小时左右的时间,我们需要在这个基础上进行更多的优化,尽可能缩短窗口时间。
    所以就有以下的几个地方需要考虑。
    redo的大小,
    数据库的归档模式
    IO的优化
    数据库级别的优化
对于这几个方面,自己也是做了一些工作,当然也做了详细的对比测试,对比了机械硬盘和PCIE-SSD在同样数据量的情况下的数据迁移性能数据。
为了能够多次重现对比测试的效果,采用了初始化的数据库环境做冷备,然后在其上部署新的数据结构(表空间等),然后使用datapump导入数据。
大体的步骤罗列如下:
   系统级内核参数设置和修改   --
   重新建库          --
   数据库参数设置和修改 redo设置为500M   --
   冷备,或者rman备份    --
   部署变更后的数据结构信息    
   机械硬盘使用datapump加载数据
   冷备恢复
   部署变更后的数据结构信息,切换到SSD
   SSD使用datapump加载数据 
   迁移完毕,重启设置归档模式
   完善检查脚本(dblink检查 )
所以步骤已经很清晰了,我们就先打好基础,然后开始对比测试。
   1)系统级内核参数设置和修改  
   这个可以考虑关闭NUMA,设置hugepage,调整资源使用(/etc/security/limits.conf)
   2)重新建库    
   使用dbca silent模式建库,当然需要重点考虑字符集,还有redo的设置。一个简单的例子如下:
dbca -silent -createDatabase -templateName $ORACLE_HOME/assistants/dbca/templates/General_Purpose.dbc -gdbname testdb -sid testdb  -characterSet ZHS16GBK    -redoLogFileSize   500 -nationalCharacterSet AL16UTF16     
   3)数据库参数设置和修改
比如在一个64G的环境中,我考虑的数据库参数变更如下,暂不考虑隐含参数的调整。
alter system set sga_max_size=40G scope=spfile;
alter system set sga_target=40G scope=spfile;
alter system set shared_pool_size=10G scope=spfile;
alter system set session_cached_cursors=200 scope=spfile;
alter system set deferred_segment_creation=false scope=spfile;
alter system set sec_case_sensitive_logon=false scope=spfile;
alter system set db_recovery_file_dest_size=200G scope=spfile;
alter system set open_cursors=1000 scope=spfile;
alter system set processes=3000 scope=spfile;
alter system set db_writer_processes=2 scope=spfile;
alter system set resource_limit=true scope=spfile;
  4) 冷备,或者rman备份   
然后做一个完整的冷备,尤其注意要备份控制文件。
   5)部署变更后的数据结构信息    
是否表空间,数据文件存在一些路径差异,需要初始化这些空间的设置。
   6)机械硬盘使用datapump加载数据
使用datapump加载数据,得到基本的统计信息
   7)冷备恢复
测试完毕,开始恢复数据库,把数据库都切换到SSD上去
   8)部署变更后的数据结构信息,切换到SSD
重新部署数据结构的变化信息
   9)SSD使用datapump加载数据 
使用datapump来做完全一致的数据导入测试
   10)迁移完毕,重启设置归档模式
   11)完善检查脚本(dblink检查 )
当然这个过程中也着实准备了不少的脚本,方便工作,而且对于测试的步骤做了一些简单的总结。
当然测试的结果也是很有差距的,使用PCIE-SSD的速度可以比机械硬盘提高一倍,如果在非归档模式下,速度还能提高一倍。
目录
相关文章
|
11月前
|
人工智能 搜索推荐 数据管理
探索软件测试中的自动化测试框架选择与优化策略
本文深入探讨了在现代软件开发流程中,如何根据项目特性、团队技能和长期维护需求,精准选择合适的自动化测试框架。
441 11
|
2月前
|
机器学习/深度学习 人工智能 自然语言处理
如何让AI更“聪明”?VLM模型的优化策略与测试方法全解析​
本文系统解析视觉语言模型(VLM)的核心机制、推理优化、评测方法与挑战。涵盖多模态对齐、KV Cache优化、性能测试及主流基准,助你全面掌握VLM技术前沿。建议点赞收藏,深入学习。
615 8
|
7月前
|
JSON 测试技术 API
优化你的 REST Assured 测试:设置默认主机与端口、GET 请求与断言
REST Assured 是一个强大的 Java 库,用于简化 RESTful API 测试。本文详解了其核心功能:设置默认主机和端口以减少代码重复、发起 GET 请求并验证响应结果,以及通过断言确保接口行为符合预期。同时推荐 Apipost 工具,助力开发者提升 API 测试效率,实现更高效的接口管理与团队协作。掌握这些技巧,可显著优化测试流程与代码质量。
|
11月前
|
定位技术 开发者
游戏开发者如何使用独享静态代理IP进行测试与优化
随着互联网技术的发展,使用代理IP的人数逐渐增加,特别是在业务需求中需要使用静态代理IP的情况越来越多。本文探讨了独享静态代理IP是否适用于游戏行业,分析了其优势如稳定性、不共享同一IP地址及地理位置选择等,同时也指出了需要注意的问题,包括可能的延迟、游戏兼容性和网络速度等。总体而言,选择合适的代理服务并正确配置,可以有效提升游戏体验。
201 2
|
8月前
|
缓存 JavaScript 中间件
如何测试中间件优化后的 Pinia 状态管理?
如何测试中间件优化后的 Pinia 状态管理?
241 64
|
7月前
|
SQL 存储 Oracle
跨库迁移有多难?我们用 YashanDB YMP 做了个测试,效果惊艳了
异构数据库迁移常被视为企业数字化转型中的难题,涉及SQL兼容性、对象依赖顺序与数据一致性等关键环节。YashanDB Migration Platform(YMP)通过实际测试展示了卓越能力,从Oracle到YashanDB的迁移表现超预期。其亮点包括:零脚本全自动迁移逻辑、全面支持复杂对象(如存储过程、触发器)、高性能迁移速度远超传统方案。YMP提供评估、SQL转换、对象迁移、数据校验及可视化全流程管理,为企业平滑过渡至国产数据库提供了可靠选择。
跨库迁移有多难?我们用 YashanDB YMP 做了个测试,效果惊艳了
|
人工智能 前端开发 测试技术
探索软件测试中的自动化框架选择与优化策略####
本文深入剖析了当前主流的自动化测试框架,通过对比分析各自的优势、局限性及适用场景,为读者提供了一套系统性的选择与优化指南。文章首先概述了自动化测试的重要性及其在软件开发生命周期中的位置,接着逐一探讨了Selenium、Appium、Cypress等热门框架的特点,并通过实际案例展示了如何根据项目需求灵活选用与配置框架,以提升测试效率和质量。最后,文章还分享了若干最佳实践和未来趋势预测,旨在帮助测试工程师更好地应对复杂多变的测试环境。 ####
297 4
|
机器学习/深度学习 前端开发 测试技术
探索软件测试中的自动化测试框架选择与优化策略####
本文深入探讨了在当前软件开发生命周期中,自动化测试框架的选择对于提升测试效率、保障产品质量的重要性。通过分析市场上主流的自动化测试工具,如Selenium、Appium、Jest等,结合具体项目需求,提出了一套系统化的选型与优化策略。文章首先概述了自动化测试的基本原理及其在现代软件开发中的角色变迁,随后详细对比了各主流框架的功能特点、适用场景及优缺点,最后基于实际案例,阐述了如何根据项目特性量身定制自动化测试解决方案,并给出了持续集成/持续部署(CI/CD)环境下的最佳实践建议。 --- ####
|
12月前
|
人工智能 监控 测试技术
探索软件测试中的自动化框架选择与优化策略####
【10月更文挑战第21天】 本文深入剖析了软件测试领域面临的挑战,聚焦于自动化测试框架的选择与优化这一核心议题。不同于传统摘要的概述方式,本文将以一个虚拟案例“X项目”为线索,通过该项目从手动测试困境到自动化转型的成功历程,生动展现如何根据项目特性精准匹配自动化工具(如Selenium、Appium等),并结合CI/CD流程进行深度集成与持续优化,最终实现测试效率与质量的双重飞跃。读者将跟随“X项目”团队的视角,直观感受自动化框架选型的策略性思考及实践中的优化技巧,获得可借鉴的实战经验。 ####
158 0
|
8月前
|
数据可视化 JavaScript 前端开发
利用Postman和Apipost进行API测试的实践与优化-动态参数
在API测试中,Postman和Apipost是常用的工具。Postman内置变量功能有限,面对复杂场景时需编写JavaScript脚本,增加了维护成本。而Apipost提供丰富的内置变量、可视化动态值配置和低代码操作,支持生成真实随机数据,如邮箱、手机号等,显著提升测试效率和灵活性。对于复杂测试场景,Apipost是更好的选择,能有效降低开发与维护成本,提高测试工作的便捷性和可维护性。
下一篇
oss云网关配置