高度な移行は、ダウンタイムを短縮して大規模なデータベースのデータを移行するためのソリューションです。この機能は、AlloyDB Omni と PostgreSQL でのみ使用できます。
プロジェクト DB 管理者のロールを持つユーザーは、次の手順を行う必要があります。GDC コンソールまたは Distributed Cloud CLI を使用して移行を管理します。
コンソール
- メインメニューから [Database Service] を選択します。
- [移行を作成] をクリックします。
- [開始] ダイアログで、移行元と接続の要件を確認します。
- [移行元データベースを指定] ダイアログで、移行元データベースのホスト名または IP アドレス、ユーザー名、パスワード、暗号化のタイプ、証明書を指定します。
- [クラスタを構成する] ダイアログで、ターゲット データベース クラスタのクラスタ ID、パスワード、データベース バージョン、CPU、メモリ、ストレージ容量を指定します。最も大きなテーブルを保持するのに十分なメモリを選択してください。
- [作成] をクリックします。移行とターゲット データベース クラスタの作成には数分かかることがあります。クラスタの準備が完了すると、ステータスが
Reconciling
からReady
に変わります。移行が正常に設定されると、移行ステータスがUnsynced
に変わります。移行を管理するには、次のオプションを使用します。- 開始: 移行を開始し、移行ステータスを
Running
に変更します。 - 停止: 移行を停止し、移行ステータスを
Stopped
に変更します。 - プロモート: ターゲット データベース クラスタをスタンドアロン データベースにプロモートします。
- 削除: この移行用に作成された移行とターゲット データベース クラスタを削除します。
- 開始: 移行を開始し、移行ステータスを
次の手順で、ソース データベースのレプリケーション ユーザーのパスワードを定期的にローテーションします。
- [ソース データベース] に移動し、[編集] 編集 をクリックします。
- レプリケーション ユーザーのパスワードをローテーションする変更を行います。
- [保存] をクリックして変更を適用します。
変更が適用されると、移行バックエンドは新しいパスワードを使用します。
gdcloud
Distributed Cloud CLI を使用する前に、インストールして初期化します。次に、組織で認証します。
移行を作成するには:
gdcloud database connection-profiles create DB_ENGINE_TYPE SOURCE_CONNECTION_PROFILE \ --username REPLICATION_USERNAME \ --password REPLICATION_PASSWORD \ --ca-certificate CA_CERT_FILE_PATH gdcloud database migrations create MIGRATION_NAME \ --source SOURCE_CONNECTION_PROFILE \ --destination DESTINATION_DBCLUSTER gdcloud database clusters create DESTINATION_DBCLUSTER \ --database-version DB_VERSION \ --admin-password ADMIN_PASSWORD
次の変数を置き換えます。
DB_ENGINE_TYPE
: 移行のデータベース エンジン タイプ。サポートされている値はpostgresql
またはalloydbomni
です。SOURCE_CONNECTION_PROFILE
: 新しい接続プロファイルの名前。REPLICATION_USERNAME
: ソース データベースのレプリケーション ユーザーの名前。REPLICATION_PASSWORD
: ソース データベースのレプリケーション ユーザーのパスワード。CA_CERT_FILE_PATH
: ソース データベースの CA 証明書のパス。MIGRATION_NAME
: 新しい移行の名前。DESTINATION_DBCLUSTER
: ターゲット データベース クラスタの名前。DB_VERSION
: 新しいクラスタのバージョン文字列。例:POSTGRESQL_13
ADMIN_PASSWORD
: 新しいクラスタの管理者ユーザー パスワード。
移行を開始します。
gdcloud database migrations start MIGRATION_NAME
移行を停止する:
gdcloud database migrations stop MIGRATION_NAME
移行をプロモートする:
gdcloud database migrations promote MIGRATION_NAME
既存の connection-profiles を一覧表示します。
gdcloud database connection-profiles list DB_ENGINE_TYPE
既存の移行を一覧表示します。
gdcloud database migrations list --destination DESTINATION_DBCLUSTER
API
AlloyDB または PostgreSQL の移行元データベースの場合:
ソース データベースの CA 証明書を保存する Secret を作成します。
apiVersion: v1
data:
ca.crt: SOURCE_DB_CA_CERT
kind: Secret
metadata:
annotations:
propagation.gdch.gke.io/target-namespace: USER_PROJECT
name: es-crt-EXTERNAL_SERVER_NAME
namespace: USER_PROJECT
type: Opaque
ソース データベース移行ユーザーのパスワードを保存するシークレットを作成します。
apiVersion: v1
data:
password: SOURCE_DB_USER_PASSWORD
kind: Secret
metadata:
annotations:
propagation.gdch.gke.io/target-namespace: USER_PROJECT
name: es-pw-EXTERNAL_SERVER_NAME
namespace: USER_PROJECT
type: Opaque
externalserver を作成します。
apiVersion: DBENGINE_NAME.dbadmin.gdc.goog/v1
kind: ExternalServer
metadata:
name: EXTERNAL_SERVER_NAME
namespace: USER_PROJECT
spec:
host: SOURCE_DB_HOST
port: 5432
username: SOURCE_DB_USERNAME
password:
name: es-pw-EXTERNAL_SERVER_NAME
namespace: USER_PROJECT
certRef:
name: es-crt-EXTERNAL_SERVER_NAME
namespace: USER_PROJECT
移行を作成します。
apiVersion: DBENGINE_NAME.dbadmin.gdc.goog/v1
kind: Migration
metadata:
name: MIGRATION_NAME
namespace: USER_PROJECT
spec:
source:
reference:
apiVersion: DBENGINE_NAME.dbadmin.gdc.goog/v1
kind: ExternalServer
name: EXTERNAL_SERVER_NAME
target:
reference:
apiVersion: DBENGINE_NAME.dbadmin.gdc.goog/v1
kind: DBCluster
name: DBCLUSTER_NAME
control: MIGRATION_CONTROL
次の変数を置き換えます。
EXTERNAL_SERVER_NAME
: ソース データベースを表す externalserver の名前。USER_PROJECT
: externalserver が作成されるユーザー プロジェクトの名前。DBENGINE_NAME
: データベース エンジンの名前。alloydbomni
またはpostgresql
のいずれかです。SOURCE_DB_CA_CERT
: ソース データベースの CA 証明書。SOURCE_DB_USER_PASSWORD
: ソース データベースの移行ユーザー パスワード。SOURCE_DB_USERNAME
: ソース データベースの移行ユーザー名。SOURCE_DB_HOST
: ソース データベースの移行ホストアドレス。MIGRATION_NAME
: 移行オペレーションの名前。DBCLUSTER_NAME
: 移行先のデータベース クラスタの名前。MIGRATION_CONTROL
: 移行オペレーションの制御。移行が作成されると、start
またはstop
のいずれかになります。移行先データベース クラスタをプロモートするには、promote
にする必要があります。