Geçiş aracı seçeneklerini tanımlama

Tamamlandı

PostgreSQL sunucusundan PostgreSQL için Azure Veritabanı Esnek Sunucu'ya geçiş gerçekleştirmek için kullanabileceğiniz birçok seçenek vardır. pg_dump, pgadmin ve pg_restore gibi yerel PostgreSQL araçları vardır. PostgresSQL için Azure Veritabanı - Esnek Sunucu'da Veritabanı Geçiş Hizmeti ve geçiş seçeneği gibi Microsoft Azure bulut hizmetleri vardır ve bu hizmetler kaynaktan hedefe genel veri aktarımı işlemini büyük ölçüde otomatikleştirebilir.

PostgreSQL için Azure Veritabanı Esnek Sunucu - geçiş

PostgreSQL için Azure Veritabanı - Esnek Sunucu hizmetinde, veritabanlarının diğer PostgreSQL örneklerinden Azure tabanlı hizmete geçişini desteklemeye yönelik yerel bir özellik vardır. Bu seçenek, veritabanlarının kaynaktan hedefe çevrimdışı geçişine yöneliktir. Bu seçeneği kullanmak için daha önce açıklanan pg_dumpall ve psql araçlarını kullanarak esnek sunucuya geçirilen sunucu düzeyindeki nesne veritabanlarını geçirmemiz gerekir.

Bu özellik, kaynak olarak dış PostgreSQL örnekleri ve geçiş projesinin hedef olarak oluşturulduğu Esnek Sunucu ile tasarlanmıştır. Temelde verileri esnek sunucuya çekmek için. El ile döküm ve geri yükleme işlemi gerçekleştirmek yerine bu hizmeti kullanmanın avantajları, geçişin yönetilen yapısıdır. Yapılandırıldıktan sonra, Esnek Sunucu'ya geçirilen tüm tabloların işlemini izler, böylece uygulama düzeyinde kesme işleminin ne zaman gerçekleştirilebileceğini kolayca görebiliriz.

Geçiş Projeleri

Bağlantıyı sıraladıktan sonra tek yapmamız gereken yeni sunucuya geçirmek istediğimiz veritabanını veya veritabanlarını seçmektir. Aşağıdaki ekran görüntüsünde, daha büyük bir sistemin bir parçasını oluşturan birkaç hizmeti destekleyen birden çok veritabanı varsa bunları birer birer değil grup olarak geçirmeyi seçebileceğimize dikkat edin. Bu veritabanı gruplandırması yalnızca geçişleri hızlandırmaya değil, aynı zamanda geçiş etkinlikleri sırasında mantıksal tutarlılığı korumaya da yardımcı olabilir.

Geçiş projesi veritabanı seçimini gösteren Azure portalının ekran görüntüsü.

Doğrulama ve geçiş işlemini başlattığımızda, proje panosunu kullanarak işlemin genel ilerleme durumunu gözden geçirebiliriz. Bu panoda veritabanları doğrulandı ve ardından yeni sunucuya geçirildikçe gösterilir.

Geçiş projesi veritabanı doğrulamasını ve geçiş durumunu gösteren Azure portalının ekran görüntüsü.

Bu bilgiler geçiş sonrasında korunarak genel ilerleme durumunu izlememize olanak sağlar. Bilgiler ayrıca, yapılan herhangi bir çalışmanın başarısı ve süresi hakkında denetim süreçlerini değiştirmek için gereken tüm kanıtları sağlar.

PostgreSQL araçları

Burada, bir PostgreSQL sunucusundan PostgreSQL için Azure Veritabanı Esnek Sunucu'ya veri geçirmek için kullanılabilecek ana araçları keşfedeceğiz.

pgcopydb

Pgcopydb, PostgreSQL sunucuları arasında veritabanı kopyalama işlemini otomatikleştirebilen açık kaynak bir projedir. PostgreSQL'i yüklerken sağlanan yerel araçlar üzerinde pgcopydb kullanmanın çeşitli avantajları vardır. Bu avantajlar şunlardır.

  • pg_backup ve pg_restore kullanarak ara dosyalara olan ihtiyacı ortadan kaldırma.
  • PostgreSQL içindeki synchronize__seqscans özelliğini kullanarak tablolarda dizin oluşturmayı paralelleştirmek için Dizin Eşzamanlılığı oluşturun.
  • Verileri bölümlemeye ve daha büyük tabloları paralel olarak aktarmaya yönelik çok iş parçacıklı tablo kopyalama.
  • Uzun süreli kapalı kalma süresi pencerelerine olan ihtiyacı en aza indirmek için veri eşitleme için Veri Yakalama'yı değiştirin.

Pgcopydb içinde, kaynak sunucudan hedefe veritabanı ve veri geçişi için kullanılabilecek iki ana seçenek vardır. Bu seçenekler kopyalama ve kopyalama seçenekleridir.

pgcopydb clone

Kopyalama, veritabanının tamamını kaynak sunucudan hedefe kopyalamak için birincil seçenektir. Bu komut, geçiş kapalı kalma süresini en aza indirmek için verileri eşitlemek için değişiklik verilerini yakalama yapılandırmasını otomatikleştirme yoluyla temel bir kopyalama işlemi yapılandırmamıza olanak sağlayan çeşitli anahtarlara sahiptir. Ayrıca tabloya göre veri aktarımını paralelleştirme seçeneklerini ve tablolar, dizinler ve büyük nesneler için paralel aktarım seçeneklerini belirtebiliriz.

pgcopydb kopyalama

Kopyalama, veritabanını veya parçalarını geçirme konusunda denetimin daha ayrıntılı olmasını sağlayan bir seçenektir. Kaynak sunucu veritabanından hedef sunucuya ve veritabanına aktaracak şemaları, tabloları, rolleri vb. seçmek için bu komut seçeneğini kullanabiliriz. Bu komut, uygulama modernleştirme geçiş etkinliğinin bir parçası olarak büyük bir veritabanının daha küçük veritabanı olarak ayrıştırıldığı senaryolarda kullanışlıdır. Alternatif olarak, birleştirme geçiş etkinliği bir veritabanının içeriğini başka bir veritabanının içindeki şemalara geçirmemizi sağlar.

Bu seçenekler, pgcopydb'nin veritabanlarını PostgreSQL için Azure Veritabanı Esnek Sunucu'ya geçirme sürecini geliştirmemize yardımcı olabileceği yollardan yalnızca bazılarıdır. Bu işlem, riski en aza indiren ve başarı şansımızı en üst düzeye çıkaran bir geçiş yöntemi sağlar.

pg Yönetici

pg Yönetici, PostgreSQL veritabanlarıyla etkileşime geçmek için kullanılabilecek yaygın olarak kullanılan bir yönetim aracıdır. Bu araç pgsql betiklerinin oluşturulmasını ve yürütülmesini sağlar. Araç, PostgreSQL veritabanlarını yapılandırmak, yedeklemek ve geri yüklemek için kullanılabilecek bir dizi kullanışlı GUI aracı içerir. Genellikle, yönetim iş istasyonlarına pg Yönetici yükleyin. Bu araç birden çok PostgreSQL sunucusuna kaydolmayı ve bağlanmayı mümkün kılarak geçiş aracı kümemizin önemli bir parçası olmasını sağlar.

Çeşitli yönetici seçeneklerini gösteren menüler içeren pg Yönetici ekran görüntüsü.

pg_dump, pg_restore ve psql

pg_dump, PostgreSQL örneğiyle birlikte yüklenen ve gerektiğinde bir yönetim iş istasyonuna yüklenebilen bir komut satırı aracıdır. Eşzamanlı iş yükü gerçekleştiğinde bile PostgreSQL'den tutarlı veritabanı yedeklemeleri oluşturulmasına olanak tanır. Tek tek veritabanlarıyla çalışır ve veritabanının tamamını veya parçalarını yedeklememize olanak tanır.

Şema nesnelerini dışarı aktarmak için pg_dump kullanıyorsanız psql kullanarak hedef veritabanında sonuç .sql dosyasını çalıştırarak nesneleri oluşturabiliriz. Bu adımdan sonra verileri kaynaktan hedef sisteme taşımanın yollarını inceleyebiliriz. Bir veritabanı şemasını bir veritabanından dışarı aktarmak ve başka bir veritabanında oluşturmak için kullanılacak komutlar aşağıdaki örnekte görülebilir.


pg_dump -O --host=MyServerName --port=5432 --username=adminuser --dbname=AdventureWorks --schema-only > adventureWorks.sql

psql --host=MyFlexibleServer --username=demo --dbname=AdventureWorks < adventureWorks.sql

Kaynak veritabanının tam dökümünü oluşturuyorsak, sonuç dosyasını okumak ve veritabanını hedef PostgreSQL örneğine geri yüklemek için pg_restore kullanmayı tercih ederiz. Döküme yedekleme ve geri yükleme gerçekleştirirken bu etkinliklerin ne kadar süreceğini belirleyen birkaç faktör vardır. Özellikle veritabanının boyutu, depolama alt sisteminin performansı ve işleme bileşenleri arasındaki ağ bant genişliği ve gecikme süresi.

Aşağıdaki örnekte özel bir veritabanına döküm oluşturma ve ardından başka bir sunucuya geri yükleme işlemi gösterilmektedir.


pg_dump -Fc --host=MyServerName --port=5432 --username=adminuser --dbname=AdventureWorks > db.dump

pg_restore -Fc --host=MyServerName --port=5432 --create --username=adminuser --dbname=AdventureWorks db.dump

pg_dumpall

pg_dump tek bir veritabanının dökümünü almak için kullanılırken, pg_dumpall tüm veritabanlarını psql'nin yeni bir PostgreSQL örneğine okuduğu tek bir betik dosyasına dökümünü almak için kullanılır.

Ayrıca pg_dumpall, veritabanlarının sunucular arasında geçirildiğinde bağımlı olabileceği roller gibi genel sunucu düzeyindeki nesneler için betik dosyaları oluşturmak için kullanılabilir.