1

Amazon EC2でOracle 11gデータベースを実行し、Amazon RDSに移行しようとしています。ソースとターゲットの両方がOracle DBです。データベースの移行後にソースとターゲットの両方でテーブルとデータを検証する最適な方法は何でしょうか。データ損失なしですべてが正常に移行されることを確認する方法。移行後にデータベースを検証する方法

ありがとうございます。

答えて

0

古いデータベースへのデータベース・リンクold_dbを作成し、比較データ

select * from tab1 minus select * from [email protected]_db union all 
select * from [email protected]_db minus select * from [email protected]_db 

この選択の結果が空でなければなりません

select table_name from user_tables 

が希望するテーブル名を選択し、構築します前述のステートメントを選択して動的にテーブル単位で実行します。

declare 
    l_found number; 
    l_sql varchar2(500); 
begin 
    for l_rec in (select table_name from user_tables) loop 
    begin 
     -- assume a database link OLD_DB exists 
     l_sql := 'select 1 from dual where exists (select * from ' || 
       l_rec.table_name || ' minus select * from ' || 
       l_rec.table_name || '@OLD_DB union all ' || 
       'select * from ' || l_rec.table_name || 
       '@OLD_DB minus select * from ' || l_rec.table_name || ')'; 

     dbms_output.put_line(l_sql); 

     execute immediate l_sql 
     into l_found; 

     dbms_output.put_line('difference found :' || l_rec.table_name); 
    exception 

     when no_data_found then 
     dbms_output.put_line('okay :' || l_rec.table_name); 
     -- okay 
     null; 

     when others then 
     -- error (check if table exists, ...) 
     dbms_output.put_line('error :' || l_rec.table_name); 

    end; 
    end loop; 
end;