Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
ŞUNLAR IÇIN GEÇERLIDIR: PostgreSQL için Azure Veritabanı esnek sunucusu
Bu kılavuz Oracle şemanızı PostgreSQL için Azure Veritabanı geçirmenize yardımcı olur.
Ayrıntılı ve kapsamlı Ora2Pg geçiş kılavuzu için bkz . Geçiş kılavuzu kaynakları.
Önkoşullar
Oracle şemanızı PostgreSQL için Azure Veritabanı geçirmek için şunları yapmanız gerekir:
- Kaynak ortamınızın desteklendiğini doğrulayın.
- Ora2Pg'nin en son sürümünü indirin.
- DBD modülünün en son sürümüne sahip olun.
Genel bakış
PostgreSQL, dünyanın en gelişmiş açık kaynak veritabanlarından biridir. Bu makalede, bir Oracle veritabanını PostgreSQL'e geçirmek için ücretsiz Ora2Pg aracının nasıl kullanılacağı açıklanmaktadır. Oracle veritabanını veya MySQL veritabanını PostgreSQL uyumlu bir şemaya geçirmek için Ora2Pg kullanabilirsiniz.
Ora2Pg aracı Oracle veritabanınızı bağlar, otomatik olarak tarar ve yapısını veya verilerini ayıklar. Ardından Ora2Pg, PostgreSQL veritabanınıza yükleyebileceğiniz SQL betikleri oluşturur. Ora2Pg'yi Oracle veritabanına ters mühendislik uygulama, büyük bir kurumsal veritabanını geçirme veya bazı Oracle verilerini postgreSQL veritabanına çoğaltma gibi görevler için kullanabilirsiniz. Araç kullanımı kolaydır ve Oracle veritabanına bağlanmak için gereken parametreleri sağlama özelliğinin yanı sıra Oracle veritabanı bilgisi gerektirmez.
Tipik Ora2Pg geçiş mimarisi
VM'yi ve PostgreSQL için Azure Veritabanı sağladıktan sonra, aralarında bağlantıyı etkinleştirmek için iki yapılandırmaya ihtiyacınız vardır: Azure hizmetlerine erişime izin ver ve SSL Bağlantısını Zorla:
Bağlantı Güvenliği dikey penceresi >Azure hizmetlerine>erişime izin ver ON
Bağlantı Güvenliği dikey penceresi> SSL Ayarları>SSL Bağlantısını>Zorunlu Kılma DEVRE DIŞI
Öneriler
Oracle sunucusundaki değerlendirme veya dışarı aktarma işlemlerinin performansını geliştirmek için istatistikleri toplayın:
BEGIN DBMS_STATS.GATHER_SCHEMA_STATS DBMS_STATS.GATHER_DATABASE_STATS DBMS_STATS.GATHER_DICTIONARY_STATS END;
yerine komutunu kullanarak
COPY
verileri dışarı aktarınINSERT
.Tabloları yabancı anahtarları (FK), kısıtlamaları ve dizinleriyle dışarı aktarmaktan kaçının. Bu öğeler PostgreSQL'e veri aktarma işlemini yavaşlatır.
Veri yok yan tümcesini kullanarak gerçekleştirilmiş görünümler oluşturun. Ardından görünümleri daha sonra yenileyin.
Mümkünse, gerçekleştirilmiş görünümlerde benzersiz dizinler kullanın. Söz dizimini
REFRESH MATERIALIZED VIEW CONCURRENTLY
kullandığınızda bu dizinler yenilemeyi hızlandırabilir.
Geçiş öncesi
Kaynak ortamınızın desteklendiğini ve önkoşulları giderdiğinizden emin olduktan sonra, geçiş aşamasına başlamaya hazırsınız demektir. Başlamak için:
- Bulma: Geçirmeniz gereken veritabanlarının envanterini oluşturun.
- Değerlendirme: Olası geçiş sorunları veya engelleyiciler için bu veritabanlarını değerlendirin.
- Dönüştür: Açığa çıkardığınız öğeleri çözün.
Oracle gibi PostgreSQL için Azure Veritabanı heterojen geçişler için bu aşama, kaynak veritabanı şemalarının hedef ortamla uyumlu olmasını da içerir.
Bulma
Bulma aşamasının amacı, mevcut veri kaynaklarını ve kullanılan özelliklerle ilgili ayrıntıları tanımlamaktır. Bu aşama, geçişi daha iyi anlamanıza ve planlamanıza yardımcı olur. Bu işlem, kuruluşunuzun tüm Oracle örneklerini kullanımdaki sürüm ve özelliklerle birlikte tanımlamak için ağı taramayı içerir.
Oracle için Microsoft ön değerlendirme betikleri Oracle veritabanında çalışır. Değerlendirme öncesi betikler Oracle meta verilerini sorgular. Betikler aşağıdakileri sağlar:
- Şemaya, türe ve duruma göre nesne sayısı da dahil olmak üzere bir veritabanı envanteri.
- İstatistiklere göre her şemadaki ham verilerin kabaca tahmini.
- Her şemadaki tabloların boyutu.
- Paket, işlev, yordam vb. başına kod satırı sayısı.
GitHub'dan ilgili betikleri indirin.
Değerlendir
Oracle veritabanlarının envanterini yaptıktan sonra veritabanı boyutu ve olası zorluklar hakkında bir fikriniz olur. Sonraki adım değerlendirmeyi çalıştırmaktır.
Oracle'dan PostgreSQL'e geçişin maliyetini tahmin etmek kolay değildir. Geçiş maliyetini değerlendirmek için Ora2Pg, otomatik olarak dönüştüremeyen nesneler ve PL/SQL kodu için tüm veritabanı nesnelerini, işlevlerini ve saklı yordamlarını denetler.
Ora2Pg aracının bir metin raporu oluşturmak için Oracle veritabanını inceleyen bir içerik analizi modu vardır. Rapor, Oracle veritabanının neler içerdiğini ve nelerin dışarı aktarılabildiğini açıklar.
Analiz ve rapor modunu etkinleştirmek için aşağıdaki komutta gösterildiği gibi dışarı aktarılan türü SHOW_REPORT
kullanın:
ora2pg -t SHOW_REPORT
Ora2Pg aracı, SQL ve PL/SQL kodunu Oracle söz diziminden PostgreSQL'e dönüştürebilir. Bu nedenle, veritabanı çözümlendiğinde Ora2Pg kod zorluklarını ve tam veritabanını geçirmek için gereken süreyi tahmin edebilir.
İnsan günlerindeki geçiş maliyetini tahmin etmek için Ora2Pg adlı ESTIMATE_COST
bir yapılandırma yönergesi kullanmanıza olanak tanır. Bu yönergeyi bir komut isteminde de etkinleştirebilirsiniz:
ora2pg -t SHOW_REPORT --estimate_cost
Varsayılan geçiş birimi, PostgreSQL uzmanı için yaklaşık beş dakikayı temsil eder. Bu geçiş sizin ilk geçişinizse, yapılandırma yönergesini COST_UNIT_VALUE
veya --cost_unit_value
komut satırı seçeneğini kullanarak varsayılan geçiş birimini artırabilirsiniz.
Raporun son satırında, insan günlerindeki toplam tahmini geçiş kodu gösterilir. Tahmin, her nesne için tahmin edilen geçiş birimi sayısını izler.
Aşağıdaki kod örneğinde bazı değerlendirme varyasyonları görürsünüz:
- Tablo değerlendirmesi
- Sütun değerlendirmesi
- 5 dakikalık varsayılan maliyet birimi kullanan şema değerlendirmesi
- 10 dakikalık bir maliyet birimi kullanan şema değerlendirmesi
ora2pg -t SHOW_TABLE -c c:\ora2pg\ora2pg_hr.conf > c:\ts303\hr_migration\reports\tables.txt
ora2pg -t SHOW_COLUMN -c c:\ora2pg\ora2pg_hr.conf > c:\ts303\hr_migration\reports\columns.txt
ora2pg -t SHOW_REPORT -c c:\ora2pg\ora2pg_hr.conf --dump_as_html --estimate_cost > c:\ts303\hr_migration\reports\report.html
ora2pg -t SHOW_REPORT -c c:\ora2pg\ora2pg_hr.conf –-cost_unit_value 10 --dump_as_html --estimate_cost > c:\ts303\hr_migration\reports\report2.html
Şema değerlendirmesi geçiş düzeyi B-5'in çıktısı aşağıdadır:
Geçiş düzeyleri:
A - Otomatik olarak çalıştırılabilir geçiş
B - Kod yeniden yazma ile geçiş ve 5 güne kadar insan günü maliyeti
C - Kod yeniden yazma ile geçiş ve 5 günden fazla insan günü maliyeti
Teknik düzeyler:
1 = Önemsiz: Depolanan işlev yok ve tetikleyici yok
2 = Kolay: Depolanan işlev yok, ancak tetikleyiciler; el ile yeniden yazma yok
3 = Basit: Depolanan işlevler ve/veya tetikleyiciler; el ile yeniden yazma yok
4 = El ile: Depolanmış işlev yok, ancak kod yeniden yazma ile tetikleyiciler veya görünümler
5 = Zor: Kod yeniden yazma ile depolanan işlevler ve/veya tetikleyiciler
Değerlendirme şunlardan oluşur:
Geçişin el ile yeniden yazılması gerekip gerekmediğini belirtmek için bir harf (A veya B).
Teknik zorluğu göstermek için 1'den 5'e kadar bir sayı.
Başka bir seçenek olan -human_days_limit
, insan günü sınırını belirtir. Burada, geçişin büyük miktarda çalışma, tam proje yönetimi ve geçiş desteğine ihtiyacı olduğunu belirtmek için geçiş düzeyini C olarak ayarlayın. Varsayılan değer 10 insan günüdür. Bu varsayılan değeri kalıcı olarak değiştirmek için yapılandırma yönergesini HUMAN_DAYS_LIMIT
kullanabilirsiniz.
Bu şema değerlendirmesi, kullanıcıların önce hangi veritabanını geçireceğine ve hangi ekipleri harekete geçireceğine karar vermelerine yardımcı olmak için geliştirilmiştir.
Dönüştür
En düşük kapalı kalma süresine neden olan geçişlerde, geçiş kaynağınız değişir. Tek seferlik geçişten sonra veriler ve şema açısından hedeften kayıyor. Veri eşitleme aşamasında, kaynaktaki tüm değişikliklerin yakalandığından ve hedefe neredeyse gerçek zamanlı olarak uygulandığından emin olun. Tüm değişikliklerin hedefe uygulandığını doğruladıktan sonra, kaynaktan hedef ortama kesebilirsiniz.
Geçişin bu adımında Oracle kodu ve DDL betikleri PostgreSQL'e dönüştürülür veya dönüştürülür. Ora2Pg aracı, Oracle nesnelerini otomatik olarak PostgreSQL biçiminde dışarı aktarır. Oluşturulan nesnelerden bazıları el ile yapılan değişiklikler olmadan PostgreSQL veritabanında derlenemez.
Hangi öğelerin el ile müdahaleye ihtiyacı olduğunu anlamak için önce Ora2Pg tarafından oluşturulan dosyaları PostgreSQL veritabanında derleyin. Günlüğü denetleyin ve şema yapısı PostgreSQL söz dizimi ile uyumlu olana kadar gerekli değişiklikleri yapın.
Geçiş şablonu oluşturma
Ora2Pg'nin sağladığı geçiş şablonunu kullanmanızı öneririz. ve --project_base
seçeneklerini --init_project
kullandığınızda Ora2Pg, Oracle veritabanındaki tüm nesneleri dışarı aktarmak için iş ağacı, yapılandırma dosyası ve betik içeren bir proje şablonu oluşturur. Daha fazla bilgi için Ora2Pg belgelerine bakın.
Aşağıdaki komutu kullanın:
ora2pg --project_base /app/migration/ --init_project test_project
Örnek çıktı şu şekildedir:
ora2pg --project_base /app/migration/ --init_project test_project
Creating project test_project.
/app/migration/test_project/
schema/
dblinks/
directories/
functions/
grants/
mviews/
packages/
partitions/
procedures/
sequences/
synonyms/
tables/
tablespaces/
triggers/
types/
views/
sources/
functions/
mviews/
packages/
partitions/
procedures/
triggers/
types/
views/
data/
config/
reports/
Generating generic configuration file
Creating script export_schema.sh to automate all exports.
Creating script import_all.sh to automate all imports.
Dizini Oracle sources/
kodunu içerir. Dizin, schema/
PostgreSQL'e taşınabilir kodu içerir. Dizin, reports/
HTML raporlarını ve geçiş maliyeti değerlendirmesini içerir.
Proje yapısı oluşturulduktan sonra genel bir yapılandırma dosyası oluşturulur. Oracle veritabanı bağlantısını ve ilgili yapılandırma parametrelerini yapılandırma dosyasında tanımlayın. Yapılandırma dosyası hakkında daha fazla bilgi için Ora2Pg belgelerine bakın.
Oracle nesnelerini dışarı aktarma
Ardından, export_schema.sh dosyasını çalıştırarak Oracle nesnelerini PostgreSQL nesneleri olarak dışarı aktarın.
cd /app/migration/mig_project
./export_schema.sh
Aşağıdaki komutu el ile çalıştırın.
SET namespace="/app/migration/mig_project"
ora2pg -p -t DBLINK -o dblink.sql -b %namespace%/schema/dblinks -c %namespace%/config/ora2pg.conf
ora2pg -p -t DIRECTORY -o directory.sql -b %namespace%/schema/directories -c %namespace%/config/ora2pg.conf
ora2pg -p -t FUNCTION -o functions2.sql -b %namespace%/schema/functions -c %namespace%/config/ora2pg.conf
ora2pg -p -t GRANT -o grants.sql -b %namespace%/schema/grants -c %namespace%/config/ora2pg.conf
ora2pg -p -t MVIEW -o mview.sql -b %namespace%/schema/mviews -c %namespace%/config/ora2pg.conf
ora2pg -p -t PACKAGE -o packages.sql -b %namespace%/schema/packages -c %namespace%/config/ora2pg.conf
ora2pg -p -t PARTITION -o partitions.sql -b %namespace%/schema/partitions -c %namespace%/config/ora2pg.conf
ora2pg -p -t PROCEDURE -o procs.sql -b %namespace%/schema/procedures -c %namespace%/config/ora2pg.conf
ora2pg -p -t SEQUENCE -o sequences.sql -b %namespace%/schema/sequences -c %namespace%/config/ora2pg.conf
ora2pg -p -t SYNONYM -o synonym.sql -b %namespace%/schema/synonyms -c %namespace%/config/ora2pg.conf
ora2pg -p -t TABLE -o table.sql -b %namespace%/schema/tables -c %namespace%/config/ora2pg.conf
ora2pg -p -t TABLESPACE -o tablespaces.sql -b %namespace%/schema/tablespaces -c %namespace%/config/ora2pg.conf
ora2pg -p -t TRIGGER -o triggers.sql -b %namespace%/schema/triggers -c %namespace%/config/ora2pg.conf
ora2pg -p -t TYPE -o types.sql -b %namespace%/schema/types -c %namespace%/config/ora2pg.conf
ora2pg -p -t VIEW -o views.sql -b %namespace%/schema/views -c %namespace%/config/ora2pg.conf
Verileri ayıklamak için aşağıdaki komutu kullanın.
ora2pg -t COPY -o data.sql -b %namespace%/data -c %namespace/config/ora2pg.conf
Dosyaları derleme
Son olarak, tüm dosyaları PostgreSQL için Azure Veritabanı sunucusuna karşı derleyin. El ile oluşturulan DDL dosyalarını yüklemeyi seçebilir veya bu dosyaları etkileşimli olarak içeri aktarmak için ikinci betik import_all.sh kullanabilirsiniz.
psql -f %namespace%\schema\sequences\sequence.sql -h server1-server.postgres.database.azure.com -p 5432 -U username@server1-server -d database -L %namespace%\ schema\sequences\create_sequences.log
psql -f %namespace%\schema\tables\table.sql -h server1-server.postgres.database.azure.com -p 5432 -U username@server1-server -d database -L %namespace%\schema\tables\create_table.log
Veri içeri aktarma komutu aşağıdadır:
psql -f %namespace%\data\table1.sql -h server1-server.postgres.database.azure.com -p 5432 -U username@server1-server -d database -l %namespace%\data\table1.log
psql -f %namespace%\data\table2.sql -h server1-server.postgres.database.azure.com -p 5432 -U username@server1-server -d database -l %namespace%\data\table2.log
Dosyalar derlenirken günlükleri denetleyin ve Ora2Pg'nin kendi kendine dönüştüremediği söz dizimlerini düzeltin.
Daha fazla bilgi için bkz. Oracle to PostgreSQL için Azure Veritabanı geçiş geçici çözümleri.
Geçiş
Gerekli önkoşullara sahip olduktan ve geçiş öncesi adımlarını tamamladıktan sonra şemayı ve veri geçişini başlatabilirsiniz.
Şemayı ve verileri geçirme
Gerekli düzeltmeleri yaptığınızda, veritabanının kararlı bir derlemesi dağıtıma hazır hale gelir.
psql
Değiştirilen kodu içeren dosyalara işaret ederek içeri aktarma komutlarını çalıştırın. Bu görev, veritabanı nesnelerini PostgreSQL veritabanına karşı derler ve verileri içeri aktarır.
Bu adımda, verileri içeri aktarmaya paralellik düzeyi uygulayabilirsiniz.
Verileri eşitleme ve kesme
Çevrimiçi (en düşük kapalı kalma süresi) geçişlerde geçiş kaynağı değişmeye devam eder. Tek seferlik geçişten sonra veriler ve şema açısından hedeften kayıyor.
Veri eşitleme aşamasında, kaynaktaki tüm değişikliklerin yakalandığından ve hedefe neredeyse gerçek zamanlı olarak uygulandığından emin olun. Tüm değişikliklerin uygulandığını doğruladıktan sonra kaynaktan hedef ortama kesebilirsiniz.
Çevrimiçi geçiş yapmak için destek için iletişime geçin AskAzureDBforPostgreSQL@service.microsoft.com .
Ora2Pg kullanan bir delta/artımlı geçişte, her tablo için tarihe, saate veya başka bir parametreye göre filtreleyen (kesen) bir sorgu kullanın. Ardından kalan verileri geçiren ikinci bir sorgu kullanarak geçişi tamamlayın.
Kaynak veri tablosunda, önce tüm geçmiş verileri geçirin. Bir örnek aşağıda verilmiştir:
select * from table1 where filter_data < 01/01/2019
İlk geçiş sonrasındaki değişiklikleri sorgulamak için aşağıdakine benzer bir komut çalıştırabilirsiniz:
select * from table1 where filter_data >= 01/01/2019
Bu durumda, her iki tarafta da, kaynakta ve hedefte veri eşliğini denetleyerek doğrulamayı geliştirmenizi öneririz.
Geçiş sonrası
Geçiş aşamasından sonra, her şeyin mümkün olduğunca sorunsuz ve verimli çalıştığından emin olmak için geçiş sonrası görevleri tamamlayın.
Uygulamaları düzeltme
Veriler hedef ortama geçirildikten sonra, daha önce kaynağı kullanan tüm uygulamaların hedefi kullanmaya başlaması gerekir. Kurulum bazen uygulamalarda değişiklik yapılmasını gerektirir.
Test etme
Veriler hedefe geçirildikten sonra, uygulamaların hedefle iyi çalıştığını doğrulamak için veritabanlarında testler çalıştırın. Oracle kaynağı ve PostgreSQL hedef veritabanlarında el ile veri doğrulama betiklerini çalıştırarak kaynak ve hedefin düzgün geçirildiğinden emin olun.
İdeal olarak, kaynak ve hedef veritabanlarının bir ağ yolu varsa, veri doğrulaması için Ora2Pg kullanılmalıdır. Oracle veritabanındaki TEST
tüm nesnelerin PostgreSQL'de oluşturulduğundan emin olmak için eylemi kullanabilirsiniz.
Şu komutu çalıştırın:
ora2pg -t TEST -c config/ora2pg.conf > migration_diff.txt
Optimize Et
Geçiş sonrası aşama, veri doğruluğu sorunlarının mutabıklığı ve eksiksizliğin doğrulanması açısından çok önemlidir. Bu aşamada, iş yüküyle ilgili performans sorunlarını da ele alırsınız.
Geçiş varlıkları
Bu geçiş senaryosu hakkında daha fazla bilgi için aşağıdaki kaynaklara bakın. Gerçek dünya geçiş projesi katılımını destekler.
Kaynak | Açıklama |
---|---|
Oracle'ı Azure PostgreSQL'e geçirme kılavuzu | Bu belge mimarların, danışmanların, veritabanı yöneticilerinin ve ilgili rollerin Ora2Pg kullanarak iş yüklerini Oracle'dan PostgreSQL için Azure Veritabanı hızla geçirmesine yardımcı olur. |
Oracle'ı Azure PostgreSQL'e geçirme geçici çözümleri | Bu belge mimarların, danışmanların, veritabanı yöneticilerinin ve ilgili rollerin iş yüklerini Oracle'dan PostgreSQL için Azure Veritabanı geçirirken sorunları hızla düzeltmesine veya geçici olarak çözmesine yardımcı olur. |
Windows veya Linux'ta Ora2Pg yükleme adımları | Bu belge, Windows veya Linux üzerinde Ora2Pg kullanarak şemayı ve verileri Oracle'dan PostgreSQL için Azure Veritabanı'a geçirmek için hızlı bir yükleme kılavuzu sağlar. Daha fazla bilgi için Ora2Pg belgelerine bakın. |
Bu kaynakları Data SQL Mühendislik ekibi geliştirdi. Bu ekibin temel şartı, microsoft Azure veri platformuna veri platformu geçiş projeleri için karmaşık modernleştirmenin engelini kaldırmak ve hızlandırmaktır.
Daha fazla destek
Ora2Pg araçlarının kapsamını aşan geçiş yardımı için PostgreSQL için Azure DB @Ask başvurun.