Empress 資料一覧
Export/Import等を行わずにDBを別ユーザに移行する方法
2007/11/4更新
対応バージョン: 6.10
システムテーブル、及びtabzeroファイルを変更することにより可能である。
例えばユーザbeforeが所有するtestというDBをユーザafterにコピーする場合は以下のようにする。
DBを複製
DBの実体(~before/test)を別ディレクトリ(~before/tmp/test)にコピーする。
% whoami before % cd % mkdir tmp % cp -r test tmp
コピー先DBのシステムテーブルを変更
% whoami before % cd ~/tmp % empcmd test "update sys_tables set tab_creator='after'" % empcmd test "update sys_privs set priv_grantor='after' \ where priv_grantor='before'" % empcmd test "update sys_privs set priv_grantee='after' \ where priv_grantee='before'" % empcmd test "update sys_attr_privs set apriv_grantor='after' \ where apriv_grantor='before'" % empcmd test "update sys_attr_privs set apriv_grantee='after' \ where apriv_grantee='before'"
同DBのtabzeroファイルを変更
% vi test/tabzero : MSDBADMINISTRATOR=after ← 変更後のユーザに変更
移行先アカウントにて同DBをディレクトリごとコピー
% su - after % whoami after % cp -r ~before/tmp/test ~
システムテーブルの変更を有効化
% whoami after % empadm test recompile_all
関連資料・記事