1

Wir haben Oracle 11g Database auf Amazon EC2 laufen und versuchen, es auf Amazon RDS zu migrieren. Quelle und Ziel sind Oracle DB. Was ist der beste Weg, um die Tabellen und Daten in der Quelle und im Ziel nach der Migration der Datenbank zu validieren? So stellen Sie sicher, dass alles ohne Datenverlust erfolgreich migriert wird.So überprüfen Sie die Datenbank nach der Migration

Vielen Dank im Voraus.

Antwort

0

erstellen eine Datenbank Link old_db zu Ihrer alten Datenbank und vergleichen Daten

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

Das Ergebnis dieser select muss

Wählen Sie die gewünschten Tabellennamen von

select table_name from user_tables 

und bauen leer die Wählen Sie obige Anweisung, um sie dynamisch Tabelle für Tabelle auszuführen, etwa

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; 
Verwandte Themen