はじめに
DB2でCSVファイルをロード後にテーブルにアクセスしようとすると「SQL0290N 表スペース・アクセスが許されていません。 SQLSTATE=55039」とエラーが出ることがあった。
解決方法
表スペース・アクセスが許されていませんを調べてみるとどうやらロード後にテーブルスペースがバックアップ・ペンディング状態になっているようであった。
テーブルスペースを調べるコマンドは以下の通り。
1 | db2 list tablespaces show detail |
状態がバックアップペンディングになっているテーブルスペースがあればそれが原因。
この状態を解除するには一度バックアップを取得する必要があるらしい。 バックアップするには以下のコマンドを実行する。
1 | db2 backup db DB名 tablespace (テーブルスペース名) online to /dev/null |
実行後に再びテーブルスペースの状態を確認するとバックアップペンディング状態は解除され、正常と表示されているはず。テーブルスペースが複数バックアップペンディング状態の場合はすべてのテーブルスペースでバックアップを行う。
テストデータだったのでバックアップ先は/dev/nullとして捨ててしまっているが、必要であればバックアップ先を指定してください。
以上です。