--- slug: /ja/operations/update sidebar_title: セルフマネージドアップグレード title: セルフマネージドアップグレード --- ## ClickHouseアップグレード概要 このドキュメントには以下が含まれます: - 一般的なガイドライン - 推奨される計画 - システム上のバイナリアップグレードの詳細 ## 一般的なガイドライン これらの注意事項は、計画を立てるのに役立ち、なぜ後述するような推奨を行うのかを理解するのに役立ちます。 ### ClickHouseサーバーをClickHouse KeeperまたはZooKeeperとは別にアップグレード ClickHouse KeeperまたはApache ZooKeeperに対するセキュリティ修正が必要でない限り、ClickHouseサーバーをアップグレードする際にKeeperをアップグレードする必要はありません。アップグレード中はKeeperの安定性が必要なため、ClickHouseサーバーのアップグレードを完了してからKeeperのアップグレードを検討してください。 ### マイナーバージョンのアップグレードは頻繁に採用すべき 常に最新のマイナーバージョンにアップグレードすることを強くお勧めします。マイナーリリースには破壊的な変更はありませんが、重要なバグ修正(およびセキュリティ修正が含まれる場合もあります)が含まれています。 ### ターゲットバージョンを実行する別のClickHouseサーバーでエクスペリメンタルな機能をテスト エクスペリメンタルな機能の互換性は、いつでもどのようにでも無効になる可能性があります。エクスペリメンタルな機能を使用している場合は、変更履歴を確認し、ターゲットバージョンをインストールした別のClickHouseサーバーをセットアップし、そこでエクスペリメンタルな機能の使用をテストすることを検討してください。 ### ダウングレード 新しいバージョンが依存している機能と互換性がないと気付いた場合、まだ新しい機能を使用し始めていなければ、最近の(1年未満の)バージョンにダウングレードすることができます。新しい機能を使用し始めると、ダウングレードは機能しません。 ### クラスター内の複数のClickHouseサーバーバージョン 1年の互換性ウィンドウ(2つのLTSバージョンを含む)を維持する努力をしています。これにより、バージョン間の差が1年未満であれば、または2つのLTSバージョンの間隔が1年未満であれば、どの2つのバージョンもクラスター内で一緒に動作するはずです。しかし、クラスター内の全メンバーをできるだけ早く同じバージョンにアップグレードすることをお勧めします。例えば、分散クエリの遅延、ReplicatedMergeTreeにおける一部のバックグラウンド操作での再試行可能なエラーなど、いくつかの小さな問題が発生する可能性があります。 リリース日が1年以上のバージョンを同じクラスターで実行することは決して推奨しません。データ損失は予期していませんが、クラスターが使用不能になる可能性があります。バージョン間の差が1年以上ある場合に予期される問題は次のとおりです: - クラスターが動作しない可能性がある - 一部またはすべてのクエリが任意のエラーで失敗する可能性がある - 任意のエラー/警告がログに表示される可能性がある - ダウングレードが不可能になる可能性がある ### インクリメンタルアップグレード 現在のバージョンとターゲットバージョンの差が1年以上ある場合、以下のいずれかを推奨します: - ダウンタイムを伴うアップグレード(すべてのサーバーを停止し、すべてのサーバーをアップグレードし、すべてのサーバーを実行)。 - または中間バージョンを経由してアップグレード(現在のバージョンより1年以上新しいバージョン)。 ## 推奨計画 ゼロダウンタイムのClickHouseアップグレードのための推奨ステップは次の通りです: 1. 設定の変更がデフォルトの`/etc/clickhouse-server/config.xml`ファイルではなく、`/etc/clickhouse-server/config.d/`にあることを確認してください。`/etc/clickhouse-server/config.xml`はアップグレード中に上書きされる可能性があります。 2. 対象リリースから現在のリリースまでの[変更履歴](/docs/ja/whats-new/changelog/index.md)を読んで、破壊的変更を確認してください。 3. アップグレード前に実施可能な破壊的変更に基づく更新を行い、アップグレード後に必要な変更のリストを作成します。 4. 各シャードの残りのレプリカをアップグレードする間に維持する1つ以上のレプリカを特定します。 5. アップグレードするレプリカについて、1つずつ: - ClickHouseサーバーをシャットダウンします。 - ターゲットバージョンにサーバーをアップグレードします。 - ClickHouseサーバーを立ち上げます。 - Keeperメッセージがシステムが安定していることを示すまで待ちます。 - 次のレプリカに進みます。 6. KeeperログおよびClickHouseログでエラーを確認します。 7. ステップ4で特定したレプリカを新しいバージョンにアップグレードします。 8. ステップ1から3で行った変更のリストを参照し、アップグレード後に行う必要のある変更を行います。 :::note 複数のバージョンのClickHouseがレプリケーション環境で実行されている場合、このエラーメッセージが期待されます。すべてのレプリカが同じバージョンにアップグレードされると、これらのエラーはなくなります。 ``` MergeFromLogEntryTask: Code: 40. DB::Exception: Checksums of parts don't match: hash of uncompressed files doesn't match. (CHECKSUM_DOESNT_MATCH) Data after merge is not byte-identical to data on another replicas. ``` ::: ## ClickHouseサーバーバイナリアップグレードプロセス ClickHouseを`deb`パッケージからインストールした場合、次のコマンドをサーバーで実行します: ```bash $ sudo apt-get update $ sudo apt-get install clickhouse-client clickhouse-server $ sudo service clickhouse-server restart ``` 推奨される`deb`パッケージ以外の方法でClickHouseをインストールした場合は、適切な更新方法を使用してください。 :::note シャードのすべてのレプリカがオフラインになる瞬間がない限り、複数のサーバーを一度に更新することができます。 ::: 古いバージョンのClickHouseを特定のバージョンにアップグレードする方法: 例として: `xx.yy.a.b`は現在の安定バージョンです。最新の安定バージョンは[ここ](https://github.com/ClickHouse/ClickHouse/releases)で見つけることができます。 ```bash $ sudo apt-get update $ sudo apt-get install clickhouse-server=xx.yy.a.b clickhouse-client=xx.yy.a.b clickhouse-common-static=xx.yy.a.b $ sudo service clickhouse-server restart ```