Öğretici: Geçiş hizmeti Önizlemesi ile PostgreSQL için Amazon RDS'den PostgreSQL için Azure Veritabanı geçiş
Bu makalede PostgreSQL veritabanınızı PostgreSQL için Amazon RDS'den PostgreSQL için Azure Veritabanı çevrimiçine geçirme işlemi inceler.
PostgreSQL için Azure Veritabanı'daki geçiş hizmeti, Azure portalı ve Azure CLI ile tümleştirilmiş tam olarak yönetilen bir hizmettir. PostgreSQL için Azure Veritabanı sunucuya geçiş yolculuğunuzu basitleştirmek için tasarlanmıştır.
- Önkoşullar
- Geçişi gerçekleştirme
- Geçişi izleme
- Tam geçiş
- Tamamlandığında geçişi denetleme
Önkoşullar
Geçişi tamamlamak için aşağıdaki önkoşullara ihtiyacınız vardır:
PostgreSQL için Azure Veritabanı geçiş hizmetiyle geçişe başlamadan önce, özellikle çevrimiçi geçiş senaryoları için tasarlanmış aşağıdaki önkoşulları yerine getirmek önemlidir.
- Kaynak sürümü doğrulama
- test_decoding Yükleme - Kaynak Kurulumu
- Hedef kurulumu yapılandırma
- CDC'yi kaynak olarak etkinleştirme
- Ağ kurulumunu yapılandırma
- Uzantıları etkinleştirme
- Sunucu parametrelerini denetleme
- Kullanıcıları ve rolleri denetleme
Kaynak sürümü doğrulama
Kaynak PostgreSQL sunucu sürümü 9.5 veya üzeri olmalıdır.
Kaynak PostgreSQL sürümü 9.5'ten küçükse, geçişi başlatmadan önce 9.5 veya üzeri bir sürüme yükseltin.
test_decoding Yükleme - Kaynak Kurulumu
- test_decoding mantıksal kod çözme mekanizması aracılığıyla WAL alır ve gerçekleştirilen işlemlerin metin gösterimlerine çözer.
- PostgreSQL için Amazon RDS'de test_decoding eklentisi önceden yüklenmiştir ve mantıksal çoğaltma için hazırdır. Bu, veri yakalamayı (CDC) değiştirme veya dış sistemlere çoğaltma gibi kullanım örneklerini kolaylaştırarak mantıksal çoğaltma yuvalarını kolayca ayarlamanıza ve WAL değişikliklerini akışla aktarmanıza olanak tanır.
- Test kodunu çözme eklentisi hakkında daha fazla bilgi için PostgreSQL belgelerine bakın
Hedef kurulumu yapılandırma
- Geçiş öncesinde PostgreSQL için Azure Veritabanı – Esnek sunucu oluşturulmalıdır.
- PostgreSQL için Azure Veritabanı için sağlanan SKU – Esnek sunucu kaynakla eşleşmelidir.
- Yeni bir PostgreSQL için Azure Veritabanı oluşturmak için PostgreSQL için Azure Veritabanı - Esnek Sunucu örneği oluşturma adresini ziyaret edin
CDC'yi kaynak olarak etkinleştirme
test_decoding
mantıksal kod çözme eklentisi, değiştirilen kayıtları kaynaktan yakalar.- Geçiş kullanıcısının çoğaltma ayrıcalıklarına erişmesine izin vermek için aşağıdaki komutu yürütebilirsiniz:
GRANT rds_replication TO <<username>>;
PostgreSQL örneğinde, yeni bir parametre grubu oluşturarak aşağıdaki parametreleri değiştirin:
- Ayarlamak
rds.logical_replication = 1
- Birden büyük bir değere ayarlayın
max_replication_slots
; değer, geçiş için seçilen veritabanı sayısından büyük olmalıdır. - Birden büyük bir değere ayarlayın
max_wal_senders
. En azından ile aynımax_replication_slots
ve örneğinizde zaten kullanılan gönderenlerin sayısı olmalıdır. - Parametresi,
wal_sender_timeout
etkin olmayan çoğaltma bağlantılarını belirtilen milisaniyeden daha uzun süre sonlandırır. PostgreSQL için AWS RDS örneği için varsayılan değerdir30000 milliseconds (30 seconds)
. Değerin 0 (sıfır) olarak ayarlanması zaman aşımı mekanizmasını devre dışı bırakır ve geçiş için geçerli bir ayardır.
- Ayarlamak
Hedef Esnek Sunucuda, çevrimiçi geçişin günlükleri depolamak için depolama alanının dolmasını önlemek için sağlanan yönetilen diski kullanarak yeterli tablo alanı alanınız olduğundan emin olun. Bunu başarmak için, geçiş süresi boyunca sunucu parametresini
azure.enable_temp_tablespaces_on_local_ssd
devre dışı bırakın ve geçiş sonrasında özgün durumuna geri yükleyin.
Ağ kurulumunu yapılandırma
Geçiş hizmetinin düzgün çalışması için ağ kurulumu çok önemlidir. Kaynak PostgreSQL sunucusunun hedef PostgreSQL için Azure Veritabanı sunucusuyla iletişim kuraadığından emin olun. Başarılı bir geçiş için aşağıdaki ağ yapılandırmaları gereklidir.
Ağ kurulumu hakkında bilgi için Bkz . Geçiş hizmeti için ağ kılavuzu.
Uzantıları etkinleştirme
geçiş hizmetini PostgreSQL için Azure Veritabanı kullanarak geçişin başarılı olmasını sağlamak için kaynak PostgreSQL örneğinizdeki uzantıları doğrulamanız gerekebilir. Uzantılar, uygulamanız için gerekli olabilecek işlevler ve özellikler sağlar. Geçiş işlemini başlatmadan önce kaynak PostgreSQL örneğindeki uzantıları doğruladığınızdan emin olun.
PostgreSQL için Azure Veritabanı - Esnek Sunucu'nun hedef örneğinde, kaynak PostgreSQL örneğinde tanımlanan desteklenen uzantıları etkinleştirin.
Daha fazla bilgi için bkz. PostgreSQL için Azure Veritabanı uzantılar.
Not
Parametresinde herhangi bir değişiklik shared_preload_libraries
yaptığınızda yeniden başlatma gerekir.
Sunucu parametrelerini denetleme
Bu parametreler otomatik olarak hedef ortama geçirilmez ve el ile yapılandırılması gerekir.
Kaynak PostgreSQL veritabanındaki sunucu parametresi değerlerini Azure portalındaki "Sunucu parametreleri" bölümüne erişerek ve değerleri uygun şekilde el ile güncelleştirerek PostgreSQL için Azure Veritabanı eşleştirin.
Parametre değişikliklerini kaydedin ve gerekirse yeni yapılandırmayı uygulamak için PostgreSQL için Azure Veritabanı yeniden başlatın.
Kullanıcıları ve rolleri denetleme
PostgreSQL için Azure Veritabanı geçiş yaparken, el ile müdahale gerektirdiğinden, kullanıcı ve rollerin geçişini ayrı ayrı ele almak önemlidir:
Kullanıcı ve Rollerin El ile Geçişi: Kullanıcılar ve ilişkili rolleri el ile PostgreSQL için Azure Veritabanı geçirilmelidir. Bu işlemi kolaylaştırmak için yardımcı programını bayrağıyla kullanarak
pg_dumpall
--globals-only
roller ve kullanıcı hesapları gibi genel nesneleri dışarı aktarabilirsiniz. öğesini gerçek kullanıcı adıyla ve<<filename>>
istediğiniz çıkış dosyası adıyla değiştirerek<<username>>
aşağıdaki komutu yürütebilirsiniz:pg_dumpall --globals-only -U <<username>> -f <<filename>>.sql
Süper Kullanıcı Rolleri kısıtlaması: PostgreSQL için Azure Veritabanı süper kullanıcı rollerini desteklemez. Bu nedenle, süper kullanıcı ayrıcalıklarına sahip kullanıcıların geçiş öncesinde bu ayrıcalıkların kaldırılması gerekir. İzinleri ve rolleri uygun şekilde ayarladığınızdan emin olun.
Bu adımları izleyerek, süper kullanıcı kısıtlamalarıyla ilgili sorunlarla karşılaşmadan kullanıcı hesaplarının ve rollerinin doğru şekilde PostgreSQL için Azure Veritabanı geçirildiğinden emin olabilirsiniz.
Hedefte yüksek kullanılabilirlik (güvenilirlik) ve okuma amaçlı çoğaltmaları devre dışı bırakma
Hedef ortamda yüksek kullanılabilirlik (güvenilirlik) ve okuma çoğaltmalarını devre dışı bırakmak önemlidir. Bu özelliklerin yalnızca geçiş tamamlandıktan sonra etkinleştirilmesi gerekir.
Bu yönergeleri izleyerek, HA ve Okuma Çoğaltmaları tarafından sunulan değişkenler olmadan sorunsuz bir geçiş işlemi sağlamaya yardımcı olabilirsiniz. Geçiş tamamlandıktan ve veritabanı kararlı olduktan sonra, Azure'daki veritabanı ortamınızın kullanılabilirliğini ve ölçeklenebilirliğini artırmak için bu özellikleri etkinleştirmeye devam edebilirsiniz.
Geçişi gerçekleştirme
Azure portalını veya Azure CLI'yi kullanarak geçiş yapabilirsiniz.
Azure portalı, geçişte size yol gösteren basit ve sezgisel bir sihirbaz tabanlı deneyim sağlar. Bu öğreticide açıklanan adımları izleyerek, veritabanınızı sorunsuz bir şekilde PostgreSQL için Azure Veritabanı - Esnek Sunucu'ya aktarabilir ve güçlü özelliklerinden ve ölçeklenebilirlik özelliklerinden yararlanabilirsiniz.
Azure portalıyla geçiş yapmak için önce geçiş görevini yapılandırıp kaynağa ve hedefe bağlanıp geçişi gerçekleştirin.
Geçiş görevini yapılandırma
Geçiş hizmeti, Azure portalında basit, sihirbaz tabanlı bir deneyimle birlikte gelir. Şu şekilde başlayabilirsin:
Web tarayıcınızı açın ve portala gidin. Oturum açmak için kimlik bilgilerinizi girin. Varsayılan görünüm hizmet panonuzu içerir.
PostgreSQL için Azure Veritabanı Esnek Sunucu hedefinize gidin.
Esnek Sunucunun Genel Bakış sekmesinde, soldaki menüde aşağı kaydırarak Geçiş'e gelin ve seçin.
PostgreSQL için Amazon RDS'den PostgreSQL için Azure Veritabanı - Esnek Sunucu'ya geçmek için Oluştur düğmesini seçin. Geçiş hizmetini ilk kez kullanıyorsanız, ilk geçişinizi başlatmak için bir istem içeren boş bir kılavuz görüntülenir.
PostgreSQL için Azure Veritabanı hedefinize zaten geçişler oluşturduysanız kılavuzda geçiş girişimiyle ilgili bilgiler bulunur.
Oluştur düğmesini seçin. Ardından, PostgreSQL kaynak örneğinden bu PostgreSQL için Azure Veritabanı hedefine geçiş oluşturmak için sihirbaz tabanlı bir sekme serisinden geçersiniz.
Ayarlama
İlk sekme , kullanıcının geçişleri başlatmak için geçiş adı kaynak türü gibi geçiş ayrıntılarını sağlaması gereken Kurulum sekmesidir.
Geçiş adı , bu Esnek Sunucu hedefine yapılan her geçiş için benzersiz tanımlayıcıdır. Bu alan yalnızca alfasayısal karakterleri kabul eder ve kısa çizgi (-) dışında herhangi bir özel karakteri kabul etmez. Ad kısa çizgiyle başlayamaz ve hedef sunucu için benzersiz olmalıdır. Aynı Esnek Sunucu hedefine yapılan iki geçiş aynı ada sahip olamaz.
Kaynak Sunucu Türü — PostgreSQL kaynağınıza bağlı olarak bulut tabanlı PostgreSQL hizmeti, şirket içi kurulum veya sanal makine gibi ilgili kaynak türünü seçebilirsiniz.
Geçiş Seçeneği , geçişi tetiklemeden önce doğrulamalar gerçekleştirmenizi sağlar. Aşağıdaki seçeneklerden herhangi birini seçebilirsiniz:
- Doğrula - Sunucunuzu ve veritabanınızın hedefe geçiş için hazır olup olduğunu denetler.
- Geçiş - Doğrulamaları atlar ve geçişleri başlatır.
- Doğrulama ve Geçirme—Geçişi tetiklemeden önce doğrulama gerçekleştirir. Geçiş yalnızca doğrulama hatası olmadığında tetiklenir.
Geçişi çalıştırmadan önce ön geçiş doğrulamaları gerçekleştirirken Doğrula veya Doğrula ve Geçir seçeneğinin seçilmesi her zaman iyi bir uygulamadır. Geçiş öncesi doğrulama hakkında daha fazla bilgi edinmek için bu belgelere bakın.
- Geçiş modu , geçiş için modu seçmenize olanak tanır. Varsayılan seçenek çevrimdışıdır .
İleri: Kaynağa Bağlan düğmesini seçin.
Çalışma Zamanı Sunucusu'nu seçin
Geçiş Çalışma Zamanı Sunucusu, geçiş hizmetindeki özel bir özelliktir ve geçiş sırasında aracı sunucu olarak görev yapmak üzere tasarlanmıştır. Bu ayrı bir PostgreSQL için Azure Veritabanı - Hedef sunucu olmayan ancak veritabanlarının yalnızca özel ağ üzerinden erişilebilen bir kaynak ortamdan geçişini kolaylaştırmak için kullanılan Esnek Sunucu örneğidir.
Çalışma Zamanı Sunucusu hakkında daha fazla bilgi için Migration Runtime Sunucusu'nu ziyaret edin.
Kaynağa bağlan
Kaynağa Bağlan sekmesi, veritabanlarının Kaynağı olan Kurulum Sekmesinde seçilen Kaynakla ilgili ayrıntıları sağlamanızı ister.
- Sunucu Adı - Kaynak PostgreSQL örneğinin Ana Bilgisayar adını veya IP adresini belirtin
- Bağlantı Noktası - Kaynak sunucunun bağlantı noktası numarası
- Sunucu yöneticisi oturum açma adı - Kaynak PostgreSQL sunucusunun kullanıcı adı
- Parola - Kaynak PostgreSQL sunucusunun parolası
- SSL Modu— Desteklenen değerler tercih edilir ve gereklidir. Kaynak PostgreSQL sunucusundaki SSL KAPALI olduğunda SSLMODE=prefer kullanın. Kaynak sunucudaki SSL ON ise SSLMODE=require komutunu kullanın. SSL değerleri Postgresql.conf dosyasında belirlenebilir.
- Bağlantıyı Sına—Hedef ile Kaynak arasında bağlantı testi gerçekleştirir. Bağlantı başarılı olduktan sonra kullanıcılar sonraki adıma geçebilir. Aksi takdirde, hedef ile Kaynak arasındaki ağ sorunlarını tanımlamamız ve Kaynak için kullanıcı adını/parolayı doğrulamamız gerekir. Test bağlantısı kurmak birkaç dakika sürer.
Başarılı bir test bağlantısından sonra Sonraki: Geçiş hedefi'ni seçin
Geçiş hedeflerini seçme
Geçiş hedefi seçme sekmesinde Esnek Sunucu hedefi için abonelik adı, kaynak grubu, sunucu adı, konum ve PostgreSQL sürümü gibi meta veriler görüntülenir.
- Yönetici kullanıcı adı - Hedef PostgreSQL sunucusunun yönetici kullanıcı adı
- Parola - Hedef PostgreSQL sunucusunun parolası
- Özel FQDN/IP (İsteğe Bağlı): Özel FQDN/IP alanı isteğe bağlıdır ve hedef özel bir DNS sunucusunun arkasında olduğunda veya özel DNS ad alanlarına sahip olduğunda kullanılabilir, böylece yalnızca belirli FQDN'ler veya IP adresleri aracılığıyla erişilebilir. Örneğin, özel DNS sunucusu DNS bölgesini içeriyorsa veya bu bölgenin sorgularını FQDN'nin Azure genel veya özel DNS bölgesinde çözümlendiği konumuna
168.63.129.16
iletirse, bu , veya198.1.0.2
flexibleserver.example.com
gibiflexibleserver.postgres.database.azure.com
bir PostgreSQL FQDN'sini içerebilir.postgres.database.azure.com
- Bağlantıyı Sına - Hedef ile Kaynak arasındaki bağlantı testini gerçekleştirir. Bağlantı başarılı olduktan sonra kullanıcılar sonraki adıma geçebilir. Aksi takdirde, hedef ile Kaynak arasındaki ağ sorunlarını tanımlamamız ve hedef için kullanıcı adını/parolayı doğrulamamız gerekir. Test bağlantısının hedefle kaynak arasında bağlantı kurması birkaç dakika sürer.
Başarılı bir test bağlantısından sonra Sonraki: Geçiş için Veritabanlarını Seç'i seçin
Geçiş için veritabanlarını seçme
Bu sekmenin altında, kullanıcı veritabanlarının listesi kurulum sekmesinde seçilen kaynak sunucunun içindedir. Tek bir geçiş denemesinde en fazla sekiz veritabanı seçip geçirebilirsiniz. Sekizden fazla kullanıcı veritabanı varsa, geçiş işlemi sonraki veritabanı kümesi için kaynak ve hedef sunucular arasında yinelenir.
Veritabanlarını seçtikten sonra İleri: Özet'i seçin
Özet
Özet sekmesi, doğrulama veya geçiş oluşturmaya yönelik tüm Kaynak ve hedef ayrıntılarını özetler. Ayrıntıları gözden geçirin ve başlangıç düğmesini seçin.
Geçişi izleme
Başlangıç düğmesini seçtikten sonra, doğrulama veya geçiş oluşturma işleminin başarılı olduğunu belirten bir bildirim birkaç saniye içinde görüntülenir. Daha sonra otomatik olarak Esnek Sunucu'nun Geçiş sayfasına yönlendirilirsiniz. Bu sayfa, kısa süre önce oluşturulan doğrulama veya geçiş için yeni bir giriş içerir.
Geçişleri görüntüleyen kılavuzda şu sütunlar bulunur: Ad, Durum, Geçiş modu, Geçiş türü, Kaynak sunucu, Kaynak sunucu türü, Veritabanları, Süre ve Başlangıç saati. Girişler, başlangıç saatinin azalan sırasına göre ve en son girdi en üstte olacak şekilde görüntülenir. Doğrulama veya geçiş durumunu yenilemek için yenile düğmesini kullanabilirsiniz. İlişkili ayrıntıları görmek için kılavuzda geçiş adını seçin.
Doğrulama veya geçiş oluşturulduğunda InProgress durumuna ve PerformingPreRequisiteSteps alt tabakaya geçer. İş akışının geçiş altyapısını ve ağ bağlantılarını ayarlaması 2-3 dakika sürer.
Geçiş ayrıntıları
Kurulum sekmesinde Geçiş ve Doğrula olarak geçiş seçeneğini belirledik. Bu senaryoda, doğrulamalar geçiş başlamadan önce gerçekleştirilir. PerformingPreRequisiteSteps alt durumu tamamlandıktan sonra iş akışı Devam Eden Doğrulama'nın alt durumuna geçer.
- Doğrulamada hatalar varsa, geçiş Başarısız durumuna geçer.
- Doğrulama hatasız tamamlanırsa geçiş başlatılır ve iş akışı Verileri Geçirme alt durumuna geçer.
Doğrulama ve geçiş sonuçlarını örnek ve veritabanı düzeyinde görebilirsiniz.
Bazı olası geçiş durumları:
Geçiş durumları
Durum | Açıklama |
---|---|
InProgress | Geçiş altyapısı kurulumu devam ediyor veya gerçek veri geçişi devam ediyor. |
İptal Edildi | Geçiş iptal edilir veya silinir. |
Başarısız oldu | Geçiş başarısız oldu. |
Doğrulama Başarısız Oldu | Doğrulama başarısız oldu. |
Başarılı | Geçiş başarılı oldu ve tamamlandı. |
WaitingForUserAction | Yalnızca çevrimiçi geçiş için geçerlidir. Kullanıcı eyleminin tam geçişi gerçekleştirmesi bekleniyor. |
Geçiş alt eyaletleri
Alt Durum | Açıklama |
---|---|
PerformingPreRequisiteSteps | Veri geçişi için altyapı kurulumu devam ediyor. |
Doğrulama Sürüyor | Doğrulama devam ediyor. |
MigratingData | Veri geçişi devam ediyor. |
TamamlanıyorMigration | Geçiş, tamamlanma işleminin son aşamalarındadır. |
Tamamlandı | Geçiş tamamlandı. |
Başarısız oldu | Geçiş başarısız oldu. |
Doğrulama alt eyaletleri
Alt Durum | Açıklama |
---|---|
Başarısız oldu | Doğrulama başarısız oldu. |
Başarılı | Doğrulama başarılı oldu. |
Uyarı | Doğrulama uyarıda. |
Tam geçiş
Hem Geçirme hem de Doğrulama ve Geçirme varsa, Çevrimiçi geçişi tamamlamak için başka bir adım gerekir; kullanıcının tam geçiş eylemi gerçekleştirmesi gerekir. Temel verilerin kopyalanması/kopyalanması tamamlandıktan sonra geçiş, duruma ve WaitingForCutoverTrigger
alt duruma geçerWaitingForUserAction
. Bu durumda, kullanıcı geçişi seçerek portaldan tam geçişi tetikleyebilir.
Tam geçişi başlatmadan önce şunların sağlanması önemlidir:
Kaynağa yazma işlemleri durdurulur-
Latency
değer 0 veya 0'a yakın. BilgilerLatency
aşağıda gösterildiği gibi geçiş ayrıntıları ekranından alınabilir:latency
değer 0'a düşer veya 0'a yakındeğeri,
latency
hedefin Kaynak ile en son ne zaman eşitlendiğini gösterir. Bu noktada, Kaynağa yazma durdurulabilir ve tam geçiş başlatılabilir. Kaynakta yoğun trafik olması durumunda, 0'a yaklaşabilmekLatency
için önce yazmaları durdurmanızı ve ardından tam geçişin başlatılması önerilir. Tam Geçiş işlemi, Kaynaktan Hedefe bekleyen tüm değişiklikleri uygular ve geçişi tamamlar. Sıfır olmayanLatency,
bir durumda bile "Tam Geçiş" tetiklerseniz, çoğaltma o noktaya kadar durur. Tam geçiş noktası hedefe uygulanana kadar tüm veriler Kaynak'tadır. Tam geçiş noktasında gecikme süresinin 15 dakika olduğunu varsayalım, bu nedenle son 15 dakikadaki tüm değiştirilen veriler hedefe uygulanır. Süre, son 15 dakikada gerçekleşen değişikliklerin kapsamına bağlıdır. Bu nedenle tam geçişi tetiklemeden önce Gecikme süresinin sıfıra veya sıfıra yakın olması önerilir.Alt durum veya tam geçiş (Çevrimiçi geçişte) başarıyla tamamlandığında geçiş duruma
Migrating Data
geçerSucceeded
. Alt eyaletteMigrating Data
bir sorun varsa geçiş birFailed
duruma geçer.
Tamamlandığında geçişi denetleme
Veritabanlarını tamamladıktan sonra, kaynak ile hedef arasındaki verileri el ile doğrulamanız ve hedef veritabanındaki tüm nesnelerin başarıyla oluşturulduğunu doğrulamanız gerekir.
Geçiş sonrasında aşağıdaki görevleri gerçekleştirebilirsiniz:
- Esnek sunucunuzdaki verileri doğrulayın ve kaynak örneğin tam bir kopyası olduğundan emin olun.
- Doğrulama sonrasında esnek sunucunuzda gerektiğinde yüksek kullanılabilirlik seçeneğini etkinleştirin.
- Esnek sunucunun SKU'sunu uygulama gereksinimlerine uyacak şekilde değiştirin. Bu değişiklik için veritabanı sunucusunun yeniden başlatılması gerekir.
- Kaynak örnekteki varsayılan değerlerinden herhangi bir sunucu parametresini değiştirirseniz, esnek sunucudaki bu sunucu parametre değerlerini kopyalayın.
- Etiketler, uyarılar ve güvenlik duvarı kuralları (varsa) gibi diğer sunucu ayarlarını kaynak örnekten esnek sunucuya kopyalayın.
- bağlantı dizesi esnek bir sunucuya işaret etmek için uygulamanızda değişiklikler yapın.
- Performans ayarlaması gerekip gerekmediğini görmek için veritabanı performansını yakından izleyin.