データベース

データベース

Networking サービスのデータベースのアップグレードは、一連の Alembic の移行ルールとして実装されています。 alembic/versions の移行ルール (migration) には、Networking サービスの古いリリースから新しいリリースへの移行に必要な変更が入っています。

Liberty 以降、 Networking サービスでは 2 つの独立した Alembic の移行ブランチを持っています。

1 つめのブランチは expand (拡張) と呼ばれ、拡張のみの移行ルールを格納するのに使用されます。これらのルールは追加処理のみであり、Neutron サーバーの実行中に適用できます。

2 つめのブランチは contract (縮小) と呼ばれ、 Neutron サーバーの実行中には安全に適用できない移行ルールが格納されます。

別々のブランチを持つ理由は、 Neutron サーバーの実行中に expand ブランチの安全な移行ルールを適用し、サービスのアップグレードに必要な停止時間を減らすことにあります。

データベース移行コマンドラインツールは、Alembic ライブラリーを使って移行ルールを管理しています。

データベース管理コマンドラインツール

データベース管理コマンドラインツールは neutron-db-manage という名前です。使用方法を表示するには :option:`–help`を指定してください。

このツールでは、オプションの後にコマンドが続きます。

$ neutron-db-manage <options> <commands>

このツールでは、 OpenStack 環境の設定ファイル neutron.conf で指定されるデータベース接続の文字列オプションが必要です。 /etc/neutron/neutron.conf が存在する場合は、自動的にこのファイルから設定を読み込みます。設定ファイルが別の場所にある場合は、以下のコマンドを使用します。

$ neutron-db-manage --config-file /path/to/neutron.conf <commands>

必要であれば、複数の --config-file オプションを渡すことができます。

設定ファイルから DB 接続設定を読み取る代わりに、 --database-connection オプションを使うこともできます。

$ neutron-db-manage --database-connection
  mysql+pymysql://root:secret@127.0.0.1/neutron?charset=utf8 <commands>

コマンド branchescurrenthistory では --verbose オプションが利用できます。指定すると、 neutron-db-manage は指定されたコマンドで詳細な出力を行います。

$ neutron-db-manage current --verbose

注釈

以下のツールの実行例ではオプションは記載していません。必要な場合はオプションを指定してください。

新規のデプロイメントでは、空のデータベースから始め、以下のコマンドを使って最新のデータベースバージョンまでアップグレードします。

$ neutron-db-manage upgrade heads

新しいバージョンの neutron サーバーのインストール後は、以下のコマンドを使ってデータベースをアップグレードします。

$ neutron-db-manage upgrade heads

既存のデプロイメントでは、以下のコマンドを使って現在のデータベースのバージョンを確認します。

$ neutron-db-manage current

拡張の移行ルールを適用するには、以下のコマンドを使用します。

$ neutron-db-manage upgrade --expand

拡張以外の移行ルールを適用するには、以下のコマンドを使用します。

$ neutron-db-manage upgrade --contract

適用待ちの contract (縮小) 移行ルールがあり、オフラインでの移行が必要かを確認するには、以下のコマンドを実行します。

$ neutron-db-manage has_offline_migrations

注釈

オフライン移行を行うには、 contract スクリプトを適用する前に、クラスター内のすべての Neutron サーバーをシャットダウンする必要があります。

データベースを直接操作せず、代わりにコマンドスクリプトを生成するには、以下のコマンドを実行します。

$ neutron-db-manage upgrade heads --sql

.. note::

   The `--sql` option causes the command to generate a script.  The script
   can be run later (online or offline), perhaps after verifying and/or
   modifying it.

指定したバージョン間の移行を行うには、以下のコマンドを実行します。

$ neutron-db-manage upgrade <start version>:<end version>

データベースのアップグレードを少しずつ行うには、以下のコマンドを使用します。

$ neutron-db-manage upgrade --delta <# of revs>

注釈

データベースのダウングレードはサポートされていません。

Creative Commons Attribution 3.0 License

Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.