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
Migrazione:
Schema
Dati
TRASFORMAZIONE:
Oracle
SQL statements
Stored procedures
Triggers
Viste
Record
Cursori
Sequenze
User-defined
functions
Packaged functions
Tabelle
Indici
Constraints
Defaults
SQL Server
Re-host di un database da un RDBMS a un altro
La migrazione di database
Applicazione
PL/SQL
Oracle
T-SQL
SQL Server
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:



Test: L’applicazione convertita alla fine
funziona veramente ?



Mesi di lavoro
Può spesso costare più di 100K $
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 migrazione
Assessment
progetto
Migrazione
schema
Migrazione
dati
Migrazione
logica business
Test codice
migrato
Migrazione
applicazione
Performance
tuning
Test e
integrazione
Installazione e configurazione
Extension Pack
Connessione source
Connessione target
Caricamento oggetti DB
Esecuzione script
salvati
Generazione
assessment reports
J2SE 1.4.2
Stima tempi
Microsoft SSMA
Conversione oggetti
Salvataggio script
Migrazione dati
Extension Pack
Test
Redirect applicazione
su DB target
Uno sguardo a SSMA
Source
panel
Source DB Object
panel
Target
panel
Target DB Object
panel
Source DB Code panel
Target DB - Code
panel
Menu

File e Tools:
Opzioni
Opzioni

Generate ROWID column


Allow sequence-to-identity conversion


Genera nello schema di uscita una colonna
rowid. Riduce notevolmente la percentuale di
conversione di Trigger e Sp
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


Convert transaction processing statements


Mostra le dialog per accedere alle sequenze di
sistema. Abilitato soltanto se “Insert into identity”
è attivo
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 migrazione
Assessment
progetto
Migrazione
schema
Migrazione
dati
Migrazione
logica business
Test codice
migrato
Migrazione
applicazione
Performance
tuning
Test e
integrazione
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


Person Hours (tot)


Complessità del lavoro di traduzione
All (tot)


Stima in ore per una conversione manuale
Complexity


Numero totale di oggetti nel database.
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)


Record Type Decl (Conv%)


Numero complessivo di dichiarazioni record convertibili
automaticamente
Record Var Decl (Tot)


Numero complessivo di tipologie di dichiarazioni di
record
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)


Record Var Uses Conv%)


Numero di statement rownum
Exception Handler


Numero di statment pragma
Rownum


Numero di variabili record convertibili automaticamente
Pragma


Numero di variabili record dichiarate ed utilizzate
Numero di exception handlers
Unparsed (Tot)
Salvare il report
Salvare il report

... In formato csv
Extended HTML Report
Opzioni

Generate expanded HTML database
report


Report directory


È il default. Genera il report in formato
HTML esaustivo
La cartella di output del report
Queries list

Informazioni statistiche ed altro
Demo. Generazione report
Processo di migrazione
Assessment
progetto
Migrazione
schema
Migrazione
dati
Migrazione
logica business
Test codice
migrato
Migrazione
applicazione
Performance
tuning
Test e
integrazione
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 migrazione
Assessment
progetto
Migrazione
schema
Migrazione
dati
Migrazione
logica business
Test codice
migrato
Migrazione
applicazione
Performance
tuning
Test e
integrazione
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 migrazione
Assessment
progetto
Migrazione
schema
Migrazione
dati
Migrazione
logica business
Test codice
migrato
Migrazione
applicazione
Performance
tuning
Test e
integrazione
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 TSQL
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 migrazione
create 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)
AS
BEGIN
DECLARE
@Result numeric(38)
BEGIN
SET @Result = (@x + @y + 0)
RETURN @Result
END
RETURN null
END
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 migrazione
Assessment
progetto
Migrazione
schema
Migrazione
dati
Migrazione
logica business
Test codice
migrato
Migrazione
applicazione
Performance
tuning
Test e
integrazione
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 Dimauro
CTO Code Architects srl
Microsoft MSDN Regional Director
[email protected]
www.codearchitects.com
www.dotnet2themax.it
www.ugisharepoint.it
Scarica

Migrare da Oracle a SQL Server con SSMA Agenda La migrazione