7.7.3 バージョンアップ後に実施すること
HADBサーバをバージョンアップしたあとで実施することを次に示します。
HADBサーバのバージョンアップ後,旧バージョンに戻したい場合は,「7.8 HADBサーバのバージョンダウン(旧バージョンに戻す方法)」を参照してください。
- 〈この項の構成〉
(1) データベースのバックアップを取得する
バージョンアップが完了したデータベースのフルバックアップを取得することを推奨します。バージョンアップが完了したデータベースのフルバックアップを取得しておくことで,バックアップから回復する場合に,バージョンアップの完了直後の状態に回復できます。
(2) HADBクライアントをバージョンアップする
HADBサーバのバージョンアップが完了したら,HADBクライアントもバージョンアップしてください。HADBクライアントが,HADBサーバと同じバージョンでない場合,HADBサーバに接続できません。
HADBクライアントのバージョンアップについては,マニュアル「HADB AP開発ガイド」の「HADBクライアントの環境設定」を参照してください。
(3) HADBユーザのパスワードと権限を見直す(バージョン02-00)
バージョン02-00のHADBサーバからバージョンアップした場合,ディクショナリ表(実表)のSQL_SCHEMATA表に格納されているスキーマ名を基に,HADBユーザが作成されます。作成されるHADBユーザの認可識別子およびパスワードは,スキーマ名と同じになります。また,作成されるHADBユーザには,DBA権限,CONNECT権限,およびスキーマ定義権限が付与されます。
そのため,まず,すべてのHADBユーザのパスワードを変更してください。定義系SQLのALTER USER文で変更できます。HADBユーザのパスワードの変更については,「10.6.2 HADBユーザのパスワードを変更する方法」を参照してください。
次に,すべてのHADBユーザが持っている権限を必ず確認してください。HADBユーザが不要な権限を持っている場合は,定義系SQLのREVOKE文で権限を取り消してください。権限の取り消しについては,「10.7.3 HADBユーザが持っているユーザ権限とスキーマ操作権限を取り消す方法」を参照してください。
(4) HADBユーザの権限を見直す(バージョン03-00より前のバージョン)
バージョン03-00より前のバージョンのHADBサーバからバージョンアップした場合,HADBユーザに付与されているスキーマ定義権限が必要かどうかを確認してください。
スキーマ定義権限が不要なHADBユーザ(例えば,自分ではデータベースを作成しないで,ほかのHADBユーザが作成したデータベースの検索だけを行うHADBユーザ)が存在する場合は,定義系SQLのREVOKE文で権限を取り消してください。権限の取り消しについては,「10.7.3 HADBユーザが持っているユーザ権限とスキーマ操作権限を取り消す方法」を参照してください。
(5) HADBユーザの権限を見直す(バージョン03-02以降のバージョン)
バージョン03-02以降のバージョンのHADBサーバにバージョンアップした場合,次に示すHADBユーザのアクセス権限を見直してください。
- ■アクセス権限を見直す必要があるHADBユーザ
-
-
バージョンアップする前に,定義系SQLのGRANT文のALL PRIVILEGES指定でアクセス権限を付与されたHADBユーザ
-
バージョン03-02以降のバージョンで,新しい種類のアクセス権限がサポートされた場合,HADBサーバをバージョンアップすると,次に示すHADBユーザだけに,新しい種類のアクセス権限が自動的に付与されます。
-
スキーマオブジェクト(ビュー表を除く)の所有者であるHADBユーザ
-
ビュー表の所有者であるHADBユーザ(ただし,ビュー表のすべての基表の所有者である場合に限る)
そのため,アクセス権限を見直す必要があるHADBユーザには,HADBサーバをバージョンアップしたときに新しいアクセス権限は付与されません。
アクセス権限を見直す必要があるHADBユーザの概要を,次の図に示します。
|
|
アクセス権限を見直す必要があるHADBユーザに,新しい種類のアクセス権限も含めたすべてのアクセス権限を付与したい場合は,再度GRANT文のALL PRIVILEGES指定でアクセス権限を付与してください。アクセス権限の付与については,「10.8.1 HADBユーザにアクセス権限を付与する方法」を参照してください。
(6) 一意性制約違反状態かどうかを確認する
バージョン02-02より前のバージョンのHADBサーバからバージョンアップした場合,ユニークインデクスが一意性制約を満たしているかどうかが不明の状態になります。そのため,ユニークインデクスが一意性制約を満たしているかどうかを,次に示すどちらかの方法で確認してください。
-
コマンドを使用して確認する
-
ユニークインデクスを再作成する
ユニークインデクスが定義された表に対して,adbidxrebuildコマンドを実行して,ユニークインデクスを再作成してください。adbidxrebuildコマンドについては,マニュアル「HADB コマンドリファレンス」の「adbidxrebuild(インデクスの再作成)」を参照してください。
-
一意性制約違反状態かどうかを確認する
adbdbstatusコマンドで,対象のユニークインデクスが一意性制約違反状態かどうかを確認してください。詳細については,「9.8.3 B-treeインデクスの状態や使用量を確認したい場合」を参照してください。
-
-
SELECT文を使用して確認する
対象のユニークインデクスが定義された表に対してSELECT文を実行して,重複したキー値を検索してください。重複したキー値を検索するSELECT文の指定例については,「13.9.2(2) 一意性制約違反状態を解除する方法」を参照してください。
ユニークインデクスが一意性制約を満たしていない場合(一意性制約違反状態の場合)は,「13.9.2 一意性制約に違反した場合の対処方法(KFAA61205-Wメッセージが出力された場合)」を参照して,一意性制約違反状態を解除してください。
なお,ユニークインデクスが一意性制約を満たしているかどうかが不明の状態である場合,HADBサーバは,ユニークインデクスが一意性制約を満たしていると仮定して,アクセスパスを構築します。