はじめに
HANA Serviceのサービス終了に伴い、移行ツールを用いてHANA Cloudへの移行を実施しました。
本記事では、移行ツールを用いた移行手順について紹介します。
移行手順
SAP HANA Cloudから「Manage Migrations」を選択
移行先のサブアカウントとスペースを選択し「Create Migration」を押下
Migrationの名前を設定し、移行するデータベースの種類を選択する。
移行元のBTPユーザIDとパスワードを入力
移行元のスペースとHANAインスタンスを選択し、DBユーザとパスワードを入力
DBユーザの権限不足によるエラー発生
ログインユーザ自身に権限を付与することは出来ない為、別のユーザでログインしてから実行する必要がある。今回はSYSTEMユーザでログインし以下のSQLでORG_PLANに権限を付与
GRANT SELECT ON _SYS_REPO.DELIVERY_UNITS TO <username>;
GRANT SELECT ON _SYS_REPO.ACTIVE_OBJECT TO <username>;
GRANT CATALOG READ TO <username>;
GRANT INIFILE ADMIN TO <username>;
GRANT TRUST ADMIN TO <username>;
GRANT CERTIFICATE ADMIN TO <username>;
GRANT CREATE REMOTE SOURCE TO <username>;
GRANT EXPORT TO <username>;
GRANT EXECUTE ON SYS.EXPORT_CATALOG_FOR_MIGRATION_DEV TO <username>;
DO BEGIN
SELECT * FROM PUBLIC.M_SERVICES WHERE SERVICE_NAME = 'diserver';
IF ::ROWCOUNT != 0
THEN
EXEC 'CREATE LOCAL TEMPORARY TABLE #PRIVILEGES LIKE _SYS_DI.TT_API_PRIVILEGES';
EXEC 'INSERT INTO #PRIVILEGES (PRINCIPAL_NAME, PRIVILEGE_NAME, OBJECT_NAME) SELECT ''<username>'', PRIVILEGE_NAME, OBJECT_NAME FROM _SYS_DI.T_DEFAULT_DI_ADMIN_PRIVILEGES';
EXEC 'CALL _SYS_DI.GRANT_CONTAINER_GROUP_API_PRIVILEGES_WITH_GRANT_OPTION(''_SYS_DI'', #PRIVILEGES, _SYS_DI.T_NO_PARAMETERS, ?, ?, ?)';
EXEC 'DROP TABLE #PRIVILEGES';
EXEC 'GRANT SELECT ON _SYS_DI.TT_API_PRIVILEGES to <username>';
EXEC 'GRANT SELECT ON _SYS_DI.T_DEFAULT_CONTAINER_GROUP_ADMIN_PRIVILEGES to <username>';
EXEC 'GRANT SELECT ON _SYS_DI.T_NO_PARAMETERS to <username>';
END IF;
END;
GRANT SELECT ON SCHEMA _SYS_STATISTICS TO <username>;
GRANT SELECT ON SCHEMA _SYS_BI TO <username>;
GRANT SAP_INTERNAL_HANA_SUPPORT TO <username>; -- Only required when migrating SAP HANA databases in the Neo environment
権限付与後にリトライ
互換性チェックが実行される
結果として Critical
Error
Warning
Info
の4つのレベルがあり、Criticalの場合は解消しなければ移行を行うことは出来ません。その他の場合は内容を確認し問題なければ先に進めることができます。
移行ユーザとして前処理で設定したDBユーザを利用する場合は、YESを選択する。
スキーマとHDIコンテナサービスインスタンスを移行する場合はYESを選択し、インスタンスの名(接頭辞・接尾辞)を設定する。
移行先のインスタンスを選択し、管理者パスワードを入力し移行を実行。
移行先と移行元でスペースが異なる場合、以下のようなエラーが発生。
スペースの共有設定を行う必要があります。
スペースの共有設定
HANA Cloud > HANA Cloud Central
インスタンス名のリンクを押下
Create Mappingを押下
対象のサブアカウント、スペースを選択し「Add」を押下
これでスペースの共有設定は完了です。
スペース共有設定後に再度移行実行。
スキーマ単位で権限が不足している場合以下のようなエラーが発生するため。以下のSQLで権限を付与
GRANT SELECT ON SCHEMA <schemaname> TO <username>
スキーマ権限付与後に再度移行実行し移行作業正常終了
特に移行時に問題がなければNoneを選択し移行作業完了
移行ユーザを削除する場合は一番下のチェックボックスにチェックを入れる。
最後に、移行中に実行されたタスクの概要が表示される。
まとめ
今回は移行ツールを用いた、HANA Cloudへの移行手順を記載しました。途中で権限設定などを行う必要はありますが、手順に沿って進めれば特に難しいことはなく、スキーマやHDIコンテナなど一括で移行を行うことができ、最も効率の良い方法だと思われますので、HANA Cloudへの移行には移行ツールを利用することをオススメします。