技術的解釈丨GaussDBデータウェアハウスの高可用性災害復旧兵器の論理バックアップ

要約: GaussDBデータウェアハウスのRoachツールは、物理バックアップと論理バックアップの2つの主要な形式のバックアップを提供します。論理バックアップは、データベースの論理オブジェクトを抽出してバックアップします。これにより、単一のテーブルやスキーマレベルなどのきめ細かいバックアップを効果的に処理でき、より柔軟で便利になります。

1.はじめに

ビッグデータの時代において、データの整合性と信頼性は、データウェアハウスのコア機能の1つになりました。GaussDBデータウェアハウスは、その卓越した分散コンピューティングおよびストレージ機能でユーザーに広く支持されていますが、データバックアップおよび災害復旧の分野における革新と洗練にも焦点を当てています。データの信頼性は、データウェアハウスの「ライフゲート」と言えます。企業や政府などのユーザーにとって、ハードウェアの故障や誤った業務の削除によってファイルが破損し、データの破損や損失が発生した場合、その損失は計り知れません。GaussDBが提供するRoachツールは、安定した高速で信頼性の高いバックアップ機能を備えており、バックアップを通じてデータベースまたはビジネステーブルを復元することにより、顧客に信頼できる「後悔の薬」を準備し、それによって顧客の損失を効果的に回復します。

図1データウェアハウスのバックアップとリカバリの概略図

2、ローチのバックアップとリカバリの基本的なフレームワーク

GaussDBデータウェアハウスのRoachツールは、物理バックアップと論理バックアップの2つの主要な形式のバックアップを提供します。物理バックアップは、ファイルブロックをコピーすることでバックアップメディアに直接保存され、復元時にバックアップファイルブロックを使用して、復元のためにクラスター内のインスタンスDNおよびCNのデータディレクトリを再構築します。この記事では、主に論理バックアップに焦点を当てます。現在のGaussDBデータウェアハウスでは、論理バックアップは物理バックアップよりも柔軟性が高く、物理バックアップファイルとは異なるGaussDBの強力なデータインポートおよびエクスポート機能を最大限に活用します。全体のコピー、論理バックアップは、データベースの論理オブジェクトを抽出してバックアップします。粒度は、テーブルレベル、スキーマレベル、データベースレベル、および顧客のニーズに応じてカスタマイズされた選択になります。数千のテーブルがある顧客データウェアハウスでは、テーブルのみをバックアップする場合は、現在の論理バックアップの方が適しています。

論理バックアップについて説明する前に、まずRoachツールの設計アーキテクチャについて説明しましょう。このフレームワークは、すべての論理バックアップまたは物理バックアップの基礎です-

図2Roachバックアップおよびリカバリツールのフレームワーク図

Roachは、分散型のバックアップおよびリカバリツールです。例として、Node1、2、および3で構成されるクラスターを取り上げます。バックアップの合計エントリは、現在のノードおよびクラスター内の他のすべてのノードでローチマスタープロセスをプルアップするpythonプロセスGaussRoach.py​​です。各ノードは、典型的なマスタースレーブフレームワークであるローターエージェントプロセスをプルアップします。マスタープロセスは、すべてのエージェントプロセスとの長いTCP接続を確立し、メッセージをカプセル化して各ノードと通信し、バックアップなどのタスクを発行します。各ノードで、ノード上のCNやDNなどのデータベースオブジェクトを分散してバックアップします。

3、論理バックアップの原則

以下に、論理バックアップの実行プロセスについて簡単に説明します。

1)バックアップするテーブル定義のエクスポートとバックアップ

データベースレベルのバックアップの場合、メタデータはスキーマごとにエクスポートされます。各スキーマを処理するときに、すべてのテーブル定義が1つずつエクスポートされます。したがって、次の図は、テーブルDDLをエクスポートするRoach論理バックアップのプロセスを示しています。バックアップ命令を受信した後、ローチマスターノードはCNを使用してノードローチエージェントに命令を発行します。エージェントプロセスはgs_dumpを呼び出し、CNを接続してテーブル定義DDLをエクスポートします。

図3論理バックアップテーブルメタデータDDLエクスポートバックアップの概略図

2)外観を作成する

Roach論理バックアッププロセスは、基本的に、前のステップのテーブル定義エクスポートと同様に、データエクスポート用の外部テーブルを確立するプロセスです。Masterコマンドを受信した後、Roach Agentは、エクスポートされたテーブル定義、さらにはCNに基づいて外部テーブルを作成および書き込みます。このオプションでは、場所はroach:// {Roach Agentリスニングポート}です。ここで、Roach Agentリスニングポートは構成可能なパラメーターであり、ノード上のすべてのDNインスタンスからの接続を受け入れます。Roach論理バックアップの外観定義は次の形式のようになり、バックアップする必要があります。このテーブルには、intタイプのフィールドIDが1つだけあります。図の例のRoach Agentリスニングポートは8080で、構成可能であり、エクスポート形式はcsvです。

図4Roach論理バックアップによって作成された外部テーブル

3)ローチツールとDN間の接続、およびデータのエクスポートとバックアップ

現在、GaussDBデータウェアハウスの集中化されたメインデータのインポートおよびエクスポートの外観には、GDS、HDFS、OBS、Roachなどが含まれます。Roachの外観は他のタイプの外観と同様であり、すべてFDW(Foreign Data Wrapper)を介して完成しますが、一連のRoachの外観です。 FDW APIインターフェイスが実装されています。さらに、Roachは、DNとRoach Agent間のデータ相互作用を実現するために、Open / Read / Write / Close / ErrorReportなどの5つの主要な低レベルの読み取りおよび書き込みAPIも実装しています。

図5論理バックアップテーブルのデータバックアッププロセスの概略図

図5に示すように、論理バックアップデータのプロセスは、次のフェーズ1〜フェーズ5で簡単に説明できます。

  • フェーズ1: データをバックアップするためのコマンドは、マスターによってすべてのエージェントに発行され、CNに接続され、データベースに接続されて外部テーブルとエクスポートサーバーを作成し、外部テーブルを作成およびエクスポートします。各ノードのローチエージェントは、TblServerスレッドを作成し、エージェントポートポートをリッスンし、DNが接続するのを待ちます。 ;
  • フェーズ2:  CNでもroachft select * from Aに挿入を実行します。登録されたRoachFDW APIを介してすべてのDNにsqlクエリが発行され、DNはコールバック関数を呼び出し、PGXCNodeメッセージをカプセル化し、自明のインスタンスとして接続を試みます。サーバーurl内のこのノードのエージェントポート。
  •  フェーズ3 ローチエージェントのTblServerは、DN接続を受信するたびに、データ通信ソケットスロットを割り当て、DNインスタンスのバックアップサービスの子プロセスをフォークします。エージェントは、ノード上のすべてのDNが接続を確立し、作成するのを待ちます。 lengthof(ノードのすべてのDN)子プロセス、並列のデータバックアップ。
  • フェーズ4: 各バックアップサブプロセスは、確立された接続を介してテーブルデータを継続的に読み取ります。テーブルのすべてのデータブロックが読み取られた後、FINISH_BACKUPメッセージがローチエージェントに送信され、データ送信が停止され、DNからデータが読み取られます。まず、エージェントの子プロセスのバッファに保存されます。
  • フェーズ5: 各エージェントプロセスは、バッファに格納されているテーブルデータの消費、バックアップメディアとの接続の確立、およびデータ送信のストリーミングを担当するBackupSenderスレッドを作成します。フェーズ4および5は、待機ではなく、実際の操作における非同期および並列アクションです。すべてのテーブルデータがバッファに書き込まれた後、バックアップメディアに送信されます。

4、まとめ

Roach論理バックアップの原理を大まかに説明します。論理バックアップは、単一のテーブルやスキーマレベルなど、より柔軟で便利なきめ細かいバックアップに効果的に対処できます。論理バックアップのリカバリプロセスは、基本的に上記のバックアッププロセスとは逆のプロセスです。つまり、テーブル定義のリカバリ、ノードとDNのメタデータのリカバリ、およびデータのインポートプロセスです。リカバリの主な利点は、クラスタを停止したり移動したりしないことです。他のデータは、他のデータベースまたはテーブルのビジネスにほとんど影響を与えません。フォローアップのブログ投稿で、それをより詳細に解釈することができます。

 

クリックしてフォローし、Huawei Cloudの新しいテクノロジーについて初めて学びましょう〜

おすすめ

転載: blog.csdn.net/devcloud/article/details/109092573