当前位置: 首页 > 科技观察

如何改变数据库的本地化,你学会了吗?

时间:2023-03-14 15:39:52 科技观察

昨天有朋友留言问,如果要更换本地化的数据库,应该怎么改?这个问题真的很难回答,因为不同的应用特性、不同的预算规模、不同的运维水平,都会导致企业在更换数据库时面临不同的困难。这其实是一部分原因。真正的原因是我们在做数据库本地化替换时不得不面对的一个问题,就是我们要替换的数据库产品相比Oracle,在成熟度、功能、性能、可靠性等方面都更高。其他方面还有差距,有些方面的差距真的不小。这就是为什么一些公司说替换Oracle很容易,而另一些公司则认为这非常困难。因为更换数据库比较麻烦,比较困难,即使上IOE的风头正劲,大部分公司还是直接上IE,这个O不变。但是现在我们面临的问题是无论如何都要更换数据库,那么我们应该采用什么样的更换策略呢?对于一些IT规模较小、信息化应用相对简单的企业来说,数据库本地化更换其实没有太大的技术问题,最主要的问题是实现方式。如何更好、更顺利地更换数据库是关键。事实上,今年金融等行业已经在办公自动化等应用领域开展了国产数据库的替换工作,而国产的盘微、蓝领等OA系统已经在全国生产平台上做了大量的替换工作。通过咨询这些企业可以看出,他们的OA系统主要选择了国内认可的本地化数据库平台,并以大梦、仁达金仓等与Oracle兼容较好的集中式数据库为主。在大量换代案例中,国内OA软件厂商对这些国产平台从服务器到操作系统到数据库都进行了全面的适配和优化,目前运行较为顺畅。一些技术能力较弱的企业,也可以考虑先用OA等系统替换国产数据库,积累经验,最终做出更合理的选择。然而,国产数据库的更换并不是这么简单的事情。许多企业的核心业务系统更为复杂、规模更大,对性能和可靠性的要求更高,因此他们的选择往往更加谨慎。这类企业IT规模大,IT能力强,完全可以通过自己的测试,找到更符合自身业务特点的系统。我曾经问过一个运营商大客户,是否考虑更换国产数据库。他回答说,以他们的技术能力,需要更换的时候,可以马上进行更换工作。可以支持。当然,并不是所有的企业都有这个能力和信心,所以进行测试是目前大企业常用的一种方法。只是有些公司使用的测试方法不一定能找到适合你的选择。目前,有多种类型的数据库。虽然对外接口要么兼容Oracle要么兼容MYSQL,要么类似PG,但是底层架构和存储引擎不同,在技术上各有优缺点。如果我们仅仅使用TPCC/TPCH等更通用的测试工具进行测试对比,那么我们最终可能会像瞎子一样选择瞎子。这些测试工具的测试场景对于数据库来说都过于简单,很难测试到一些我们以后会遇到的非常头疼的问题。昨天在微信群里,有朋友问如何做OCEANBASE和TDSQL的对比测试。面对这两款分布式数据库,有些朋友可能会认为两者都是高度兼容MYSQL语法的数据库产品,也属于分布式数据库。它们相似吗?事实上,它不是。如果你的测试场景再复杂一点,那么你肯定会发现两者的区别是非常大的。建议这位朋友在自己的业务中找一些比较复杂的场景来测试。必须覆盖大并发简单查询、超多表(7、8个大表甚至更多)复杂关联、大数据输出(一次性返回百万甚至更多数据)、超大事务(修改数百万甚至数十万)一次上百万条数据,我们在维护和升级数据的时候经常会用到),删除大批量数据,两张大表这些比较复杂的场景比如复杂的HASHJOIN场景。对于分布式数据库来说,加载大量数据的能力一般都不错,足够了,所以突发事件的问题不是什么大问题。如果企业中有ERP/SCM等系统,用这些系统的数据和SQL来测试应该是最有挑战性的。如果这些系统的复杂场景都适用,那么这个数据库基本可以覆盖你的企业应用。当然,数据库的选择不一定是基于性能的考虑,每个企业都有自己的特点。综合使用成本是企业在选择数据库时必须考虑的问题。如果企业的大部分应用系统都是基于Oracle数据库,其中很多都比较老旧,并且希望在迁移过程中尽量减少应用的改动,那么选择与Oracle数据库兼容性更好的数据库产品是一个非常合理的选择。我们可以选择大梦、金仓、神通、Massive等与Oracle兼容性好的集中式数据库,也可以选择OceanBase、Polardb-O等分布式数据库。如果你的企业大量使用MySQL,并且已经在MySQL生态上投入了大量的资金,未来打算以MySQL生态为主构建自己的国产数据库系统,那么目前有很多选择。爱科生、万里开源、TiDB、OceanBase、HotDB、星环KunDB、中兴GoldenDB、腾讯TDSQL等一系列数据库产品都是可以考虑的选项。如果你的企业中还有一些数据库是Oracle的,你希望迁移时尽量少改动,那么选择Oceanbase可能是更好的选择,因为Oceanbase有两个兼容的租户,MySQL/Oracle,MySQL租户完全兼容Mysql,OracleTenants兼容95%以上的SQL和PL/SQL。如果您的企业大量使用Postgresql系列开源数据库,并且想继续使用。那么在做数据库替换的时候,最好选择兼容PG的数据库。事实上,目前国内的很多数据库产品都是基于PG开源代码开发的。另外,openGauss虽然是一个独立的开源数据库产品,已经脱离了PG社区版,但是它的基础依然是PG数据库,在兼容性上也非常兼容。强的。国产数据库中,仁达金仓、寒高、优轩都是基于PG代码开发的国产数据库,而MogDB、Massive、神通等数据库产品都是基于openGauss开源项目。当然对于很多企业来说,更换数据库的投入也是非常大的,所以在选择数据库的时候也有经济上的考虑。如果企业中的数据库规模非常大,那么我建议尽量选择生态中既有开源版本又有商业版本的数据库产品,这样可以节省整体投资。另一个需要考虑的因素是运维和售后服务的问题。正如我昨天的文章所说,目前国内数据库的运维服务生态还比较薄弱,所以也必须考虑运维的问题。选择与开源产品更加兼容的国产数据库产品,在运维支持和未来构建自己的运维能力方面具有一定的优势。这些因素都需要考虑。数据库选项需要考虑的因素很多,今天我只能列举其中的几个。每个企业都有自己的特点,所以会有一些其他的考虑。我今天说的可能不正确。只是一种可以借鉴的思路。如果你有一些不同的意见,不妨说出来。只有大家多想,解决的办法才会越来越清晰。不过我觉得,数据库替换本地化最重要的不是选型,而是选型之后要做什么。