11.4.16 マルチチャンク表を再編成する方法(サンプルシェルを使用して再編成する場合)
HADBでは,マルチチャンク表のチャンクのうち,再編成が必要なチャンクをチャンク単位で再編成するサンプルシェル($ADBDIR/sample/reorg_column_sample.sh)を提供しています。ここでは,このサンプルシェルを使用した再編成の手順と,サンプルシェルが実行する処理について説明します。
- 重要
-
-
マルチチャンク表がカラムストア表である場合に限り,このサンプルシェルを使用できます。マルチチャンク表がローストア表の場合は,このサンプルシェルは使用できません。
-
このサンプルシェルは,あくまでサンプルであり,動作保証はしていません。使用する前に必ずサンプルシェルの内容を確認し,必要に応じて修正してください。サンプルシェルの内容を確認しないで使用し,エラーが発生した場合は,データベースが破壊されるおそれがあります。
-
サンプルシェルを使用した場合,再編成中の表にアクセスすることはできません。
-
(1) サンプルシェルを使用した表の再編成手順
サンプルシェルを使用した表の再編成手順を次に示します。
- 手順
-
-
データ用DBエリアの空き容量を確認する
サンプルシェルを実行するには,再編成対象の表を格納しているデータ用DBエリアに,カレントチャンクに格納されているデータ容量分の空き容量が必要になります。
データ用DBエリアの空き容量が不足している場合は,「11.11.6 データ用DBエリアの空き容量を確保する方法」を参照して,空き容量不足を解消してください。
-
作業用ディレクトリを準備する
必ず,空のディレクトリを準備してください。HADBサーバが,表の再編成処理中に作成するファイルがこのディレクトリに格納されます。
-
サンプルシェルを実行する
サンプルシェルのコマンドの形式を次に示します。
■サンプルシェルのコマンドの形式
reorg_column_sample.sh user password schema table workdir
表11‒8 引数に指定する内容 項番
引数
指定する内容
1
user
HADBユーザの認可識別子を指定します。
2
password
HADBユーザのパスワードを指定します。
3
schema
再編成対象のカラムストア表のスキーマ名を指定します。
4
table
再編成対象のカラムストア表の表名を指定します。
5
workdir
作業用ディレクトリを指定します。必ず,空のディレクトリを指定してください。
サンプルシェルの実行時,作業用ディレクトリ下に次のファイルが生成されます。サンプルシェルが最後まで正常に実行されると,すべてのファイルが削除されます。
-
adbdbstatusコマンドの実行結果
-
出力データパスファイル
-
再編成するチャンクの出力データファイル
-
空のチャンク作成用の入力データファイル
-
空のチャンク作成用の入力データパスファイル
-
-
- 例題
-
サンプルシェルを使用して,カラムストア表のデータをチャンク単位に再編成します。表名などは次のとおりとします。
-
認可識別子,スキーマ名:ADBUSER01
-
パスワード:ADBPASSWORD
-
処理対象のカラムストア表:T1
-
作業用ディレクトリ:/home/adbmanager/work_dir
■サンプルシェルのコマンドの指定例
reorg_column_sample.sh ADBUSER01 ADBPASSWORD ADBUSER01 T1 /home/adbmanager/work_dir
-
- 重要
-
-
サンプルシェルの内部で呼び出す各コマンドでエラーが発生した場合は,エラーの内容を必ず確認してください。そして,必要に応じて対策してから,サンプルシェルを使用してください。
-
サンプルシェルのコマンドの引数の指定(ユーザ名や,表名など)中に空白を含む場合は,サンプルシェルを使用しないでください。
-
(2) サンプルシェルによって実行される処理
サンプルシェルを実行すると,再編成対象の表へのアクセスを停止し,再編成が必要なすべてのチャンクを再編成します。
サンプルシェルによって実行される処理の流れを次に示します。
■処理の流れ
-
adbchgsrvmode --offlineコマンドが実行されて,HADBサーバの稼働モードがオフラインモードに変更されます。
オフラインモードの詳細については,「10.2.3 HADBサーバの稼働モード」を参照してください。
-
現在のカレントチャンクのチャンクに設定されたコメント,チャンクID,およびチャンクの状態が取得されます。
-
次のadbdbstatusコマンドが実行されて,再編成が必要なチャンクのチャンクIDが取得されます。
adbdbstatus -d reorginfo -n 処理対象のカラムストア表 -t
-
3.で取得したチャンクのうち,カレントチャンク以外のチャンクに対して,次に示す処理a.~処理d.が順に繰り返されます。
-
再編成対象のチャンクに設定されたコメント,およびチャンクの状態が取得されます。
-
再編成対象のチャンクのデータがエクスポートされます。
-
再編成対象のチャンクのデータが削除されます。
-
処理b.でエクスポートされたデータがインポートされます。このとき,処理a.で取得されたチャンクのコメント,およびチャンクの状態に合わせてインポートが実行されます。
-
-
2.で取得されたカレントチャンクが再編成対象の場合は,カレントチャンクに対して4.の処理a.~処理d.が実行されます。2.で取得されたカレントチャンクが再編成対象でない場合は,空のチャンクが作成されて,カレントチャンクとマージされます。
-
adbchgsrvmode --normalコマンドが実行されて,HADBサーバの稼働モードが通常モードに変更されます。