Upload
carlotta-forti
View
222
Download
0
Embed Size (px)
Citation preview
Migrare da Oracle a SQL Server con SSMA
Agenda La migrazione di database Perché migrare Le parti coinvolte Sfide, criticità e rischi di una
migrazione manuale Migrare usando SSMA - benefici Processo di migrazione
La migrazione di database
OracleOracle SQL ServerSQL Server
MigrazioneMigrazione::SchemaSchemaDatiDati
TRASFORMAZIONETRASFORMAZIONE::SQL statements SQL statements Stored proceduresStored proceduresTriggers Triggers VisteVisteRecord Record Cursori Cursori SequenzeSequenzeUser-defined User-defined functionsfunctionsPackaged functions Packaged functions TabelleTabelleIndiciIndiciConstraintsConstraintsDefaultsDefaults
Re-host di un database da un RDBMS a un altro
La migrazione di database
OracleOracle SQL ServerSQL Server
ApplicazioneApplicazione
PL/SQL T-SQL
Oracle e SQL Server
Alcune differenze Diverso modello di gestione delle
transazioni Data types diversi Gestione eccezioni (solo SQL Server 2000) Packages e package objects Sequenze (Oracle) vs. identities (MSSQL)
Perchè migrare Total cost of ownership (TCO) Tempi e costi di produzione ridotti Standardizzazione e consolidamento Feature più robuste Manuntenzione facilitata Upgrade da un sistema “legacy”
Le parti coinvolte in una migrazione SQL Statements Stored Procedures Triggers Functions Views Constraints, indici e defaults Data types Gestione delle eccezioni Data migration
Sfide Implementazioni basate su cursori Oracle system packages Gestione delle eccezioni Mostrare result set Concatenare stringhe Gestire SQL dinamico Implementare trigger
Rischi di una migrazione manuale Con una migrazione manuale si va incontro ai
seguenti rischi da mettere in conto: Mesi di lavoro Può spesso costare più di 100K $
Test: L’applicazione convertita alla fine funziona veramente ? Le logiche di business e l’integrazione delle applicazioni
sono spesso difficoltose da migrare
E le performance ? Le operazioni critiche da un punto di vista del core
business sono intaccate ?
Installazione SSMA-V2-Setup
Installazione Installazione delle estensioni per:
Oracle SQL Server
Estensioni Installing system database scripts... Creating database with default parameters and server... Changing null password for 'ssma' to inputted ... Registering extended stored procedures... Creating of all objects in database SYSDB for
CONTEXT_INFO... Creating package variables procedures... Creating of all objects in database SYSDB for exception
handling support... Creating of all objects in database SYSDB for support of NULL
statement... Creating of all objects in database SYSDB for sequence
handling support... Installing scripts to emulate Oracle date/time manipulation
functions... Installing scripts to emulate Oracle mathematical functions...
Estensioni Installing scripts to emulate Oracle miscellaneous functions... Installing scripts to emulate Oracle string manipulation
functions... Creating of all objects in database SYSDB for implementation
of package UTL_FILE... Creating of all objects in database SYSDB for implementation
utility routines... Creating test platform database with default parameters and
server... Changing null password for 'dbtest' to inputted ... Creating test platform database objects... Installing MS SQL Server Server-Side Components ... Setting Globalization Registry Key for server NBDIMAURO ... Installing Extensions Library file for x86 architecture Extract: SQLServerConverterExtensions.dll... 100% Installation was successful.
Microsoft SSMA
Suite completa di strumenti di migrazione Valutazione Migrazione Test
Riduce clamorosamente i tempi di porting/conversione/migrazione
É prodotto da Microsoft Download gatuito
Microsoft SSMA Compatibilità
Oracle 8, Oracle 8i, Oracle 9i, Oracle 10g SQL Server 2000, SQL Server 2005
Prerequisiti Windows 2000, XP, 2003 Java runtime environment 1.4.2
Obiettivi Ridurre i rischi di migrazione
Assicurare una migrazione corretta Assicurare che i database migrati siano
effettivamente funzionanti con le applicazioni Assicurare che il nuovo database funzioni allo
stesso modo o meglio del DB originale
Ridurre tempi e costi Automatizzare parzialmente o completamente
ampie porzioni di un progetto di conversione con SSMA
Processo di migrazioneAssessment
progettoMigrazione
schemaMigrazione
dati
Migrazione logica business
Test codice migrato
Migrazione applicazione
Test e integrazione
Performance tuning
Installazione e configurazione
Connessione source
Caricamento oggetti DB
Generazione assessment reports
Stima tempi
Conversione oggetti
Salvataggio script
Migrazione dati
Connessione target
Esecuzione script salvati
Test
Redirect applicazione su DB target
J2SE 1.4.2
Microsoft SSMA
Extension Pack Extension Pack
Uno sguardo a SSMA
Source
panel
Target panel
Source DB - Object panel
Source DB - Code panel
Target DB - Object panel
Target DB - Code panel
Menu File e Tools:
Opzioni
Opzioni Generate ROWID column
Genera nello schema di uscita una colonna rowid. Riduce notevolmente la percentuale di conversione di Trigger e Sp
Allow sequence-to-identity conversion Trasforma sequence in colonne identity.
Rappresenta la strada da preferire laddove percorribile
Allow insertion to IDENTITY columns Se selezionato permette l’inserimento in colonne
di tipo identity. Verificare compatibilità con la logica business
Opzioni Show system sequences
Mostra le dialog per accedere alle sequenze di sistema. Abilitato soltanto se “Insert into identity” è attivo
Convert transaction processing statements Abilita/disabilita la conversione di comandi SQL
per le transazioni Convert exceptions
Abilita o disabilita la conversione per la gestione di eccezioni
Opzioni – mapping dei dati
View Menu
View – Synchronized Mode
View – Zebra mode Evidenzia con colori entità correlate
View – Show Diff Mode
Processo di migrazioneAssessment
progettoMigrazione
schemaMigrazione
dati
Migrazione logica business
Test codice migrato
Migrazione applicazione
Test e integrazione
Performance tuning
Comprendere il tool di assessment
Assessment di migrazione Benefici
Integrato in SSMA Valutazione della complessita della migrazione Valutazione dei tempi di migrazione Mostra la percentuale di oggetti
immediatamente convertibili I report possono essere salvati
Comprendere il tool di assessment Creazione di report
Assessment di migrazione Permette di valutare:
Numero totale di righe di codice. Numero totale di statement SELECT, INSERT,
DELETE e UPDATE Numero totale di CURSORI, RECORD, e
ECCEZIONI. Numero totale e percentuale di componenti
convertibili automaticamente. Stima complessità migrazione. Stima dei tempi necessari per migrare
manualmente.
Assessment di migrazione Comprendere il report di assessment
Total Objects Numero totale di oggetti nel database.
Person Hours (tot) Stima in ore per una conversione manuale
Complexity Complessità del lavoro di traduzione
All (tot) Numero complessivo di oggetti statement SELECT, INSERT,
DELETE e UPDATE SELECT (Conv%)
Percentuale di comandi SELECT che verranno convertiti automaticamente
Assessment di migrazione Comprendere il report di assessment
Record Type Decl (Tot) Numero complessivo di tipologie di dichiarazioni di
record Record Type Decl (Conv%)
Numero complessivo di dichiarazioni record convertibili automaticamente
Record Var Decl (Tot) Numero complessivo di variabili record dichiarate
Record Var Decl (Conv%) Numero complessivo di variabili record convertibili
automaticamente
Assessment di migrazione Comprendere il report di assessment
Record Var Uses (Tot) Numero di variabili record dichiarate ed utilizzate
Record Var Uses Conv%) Numero di variabili record convertibili automaticamente
Pragma Numero di statment pragma
Rownum Numero di statement rownum
Exception Handler Numero di exception handlers
Unparsed (Tot)
Salvare il report
Salvare il report ... In formato csv
Extended HTML Report
Opzioni Generate expanded HTML database
report È il default. Genera il report in formato
HTML esaustivo
Report directory La cartella di output del report
Queries list Informazioni statistiche ed altro
Demo. Generazione report
Processo di migrazioneAssessment
progettoMigrazione
schemaMigrazione
dati
Migrazione logica business
Test codice migrato
Migrazione applicazione
Test e integrazione
Performance tuning
Migrazione di schemi È un processo suddiviso in due fasi:
Generazione degli script di creazione degli oggetti dello schema Gli script creano tabelle e oggetti correlati I tipi di dati corrispondenti vengono individuati
cercando di evitare errori di troncamento delle informazioni
Deployment delle script Sincronizzazione del database con SSMA Gli script possono essere utilizzati direttamente con i
tool di SQL Server
Migrazione di schemi Conversione da PL/SQL a T-SQL
Tipi di dati diversi Operatori diversi Sintassi diverse Oggetti diversi
Microsoft SSMA può: Convertire Emulare Segnalare con dei warning
Code Panels View SQL View
Code Panels View Columns View
Code Panels View Parsed SQL View
Con formattazione / indentazione
Code Panels View Zebra Parsed SQL View
Relazioni tra src e dst evidenziate con colori !
Parameters View Interfaccia dei parametri
Demo. Migrazione oggetti schema
Processo di migrazioneAssessment
progettoMigrazione
schemaMigrazione
dati
Migrazione logica business
Test codice migrato
Migrazione applicazione
Test e integrazione
Performance tuning
Migrazione dei dati Operazione “single click” Le colonne sono mappate
automaticamente Dopo la conversione viene creato un
report di migrazione
Migrazione dei dati I due server vengono configurati come
linked server Possibile scegliere fra due provider:
Oracle OLEDB Provider Microsoft OLEDB Provider for Oracle
SSMA suggerisce Oracle Provider (supporta anche la migrazione di tipi binary)
Demo. Migrazione dei dati
Processo di migrazioneAssessment
progettoMigrazione
schemaMigrazione
dati
Migrazione logica business
Test codice migrato
Migrazione applicazione
Test e integrazione
Performance tuning
Conversione del codice Criticità
Trigger Cursori System packages Differenze sintattiche
Conversione del codice SSMA converte
automaticamente Codice contenente logica
business Dynamic SQL Oracle System packages
Conversione di funzioni e trigger Funzioni PL/SQL vengono
convertite in funzioni T-SQL
Trigger PL/SQL vengono convertite in trigger T-SQL
PL/SQL T-SQL
Before trigger Instead of trigger
After trigger After trigger
:new and :old Tabelle Inserted e deleted
Opzioni Menu Tools – Project Options [F12]
Project Options
Opzioni avanzate Type mapping al volo (piccola demo)
Opzioni avanzate Schema mapping
Un “map” per volta Oggetti di sistema non possono essere
mappati
Esempio di migrazionecreate or replace FUNCTION
"ITEM_OWNER".FTest1(x in integer, y in integer) return integer is
Result integer;begin Result := x + y + 0; return(Result);end FTest1;
CREATE FUNCTION u2.FTEST1 ( @x numeric(38), @y numeric(38) )
RETURNS numeric(38)ASBEGIN DECLARE @Result numeric(38) BEGIN SET @Result = (@x + @y + 0) RETURN @Result END RETURN nullEND
Convertire sequence in identity
da INSERT INTO TABLE1(ID,A,B) VALUES
(SEQUENCE1.nextval,1,2);
a INSERT INTO TABLE1(A,B) VALUES (1,2)
Demo. Migrazione logica di business
Altre opzioni Mostrare le differenze
SHOW DIFF
Salvare le script Oracle e SQL
Processo di migrazioneAssessment
progettoMigrazione
schemaMigrazione
dati
Migrazione logica business
Test codice migrato
Migrazione applicazione
Test e integrazione
Performance tuning
Testing SSMA è in grado di testare automaticamente:
View Funzioni Stored procedure SQL statements
Prepara test per: SQL Server e driver JDBC Linked Server ad Oracle
Testing Prerequisito SSMA Option Pack
TEST_PLATFORM user in Oracle Test_Platform_DB database in SQL Server
Suggerimento Effettuare il backup dei dati prima di
testare
Migration tester workflow Reporting dei test
Numero di oggetti testati Numero di test effettuati Successi e fallimenti
Demo. Test codice migrato
Risorse
http://www.microsoft.it
http://www.microsoft.com/sql
http://www.microsoft.com/sql/solutions/ssm/default.mspx
http://msdn.microsoft.com
Migrare da Oracle a SQL Server con SSMA
Giuseppe DimauroCTO Code Architects srl
Microsoft MSDN Regional [email protected]
www.codearchitects.comwww.dotnet2themax.itwww.ugisharepoint.it