DB2 Storage Access Alias を AWS S3に設定すれば、バックアップイメージ およびアーカイブログをS3に直接置けるようになります。
当記事ではその方法を説明します。
前提
- Db2 LUW v11.1.4.5以上
- Amazon S3 バケット作成済み、そのバケットにアクセス可能なIAMポリシー、IAMユーザー、アクセスキーとシークレットキー作成済み
当記事ではLinuxでの設定方法を記載します。 Windowsでもほぼ同じかと思います。
実行環境はインスタンスIDをdb2isnt1
、instance homeを/home/db2inst1
とし、db2inst1でログイン済み(db2関連のpathなどが設定済み)の状態です。
1. リモート・ストレージ・アカウント資格情報のキーストアを作成
インスタンスが Db2 ネイティブ暗号化用に構成されていない場合は、ストレージ・アクセス別名を作成する前に、リモート・ストレージ・アカウント資格情報の鍵ストアを作成する必要があります。
参考:
1.1 キー・ストアを置くディレクトリーの作成
cd
mkdir keystores
1.2 キー・ストアの作成
gsk8capicmd_64 -keydb -create -db "<パスを含むキー・ストアファイル名>" -pw "<キー・ストアのパスワード>" -type pkcs12 -stash -pqc false
実行例
gsk8capicmd_64 -keydb -create -db "/home/db2inst1/keystores/ne-keystore.p12" -pw "xxxxxxxxxxxx" -type pkcs12 -stash -pqc false
上記を実行すると/home/db2inst1/keystores/
に以下の2つのファイルが作成されます:
ne-keystore.p12
ne-keystore.sth
1.3 データベース・マネージャー構成パラメーターを設定( keystore_type と keystore_location)
以下のコマンドを実行します
db2 "update dbm cfg using keystore_location <パスを含むキー・ストアファイル名> keystore_type pkcs12"
実行例
$ db2 "update dbm cfg using keystore_location /home/db2inst1/keystores/ne-keystore.p12 keystore_type pkcs12"
DB20000I The UPDATE DATABASE MANAGER CONFIGURATION command completed
successfully.
SQL1362W One or more of the parameters submitted for immediate modification
were not changed dynamically. Client changes will not be effective until the
next time the application is started or the TERMINATE command has been issued.
Server changes will not be effective until the next DB2START command.
1.4 Db2再起動
db2stop
db2start
2. Storage Access Aliasを作成
以下のコマンドを実行します
db2 "CATALOG STORAGE ACCESS ALIAS <Storage Access Alias名> VENDOR S3
SERVER <s3エンドポイント>
USER <S3アクセスキー>
PASSWORD <S3シークレットキー>"
実行例:
db2 "CATALOG STORAGE ACCESS ALIAS awss3jp VENDOR S3
SERVER s3.ap-northeast-1.amazonaws.com
USER YYYYYYYYYYYYYYYYYY
PASSWORD XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
確認:以下のコマンドを実行してStorage Access Aliasのリストを表示します
db2 list storage access
実行例:
$ db2 list storage access
Node Directory
Node 1 entry:
ALIAS=awss3jp
VENDOR=S3
SERVER=s3.ap-northeast-1.amazonaws.com
USERID=****
CONTAINER=
OBJECT=
DBUSER=
DBGROUP=SYSADM
Number of entries in the directory = 1
DB20000I The LIST STORAGE ACCESS command completed successfully.
$
これでDb2 Storage Access Alias を AWS S3に設定できました!
3. Storage Access Aliasの使用例
使用例1:
バックアップ先として: DB2REMOTE://<Storage Access Alias名>/<S3 bucket名>/<S3 PATH>'
で指定します
db2 backup database sample1 to DB2REMOTE://<Storage Access Alias名>/<S3 bucket名>/<S3 PATH>
実行例:
db2 backup database sample1 to DB2REMOTE://awss3jp/japan-db2-01/offline_backup/20241003
使用例2:
アーカイブ・ログの保管先として: DB2REMOTE://<Storage Access Alias名>/<S3 bucket名>/<S3 PATH>'
で指定します
db2 update db cfg for SAMPLE1 using LOGARCHMETH1 'DB2REMOTE://<Storage Access Alias名>/<S3 bucket名>/<S3 PATH>'
実行例:
db2 update db cfg for SAMPLE1 using LOGARCHMETH1 'DB2REMOTE://awss3jp/japan-db2-01/sample1_archived_logs/'
アーカイブ・ログの保管先としてS3を指定した場合、PRUNE HISTORY コマンドに AND DELETE パラメーターを指定する方法やPRUNE LOGFILEコマンドでの削除できないようなので、不要なファイルは手動(AWS CLIなど)にて削除する必要があるようです。
以上です。