Azure Arc özellikli Veri Hizmetleri – SQL Managed Instance’a taşınma-1
Azure Arc özellikli veri hizmetlerinin dördüncü yazısıdır. Birinci yazıda Azure Arc özellikli veri hizmetlerini Azure Kubernetes üzerinde yapılandırılmasını,ikinci yazıda Azure Arc özellikli veri hizmetlerini Azure SQL Managed Instance’ın kurulumunu, üçüncü yazıda Azure Arc özellikli Veri Hizmetleri – SQL Managed Instance Yapılandırması anlatmıştım. Bu yazıda ise mevcut bir veritabanı yedeğiniz Arc Managed Instance nasıl taşıyabilirsiniz / aktarabilirsiniz soruların cevabını veriyor olacağım. Organizasyonunuz içerisinde backup / restore kullanarak Arc SQL Yönetilen örneğine geçiş yapabilir olacaksınız. Microsoft dökümanlarında da bu konuyu lift & shift olarak bulabilirsiniz.
Azure Arc özellikli Azure SQL Yönetilen örneğine – Azure Managed Instance – mevcut bir veritabanı restore etmek – geri yükleme – ve daha sonra bir çalışma yapmak istiyorsak öncelikli olarak veritabanımızın yedeğini konteynera yada koyternera barındırdığımız depolama alanına koymamız gerekiyor. Bu doğrultuda SQL Managed Instance, SQL Server’ın Azure versiyonu olmasından ötürü standart bir veritabanı yedeğini taşıma işlemi içerisinde kullanabilirsiniz.
Yazı içerisindeki örneğimde diğer yazılarımdaki gibi “dmcsqlmi” isimli managed instance’ımı kullanıyor olacağım. Eğer kendi yapınızda hangi konteyner, pod içerisinde olduğu gibi bilgileri gözden geçirmek isterseniz arc özellikli veri hizmetleri ile alakalı önceki yazılarıma göz atmanız faydalı olacaktır.
Yedeklerimizi Arc SQL Yönetilen örneğine – Arc SQL Managed Instance – almanın birden fazla yolu vardır ve bunlardan en kolay ve uygulanabilir olanını bu yazı içerisinde bulabileceksiniz.
Azure Blob Storage
Eğer ki Arc SQL Yönetilen örneğine taşımak istediğiniz bir veritabanınız var ise yüksek ihtimal en iyi yöntem Azure Blob Storage’a SQL Server yedeğinizi almanız olacaktır. SQL Server 2016 ile gelen yedeklerinizi Azure Blob Storage’a alma konusu için ihtiyacınız olacak tek şey aslında bir SAS anahtarı olacaktır. Elinizde bir SAS anahtarı var ise SQL Server içerisinde bir credentials oluşturup yedeklemelerinizi blob storage’e alabilirsiniz. Tabi illaki direk yedeklerinizi SQL Server’dan blob storage’e almak zorunda değilsiniz. Farklı aktarım yöntemleri de kullanabilirsiniz. Örnek bir Credentials tanımlaması aşağıdaki gibidir.
CREATE CREDENTIAL [https://storagearcsqlbackup.blob.core.windows.net/backup] WITH IDENTITY = ‘SHARED ACCESS SIGNATURE’, SECRET = ‘sv=thatbigandrandomstring&someofthe=dates&will=bethere&aswell=asthe’;
Credentials tanımlasını yaptık. Şimdi test işlemleri için “DMC” Adında boş bir veritabanı oluşturalım.
Create Database DMC;
DMC veritabanın oluşturduk. Şimdi bu veritabanı yedeğini oluşturduğumuz credentials ile birlikte alalım.
BACKUP DATABASE [DMC] TO URL = N'https://storagearcsqlbackup.blob.core.windows.net/backup/dmc_backup.bak' WITH NOFORMAT, NOINIT, NAME = N'DMC-Full Database Backup', NOSKIP, NOREWIND, NOUNLOAD, STATS = 10
Resim1 : Yedek işlemi sonucu
Gördüğünüz gibi yedek işlemini başarılı bir şekilde tamamlandığını görüyoruz. Şimdi Azure Blob Storage üzerinden de kontrol edelim. Bu işlemi gerçekleştirebilmek için isterseniz Azure Storage Explorer uygulamasını kullanın isterseniz de SQL Server Management Studio üzerinden kontrol edin. Biz SSMS üzerinden bakıyor olacağız.
SSMS açtıktan sonra sol tarafta yer alan Object Explorer penceresinden Connect’in yanında yer alan ok işaretine tıklayıp Azure Storage’i seçiyoruz.
Resim2: SSMS ile Azure Storage bağlantı işlemi
Eğer ki daha önce giriş yaptıysanız Azure hesabınıza giriş yapmanızı istemeyecektir fakat daha önce azure hesabınıza giriş yapmadıysanız sizden hesabınıza giriş yapmanızı isteyecektir.
Resim3: Yedek doğruluğunun sağlanması
Evet yedeklemeyi başarılı bir şekilde tamamladık. Şimdi sırada Arc SQL Yönetilen örneğinde yedekleme işlemi için oluşturduğumuz credential’ı tekrar Arc SQL Yönetilen örneğinde çalıştırıyoruz.
Çalıştırma işlemi sonrasında DMC Veritabanı aşağıdaki kod bloğu ile restore ediyorum.
RESTORE DATABASE [DMC] FROM URL = N'https://storagearcsqlbackup.blob.core.windows.net/backup/dmc_backup.bak' WITH FILE = 1, MOVE N'DMC' TO N'/var/opt/mssql/data/DMC.mdf', MOVE N'DMC_log' TO N'/var/opt/mssql/data/DMC_log.ldf', NOUNLOAD, STATS = 5
Resim4: Restore işlem Log sonucu
Resim4’de görüldüğü üzere Restore işlemini gerçekleştirirken versiyon bilgisini de upgrade işlemi paralel de gerçekleştirildi ve restore işlemini başarılı bir şekilde gerçekleştirdik.
Resim5: Restore başarılı
Azure Blob Storage kullanarak Kubernetes ve alt yapı düzeyinde bir depolama ihtiyacı olmadan yapınızı Arc SQL Yönetilen Örneğine taşımış olursunuz. Eğer ki SQL Server 2016 versiyonunda önceki versiyonlardan birini kullanıyorsanız da 13 Temmuz 2021 itibari ile SQL Server 2016 versiyonunda desteğinin bitiyor olduğunu da bu vesile ile söylemiş olayım. Fakat 2016 öncesi sürümlerde de geçiş yapmak isterseniz yedeklerinizi kubernetes üzerine aktarmanız durumunda Arc SQL Server Yönetilen örneğine taşıma konusunda bir sorun yaşamayacaksınızdır.
Çağlar ÖZENÇ
DMC Bilgi Teknolojileri