JP2006293910A - 安全で高速なデータベース・レプリケーション技術 - Google Patents
安全で高速なデータベース・レプリケーション技術 Download PDFInfo
- Publication number
- JP2006293910A JP2006293910A JP2005117155A JP2005117155A JP2006293910A JP 2006293910 A JP2006293910 A JP 2006293910A JP 2005117155 A JP2005117155 A JP 2005117155A JP 2005117155 A JP2005117155 A JP 2005117155A JP 2006293910 A JP2006293910 A JP 2006293910A
- Authority
- JP
- Japan
- Prior art keywords
- transaction log
- database
- information
- storage
- node
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
【課題】障害時に情報の損失がなく、システム全体のパフォーマンス、迅速なシステムの再開を可能とする安全で高速なデータベース・レプリケーション・システムを提供する。
【解決手段】トランザクション・ログを転送する際、転送先ノードへの転送の完了と、転送元ノードでのストレージへの書き込み完了の両方を待つことにより情報の同期を行い、データの損失を抑える。また、転送先ノードで障害時に復帰処理を行うのではなく、トランザクション・ログが転送され次第、随時復帰処理を行うことで、障害時の復帰を速める。
【選択図】図1
【解決手段】トランザクション・ログを転送する際、転送先ノードへの転送の完了と、転送元ノードでのストレージへの書き込み完了の両方を待つことにより情報の同期を行い、データの損失を抑える。また、転送先ノードで障害時に復帰処理を行うのではなく、トランザクション・ログが転送され次第、随時復帰処理を行うことで、障害時の復帰を速める。
【選択図】図1
Description
本発明は、データベース・システムのレプリケーション技術において、データの安全性を高める技術と、障害時の復帰処理を高速化する技術に関する。
従来、複数の利用者により更新・参照される情報の集合(以下、データベース)をコンピュータにより記録・管理するシステム(以下、データベース・システム)において、複数のデータベース・システムを同時に運用し、それぞれのデータベースが同じ情報を保持するように情報の同期をとるための、レプリケーション・システムあるいはクラスター・システム(以下、レプリケーション・システム)と呼ばれる技術が存在する。
レプリケーション・システムを用いることで、レプリケーション・システム内に存在する各データベース・システムの1つ(以下、ノード)が障害により停止したり、ストレージが破壊され利用不可能になった場合にも情報を失わずに済み、システム全体の安全性を高めることが出来る。
また、障害時にシステムの運用を停止させない、あるいは短い時間で運用を再開することが出来、実際に企業などがデータベースを使用する際に、非常に重要視されている。
レプリケーション・システムを構築するための技術として、
1複数のノードでストレージを共有し、障害時の高可用性を高める技術。
2利用者が複数のノードに同じ命令(クエリ)を発行することで、各ノードのデータベースの中身を同等に保つ技術。
3ストレージ内の物理的情報を他のノードのストレージに複写することで、データベースの中身を同等に保つ技術。
などが存在する。
1複数のノードでストレージを共有し、障害時の高可用性を高める技術。
2利用者が複数のノードに同じ命令(クエリ)を発行することで、各ノードのデータベースの中身を同等に保つ技術。
3ストレージ内の物理的情報を他のノードのストレージに複写することで、データベースの中身を同等に保つ技術。
などが存在する。
近年、トランザクション・ログ(transaction log)を応用して、レプリケーション・システムを実現しようとする技術が提案されている。
トランザクション・ログとは、データベースに加えられた変更の履歴を、データベースの記録領域とは異なる領域に記録することにより、変更の永続性を維持しながら同時に操作の高速性を実現する技術である。
データベース・システムでは、しばしば複数の利用者が、データベース内の任意の位置の情報を変更する。情報の更新は通常、高速処理が可能な一時記憶媒体に記憶され、その後、データベース・システムが定める特定のタイミングでストレージに保存される。
このタイミングとしては、トランザクションのコミットの時点が代表的である。このタイミングをどのように定めるかと、このときに確実に情報の保存を行うことが出来るかが、データベースの安全性を保障する重要な要素となる。
しかし、この保存処理がデータベース・システムの処理の高速性を損なう要因ともなっている。
任意の情報を複数の主体が並列して変更するというデータベース・システムの性質上、更新はストレージ上で物理的に分散した箇所で行われる可能性が高い。
このため、更新をストレージに保存する際、更新された情報をすべてストレージに保存すると、作業の完了までにデータベース・システムの円滑な運営を妨げるほどの時間が生じることがある。
例えば、ストレージとしてハードディスクを用いるデータベース・システムの場合、物理的に分散した記録領域への書き込み処理はディスク・ヘッドのシークを多く伴うため、処理の完了まで利用者が長時間待機しなければならない場合がしばしば生じる。
トランザクション・ログは、このような記録処理の低速性を解決するための技術である。
トランザクション・ログには更新の履歴のみがまとめて記録される。更新された情報をストレージに保存する必要が生じた場合、更新された情報そのものではなく、トランザクション・ログをストレージに記録する。
実際の情報の更新場所が物理的にどれほど分散されていても、トランザクション・ログの保存には、一箇所の情報の保存しか必要としない。
そのため、更新情報でストレージに保存する場合と比較して、はるかに高速に処理を行うことが出来る。
一方、トランザクション・ログにはすべての更新の履歴が保存される。そのため、トランザクション・ログさえストレージに保存されていれば、実際のデータベースに行われた更新はすべて再構築することができる。
そのため、なんらかの障害によりデータベース・システムが停止した場合でも、情報の復元が可能である。したがって、すべての更新情報をストレージに保存した場合と、同程度の安全性を確保することが出来る。
この技術では、ストレージに記録されたトランザクション・ログを一定のタイミングで他のノードに転送する。
具体的には、前回の転送から一定時間経過した後、あるいは未転送のトランザクション・ログが一定量に達したタイミングで転送する。
転送元ノードに障害が発生し、利用不可能になった場合、転送先ノードでトランザクション・ログを利用して情報の復旧処理を行い、システムの運用を再開する。
上述のように、トランザクション・ログには、ある時点から更新された情報を復旧するために必要なすべての情報が記録されている。
したがって、ある時点のデータベースと、それ以後のトランザクション・ログを保持していれば、トランザクション・ログの転送元であるノードと同等の情報を保持していることになる。
そのため、トランザクション・ログに記録されている処理を再実行することで、転送先のノードでデータベースを復旧することが出来る。
しかし、従来のトランザクション・ログを応用してレプリケーション・システムを実現する方法には以下の欠点が存在する。
この技術では一度トランザクション・ログの転送が行われると、その後、機械的に定められた一定の期間、トランザクション・ログの転送は行われない。そのため、この期間に保存されたトランザクション・ログは、その期間が経過するまでは転送元ノードにしか存在しない。
この間に転送元ノードに障害が発生し、ストレージが利用不可能になった場合、転送されなかったトランザクション・ログが記録していた更新情報は、転送先ノードでは復元できない。
そのため、この技術を利用したレプリケーション・システムでは、障害が発生するタイミングにより、確実に記録されたはずだった情報の一部が失われてしまうことになる。
トランザクション・ログの転送周期を短くすることにより、情報が失われる可能性を小さくすることは可能であるが、このように機械的に定められた周期を用いる限り、情報が失われる可能性を無くすことはできない。また、転送の周期を極端に短くすると、転送にかかる負荷が増大し、システム全体のパフォーマンスを損なう恐れがある。
また、トランザクション・ログに記録された更新情報は、データベースへの復元処理を実行するまでは使用できない。そのため実際に運用を始める前に情報の復元処理を行い、データベースの再構築を行う必要がある。
したがって、運用期間が長くなりトランザクション・ログが大量に蓄積すると、再構築の完了に時間が必要になる。障害時にノードを切り替える際、この再構築にかかる時間、システムの再開が遅れてしまう。
上述の問題は、どのタイミングでトランザクション・ログを転送すべきか、転送されたトランザクション・ログによる復元処理をどのタイミングで実行するか、という2つの問題を十分に考慮していないために生じている。
本発明は以上のような欠点に鑑み、障害時に情報の損失がなく、システム全体のパフォーマンス、迅速なシステムの再開を可能とする安全で高速なデータベース・レプリケーション・システムを提供することを目的としている。
上記目的を達成するために、本発明では下記手段により解決する。
第一の手段として、レプリケーション・システム内の任意のノードでトランザクション・ログがストレージに記録される際に、そのノードの記録処理が完了する以前に、他の全てのノードに当該トランザクション・ログの内容が転送されるようにする。
そのために、以下の同期処理を行う。
1転送元ノードはトランザクション・ログのストレージへの記録を開始する。また、レプリケーション・システム内に存在する他の全てのノードに同一のトランザクション・ログを転送する。
2転送先ノードは、トランザクション・ログの受信を完了後、転送元ノードに完了を通知する。
3転送元ノードは全てのノードから完了の通知を受け取り、かつ自身のストレージへの記録処理が終了するまで待機する。
4転送元ノードは、同期処理を完了する。
1転送元ノードはトランザクション・ログのストレージへの記録を開始する。また、レプリケーション・システム内に存在する他の全てのノードに同一のトランザクション・ログを転送する。
2転送先ノードは、トランザクション・ログの受信を完了後、転送元ノードに完了を通知する。
3転送元ノードは全てのノードから完了の通知を受け取り、かつ自身のストレージへの記録処理が終了するまで待機する。
4転送元ノードは、同期処理を完了する。
これにより、トランザクション・ログの更新情報は、どのノードにいかなる時点で障害が発生したとしても、レプリケーション・システムのいずれかのノードが利用可能である限り、利用可能となる。
第二の手段として、障害時のノードの切り替えを迅速に行うために、障害が発生する前に、トランザクション・ログの復元処理を行う。トランザクション・ログが転送され次第、トランザクション・ログの復元処理を行い、トランザクション・ログに記録された更新履歴をデータベースに反映する。
トランザクション・ログの復元処理に際しては、データベース・システムにすでに存在している、トランザクション・ログを用いたデータベースの復旧処理を再利用する。
通常、データベースの復元処理においては、記録されている全てのトランザクション・ログの処理を終了すれば、処理は完了されたとみなされ、通常の運用が開始される。
しかし、レプリケーション・システムでトランザクション・ログを用いる場合は、記録されている全てのトランザクション・ログの処理を終了しても、それは処理の完了を意味しない。
したがって、トランザクション・ログの処理終了後は新たなトランザクション・ログが転送されるか、あるいは、転送元ノードに障害などが発生し、トランザクション・ログが今後転送されることはないということが確認されるまで待機する。
まず、レプリケーション・システム全体の障害に対する安全性が飛躍的に増大する。すなわち、トランザクション・ログを用いたレプリケーション・システムにおいて、ある1つのノードで永続的に記録されたとみなされた情報は、記録処理の完了後、その情報が変更され再び永続的に記録されるまでの間の任意の時点で、レプリケーション・システム内に1つでも利用可能なノードが存在する限り、永続的に記録された情報とみなされ、利用可能である。
また、レプリケーション・システムに障害が発生したときのノードの切り替えが迅速になるため、システム全体の復旧にかかる時間を大幅に減少させることが出来る。これにより、企業が利用する際に不可欠な、高可用性を実現出来る。
さらに、トランザクション・ログというデータベース・システムがもともと備えている技術を前提としているため、技術の製品化が容易で、新規技術の製品化に際する初期的な障害・過失の可能性が小さくなる。製品自体の安定性は、安全性や高可用性を確保する際に重要な前提となる要素であり、企業がデータベース・システムを利用する際にはやはり重要視される。
以下、図面に示す発明を実施するための最良の形態により、本発明を詳細に説明する。
以下本発明を、図面を用いて詳細に説明する。図1は本発明に関わるレプリケーション機能を実装するデータベース・システムの概念図である。
図1において、100はデータ転送元となるマスタコンピュータ、200はデータ転送先となるスレーブコンピュータを表す。この2台のコンピュータにおいて、データ転送元となるマスタコンピュータ100からデータ転送先となるスレーブコンピュータ200にデータを複製するものとする。
図1のデータ転送元となるマスタコンピュータ100内において、101はデータベースの記録領域となるストレージ、102はトランザクション・ログの記録領域となるストレージ、103はストレージへの書き込みを行う指示を与えるデータベースバックエンド、104はスレーブコンピュータとの通信を行う通信モジュールである。
図1のデータ転送先となるスレーブコンピュータ200内において、201はデータベースの記録領域となるストレージ、202はトランザクション・ログの記録領域となるストレージ、204はマスタコンピュータとの通信を行う通信モジュール、205は受信したトランザクション・ログをストレージに書き込むモジュール、206はトランザクション・ログの復元処理を行う復元モジュールである。
ここで、トランザクション・ログが生成され、トランザクション・ログ記録領域へ書き込む動作を、図2を用いて説明する。
データベースバックエンド103は、トランザクション・ログ記録領域102への書き込みを開始すると同時に、通信モジュール104にデータ転送の指示を与える。
通信モジュール104は、通信モジュール204にトランザクション・ログを転送し、トランザクション・ログ書き込みモジュール205は、通信モジュール204からのトランザクション・ログを受け、それをトランザクション・ログ記録領域202に書き込む。
次に、データベースバックエンド103が、トランザクション・ログ記録領域102、202への書き込み完了を待機する動作を、図3を用いて説明する。
通信モジュール204は、データ転送が終了した際、通信モジュール104に転送完了を伝える。
通信モジュール104は、データベースバックエンド103に転送完了を伝える。
トランザクション・ログ記録領域102は、データベースバックエンド103に書き込み完了を伝える。
データベースバックエンド103は、通信モジュール104からの転送完了と、トランザクション・ログ記録領域102からの書き込み完了が伝えられるまで待機する。
次に、データ転送先となるスレーブコンピュータ200において、トランザクション・ログの記録領域202から復元が行われる動作を図4に示す。
復元モジュール206は、トランザクション・ログ記録領域202に新たなトランザクション・ログが書き込まれるまで待機する。
トランザクション・ログ記録領域202に新たなトランザクション・ログが書き込まれると、復元モジュール206はトランザクション・ログ記録領域202からそのトランザクション・ログを呼び出し、データベース記録領域201に適用する。
この待機と適用の動作は、転送元ノードに障害などが発生し、トランザクション・ログが今後転送されることはないということが確認されるまで繰り返し行われる。
Claims (2)
- 障害時に情報の損失の無いレプリケーション・システムのためのトランザクション・ログの同期方法
- 転送先ノードにおいて、トランザクション・ログが転送され次第、復元処理を行う方法
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005117155A JP2006293910A (ja) | 2005-04-14 | 2005-04-14 | 安全で高速なデータベース・レプリケーション技術 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005117155A JP2006293910A (ja) | 2005-04-14 | 2005-04-14 | 安全で高速なデータベース・レプリケーション技術 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2006293910A true JP2006293910A (ja) | 2006-10-26 |
Family
ID=37414388
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005117155A Pending JP2006293910A (ja) | 2005-04-14 | 2005-04-14 | 安全で高速なデータベース・レプリケーション技術 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2006293910A (ja) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2010106991A1 (ja) | 2009-03-19 | 2010-09-23 | 株式会社ココリンク | データの複製管理方法及びシステム |
WO2012056786A1 (ja) | 2010-10-26 | 2012-05-03 | 株式会社Murakumo | データベースの管理方法 |
EP2544107A1 (en) | 2011-07-05 | 2013-01-09 | Murakumo Corporation | Method of managing a database |
WO2013132628A1 (ja) | 2012-03-08 | 2013-09-12 | 株式会社Murakumo | データベースの管理方法 |
WO2013157099A1 (ja) | 2012-04-18 | 2013-10-24 | 株式会社Murakumo | データベースの管理方法、データベースシステム、及び、プログラム |
GB2524540A (en) * | 2014-03-26 | 2015-09-30 | Ibm | Replication of a relational database |
CN111028925A (zh) * | 2019-10-21 | 2020-04-17 | 望海康信(北京)科技股份公司 | 数据传输方法及系统 |
CN112579704A (zh) * | 2020-12-24 | 2021-03-30 | 深圳市科力锐科技有限公司 | 数据反向同步方法、装置、系统、镜像服务器和存储介质 |
-
2005
- 2005-04-14 JP JP2005117155A patent/JP2006293910A/ja active Pending
Cited By (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8423507B2 (en) | 2009-03-19 | 2013-04-16 | Murakumo Corporation | Method and system for managing replication of data |
WO2010106991A1 (ja) | 2009-03-19 | 2010-09-23 | 株式会社ココリンク | データの複製管理方法及びシステム |
US8892535B2 (en) | 2010-10-26 | 2014-11-18 | Murakumo Corporation | Database management method |
WO2012056786A1 (ja) | 2010-10-26 | 2012-05-03 | 株式会社Murakumo | データベースの管理方法 |
US8762354B2 (en) | 2010-10-26 | 2014-06-24 | Murakumo Corporation | Database management method |
US8768903B2 (en) | 2010-10-26 | 2014-07-01 | Murakumo Corporation | Database management method |
US8793234B2 (en) | 2010-10-26 | 2014-07-29 | Murakumo Corporation | Database management method |
US8793233B2 (en) | 2010-10-26 | 2014-07-29 | Murakumo Corporation | Database management method |
US8812468B2 (en) | 2010-10-26 | 2014-08-19 | Murakumo Corporation | Database management method |
EP2544107A1 (en) | 2011-07-05 | 2013-01-09 | Murakumo Corporation | Method of managing a database |
US9251195B2 (en) | 2011-07-05 | 2016-02-02 | Murakumo Corporation | Method of managing database |
US10102263B2 (en) | 2012-03-08 | 2018-10-16 | Murakumo Corporation | Database management method |
EP2933739A1 (en) | 2012-03-08 | 2015-10-21 | Murakumo Corporation | Database management method |
WO2013132628A1 (ja) | 2012-03-08 | 2013-09-12 | 株式会社Murakumo | データベースの管理方法 |
US11151157B2 (en) | 2012-03-08 | 2021-10-19 | Murakumo Corporation | Database management method |
WO2013157099A1 (ja) | 2012-04-18 | 2013-10-24 | 株式会社Murakumo | データベースの管理方法、データベースシステム、及び、プログラム |
GB2524540A (en) * | 2014-03-26 | 2015-09-30 | Ibm | Replication of a relational database |
US10275507B2 (en) | 2014-03-26 | 2019-04-30 | International Business Machines Corporation | Replication of a relational database |
CN111028925A (zh) * | 2019-10-21 | 2020-04-17 | 望海康信(北京)科技股份公司 | 数据传输方法及系统 |
CN112579704A (zh) * | 2020-12-24 | 2021-03-30 | 深圳市科力锐科技有限公司 | 数据反向同步方法、装置、系统、镜像服务器和存储介质 |
CN112579704B (zh) * | 2020-12-24 | 2024-04-09 | 深圳市科力锐科技有限公司 | 数据反向同步方法、装置、系统、镜像服务器和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3655963B2 (ja) | 記憶制御装置、それを含むデータ記憶システムおよび二重ペア抑止方法 | |
US6510500B2 (en) | System and method for minimizing message transactions for fault-tolerant snapshots in a dual-controller environment | |
US7577867B2 (en) | Cross tagging to data for consistent recovery | |
US20180365112A1 (en) | Managing remote data replication | |
US8214685B2 (en) | Recovering from a backup copy of data in a multi-site storage system | |
JP3741609B2 (ja) | 複製されたデータに独立してアクセスできるようにするためのデータプロセッシングの方法及び装置 | |
JP3149325B2 (ja) | 災害復旧機能を提供するために整合性グループを形成する方法および関連するシステム | |
JP5352115B2 (ja) | ストレージシステム及びその監視条件変更方法 | |
CN101755257B (zh) | 管理在不同的网络上将写入从首要存储器拷贝到次要存储器 | |
JPH07239799A (ja) | 遠隔データ・シャドーイングを提供する方法および遠隔データ二重化システム | |
US7395378B1 (en) | System and method for updating a copy-on-write snapshot based on a dirty region log | |
US9268659B2 (en) | Detecting failover in a database mirroring environment | |
CN105302667B (zh) | 基于集群架构的高可靠性数据备份与恢复方法 | |
CN102792276A (zh) | 闪速复制级联中的缓冲磁盘 | |
JP2001337939A (ja) | データ多重化方法およびデータ多重化システム | |
US7013317B2 (en) | Method for backup and storage system | |
WO2017014814A1 (en) | Replicating memory volumes | |
JP6335336B2 (ja) | ストレージシステムおよびその制御方法 | |
JP2006293910A (ja) | 安全で高速なデータベース・レプリケーション技術 | |
US7979396B1 (en) | System and method for performing consistent resynchronization between synchronized copies | |
US20210240351A1 (en) | Remote copy system and remote copy management method | |
JPH1115604A (ja) | データ多重化方法 | |
CN112099999A (zh) | 一种存储系统的集群结构中元数据的恢复方法及系统 | |
US8918364B1 (en) | Online mirror state transitioning in databases | |
CN114442944B (zh) | 一种数据复制方法、系统及设备 |