ローカルTiDBクラスタを迅速にデプロイ
TiDBクラスタは、複数のコンポーネントで構成される分散システムです。一般的なTiDBクラスタは、少なくとも3つのPDノード、3つのTiKVノード、および2つのTiDBノードで構成されます。TiDBをすぐに試してみたい場合、これほど多くのコンポーネントを手動でデプロイするのは時間と手間がかかるかもしれません。このドキュメントでは、 TiUPのプレイグラウンドコンポーネントと、それを使用してローカルのTiDBテスト環境を迅速に構築する方法について説明します。
TiUP遊具施設の概要
プレイグラウンドコンポーネントの基本的な使用方法を以下に示します。
tiup playground ${version} [flags]
tiup playgroundコマンドを直接実行すると、 TiUP はローカルにインストールされている TiDB、TiKV、および PD コンポーネントを使用するか、これらのコンポーネントの安定版をインストールして、1 つの TiKV インスタンス、1 つの TiDB インスタンス、1 つの PD インスタンス、および 1 つのTiFlashインスタンスで構成される TiDB クラスタを起動します。
このコマンドは実際には以下の操作を実行します。
- このコマンドではプレイグラウンドコンポーネントのバージョンが指定されていないため、 TiUP はまずインストールされているプレイグラウンドコンポーネントの最新バージョンを確認します。最新バージョンが v1.12.3 であると仮定すると、このコマンドは
tiup playground:v1.12.3と同じように動作します。 - TiUP playgroundを使用してTiDB、TiKV、およびPDコンポーネントをインストールしていない場合、playgroundコンポーネントはこれらのコンポーネントの最新の安定版をインストールし、その後これらのインスタンスを起動します。
- このコマンドでは TiDB、PD、TiKVコンポーネントのバージョンが指定されていないため、 TiUP playground はデフォルトで各コンポーネントの最新バージョンを使用します。最新バージョンが v8.5.4 であると仮定すると、このコマンドは
tiup playground:v1.12.3 v8.5.4と同じように動作します。 - このコマンドでは各コンポーネントの数を指定しないため、 TiUP playground はデフォルトで、TiDB インスタンス、TiKV インスタンス、PD インスタンス、 TiFlashインスタンスがそれぞれ 1 つずつで構成される最小のクラスタを起動します。
- TiDB の各コンポーネントを起動した後、 TiUPプレイグラウンドはクラスターが正常に起動したことを通知し、MySQL クライアントを介して TiDB クラスターに接続する方法や、 TiDBダッシュボードにアクセスする方法など、いくつかの有用な情報を提供します。
プレイグラウンドコンポーネントのコマンドラインフラグを表示するには、次のコマンドを使用できます。
tiup playground --help
例
利用可能なTiDBバージョンを確認してください
tiup list tidb
特定のバージョンのTiDBクラスタを起動する
tiup playground ${version}
${version}対象のバージョン番号に置き換えてください。
ナイトリーバージョンのTiDBクラスタを起動します
tiup playground nightly
上記のコマンドにおいて、 nightly TiDBの最新開発バージョンを示します。
PDのデフォルト設定を上書きする
まず、 PD構成テンプレートをコピーする必要があります。コピーしたファイルを~/config/pd.tomlに配置し、必要に応じて変更を加えたと仮定すると、次のコマンドを実行して PD のデフォルト設定を上書きできます。
tiup playground --pd.config ~/config/pd.toml
デフォルトのバイナリファイルを置き換える
デフォルトでは、プレイグラウンドが起動されると、各コンポーネントは公式ミラーのバイナリファイルを使用して起動されます。テストのために一時的にコンパイルされたローカルバイナリファイルをクラスタに配置したい場合は、置換フラグ--{comp}.binpathを使用できます。たとえば、TiDB のバイナリファイルを置き換えるには、次のコマンドを実行します。
tiup playground --db.binpath /xx/tidb-server
複数のコンポーネントインスタンスを起動する
デフォルトでは、TiDB、TiKV、PDの各コンポーネントに対して1つのインスタンスのみが起動されます。各コンポーネントに対して複数のインスタンスを起動するには、次のフラグを追加してください。
tiup playground --db 3 --pd 3 --kv 3
TiDBクラスタの起動時に、データを保存するタグを指定します。
TiUP playground を使用して起動した TiDB クラスタを停止すると、クラスタデータもすべてクリーンアップされます。TiUP playground を使用してTiUPクラスタを起動し、クラスタデータが自動的にクリーンアップされないようにするには、クラスタ起動時にタグを指定できます。タグを指定すると、クラスタデータは~/.tiup/dataディレクトリに保存されます。タグを指定するには、次のコマンドを実行します。
tiup playground --tag ${tag_name}
このように起動したクラスターの場合、クラスター停止後もデータファイルは保持されます。次回クラスターを起動する際にこのタグを使用することで、クラスター停止以降に保持されたデータを利用することができます。
TiDBダッシュボードとGrafanaにアクセスする
TiUP playgroundを使用してTiDBクラスタを起動すると、ブラウザで次のアドレスにアクセスすることで、 TiDBダッシュボードとGrafanaにアクセスできます。
TiDBダッシュボード:
http://127.0.0.1:2379/dashboard- デフォルトのユーザー名:
root - デフォルトパスワード: `
(空欄の場合は、直接Enter`を押してください)
- デフォルトのユーザー名:
グラファナ:
http://127.0.0.1:3000- デフォルトのユーザー名:
admin - デフォルトパスワード:
admin
- デフォルトのユーザー名:
注記:
TiDB
rootユーザーのパスワードを変更した場合は、新しいパスワードを使用してTiDBダッシュボードにログインしてください。
playground で起動した TiDB クラスターにすばやく接続します
TiUPは、playgroundによって起動されたローカルTiDBクラスタを自動的に検出して接続するために使用されるclientコンポーネントを提供します。使用方法は以下のとおりです。
tiup client
このコマンドを実行すると、コンソールに、現在のマシン上でplaygroundによって起動されたTiDBクラスタの一覧が表示されます。接続するTiDBクラスタを選択してください。Enterキーを押すと、TiDBに接続するための組み込みのMySQLクライアントが開きます。
起動したクラスターの情報をビュー
tiup playground display
上記のコマンドを実行すると、以下の結果が返されます。
Pid Role Uptime
--- ---- ------
84518 pd 35m22.929404512s
84519 tikv 35m22.927757153s
86189 tidb exited
86526 tidb 34m28.293148663s
クラスターをスケールアウトする
クラスタをスケールアウトするためのコマンドラインパラメータは、クラスタを起動するためのパラメータと似ています。以下のコマンドを実行することで、2つのTiDBインスタンスをスケールアウトできます。
tiup playground scale-out --db 2
クラスタースケールイン
対応するインスタンスでスケールするには、 tiup playground scale-inコマンドでpidを指定できます。5 pid表示するには、 tiup playground display実行します。
tiup playground scale-in --pid 86526
TiProxyをデプロイ
TiProxyはPingCAPの公式プロキシコンポーネントであり、クライアントとTiDBサーバーの間に配置され、TiDBの負荷分散、接続の永続性、サービス検出、およびその他の機能を提供します。
TiUP v1.15.0以降では、 TiUP Playgroundを使用してクラスターにTiProxyをデプロイできます。
ファイル
tidb.tomlを作成し、以下の設定を追加してください。graceful-wait-before-shutdown=15この設定項目は、TiDBがサーバーをシャットダウンするまでの待機時間(秒単位)を制御し、クラスタのスケールイン操作中にクライアントが切断されるのを防ぎます。
TiDBクラスタを起動します。
tiup playground v8.5.4 --tiproxy 1 --db.config tidb.tomlプレイグラウンドコンポーネントにおけるTiProxy関連のコマンドラインフラグは以下のとおりです。
Flags: --tiproxy int The number of TiProxy nodes in the cluster. If not specified, TiProxy is not deployed. --tiproxy.binpath string TiProxy instance binary path. --tiproxy.config string TiProxy instance configuration file. --tiproxy.host host Playground TiProxy host. If not provided, TiProxy will still use host flag as its host. --tiproxy.port int Playground TiProxy port. If not provided, TiProxy will use 6000 as its port. --tiproxy.timeout int TiProxy maximum wait time in seconds for starting. 0 means no limit (default 60). --tiproxy.version string The version of TiProxy. If not specified, the latest version of TiProxy is deployed.
TiProxyのデプロイと使用方法の詳細については、 TiProxyのインストールと使用方法参照してください。
TiProxyクライアントプログラムtiproxyctlを使用するには、 TiProxy Controlをインストールする参照してください。
PDマイクロサービスをデプロイ
バージョン8.2.0以降、 PDマイクロサービスモード (実験的)はTiUPを使用してデプロイできます。TiUP Playgroundを使用して、クラスター用にtsoマイクロサービスとschedulingマイクロサービスを次のようにデプロイできます。
tiup playground v8.5.4 --pd.mode ms --pd 3 --tso 2 --scheduling 2
--pd.mode:これをmsに設定すると、PDのマイクロサービスモードが有効になります。--pd <num>: PDマイクロサービスのAPIの数を指定します。少なくとも1ある必要があります。--tso <num>:tsoマイクロサービスにデプロイするインスタンスの数を指定します。--scheduling <num>:schedulingマイクロサービスにデプロイするインスタンスの数を指定します。