デプロイとメンテナンス / バックアップと移行
この記事では、DataFlux Func データのバックアップと移行方法について主に説明します。
1. データベースのバックアップ
DataFlux Func はデータベースを自動的に定期的に .sql ファイルとしてバックアップし、DataFlux Func データベースのバックアップディレクトリ に保存します。
この機能は mysqldump を使用してデータベースをバックアップします。データベースに接続する MySQL ユーザーには、正常にバックアップするための十分な権限が必要です。具体的には次の権限が含まれます。
SELECTRELOADLOCK TABLESREPLICATION CLIENTSHOW VIEWPROCESS
自動バックアップの内容には次のものが含まれます。
- データベースのテーブル構造一式
- ログ、操作記録を除くすべてのデータ
デフォルトでは、データベースのバックアップファイルの保存場所は次のとおりです。
| 環境 | 場所 |
|---|---|
| コンテナ内 | /data/sqldump/ |
| ホスト内 | {インストールディレクトリ}/data/sqldump/ |
デフォルトでは、データベースのバックアップファイルは毎時0分に1回バックアップされ、最大7日間(合計168ファイル)保持されます。ファイル命名規則は次のとおりです。
| Text Only | |
|---|---|
1 | |
2. データベースのエクスポート / インポート
DataFlux Func に組み込まれている定期データベースバックアップに加えて、mysqldump を直接使用してデータをエクスポートおよびインポートすることもできます。
2.1 データのエクスポート
エクスポート操作の参考コマンドは次のとおりです。
| Bash | |
|---|---|
1 | |
2.2 データのインポート
インポート操作の参考コマンドは次のとおりです。
| Bash | |
|---|---|
1 | |
3. データベースの移行
システムインストール後に最初のスタンドアロン検証フェーズを通過している場合は、データベースを外部データベース(例:Alibaba Cloud RDS、Redis)に切り替える必要があります。以下の手順に従って操作してください。
外部データベースを使用する場合、MySQL のバージョンが 5.7 以上、Redis のバージョンが 5.0 以上であることを確認してください。
DataFlux Func はクラスタ構成の Redis をサポートしていません
3.1 環境の確認
外部データベースインスタンスにデータベースを作成し、以下の設定項目が満たされていることを確認してください。
innodb-large-prefix=oncharacter-set-server=utf8mb4collation-server=utf8mb4_unicode_ci
3.2 データのインポート
上記の「データベースのバックアップ」に従って、直近の MySQL データベースのバックアップファイルを見つけ、外部データベースにインポートします。
3.3 DataFlux Func 設定の変更
DataFlux Func 設定 user-config.yaml を探し、実際の状況に応じて以下のフィールド項目を追加 / 変更してください。
| YAML | |
|---|---|
1 2 3 4 5 6 7 8 9 10 11 12 13 | |
3.4 Docker Stack 設定の変更
Docker Stack 設定 docker-stack.yaml を探し、その中の MySQL と Redis に関連する部分を削除します(コメントアウトするだけで構いません)
3.5 DataFlux Func を再起動
デプロイとメンテナンス / アップグレードと再起動 に従って、DataFlux Func 全体を再起動します
4. インストールディレクトリの変更
状況によっては、DataFlux Func をインストールした元のディスク容量が不足し、インストールディレクトリを新しい大容量ディスクに変更する必要がある場合があります。
その場合は、次の操作手順に従ってインストールディレクトリを変更できます。
4.1 DataFlux Func を停止
docker stack rm dataflux-funcコマンドを使用して、DataFlux Func を停止します(この手順には時間がかかる場合があります)docker psを使用して、すべてのコンテナが終了していることを確認しますcp {インストールディレクトリ} {新しいインストールディレクトリ}コマンドを使用して、DataFlux Func のインストールディレクトリ全体を新しい場所にコピーします。/etc/dataflux-funcを開き、そこに記録されているインストールディレクトリを新しいインストールディレクトリに変更します。- Docker Stack 設定の変更
Docker Stack 設定 docker-stack.yaml を探し、すべての volumes でインストールディレクトリに関連する内容を新しいインストールディレクトリに変更します。例:
| Diff | |
|---|---|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | |
docker stack deploy dataflux-func -c {インストールディレクトリ}/docker-stack.yaml --resolve-image neverを使用して、すべてのサービスを再起動します
インストールパッケージ内のイメージファイルは既にローカルにインポートされているため、--resolve-image never パラメータを追加することで、Docker がコンテナ起動時に無意味なイメージチェックを行うのを防ぐことができます