レプリケーション・チャネルの作成

インバウンド・レプリケーションの場合、レプリケーション・チャネルはソース(MySQLインスタンスまたは別のDBシステム)をレプリカ(DBシステム)に接続し、ソースからレプリカにデータをコピーします。

コンソールの使用

コンソールを使用して、レプリケーション・チャネルを作成します。

このタスクでは次が必要です:
次のステップに従って、レプリケーション・チャネルを作成します。
  1. ナビゲーション・メニューを開き、「データベース」を選択します。「MySQL HeatWave」で、次のいずれかを実行します:
    • 「チャネル」をクリックし、「チャネルの作成」をクリックします。
    • DBシステムをクリックし、DBシステムのリストからDBシステムの名前をクリックします。「他のアクション」をクリックし、「チャネルの作成」を選択します。
    • DBシステムと同じ行にある「アクション」メニューをクリックし、「チャネルの作成」を選択します。
  2. 「チャネルの作成」パネルで、次の詳細を指定します:
    • コンパートメントに作成: ターゲットDBシステムと同じコンパートメントにチャネルを作成します。現在のコンパートメント以外のコンパートメントにチャネルを作成する場合は、リストから必要なコンパートメントを選択します。別のコンパートメントを選択しないと、現在のコンパートメントが使用されます。
    • 名前: (オプション)チャネルのわかりやすい表示名を指定します。この名前は、「ターゲットDBシステム」定義で定義された「チャネル名」とは関係ありません。これはチャネルのラベルとしてのみ使用されます。名前を指定しない場合、mysqlchannelYYYYMMDDHHMMSSという形式の名前が生成されます。
    • 作成時に自動的に有効化: チャネルが正常に作成されたときに自動的に開始するかどうかを指定します。これはデフォルトで有効になっています。このオプションを無効にした場合は、チャネルを手動で有効にする必要があります。
    • 説明: (オプション)チャネルとその目的についてのわかりやすい説明を指定します。
    • ソース接続: データのレプリケート元のMySQLソースを構成します:
      • ホスト名: MySQLソースのホスト名を指定します。IPアドレスまたは完全修飾ドメイン名を指定できます。
      • ポート: (オプション) MySQLソースがリスニングするポート番号を指定します。デフォルト値は3306です。
      • ユーザー名: MySQLソース・サーバーで作成したアカウントのレプリケーション・ユーザー名を指定します。レプリケーション・チャネルでは、これらの資格証明を使用してソースに接続します。「ソース・サーバーでのレプリケーション・ユーザーの作成」を参照してください。
      • パスワード: レプリケーション・ユーザー・アカウントのパスワードを指定します。
      • SSLモード: 必要なSSLモードを選択します。選択したモードを使用してSSL固有の接続の値がMySQLソースに移入されます。次のいずれかのSSLモードを選択します:
        • 無効(DISABLED): ソースとターゲットの間に暗号化されていない接続を確立します。
        • 必須(REQUIRED): (デフォルト)サーバーで暗号化された接続がサポートされている場合は、暗号化された接続を確立します。暗号化された接続を確立できない場合は、接続の試行が失敗します。
        • 認証局の検証(VERIFY_CA): 「必須」モードと同様に、サーバーが暗号化された接続をサポートしている場合は暗号化された接続を確立し、さらに、ソースで構成されている認証局証明書を認証局のX509証明書(PEM)と照合して検証します。認証局のX509証明書をアップロードする必要があります。
        • アイデンティティの検証(VERIFY_IDENTITY): 「認証局の検証」モードと同様に、暗号化された接続を確立し、さらに、ソースのSSL証明書に定義したソースのホスト名を「ホスト名」フィールドで定義したホスト名と照合して検証します。認証局のX509証明書をアップロードする必要があります。
        • 認証局のX509証明書(PEM): ソースの認証局のX509証明書をPEM形式でアップロードできます。これは、「認証局の検証」または「アイデンティティの検証」モードを選択した場合にのみ表示されます。この証明書は、ソースの認証局の証明書を検証するために使用されます。
    • レプリケーション位置: ソースGTID設定を構成します:
      • ソースでGTID自動配置を使用可能(推奨) : ソースでシステム変数gtid_modeONに設定されている場合、このオプションを選択します。つまり、ソース・サーバーは、GTID情報を含むレプリカを自動ポジショニングに提供できます。GTIDsを参照してください。
      • ソースでGTID自動配置を使用できない: システム変数gtid_modeがソースでOFF,OFF_PERMISSIVEまたはON_PERMISSIVEに設定されている場合、このオプションを選択します。つまり、ソース・サーバーは、自動ポジショニングのGTID情報を持つレプリカを提供できません。匿名であるトランザクションをGTIDを持つトランザクションに変換するには、次のオプションを指定します。
        ノート

        このオプションは、スタンドアロンおよびHeatWaveが有効になっているDBシステムに対してのみ選択できます。このオプションは、高可用性DBシステムには使用できません。
        • UUIDの手動指定: このオプションを選択して、新しいUUIDを生成するか、独自のUUIDを入力します。GTIDsUUIDセクションを参照してください。
        • ターゲットDBシステムと同じUUID: ターゲットDB Systemと同じUUIDを使用するには、このオプションを選択します。
        次を指定します:
        • バイナリ・ログ・ファイル名: データベースの変更を説明するイベントを含むバイナリ・ログ・ファイル名を指定します。The Binary Logを参照してください。
        • バイナリ・ログ・オフセット: バイナリ・ログ・ファイル内のバイナリ・ログ・オフセットを指定します。
    • ターゲットDBシステム:データのレプリケート先のDBシステムを構成します。
      • アプリケーション・ユーザー名: (オプション)ターゲットDBシステムのapplierユーザーのユーザー名を指定します。ユーザー名を指定しない場合は、DBシステムの管理者アカウントが使用されます。ターゲットDB SystemでのApplierユーザーの作成を参照してください。
        ノート

        指定する場合、ユーザー・アカウントはターゲットDBシステムに存在する必要があります。また、レプリケートされたトランザクションを実行するには、ユーザー・アカウントにREPLICATION_APPLIER権限と権限が含まれている必要があります。
      • チャネル名: (オプション)レプリケーション・チャネル名を指定します。ターゲットDB Systemは、レプリケーション・チャネルを使用してMySQLソースと通信します。名前を指定しない場合は、replication_channelが使用されます。
      • 主キーのない表: (オプション)レプリケーション・チャネルによる主キーのない表の作成および変更の処理方法を指定します。
        • エラーの生成(RAISE_ERROR): 主キーを使用しない CREATE TABLEまたはALTER TABLEトランザクションのレプリケート時にエラーを発生させます。
        • 許可(ALLOW): 主キーを使用しないCREATE TABLEまたはALTER TABLEトランザクションのレプリケーションを許可します。
        • 主キーの生成(GENERATE_IMPLICIT_PRIMARY_KEY): (デフォルト)主キーのないCREATE TABLEまたはALTER TABLEトランザクションのレプリケートを許可し、そのような表へのデータの追加時に主キーを自動的に生成します。
      • レプリケーション遅延: ソースから受信したトランザクションを適用する前にチャネルが待機する時間を秒単位で設定します。
      • ターゲットDBシステム: レプリケーション・ターゲットとして使用するDBシステムを選択します。DBシステム詳細ページから、または「アクション」メニューからチャネルを作成する場合、ターゲットDBシステムは自動的に選択され、変更できません。ターゲットDBシステムはページの上部に表示されます。
      • チャネル・フィルタ: (オプション)「チャネル・フィルタ・オプションの表示」をクリックして、チャネルのレプリケーション・フィルタのタイプと値を構成します。チャネル・フィルタ・ルールを参照してください。
        • 共通フィルタ・テンプレート: 使用可能なリストから、ソースと一致するフィルタ・テンプレートを選択します。「タイプ」および「値」に移入する既存のフィルタ・テンプレートを使用できます。
        • タイプ: フィルタ・タイプを選択します。データベースまたは表の無視やデータベースのリライトなど、様々なフィルタ・タイプを選択できます。
        • : フィルタ・タイプの値を指定します。共通のフィルタ テンプレートを選択して値をロードすることも、新しい値を入力することもできます。
  3. チャネルを作成するには、「チャネルの作成」をクリックします。
    チャネルの作成が開始され、チャネルが「作成中」状態になります。プロビジョニングには数分かかる場合があります。チャネルは、この状態のときにソースからターゲットにデータをレプリケートしません。
  4. (オプション)リソース構成をスタックとして保存するには、「スタックとして保存」をクリックします。後でスタックを使用し、リソース・マネージャ・サービスを介してリソースをインストール、構成および管理できます。スタックの管理を参照してください。

「作成時に自動的に有効」を選択したままにした場合、チャネルが正常に作成されるとすぐに、チャネルは「アクティブ」状態になり、ソースからターゲットへのデータのレプリケートが開始されます。

このボックスの選択を解除すると、チャネルは「非アクティブ」状態になります。その場合、チャネルのデータのレプリケートを開始する準備ができたら、「チャネルの有効化または無効化」のステップに従って有効にします。

チャネル・フィルタ・ルール

レプリケーション用のチャネル・フィルタのタイプと値を構成します。

各フィルタ・ルールには、1つのフィルタ・タイプと値のみを含めることができます。ただし、任意の数のフィルタ・ルールを追加できます。その結果、すべてのフィルタ・ルールが追加されます。たとえば、タイプ、REPLICATE_DO_DB、フィルタ値、mysql1、およびタイプ、REPLICATE_DO_DBおよびフィルタ値mysql2を持つ別のフィルタ・ルールを使用してフィルタ・ルールを作成すると、mysql1データベースとmysql2データベースの両方がレプリケートされます。

表13-1チャネル・フィルタ・ルール

フィルタ・タイプ フィルタ値 詳細
REPLICATE_DO_DB database 指定されたデータベースをレプリケートします。
REPLICATE_IGNORE_DB database 指定されたデータベースのレプリケーションを制限します。
REPLICATE_DO_TABLE database.table 指定された表をデータベースにレプリケートします。
REPLICATE_IGNORE_TABLE database.table データベース内の指定された表のレプリケーションを制限します。
REPLICATE_WILD_DO_TABLE database.table 指定されたワイルドカード・パターンに一致する表をレプリケートします。
REPLICATE_WILD_IGNORE_TABLE database.table 指定されたワイルドカード・パターンに一致する表のレプリケーションを制限します。
REPLICATE_REWRITE_DB from_database->to_database ソースのfrom_databaseto_databaseに変換します。

ワイルドカード・パターン

REPLICATE_WILD_DO_TABLEおよびREPLICATE_WILD_IGNORE_TABLEはワイルドカードをサポートしています。ワイルドカード・パターンには、%および_ワイルドカード文字を含めることができます。%は0文字以上、_は任意の1文字を表します。たとえば:

  • フィルタ・タイプREPLICATE_WILD_DO_TABLEのフィルタ値foo%.bar%は、データベース名がfooで始まり、表名がbarで始まる表のみをレプリケートします。
  • フィルタ・タイプREPLICATE_WILD_DO_TABLEのフィルタ値foo%.%は、データベース名がfooで始まるすべての表をレプリケートします。
  • フィルタ・タイプREPLICATE_WILD_IGNORE_TABLEのフィルタ値foo_.bar_は、データベース名に4文字が含まれ、fooで始まり、表名に4文字が含まれ、barで始まる表を無視します。

データベース名またはREPLICATE_WILD_DO_TABLEまたはREPLICATE_WILD_IGNORE_TABLEの表名でワイルドカード文字を文字どおりに使用する場合は、バックスラッシュ(\)でエスケープします。たとえば、my\_db.top\_90\%です。