MySQLインスタンスの場合は、コンソールでマスターインスタンスのパラメータを変更できます。その中の重要なパラメータについて、不適切な変更方式を使用すると、災害復旧インスタンスの異常やデータの不整合を引き起こす可能性があります。このドキュメントでは、次のように重要なパラメータの変更による影響を説明します。
デフォルト値:0
役割:データベースとテーブルを作成する時、保存と問い合わせの時に大文字と小文字が区別されるか。このパラメータには数値0、1を設定できます。デフォルト値0は、データベースとテーブルの作成時に保存と問い合わせの両方で大文字と小文字が区別されることを意味し、逆の場合は区別されません。
影響:マスターインスタンスのパラメータが変更されると、災害復旧インスタンスのパラメータを同期的に変更できません。マスターインスタンスの大文字と小文字が区別されるが、災害復旧インスタンスの大文字と小文字が区別されない場合、例えば、マスターインスタンスがTestとTEstのテーブル名を持つ2つのテーブルを作成し、災害復旧インスタンスがそのログを適用すると、TEstのテーブル名がすでに存在するため、データの同期ステータスの異常が発生します。
デフォルト値:1
役割:は、自動採番列AUTO_INCREMENTに使用される増分値です。このパラメータは1~65535の範囲で設定でき、デフォルト値は1です。
影響:マスターインスタンスのパラメータが変更されると、災害復旧インスタンスのパラメータを同期的に変更できません。マスターインスタンスが自動採番列の増分値を変更したが、災害復旧インスタンスが同期に変更されない場合、マスターインスタンスと災害復旧インスタンスのデータが一致しない可能性があります。
デフォルト値:1
役割:自動採番列AUTO_INCREMENTに使用される初期値(オフセット値)です。このパラメータは1~65535の範囲で設定でき、デフォルト値は1です。
影響:マスターインスタンスのパラメータが変更されると、災害復旧インスタンスのパラメータを同期的に変更できません。マスターインスタンスが自動採番列の初期値を変更したが、災害復旧インスタンスが同期に変更されない場合、マスターインスタンスと災害復旧インスタンスのデータが一致しない可能性があります。
デフォルト値:NO_ENGINE_SUBSTITUTION
役割:MySQLは別のsqlモードで実行できます。sqlモードでは、mysqlがサポートすべきのsql構文、データ検証などを定義しています。バージョン5.6のデフォルトのパラメータ値はNO_ENGINE_SUBSTITUTIONであり、使用するストレージエンジンが無効またはコンパイルされていない場合にエラーがスローされることを示します。バージョン5.7のデフォルトのパラメータ値はONLY_FULL_GROUP_BY
、STRICT_TRANS_TABLES
、NO_ZERO_IN_DATE
、NO_ZERO_DATE
です。
,ERROR_FOR_DIVISION_BY_ZERO
,NO_AUTO_CREATE_USER
,NO_ENGINE_SUBSTITUTION
,
そのうち:
ONLY_FULL_GROUP_BY
はGROUP BYの集約処理時に、SELECT文の列、HAVING或いはORDER BY句の列はGROUP BYに存在するか、GROUP BY列に依存する関数列でなければならないことを示します。STRICT_TRANS_TABLES
はStrictモードが有効になっていることを示します。NO_ZERO_IN_DATE
は日付の月と日に0が含まれることを許可するか、且つStrictモードを有効にすると影響を受けるかを示しています。NO_ZERO_DATE
はデータベースにゼロ日付をインサートすることを許可せず、且つStrictモードを有効にすると影響を受けることを示しています。ERROR_FOR_DIVISION_BY_ZERO
は、Strictモードの場合、INSERT或いはUPDATEを実行する時、データがゼロで割ると、警告ではなくエラーが発生するが、Strictモード以外の場合、データがゼロで割ると、MySQLがNULLを返すことを示しています。NO_AUTO_CREATE_USER
は、パスワードがNULLのユーザを新規作成するGRANT文が禁止されることを示しています。NO_ENGINE_SUBSTITUTION
は、使用するストレージエンジンが無効になっているか、コンパイルされていない場合にエラーがスローされることを示しています。影響:マスターインスタンスのパラメータが変更されると、災害復旧インスタンスのパラメータを同期的に変更できません。マスターインスタンスがsql modeを変更したが、災害復旧インスタンスが同期に変更されない場合、例えば、マスターインスタンスのsql modeの制限が災害復旧インスタンスのsql mode制限よりも低いことが、マスターインスタンスで実行したSQLが災害復旧インスタンスに同期される時にエラーが発生し、マスターインスタンスと災害復旧インスタンスのデータが一致しない可能性があります。
この記事はお役に立ちましたか?