sql >> データベース >  >> RDS >> Database

TimescaleDBのバックアップ管理のヒント

    情報は企業にとって最も価値のある資産の1つであり、事故やハードウェア障害が発生した場合のデータ損失を防ぐために、ディザスタリカバリプラン(DRP)が必要であることは言うまでもありません。バックアップはDRの最も単純な形式です。許容可能な目標復旧時点(RPO)を保証するのに必ずしも十分ではないかもしれませんが、最初のアプローチとしては適切です。

    24時間年中無休の高負荷サーバーでもトランザクション量の少ない環境でも、運用環境でサーバーのパフォーマンスを低下させることなく、バックアップをシームレスな手順にする必要があります。

    TimescaleDBについて言えば、時系列データ用のこの新しいエンジンにはさまざまな種類のバックアップがあります。使用する必要のあるバックアップの種類は、環境、インフラストラクチャ、負荷など、多くの要因によって異なります。

    このブログでは、利用可能なこれらのさまざまなタイプのバックアップと、ClusterControlがTimescaleDBのバックアップ管理を一元化するのにどのように役立つかを説明します。

    バックアップの種類

    データベースにはさまざまな種類のバックアップがあります。それぞれについて詳しく見ていきましょう。

    • 論理:バックアップはSQLなどの人間が読める形式で保存されます。
    • 物理:バックアップにはバイナリデータが含まれています。
    • 完全/増分/差分:これらの3種類のバックアップの定義は、名前に暗黙的に含まれています。完全バックアップは、すべてのデータの完全コピーです。増分バックアップは前回のバックアップ以降に変更されたデータのみをバックアップし、差分バックアップには最後に実行された完全バックアップ以降に変更されたデータのみが含まれます。増分バックアップと差分バックアップは、完全バックアップの実行にかかる時間とディスク容量の使用量を減らす方法として導入されました。
    • ポイントインタイムリカバリ互換:PITRには、過去の任意の時点でのデータベースの復元が含まれます。これを実行できるようにするには、完全バックアップを復元してから、バックアップ後に発生したすべての変更を障害の直前まで適用する必要があります。

    ClusterControlバックアップ管理機能

    ClusterControlがさまざまなタイプのバックアップの管理にどのように役立つかを見てみましょう。

    バックアップの作成

    このタスクでは、 ClusterControl-> TimescaleDB Cluster-> Backup-> Create Backupに移動します。 。

    新しいバックアップを作成するか、スケジュールされたバックアップを構成できます。この例では、単一のバックアップを即座に作成します。

    ここでは、前述のバックアップの種類ごとに1つの方法があります。

    バックアップタイプ ツール 定義
    論理的 pg_dumpall これは、クラスターのすべてのTimescaleDBデータベースを1つのスクリプトファイルに書き出すためのユーティリティです。スクリプトファイルには、データベースの復元に使用できるSQLコマンドが含まれています。
    物理的 pg_basebackup これは、システムがバックアップモードに自動的に出入りすることを確認しながら、データベースクラスタファイルのバイナリコピーを作成するために使用されます。バックアップは常に、実行中のTimescaleDBデータベースクラスターのデータベースクラスター全体に対して行われます。これらは、データベースの他のクライアントに影響を与えることなく取得されます。
    Full / Incr / Diff pgbackrest これは、データベース固有の要件に最適化されたアルゴリズムを利用することにより、最大のデータベースとワークロードにシームレスにスケールアップできる、シンプルで信頼性の高いバックアップおよび復元ソリューションです。最も重要な機能の1つは、完全バックアップ、増分バックアップ、および差分バックアップのサポートです。
    PITR pg_basebackup + WALs PITR互換のバックアップを作成するために、ClusterControlはpg_basebackupとWALファイルを使用して、過去の任意の時点でデータベースを復元できるようにします。

    バックアップを取得するサーバーとバックアップを保存する場所の1つの方法を選択する必要があります。対応するボタンを有効にすることで、バックアップをクラウド(AWS、Google、またはAzure)にアップロードすることもできます。

    PITRと互換性のあるバックアップを作成する場合は、この手順でpg_basebackupを使用し、マスターノードからバックアップを取得する必要があることに注意してください。

    次に、圧縮、暗号化、およびバックアップの保持の使用を指定します。

    バックアップセクションでは、バックアップの進行状況と、方法、サイズ、場所などの情報を確認できます。

    ポイントインタイムリカバリの有効化

    PITR機能を使用する場合は、WALアーカイブを有効にする必要があります。これを行うには、 ClusterControl-> Select TimescaleDB Cluster-> Node actions-> Enable WAL Archiving に移動します。 、または ClusterControl-> TimescaleDB Cluster-> Backup-> Settingsを選択します。 オプション「Point-In-TimeRecovery(WAL Archiving)を有効にする」を有効にします。 次の画像に示すように」

    WALアーカイブを有効にするには、データベースを再起動する必要があることに注意する必要があります。 ClusterControlは私たちのためにもこれを行うことができます。

    バックアップディレクトリ」など、すべてのバックアップに共通のオプションに加えて 」および「バックアップ保持期間 」、ここでWAL保持期間を指定することもできます。デフォルトは0で、これは永久を意味します。

    WALアーカイブが有効になっていることを確認するには、 ClusterControl-> Select TimescaleDB Cluster-> Nodesでマスターノードを選択します。 、次の画像に示すように、WALArchivingEnabledメッセージが表示されます。

    バックアップの復元

    バックアップが完了したら、ClusterControlを使用してバックアップを復元できます。このために、バックアップセクション( ClusterControl-> Select TimescaleDB Cluster-> Backup )、[バックアップの復元]を選択するか、復元するバックアップで直接[復元]を選択できます。

    バックアップを復元するには、3つのオプションがあります。既存のデータベースノードでバックアップを復元したり、スタンドアロンホストでバックアップを復元して確認したり、バックアップから新しいクラスターを作成したりできます。

    PITR互換のバックアップを復元しようとしている場合は、時間も指定する必要があります。

    データは指定された時間に復元されます。 UTCタイムゾーンが使用され、マスターのTimescaleDBサービスが再起動されることを考慮してください。

    ClusterControlの[アクティビティ]セクションから復元の進行状況を監視できます。

    自動バックアップ検証

    復元できない場合、バックアップはバックアップではありません。バックアップの検証は、通常、多くの人に無視されていることです。 ClusterControlがTimescaleDBバックアップの検証を自動化し、予期しない事態を回避するのにどのように役立つかを見てみましょう。

    ClusterControlで、クラスターを選択し、[バックアップ]に移動します []セクションで、[バックアップの作成]を選択します 」。

    自動検証バックアップ機能は、スケジュールされたバックアップで使用できます。それでは、「バックアップのスケジュール」を選択しましょう。 」オプション。

    バックアップをスケジュールするときは、方法やストレージなどの一般的なオプションを選択するだけでなく、スケジュール/頻度も指定する必要があります。

    次のステップでは、バックアップを圧縮および暗号化し、保存期間を指定できます。ここには、「バックアップの確認」もあります。 」機能。

    この機能を使用するには、クラスターの一部ではない専用のホスト(またはVM)が必要です。

    ClusterControlはソフトウェアをインストールし、このホストにバックアップを復元します。復元後、ClusterControlバックアップセクションに確認アイコンが表示されます。

    結論

    現在、どの環境でもバックアップは必須です。彼らはあなたがあなたのデータを保護するのを助けます。増分バックアップは、バックアッププロセスに使用される時間とストレージスペースの量を減らすのに役立ちます。トランザクションログは、Point-in-Time-Recoveryにとって重要です。 ClusterControlは、TimescaleDBデータベースのバックアッププロセスを自動化し、障害が発生した場合に数回クリックするだけでデータベースを復元するのに役立ちます。また、PITR互換のバックアップを使用してRPOを最小限に抑え、ディザスタリカバリ計画を改善することもできます。


    1. ActiveRecordクエリの時間ベースの優先度

    2. SQLServerのVARCHARおよびNVARCHARデータ型

    3. PostgreSQLのLISTAGG(Oracleデータベース)に相当するものは何ですか?

    4. MariaDBでのSIGN()のしくみ