Oracle'dan PostgreSQL'e geçiş



Benzer belgeler
Oracle'dan PostgreSQL'e geçiş

PostgreSQL'de Ölçekleme

PostgreSQL Veritabanı Sunucusu Devrim GÜNDÜZ.

PostgreSQL 9.3 Kullanılabilirlik ve Başarım

PostgreSQL ile NoSQL. Gereksinimlerinizi Karşılamak

8 Oracle da tablo yapısı içinde otomatik artan kolon yoktur. (identity kolon

Laboratuvar 2 Tek Kayıt Fonksiyonları

Sorgudan elde edilen değerin değişkenlere aktarılmasını sağlar. Sorgudan tek satır dönmesi gerekir. Çok satır dönerse hata verir.

ORACLE DA KÜRSÖRLER. Gerekli sistem değişkenleri

PostgreSQL ve PL/pgSQL

Oracle da kullanılan veri tipleri:

Yukarıdakilerden hangileri DML (Data Manipulation Language) ile gerçekleştirilir?

PL/pgSQL SQL Yordamsal Dili

EnterpriseDB Kalitesi ile Tanıştırma. Devrim GÜNDÜZ Principal Systems Engineer EnterpriseDB

PostgreSQL - Yeni dönemdeki yeri

PostgreSQL ve PL/pgSQL

Sorgudan elde edilen değerin değişkenlere aktarılmasını sağlar. Sorgudan tek satır dönmesi gerekir, aksi durumda hata olur.

PHP+Memory Cache+PostgreSQL Kullanarak Performanslı Veritabanı Uygulaması Geliştirme

1 ORACLE 11G DATABASE SERVER LE

Veritabanına Giriş. Oğuzhan Ceylan. 19 Eylül 2011

20461C Querying Microsoft SQL Server Modül Seviye Belirleme Testi

SQL'e Giriş. SELECT Deyimi. SQL Komutları. Yardımcı Deyimler

6 Aritmetiksel Operatörler ve Hazır Fonksiyonlar

Veritabanı Yönetim Sistemleri (Veritabanı Tasarımı) SQL (Structured Query Language)

VERİ TABANI ve YÖNETİMİ

Veritabanı Tasarımı. Büyük/Küçük Harf ve Karakter İşleme

PostgreSQL Veritabanı Sunucusu. 8.2 neler getiriyor?

Güz Yarıyılı MT 487 Bilgisayarda Veri Yapıları Final Çalışma Soruları

Mysql Veritabanı Komutları

Veri Tabanı SQL Server ve Management Studio kurulum linkleri:

Büyük veri ile neler yaptık?

PostgreSQL ile Kümeleme Teknikleri

PostgreSQL - Yeni dönemdeki yeri

ORM & Hibernate. Ahmet Demirelli. SCJP 5.0, SCWCD 1.4 ahmetdemirelli@sabanciuniv.edu

Fonksiyonlar istenilen deger tipinde dönüs yapabilir. INT, VARCHAR deger döndürebileceğiniz gibi bir tablo da döndürebilirsiniz.

TESİ. indeks. söylenebilir?? bir ilişkidir d) Hiçbiri. veya somutlaştırılmış. düzeyidir? sağlayabilir? sına. d) Hepsi. olabilir? c) Verilerin d) Hepsi

IN ve NOT IN Tablodaki alan içeriklerine ulaşmak için IN deyimi kullanılır.

EBE-368 Veri Tabanı Yönetim Sistemleri SQL

KULLANICI TANIMLI FONKSİYONLAR (Devam)

SQL'e Giriş 2. CREATE TABLE tabloadı (kolon isimleri ve veri türleri) (BOLUM_NO NUMBER, BOLUM_ADI CHAR(10));

TEMEL SQL SORGU ÖRNEKLERİ. Yukarıdaki sorguyu yazıp çalıştırdığımızda db_market adında bir veritabanı oluşturulur.

SQL'e Giriş. SELECT Deyimi. SQL Komutları. 1. DDL (Data Definition Language - Veri Tanımlama Dili)

VERİ TABANI YÖNETİM SİSTEMLERİ II. 5. SQL PROGRAMLAMADA CURSOR (İMLEÇ) ve TRIGGERS (TETİKLEMELER)

ORACLE DERS 1 SQL E GİRİŞ

KULLANICI TANIMLI FONKSİYONLAR (Devam)

T.C GAZİ ÜNİVERSİTESİ BİLİŞİM ENSTİTÜSÜ YÖNETİM BİLİŞİM SİSTEMLERİ ANA BİLİM DALI MS SQL KOMUTLARI VE MS SQL KOMUTLARI İLE İLGİLİ UYGULAMALAR

PostgreSQL'de Uygulamalı. (Streaming Replication. Standby)

YAPISAL SORGULAMA DİLİ (SQL)

Kodlamadan Dağıtıma PostgreSQL'de Eklenti Geliştirmek Burak Yücesoy

Kullanıcı tanımlı fonksiyonlar SQL2000 ile gelen özelliklerden biridir. Fonksiyonlar tek bir değer veya tablo döndürmek için kullanılır.

Aşağıdaki şemaya dikkat edin. Sorgulamalarımızı genellikle bu şemaya göre yapacağız.

2- Total de 8000 byte yer tutup 4000 karakter olarak kullanabildiğimiz tip aşağıdakilerden hangisidir?

HP Yazılım Zirvesi - İstanbul 20 May Wyndham Grand Levent Erdem Alaşehir / Finansbank Güvenlik Olay Korelasyonunda Büyük Veri Kullanımı

Veritabanlarına ve SQL'e Giriş. Devrim GÜNDÜZ. Teknoloji Destek Merkezi --

SQL e Giriş. Uzm. Murat YAZICI

Fonksiyonlar, Count, Sum, Avg, Max, Mın, Lower, Upper, Length, Round, Mod, Left, Right, Concat, If

BLG4134 Görsel Programlama III. Öğr. Grv. Aybike ŞİMŞEK

VERĐTABANI YÖNETĐM SĐSTEMLERĐ

Gruplama (aggregate) fonksiyonları bir dizi değer üzerinde hesaplama yaparlar ve bir sonuç

Veri Tabanı Programlamaya Giriş

EROL AKGÜL

Bilgisayar Uygulamaları. MySql

Veritabanı Tasarımı. Veri Türleri Kullanma

RPM Hazırlama Sanatı

08221 Veri Tabanı II. Elbistan Meslek Yüksek Okulu GÜZ Yarıyılı Eki Öğr. Gör. Murat KEÇECĠOĞLU

3 Sql Veri Tipleri ve Örnek Veritabanı Tasarımı. Veritabanı 1

Veritabanına Uygulanması

Basit SQL Sorguları Veritabanından verilerin SELECT cümleleri ile alınması işlemine sorgulama denir.

Birden Çok Tabloda Sorgulama (Join)

«BM364» Veritabanı Uygulamaları

KULLANICI TANIMLI FONKSİYONLAR

SQL Sorgulama Dili,Yerel SQL ve Dil Takımı

«BM364» Veritabanı Uygulamaları-2

Değişkenler. Geçerli değişken isimleri : baslamazamani, ad_soyad, x5 Geçersiz değişken isimleri : 3x, while

Microsoft SQL Server Sorgulama

PHP'ye Giriş Türkiye PHP Grubu - Linux Şenlikleri PHP Eğitim / Tanıtım Seminerleri Ankara, 11 Mayıs 2006 Hidayet Doğan <hdogan@hido.

BÖLÜM -7: TABLOLARI OLUŞTURMA VE YÖNETME

SQL veri tabalarına erişmek ve onları kullanmak için geliştirilmiş bir lisandır.

Bir çeşit prosedür. Ancak bu prosedür kendiliğinden çalışır. Çalışması için tabloya veri eklemek, veri silmek, veri değiştirmek yeterlidir.

Genel Kavramlar. Bilgisayar ortamında işlenebilecek durumda bulunan kayıtlar. Birbiri ile ilişkili veriler topluluğu ve veriler arası ilişkiler

Her Yönüyle SQL Enjeksiyonu. OWASP-Türkiye Bünyamin Demir

UTL_FILE PERFORMANSI

Veri Tabanı-I 9.Hafta

3 Sql Veri Tipleri. Veritabanı 1

SQL TRIGGERS (Tetikleyiciler)

Bilgisayar Teknolojileri Bölümü Bilgisayar Programcılığı Programı. Öğr. Gör. Cansu AYVAZ GÜVEN

SQL FONKSİYONLARI SQL lisanında hesaplama ve sayma işlemlerinde kullanılmak üzere bir çok fonksiyon vardır.

Veri Tabanı Tasarım ve Yönetimi

SQL PROGRAMLAMA. Bir batch, bir arada bulunan bir dizi SQL deyimidir. Batch ayıracı GO deyimidir.

PostgreSQL Veritabanı Sunucusu. Başarım Arttırma Yöntemleri

Öğr. Gör. Serkan AKSU 1

Veritabanı. SQL (Structured Query Language)

Postgresql: Web Programcısı için Gündelik İpuçları Postgres 2014 Türkiye

Charindex() CHARINDEX

SQL Komutları (2) Uzm. Murat YAZICI

NoSql ve MongoDB. Saygın Topatan

TRIGGER. Trigger lar, tablo üzerinde tanımlanabilen ve bu tablo üzerinde bir işlem gerçekleştiğinde tetiklenen programlama ögeleridir.

VERİ TABANI YÖNETİM SİSTEMLERİ II. 4. SQL PROGRAMLAMADA PROCEDURE ve FUNCTION

Data Programming SQL Language. Elbistan Meslek Yüksek Okulu Bahar Yarıyılı

Aşağıdaki tabloyu inceleyin. Sorgulama işlemlerini bu tabloya göre yapacağız.

Transkript:

Oracle'dan PostgreSQL'e geçiş Devrim Gündüz Principal Systems Engineer @ EnterpriseDB devrim.gunduz@enterprisedb.com Twitter : @DevrimGunduz / @DevrimGunduzTR Facebook: /DevrimGunduzTR Linkedin: http://www.linkedin.com/in/devrimgunduz Web : http://www.gunduz.org 1 2013 EnterpriseDB Corporation. All rights reserved.

Başlamadan önce... #InternetteSansüreHayır! Akademik Bilişim 2014 Oracle Uygulamalarınızı PostgreSQL'e Aktarmak 2

Kim bu adam? Yani ben: 12 yıldan fazla bir süredir PostgreSQL'e katkı Hacker değilim RPM, web sitesi EnterpriseDB İstanbul! \m/ Güneş Deniz'in aslan babası, Burcu'nun sevgilisi, Deniz'in dayısı, Anıl'ın abisi. Akademik Bilişim 2014 Oracle Uygulamalarınızı PostgreSQL'e Aktarmak 3

Uyarı! Bilelim ki: 12 yıllık seminerler 2 saatte bitmeyen seminerler 1 kez bile olan şey değil Kumanya! Çıkışlar 500 lira. Akademik Bilişim 2014 Oracle Uygulamalarınızı PostgreSQL'e Aktarmak 4

Geçiş bu mudur? Akademik Bilişim 2014 Oracle Uygulamalarınızı PostgreSQL'e Aktarmak 5

Aslında: Akademik Bilişim 2014 Oracle Uygulamalarınızı PostgreSQL'e Aktarmak 6

PostgreSQL'de Ölçekleme 7 Ajanda 1. Bu geçiş neden olmalı? 2. Genel durum özeti 3. SQL tümcelerinin aktarılması 4. PL/SQL'den PL/PgSQL'e geçiş 5. Geçiş araçları 6. Örnekler

PostgreSQL'de Ölçekleme 8 Ajanda 1. Bu geçiş neden olmalı? 2. Genel durum özeti 3. SQL tümcelerinin aktarılması 4. PL/SQL'den PL/PgSQL'e geçiş 5. Geçiş araçları 6. Örnekler

PostgreSQL'de Ölçekleme 9 Bu geçiş neden olmalı? Oracle'da Tom var: Ask Tom: http://asktom.oracle.com/ PostgreSQL'de Tom Lane var! Ask Tom: tgl@sss.pgh.pa.us :-)

PostgreSQL'de Ölçekleme 10 Bu geçiş neden olmalı?... Maliyet Açık kaynak kod Gelişmiş özellikler Daha büyük destek imkanı Güvenirlik

PostgreSQL'de Ölçekleme 11 Bu geçiş neden olmalı? Birçok dil desteği! Fonksiyonlar! Java, Perl, Python, Ruby, C, C++, Bash, TCL, TK,...

PostgreSQL'de Ölçekleme 12 Bu geçiş neden olmalı? Bizim yan komşunun oğlu Oracle'dan kurtulmuş; sen hala geçiş yapamadın!

PostgreSQL'de Ölçekleme 13 Bu geçiş neden olmalı? Bizim yan komşunun oğlu Oracle'dan kurtulmuş; sen hala geçiş yapamadın! Offff, yan masadakine bak ne güzel geçiş yaptı Oracle'dan PostgreSQL'e!

PostgreSQL'de Ölçekleme 14 Bu geçiş neden olmalı? Bizim yan komşunun oğlu Oracle'dan kurtulmuş; sen hala geçiş yapamadın! Offff, yan masadakine bak ne güzel geçiş yaptı Oracle'dan PostgreSQL'e! O PostgreSQL buraya gelecek!

PostgreSQL'de Ölçekleme 15 Bu geçiş neden olmalı? Bizim yan komşunun oğlu Oracle'dan kurtulmuş; sen hala geçiş yapamadın! Offff, yan masadakine bak ne güzel geçiş yaptı Oracle'dan PostgreSQL'e! O PostgreSQL buraya gelecek! Askerdeyiz, komutanla bir geçiş yapıyoruz Oracle'dan...

PostgreSQL'de Ölçekleme 16 Bu geçiş neden olmalı? Bizim yan komşunun oğlu Oracle'dan kurtulmuş; sen hala geçiş yapamadın! Offff, yan masadakine bak ne güzel geçiş yaptı Oracle'dan PostgreSQL'e! O PostgreSQL buraya gelecek! Askerdeyiz, komutanla bir geçiş yapıyoruz Oracle'dan... Kızlar, bizim Semiha Oracle'dan geçiş yapmış; bizim de PostgreSQL'e geçmemiz gerekli!

PostgreSQL'de Ölçekleme 17 Bu geçiş neden olmalı? Bizim yan komşunun oğlu Oracle'dan kurtulmuş; sen hala geçiş yapamadın! Offff, yan masadakine bak ne güzel geçiş yaptı Oracle'dan PostgreSQL'e! O PostgreSQL buraya gelecek! Askerdeyiz, komutanla bir geçiş yapıyoruz Oracle'dan... Kızlar, bizim Semiha Oracle'dan geçiş yapmış; bizim de PostgreSQL'e geçmemiz gerekli! Aslında Oracle ucusdşlkddföç.çö.çsdöf

PostgreSQL'de Ölçekleme 18 Bu geçiş neden olmalı? Bizim yan komşunun oğlu Oracle'dan kurtulmuş; sen hala geçiş yapamadın! Offff, yan masadakine bak ne güzel geçiş yaptı Oracle'dan PostgreSQL'e! O PostgreSQL buraya gelecek! Askerdeyiz, komutanla bir geçiş yapıyoruz Oracle'dan... Kızlar, bizim Semiha Oracle'dan geçiş yapmış; bizim de PostgreSQL'e geçmemiz gerekli! Aslında Oracle ucusdşlkddföç.çö.çsdöf Tabii ki bunlar değil!

Başlamadan önce... #InternetteSansüreHayır! Akademik Bilişim 2014 Oracle Uygulamalarınızı PostgreSQL'e Aktarmak 19

PostgreSQL'de Ölçekleme 20 Ajanda 1. Bu geçiş neden olmalı? 2. Genel durum özeti 3. SQL tümcelerinin aktarılması 4. PL/SQL'den PL/PgSQL'e geçiş 5. Geçiş araçları 6. Örnekler

PostgreSQL'de Ölçekleme 21 Oracle'dan PostgreSQL'e geçiş Teknik olmayan bileşenler İdari sıkıntılar Yazılım aktarma süreci İhale süreci! Çalışan uygulamanın değiştirilmesi Kimse Oracle kullandığı için işten atılmamıştır (bitmediniz...)... (Bitmez dertler)

PostgreSQL'de Ölçekleme 22 Oracle'dan PostgreSQL'e geçiş Teknik olmayan bileşenler Sihirbaz yok! %40, %40 ve %20 durumu :) SQL standartlarına uygun olmayan yazılımların standartlara çekilmesi süreci...

PostgreSQL'de Ölçekleme 23 Oracle'dan PostgreSQL'e geçiş Teknik olmayan bileşenler Yazılım aktarma süreci demiş miydik? Yönetim süreci demiş miydik? Destek imkanları demiş miydik? (Üstteki soruları tekrar sormuş muyduk?

PostgreSQL'de Ölçekleme 24 Oracle'dan PostgreSQL'e geçiş Teknik olmayan bileşenler Sürecin belgelendirilmesi Tecrübe aktarımı Sürüm kontrol yazılımı! Düzgün test araçları

PostgreSQL'de Ölçekleme 25 Ajanda 1. Bu geçiş neden olmalı? 2. Genel durum özeti 3. SQL tümcelerinin aktarılması 4. PL/SQL'den PL/PgSQL'e geçiş 5. Geçiş araçları 6. Örnekler

Oracle'dan PostgreSQL'e geçiş Sayısal veri tipleri Oracle Number (precision, scale) PostgreSQL smallint,int2 (2byte) int,integer (4 byte) bigint, int8 (8 byte) number(p,s) numeric(p,s) real (4 byte) double (8 bytes) Özgür Web Teknolojileri Günleri 26

Oracle'dan PostgreSQL'e geçiş Sayısal veri tipleri <, >, <=, >= +, -, *, / %, ^ /, /, @,! Özgür Web Teknolojileri Günleri 27

Oracle'dan PostgreSQL'e geçiş Sayısal fonksiyonlar abs(), mod(), ceil(),sqrt(), sin(), cos(), tan(), cot(), random(), round(),... Özgür Web Teknolojileri Günleri 28

Oracle'dan PostgreSQL'e geçiş Sayısal veri tipleri Oracle char, nchar varchar2, nvarchar2 PostgreSQL varchar char text clob, nclob varchar2, nvarchar2 Özgür Web Teknolojileri Günleri 29

Oracle'dan PostgreSQL'e geçiş Karakter veri tipleri Ortak karakter fonksiyonları: Lower(), upper(), convert(), md5(), char_length(), encode(), devode(), lpad(), rpad(), ltrim(), rtrim(), substr(), regex_replace(),... Karakter karşılaştırma operatörleri LIKE, ILIKE, <, >, <=, >=, <>, ve birçok regexp operatörü (!~, ~, vs) Özgür Web Teknolojileri Günleri 30

Başlamadan önce... #InternetteSansüreHayır! Akademik Bilişim 2014 Oracle Uygulamalarınızı PostgreSQL'e Aktarmak 31

Oracle'dan PostgreSQL'e geçiş Zamansal veri tipleri Oracle date interval timestamp PostgreSQL date interval timestamp (tz ile ya da tz olmadan) Range!!! Özgür Web Teknolojileri Günleri 32

Oracle'dan PostgreSQL'e geçiş Zamansal veri tipleri Oracle Sysdate PostgreSQL Now(), current_timestamp() TRUNC(sysdate) current_date, date_trunc() (orafce!) sysdate + 3.5 current_timestamp + '84 hours'::interval Özgür Web Teknolojileri Günleri 33

PostgreSQL'de Ölçekleme 34 Oracle'dan PostgreSQL'e geçiş Zamansal fonksiyonlar Orafce içinde birçok fonksiyon: next_day(), last_day(), add_months()

PostgreSQL'de Ölçekleme 35 Oracle'dan PostgreSQL'e geçiş Binary veri tipi Oracle'daki raw bfile -> PostgreSQL bytea Oracle'daki bfile -> PostgreSQL'de large object Bytea 1 GB'dan az veriler için kullanılır. Large objectler TOAST edilirler.

PostgreSQL'de Ölçekleme 36 Oracle'dan PostgreSQL'e geçiş Özel veri tipleri Oracle'daki raw bfile -> PostgreSQL bytea Oracle'daki bfile -> PostgreSQL'de large object Bytea 1 GB'dan az veriler için kullanılır. Large objectler TOAST edilirler.

PostgreSQL'de Ölçekleme 37 Oracle'dan PostgreSQL'e geçiş - Genel Sözdizimi ORACLE'DA NESNELER BÜYÜK HARFE ÇEVİRİLİRLER. postgresql'deyse tüm nesneler küçük harfe çevirilirler. Çift tırnak SQL standardı :(

PostgreSQL'de Ölçekleme 38 Oracle'dan PostgreSQL'e geçiş - Genel Sözdizimi Dual tablosu PostgreSQL'de yok Gerek de yok! Orafce Kolonlarda takma ad kullanılırken AS'e gerek yok (iki veritabanı sunucusunda da)

PostgreSQL'de Ölçekleme 39 Oracle'dan PostgreSQL'e geçiş - Fonksiyonlar Büyük farklılıklar yok PL/SQL -> PL/pgSQL Orafce

PostgreSQL'de Ölçekleme 40 Oracle'dan PostgreSQL'e geçiş - Fonksiyonlar Oracle: SELECT sequence_adı.nextval FROM dual; PostgreSQL: SELECT nextval('sequence_adı');

PostgreSQL'de Ölçekleme 41 Oracle'dan PostgreSQL'e geçiş - Outer Joinler Oracle: SELECT * FROM t1,t2 WHERE t1.c1 = t2.c2(+) PostgreSQL: SELECT * FROM t1 LEFT JOIN t2 ON t1.c1 = t2.c2

PostgreSQL'de Ölçekleme 42 Oracle'dan PostgreSQL'e geçiş - Outer Joinler Oracle: SELECT * FROM t1, t2, t3 WHERE t1.c1 (+) = t2.c2 AND t3.c3(+) = t2.c2 PostgreSQL: SELECT * FROM t1 RIGHT JOIN t2 ON (t1.c1 = t2.c2) LEFT JOIN t3 ON (t3.c3 = t2.c2)

PostgreSQL'de Ölçekleme 43 Oracle'dan PostgreSQL'e geçiş - SQL dönüşümleri Oracle: rownum PostgreSQL: LIMIT Oracle: SELECT * FROM (SELECT customer_id FROM payments ORDER BY amount DESC) WHERE rownum <= 10; PostgreSQL: SELECT customer_id FROM payments ORDER BY amount DESC LIMIT 10;SELECT * FROM t1, t2, t3 WHERE t1.c1 (+) = t2.c2 AND t3.c3(+) = t2.c2

PostgreSQL'de Ölçekleme 44 Oracle'dan PostgreSQL'e geçiş - SQL dönüşümleri Oracle: SELECT * FROM (SELECT customer_id FROM payments ORDER BY amount DESC) WHERE rownum > 20 AND rownum <= 30; PostgreSQL: SELECT customer_id FROM payments ORDER BY amount DESC LIMIT 20 OFFSET 10;

PostgreSQL'de Ölçekleme 45 Oracle'dan PostgreSQL'e geçiş - Minus - Except Oracle'da MINUS -> PostgreSQL'de EXCEPT Doğrudan karşılık değil

PostgreSQL'de Ölçekleme 46 Oracle'dan PostgreSQL'e geçiş - Trigger Oracle: CREATE TRIGGER trg1 AFTER... ON t1 AS BEGIN... END; PostgreSQL: CREATE OR REPLACE FUNCTION trg1_func() RETURNS TRIGGER LANGUAGE... AS $$... $$; CREATE TRIGGER trg1 AFTER ON table EXECUTE PROCEDURE trg1_func();

PostgreSQL'de Ölçekleme 47 Oracle'dan PostgreSQL'e geçiş - Trigger Oracle'da triggerların kendisine ait söz dizimi vardır. PostgreSQL'de ise triggerlar daha önceden tanımlanan fonksiyonların çağırılmasıdır.

PostgreSQL'de Ölçekleme 48 Oracle'dan PostgreSQL'e geçiş - Trigger Oracle: CREATE TRIGGER trg1 AFTER... ON t1 AS BEGIN... END; PostgreSQL: CREATE OR REPLACE FUNCTION trg1_func() RETURNS TRIGGER LANGUAGE... AS $$... $$; CREATE TRIGGER trg1 AFTER ON table EXECUTE PROCEDURE trg1_func();

PostgreSQL'de Ölçekleme 49 Oracle'dan PostgreSQL'e geçiş - ROWNUM ve ROWID Oracle'daki ROWNUM'ları, daha önce gördüğümüz gibi LIMIT kullanarak tekrar yazabilirsiniz. Bir diğer alternatif de generate_series() kullanmak olabilir. ROWID ise PostgreSQL'deki ctid'ye denk gelir. Mümkünse kodun ilgili kısmını baştan yazıp bundan kurtulmak gerekli.

PostgreSQL'de Ölçekleme 50 Oracle'dan PostgreSQL'e geçiş - XML Uyumsuzluklar olabilir Dönüşüm mümkün Test önemli!

PostgreSQL'de Ölçekleme 51 Oracle'dan PostgreSQL'e geçiş - Partitioning PostgreSQL'de composite_partitioning yoktur. Range, hash ve list partitioning vardır. Oracle'ın sözdizimi PostgreSQL'e göre daha gelişmiştir. CREATE TABLE aşamasında partitioning yapılabilir. (PPAS)

PostgreSQL'de Ölçekleme 52 Oracle'dan PostgreSQL'e geçiş - CONNECT BY Oracle'daki CONNECT BY için PostgreSQL'de contrib/tablefunc kullanılabilir.

Başlamadan önce... #InternetteSansüreHayır! Akademik Bilişim 2014 Oracle Uygulamalarınızı PostgreSQL'e Aktarmak 53

PostgreSQL'de Ölçekleme 54 Ajanda 1. Bu geçiş neden olmalı? 2. Genel durum özeti 3. SQL tümcelerinin aktarılması 4. PL/SQL'den PL/PgSQL'e geçiş 5. Geçiş araçları 6. Örnekler

PostgreSQL'de Ölçekleme 55 Oracle'dan PostgreSQL'e geçiş - PL/SQL -> PL/pgSQL dönüşümü PL/pgSQL Oracle uyumluluğunu ön plana alan internal bir dil. Aşağıdaki adreste önemli ipuçları var: http://www.postgresql.org/docs/current/static/plpgsql-portin g.html

PostgreSQL'de Ölçekleme 56 Oracle'dan PostgreSQL'e geçiş - PL/SQL -> PL/pgSQL dönüşümü Fonksiyon yaratırken sözdizimi farklıdır: Oracle: CREATE FUNCTION func1 RETURN veri_tipi PostgreSQL: CREATE FUNCTION func1 RETURNS veri_tipi

PostgreSQL'de Ölçekleme 57 Oracle'dan PostgreSQL'e geçiş - PL/SQL -> PL/pgSQL dönüşümü PostgreSQL'de package yok Schema PPAS

PostgreSQL'de Ölçekleme 58 Oracle'dan PostgreSQL'e geçiş - PL/SQL -> PL/pgSQL dönüşümü Cursor desteği iki veritabanında da gelişmiştir: Oracle: CURSOR cursor1 IS SELECT...; BEGIN FOR x IN cursor1 LOOP PostgreSQL: BEGIN FOR x IN SELECT... LOOP

PostgreSQL'de Ölçekleme 59 Ajanda 1. Bu geçiş neden olmalı? 2. Genel durum özeti 3. SQL tümcelerinin aktarılması 4. PL/SQL'den PL/PgSQL'e geçiş 5. Geçiş araçları 6. Örnekler

PostgreSQL'de Ölçekleme 60 Oracle'dan PostgreSQL'e geçiş - Ora2PG Ora2PG http://ora2pg.darold.net/ Hızlı geliştirme süreci Oracle'daki tablo tanımlarının PostgreSQL'e aktarılmasını sağlar bunu Oracle veritabanına bağlanarak yapar. Perl ile yazılmıştır; çalışması için birkaç Perl kütüphanesi gerekecektir (Örnek: DBD-Oracle)

PostgreSQL'de Ölçekleme 61 Oracle'dan PostgreSQL'e geçiş - Orafce Orafce... Oracle uyumluluk fonksiyonlarını PostgreSQL'e ekler. Dual tablosunu ekler :-)

PostgreSQL'de Ölçekleme 62 Oracle'dan PostgreSQL'e geçiş Postgres Plus Advanced Server Postgres Plus Advanced Server... Ticari bir ürün Oracle uyumlu PostgreSQL Snapshot, replikasyon PL/SQL uyumu http://www.enterprisedb.com

PostgreSQL'de Ölçekleme 63 Ajanda 1. Bu geçiş neden olmalı? 2. Genel durum özeti 3. SQL tümcelerinin aktarılması 4. PL/SQL'den PL/PgSQL'e geçiş 5. Geçiş araçları 6. Örnekler

PostgreSQL'de Ölçekleme 64 Geçiş örnekleri Turkcell Sony OE Bilyoner TJK Ak Yatırım ABN AMRO NASA Navteq...

Aslında: Akademik Bilişim 2014 Oracle Uygulamalarınızı PostgreSQL'e Aktarmak 65

Sorular Soruları alalım!...ve tabii ki: #InternetteSansüreHayır! Akademik Bilişim 2014 Oracle Uygulamalarınızı PostgreSQL'e Aktarmak 66

Teşekkürler! Akademik Bilişim 2014 Oracle Uygulamalarınızı PostgreSQL'e Aktarmak 67

Oracle'dan PostgreSQL'e geçiş Devrim Gündüz Principal Systems Engineer @ EnterpriseDB devrim.gunduz@enterprisedb.com Twitter : @DevrimGunduz / @DevrimGunduzTR Facebook: /DevrimGunduzTR Linkedin: http://www.linkedin.com/in/devrimgunduz Web : http://www.gunduz.org 68 2013 EnterpriseDB Corporation. All rights reserved.