oracle

SPM計画ベースラインの移行手順

概要

移行元のデータベースからテーブルのエクスポートと、移行先のデータベースへのインポートでSPM計画ベースラインは移行するのですが、移行に利用するテーブルの作成も、テーブルへのパック、アンパック全て専用のプロシージャを利用します。処理概要は以下の通りです。

SPM計画ベースライン移行全体図

移行手順

移行元での作業(systemスキーマにて)

移行用テーブルの作成
exec dbms_spm.create_stgtab_baseline (
 table_name  =>'SPM_WORK'
,table_owner =>'SOONI'
);
上記作成した移行用テーブルへベースラインをパックする
declare
    ret number;
begin  
    ret :=DBMS_SPM.PACK_STGTAB_BASELINE (
     table_name  =>'SPM_WORK'
    ,table_owner =>'SOONI'
    ,accepted    =>'YES'
    );  
    dbms_output.put_line( 'PACK_STGTAB_BASELINE : ' || ret );
end
;
移行用テーブルへパックされた事を確認する
select * from SOONI.spm_work
;
テーブルダンプ用フォルダの確認
select DIRECTORY_NAME, DIRECTORY_PATH from dba_directories
;


-- 移行用テーブルの作成
exec dbms_spm.create_stgtab_baseline (
 table_name  =>'SPM_WORK'
,table_owner =>'SOONI'
);

-- 上記作成した移行用テーブルへベースラインをパックする
declare
    ret number;
begin  
    ret :=DBMS_SPM.PACK_STGTAB_BASELINE (
     table_name  =>'SPM_WORK'
    ,table_owner =>'SOONI'
    ,accepted    =>'YES'
    );  
    dbms_output.put_line( 'PACK_STGTAB_BASELINE : ' || ret );
end
;

PACK_STGTAB_BASELINE : 50
PL/SQLが実行されました(266 msec.)
---------------------------------------


--移行用テーブルへパックされた事を確認する
select * from SOONI.spm_work
;


--テーブルダンプ用フォルダの確認
select DIRECTORY_NAME, DIRECTORY_PATH from dba_directories
;


今回は以下利用する
DATA_PUMP_DIR /usr/oracle/app/admin/orau8/dpdump/


-- テーブルのエクスポート
export CONN=system/XXXXXX@vm013:1521/orau8
export TGTTBL=SOONI.SPM_WORK

expdp ${CONN} directory=DATA_PUMP_DIR dumpfile=SOONI_SPM_WORK.dmp logfile=SOONI_SPM_WORK.log reuse_dumpfiles=y LOGTIME=ALL TABLES=${TGTTBL}

(補足)
reuse_dumpfiles --上書きするかどうか

--事前に登録しておく
CREATE or REPLACE DIRECTORY DPDIR AS '/sooni/batch/dbdump/test'
;

--ダンプしたファイルの確認


----移行用テーブルのdrop
drop table SOONI.SPM_WORK purge;


-- 上記ダンプファイル(SOONI_SPM_WORK.dmp)を適用先DBへコピーする
※各環境にあわせてどうぞ
cp /zfs_com/backup/tnesdb/dbdump/SOONI_SPM_WORK.dmp /sooni/batch/dbdump/test/.

--適用先にて上記ダンプファイルのインポート
export CONN=system/passwd@vm014:1521/orcl
export DPDIR=/sooni/batch/dbdump/test
export TGTDMP=SOONI_SPM_WORK.dmp
export TGTTBL=SOONI.SPM_WORK

--事前に登録しておく
CREATE or REPLACE DIRECTORY DPDIR AS '/sooni/batch/dbdump/test'
;

impdp ${CONN} directory=DPDIR dumpfile=${TGTDMP} logfile=IMP_SOONI_SPM_WORK.log TABLES=${TGTTBL}



declare
ret number;

begin
ret := dbms_spm.unpack_stgtab_baseline
    (
     table_name  =>'SPM_WORK'
    ,table_owner =>'SOONI'
    ,accepted    =>'YES'
    );

dbms_output.put_line( 'Unpacked : ' || ret );
end;


--SPMベースラインが移行できたことを確認する
select * FROM dba_sql_plan_baselines b
;


--インポートしたテーブルのdrop
drop table SOONI.SPM_WORK purge;


スポンサーリンク
タイトルとURLをコピーしました