所有権を主張されて、間借り扱いになってやっとれんヽ(`Д´)ノウワァァァン
こんなDB、出て行ってやる!!
・backup/restoreで余裕っすよ
オフラインバックアップ、redirect リストアを実施した。
インスタンスオーナーもややこしい共有管理人的な名前じゃなく、俺様名にした。
バックアップは普通にbackupコマンドで、リストアはちょっと前に書いた
generate scriptから。
restoreが正常に完了し、( ´Д`)ホレホレ 余裕っすよ。
db2 "list tables"
--------
0
( ; ゚Д゚)
あぁ、スキーマね、インスタンスオーナー変えたからデフォルトスキーマが変わったからさね。はいはい。
set current schema "まえのやつ"
db2 "list tables"
-------
てーぶるほげ
てーぶるふが
よしよし。中身は、と
db2 "select count(*) from hoge"
SQL551N おまいは操作する権利ないよ。m9(^Д^)
馬鹿こくでない。俺様はインスタンスオーナー様様だぞ?SYSADMだぞ?
くっそー。いちいち権限つけて回るのも面倒だなぁ。このやり方やめよう。
db2 "drop db hoge"
・db2moveで余裕っすよ
db2moveという「こんなこともあろうかと」的な真田さんツールがあるので
db2move dbname export
で取り出し、db2move.lstのスキーマ名のところをsedして
db2move dbname import
*IMPORT: table "SYSTOOLS"."HMON_ATM_INFO"
**ERROR -3021
*** SQL3021N このユーザーは指定されたIMPORTコマンドを(以下略 m9(^Д^)
そしてID列を含むテーブル達が
Row Read: 1717
Inserted: 0
Rejected: 1717
Committed:1717
と無情の0件ロード。それに引っ張られてリレーしているテーブルが次々と多重衝突事故。
だから、俺はインスタンスオーナーだと。・゚・(ノД`)ヽ(゚Д゚ )ヨチヨチ
・正攻法で余裕っすよ
db2look -d dbname -a -e -l -x -o hoge.ddl
hoge.ddl の忌々しい旧スキーマ名を新スキーマに書き換え実行。
その後、db2moveのときにexportされていたファイル達をちみちみちみちみとLOAD。
ID列を含むテーブルをそのままロードすると、IDが新規でDB2によって作成され
そのID列をつかってリレーしまくっているテーブル構造が破綻してしまうので
modified by identityoverride を付けて実施。むろん、整合性チェックしろよフラグが立つので、ロード後に set integrity。
そうすると、次々に整合性チェックが必要になりました!とリレーしていくので
順に実施する。
コマンドメモ
db2 "load from tabx.ixf of ixf modified by identityoverride REPLACE into hoge NONRECOVERABLE"
db2 "set integrity for hoge immediate checked"
SQL3601W ステートメントにより1つ以上の表が自動的に SET INTEGRITYペンディングに(以下略
db2 "set integrity for hoge2 immediate checked"
SQL3601W ステートメントにより1つ以上の表が自動的に SET INTEGRITYペンディングに(以下略
db2 "set integrity for hoge3 immediate checked"
SQL3601W ステートメントにより1つ以上の表が自動的に SET INTEGRITYペンディングに(以下略
。・゚・(ノД`)・゚・。 うえええん
こういうのがウルトラ面倒だから、db2moveじゃねーのかよー
ちなみにdb2の導入FP適用からやったので実質一日つぶれた。まる。


