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

ClusterControlでダウンタイムゼロのアップグレードが容易に

    「データベースを最新バージョンにアップグレードしてください。安全のためです」は、データベース管理に関して、適切なアドバイスとベストプラクティスとしてよく耳にするものです。一方、データベースのアップグレードは時間のかかる作業になる可能性があります。マイナーバージョンのアップグレードでも、本番セットアップをアップグレードする前に、ステージング環境でアップグレードを徹底的にテストする必要があります。では、大したことは何ですか?マイナーバージョンが1つだけ遅れている場合は、問題ありませんよね?まあ、それはそうではないかもしれません...それがするまで。そして、あなたは本当にその種のリスクを取る準備ができていますか?

    今年の初めに、Galera Cluster(CVE-2021-27928)で新たな潜在的に危険な脆弱性が特定されました。一見、重大度が高いとマークされていることがわかります。さらに問題を掘り下げてみると、実際に重大に見えます。 SUPERユーザーは、実行時にwsrep_provider変数とwsrep_notify_cmd変数を変更することにより、任意のコードを実行できるようです。これにより、ユーザーは.soライブラリをロードし、サーバーが実行するスクリプトを指定できます。ご想像のとおり、これは良い状況ではありません。確かに、SUPERユーザーにアクセスできる必要があり、データベースノードで実行できるものが必要ですが、Galeraが任意のコードを「mysql」ユーザーとして実行するように構成できるという事実は、自分のもの。

    いつものように、このような場合、修正が作成され、脆弱性の影響を受けない新しいバージョンのソフトウェアがプッシュされます。この特定の問題は、MariaDB 10.5.9、10.4.18、10.3.28、および10.2.37、およびPercona XtraDB Cluster 5.6.51-28.46、Percona XtraDB Cluster 5.7.33-31.49、およびPerconaXtraDBClusterで修正されています。 8.0.22-13.1。すべてが正常に戻っているようです。でしょ?

    間違っています。影響を受けていない新しいバージョンにまだアップグレードされていない、実稼働環境で実行されているシステムは無数にあります。 Someninesサポートチームは、実際の多くのデータベース環境と連絡を取り合っており、ClusterControlによって管理される環境への移行を支援するために常に見込み客と協力しています。あらゆる種類のMySQL(MySQLだけでなく)が古いバージョンで実行されているのがわかります。場合によっては、保守終了に達し、セキュリティ更新プログラムを取得していないバージョンもあります。特にClusterControlユーザーの場合は、そうではありません。

    ClusterControlには、すべてのセキュリティ修正を最新の状態に保つのに役立つ一連の機能が付属しています。見てみましょう:

    まず、ClusterControlには運用レポートが付属しています。そのうちの1つはパッケージアップグレードレポートです:

    ClusterControlのすべての運用レポートと同様に、パッケージアップグレードレポートは次のようにスケジュールできます。定期的に実行され、電子メールで配信されます。ノードにインストールされているパッケージバージョンに関する情報と、実行する必要のあるアップグレードがあるかどうかが含まれます。

    パッケージアップグレードレポートには、すべてのユーザーに対して更新する必要のあるパッケージのリストが表示されます。データベース、ロードバランサー、セキュリティ修正、およびノー​​ドにインストールされているその他のパッケージ。すべてのシステムパッケージの解決策は、標準的な方法(apt、yum)を使用してそれらをアップグレードすることです。データベースとロードバランサーに関しては、ClusterControlには、UIから直接マイナーバージョンのアップグレードを実行できる機能が付属しています。

    そこに行く前に、データベースを更新する必要があると仮定しましょう。アップグレードを盲目的に続行して実行するだけでは不十分です。アプリケーションに問題が発生する可能性があります。すべきではありません-マイナーバージョンは下位互換性を壊しません(MySQL 8.0を使用する場合を除いて-そうです、8.0.xから8.0.x + 1に移行するときに何かを期待するかもしれません)。ただし、常にリスクが伴います。最初にすべきことは、別の環境でアップグレードをテストすることです。

    ProxySQLとKeepalivedを備えた単純なMariaDBGaleraクラスターがあります:

    アップグレードをテストできるように、テストクラスターを構築します処理する。 ClusterControlを使用すると、レプリカクラスターの作成ジョブを使用するのと同じくらい簡単です。

    既存のクラスターから新しいデータを取得することも、バックアップからのデータを使用することもできます。

    本番クラスターでソースノードを選択する必要もあります:

    次に、通常の展開ウィザードを実行して、バージョンを選択し、データベースのベンダー、ルートパスワードの定義など。最後に、クラスターがインストールされるノードを渡します。

    その結果、リストに新しいクラスターが表示されます。実動クラスターから複製していることを明確にマークします。言及する価値のあることの1つは、デフォルトのセットアップでは、ClusterControlは最新バージョンのパッケージを使用してレプリカクラスターを作成します。クエリだけを再確認したい場合は、これで十分です。アップグレードプロセス全体を実行する場合は、古いバージョンをインストールするために、古いバージョンのMySQLパッケージをピン留めする必要があります(その後、ピン留めを解除してアップグレードをテストします)。

    いずれにせよ、テストが成功した後、最終的にはアップグレードを実行する必要があります。 ClusterControlは、これを実現するのに役立ちます:

    [管理]->[アップグレード]には、アップグレードを実行するためのUIがあります。 。

    「新しいパッケージの確認」を使用して、使用可能なデータベースを更新できます。パッケージ。アップグレードするノードとサービスを選択することもできます:

    確認するだけで、それだけです-ClusterControlがアップグレードを実行し、パッケージの最新バージョン。

    ご覧のとおり、ClusterControlを使用すると、データベースを簡単かつ簡単に最新の状態に保つことができます。手動で処理する必要がある唯一のステップは、適切なテストです。それ以外の場合-ClusterControlによって他のすべてを実行できます。 ClusterControlがデータベースを効果的に管理するのにどのように役立つかについてもっと知りたいですか? 30日間無料でお試しください。


    1. ORDERBYで更新

    2. 表スペースSYSMGMTDATAがグリッド・インフラストラクチャ管理リポジトリ(MGMTDB)でいっぱいです

    3. ウェイトイベントを見つける方法Oracleセッションの履歴

    4. SQLiteで日時をフォーマットする方法