搜尋
首頁資料庫mysql教程DB2一个基于Cache Table的数据复制方案

IBM 数据库复制产品 Infosphere Replication Server 中的多向 SQL 复制既能捕获源表也能捕获目标表的数据变化,因此能很好地保持数据在各方的一致。

但数据冲突的现象仍是无法完全杜绝。因此我们需要尽可能地改进方案,以期接近完美效果。本文在这样的背景下,介绍了 IBM 相关产品 Infosphere Replication Server 和 Infosphere Federation Server 通过合作提出的一个基于 Cache Table 的数据复制方案。

计算机、网络、传感技术等各项信息技术的发展,使得我们生活的环境变成了今天这个由数据统治的世界,每天都有大量纷繁复杂的数据、信息充斥耳边。据称现在只需两天就能创造出自文明诞生以来到 2003 年所产生的数据总量。而企业数据也以 55% 的速率逐年增长。这些大量的交易数据、交互数据中并不是 100% 都是有意义的,但我们又不得不去接收它们。这是因为数据当中隐含着有价值的信息,并且这些信息都是有时效的,需要及时进行整合、分析、再创造,然后才能更好地与用户交互,实现在合适的时间、通过合适的途径、销售合适的产品,最终实现企业利润增长。数据复制产品正是这一数据处理过程中最关键的一环,它能够将接收到的数据分发到各个场所,用于及时整合数据,产生实时报表,或者为实时统计提供输入。

数据集中 / 分发经典场景

对于集团型企业,例如银行、电信、保险等,通常包含多个子系统,每个系统对应一项或多项业务,而业务终端也往往部署在各个省市地区。某个地区的某个子系统里数据在一定时间内只能代表该地区的业务特征。因此,业务的广泛性和区域性使得企业不能对内部的数据进行全盘规划和统一,这大大影响了企业对业务的分析决策。具体影响有:

  1. 关键数据不唯一,集团无法判断数据的准确性,需要花费更多的人工和资源验证并纠正数据,因此不能对分公司或子公司的数据进行及时分析,从而进行全盘分析和规划;
  2. 分公司或子公司间数据无交互或交互较少,各自为政,数据无共享,造成各分公司或子公司间不能有效借鉴或沿用有价值或有代表性的决策和方案,集团范围内数据管理困难,数据丢失的风险性较高。

没有统一的关键数据管理会造成集团范围内不能实时监控并及时分配关键资源,不能及时获取各地数据掌握全局趋势,也往往会造成决策失误。这些问题严重的话会造成企业无法弥补的损失。因此企业通常会建立数据中心、部署一套数据集中 / 分发方案以保证各地各项业务数据的统一。典型场景如图 1 所示,在集团所在地或附近建立中心,在各分公司或子公司部署分级。中心服务器与分级服务器间通过网络实时通信,分发或集中数据。各分级服务期间根据需要也可进行通信。

图 1. 数据集中 / 分发场景
图 1. 数据集中 / 分发场景

数据集中 / 分发对数据冲突和负载均衡的要求

数据的集中和分发根据实际情况要求和设计考虑的角度的不同,具体实现起来方案有很多。有些由中心服务器承担主要业务输入,有些反之,有些根据具体情况不同,对不同的业务指定不同的主承受服务器。但究其本质是如何保证事务的原子性和数据在各个副本中的一致性。这方面从技术发展历程来看,早期主要通过两阶段提交协议实现原子性,通过两阶段锁或时间戳模型实现副本的一致性。这种模式即为通常所说的同步复制过程,涉及到各副本与提交事务的节点间的互相确认过程,因此具有一定的性能影响。后来为提高吞吐率,缩短响应时间,对一致性级别进行了放松,出现了异步复制,面对不同的目的,出现了不同的异步复制协议。目前企业中使用的复制产品大多为异步复制。这种方案不能像同步复制那样实现完全实时复制,必然会出现一定的延时,虽然这种延时通过各种技术手段可以控制在秒级,甚至更小,但对于在每个副本都能操作数据的系统中,还是有可能出现数据冲突。

数据冲突简单地说,是因为某一行数据在不同地点被不同的应用同时进行了修改。这种修改具体表现有插入、更新、删除。举例来说,有表(列 1,列 2,列 3),其中列 1 是表的主键,该表同时部署在两地的 Server A 和 Server B 中。最普遍的冲突情况是,A 和 B 同时有应用对该表插入了具有相关关键字的数据,该事务在本地服务器上能执行成功,但当数据变化传递到对方时,会发现以这个关键字值标记的行已存在,冲突发生;另一种普遍的冲突是,A 和 B 同时修改了相同关键字行的非关键字列,这样当变化传递到对方时,冲突发生。无论具体冲突是什么情况,在异步复制中都无法完全避免,因此在设计方案时必须要有在发生数据冲突时,一些有效的冲突解决方案,这样才能最终保证数据的一致。

由于业务的多样性,由单个服务器承受所有的业务具有很高的风险性,当出现断电等意外,或者更大的自然灾害时,损失是无法挽回的。因此设计数据集中 / 分发方案时需要考虑如何实现负载均衡。从全局来看,需要合理分配各项业务的连接;从具体业务来看,需要合理均衡读连接和写连接,特别对于具有大用户量的业务,用户对系统响应一般都具有较高的期望,用户量也往往跟系统响应时间负相关,而受限于服务器以及数据库系统的处理能力,单个表是很难满足大量同时的读写连接的。

多向 SQL 复制实现数据集中 / 分发

IBM InfoSphere Replication Server 产品中的 SQL 复制框架最早可以追溯到 1994 年 IBM DB2 发布的 DataPropagator Relational(DPropR)的第一个版本。因此,相较于 2004 年推出的 Q 复制框架,SQL 复制功能的客户基础较深厚,事实证明它在实现数据集中 / 分发方面具有较好的优势和稳定性。本节将带领读者简单回顾一下多向 SQL 复制的实现。

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
MySQL與Sqlite有何不同?MySQL與Sqlite有何不同?Apr 24, 2025 am 12:12 AM

MySQL和SQLite的主要區別在於設計理念和使用場景:1.MySQL適用於大型應用和企業級解決方案,支持高性能和高並發;2.SQLite適合移動應用和桌面軟件,輕量級且易於嵌入。

MySQL中的索引是什麼?它們如何提高性能?MySQL中的索引是什麼?它們如何提高性能?Apr 24, 2025 am 12:09 AM

MySQL中的索引是數據庫表中一列或多列的有序結構,用於加速數據檢索。 1)索引通過減少掃描數據量提升查詢速度。 2)B-Tree索引利用平衡樹結構,適合範圍查詢和排序。 3)創建索引使用CREATEINDEX語句,如CREATEINDEXidx_customer_idONorders(customer_id)。 4)複合索引可優化多列查詢,如CREATEINDEXidx_customer_orderONorders(customer_id,order_date)。 5)使用EXPLAIN分析查詢計劃,避

說明如何使用MySQL中的交易來確保數據一致性。說明如何使用MySQL中的交易來確保數據一致性。Apr 24, 2025 am 12:09 AM

在MySQL中使用事務可以確保數據一致性。 1)通過STARTTRANSACTION開始事務,執行SQL操作後用COMMIT提交或ROLLBACK回滾。 2)使用SAVEPOINT可以設置保存點,允許部分回滾。 3)性能優化建議包括縮短事務時間、避免大規模查詢和合理使用隔離級別。

在哪些情況下,您可以選擇PostgreSQL而不是MySQL?在哪些情況下,您可以選擇PostgreSQL而不是MySQL?Apr 24, 2025 am 12:07 AM

選擇PostgreSQL而非MySQL的場景包括:1)需要復雜查詢和高級SQL功能,2)要求嚴格的數據完整性和ACID遵從性,3)需要高級空間功能,4)處理大數據集時需要高性能。 PostgreSQL在這些方面表現出色,適合需要復雜數據處理和高數據完整性的項目。

如何保護MySQL數據庫?如何保護MySQL數據庫?Apr 24, 2025 am 12:04 AM

MySQL數據庫的安全可以通過以下措施實現:1.用戶權限管理:通過CREATEUSER和GRANT命令嚴格控制訪問權限。 2.加密傳輸:配置SSL/TLS確保數據傳輸安全。 3.數據庫備份和恢復:使用mysqldump或mysqlpump定期備份數據。 4.高級安全策略:使用防火牆限制訪問,並啟用審計日誌記錄操作。 5.性能優化與最佳實踐:通過索引和查詢優化以及定期維護兼顧安全和性能。

您可以使用哪些工具來監視MySQL性能?您可以使用哪些工具來監視MySQL性能?Apr 23, 2025 am 12:21 AM

如何有效監控MySQL性能?使用mysqladmin、SHOWGLOBALSTATUS、PerconaMonitoringandManagement(PMM)和MySQLEnterpriseMonitor等工具。 1.使用mysqladmin查看連接數。 2.用SHOWGLOBALSTATUS查看查詢數。 3.PMM提供詳細性能數據和圖形化界面。 4.MySQLEnterpriseMonitor提供豐富的監控功能和報警機制。

MySQL與SQL Server有何不同?MySQL與SQL Server有何不同?Apr 23, 2025 am 12:20 AM

MySQL和SQLServer的区别在于:1)MySQL是开源的,适用于Web和嵌入式系统,2)SQLServer是微软的商业产品,适用于企业级应用。两者在存储引擎、性能优化和应用场景上有显著差异,选择时需考虑项目规模和未来扩展性。

在哪些情況下,您可以選擇SQL Server而不是MySQL?在哪些情況下,您可以選擇SQL Server而不是MySQL?Apr 23, 2025 am 12:20 AM

在需要高可用性、高級安全性和良好集成性的企業級應用場景下,應選擇SQLServer而不是MySQL。 1)SQLServer提供企業級功能,如高可用性和高級安全性。 2)它與微軟生態系統如VisualStudio和PowerBI緊密集成。 3)SQLServer在性能優化方面表現出色,支持內存優化表和列存儲索引。

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

EditPlus 中文破解版

EditPlus 中文破解版

體積小,語法高亮,不支援程式碼提示功能

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

Dreamweaver Mac版

Dreamweaver Mac版

視覺化網頁開發工具

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。