SQL Server Restore on Docker
0

Bugün Windows hem de Linux sistemlerinde çalışan Docker’a kurulu SQL Serverımıza nasıl restore işlemi yapabileceğimizden bahsediyor olacağız. Örnek veritabanı için Microsoft’un GitHub adresinde paylaştığı simple database’lerden faydalanıyor olacağız. Sample veritabanları için istediğiniz birini “https://github.com/Microsoft/sql-server-samples/releases/” bu adresten indirebilirsiniz.

Windows Sunucusu üzerindeki işlemlerimiz için;

1) Örnek veritabanımızı sunucumuz üzerindeki bir dizine (Örnek : C:\SQLBackup ) download ediyoruz. ( https://github.com/Microsoft/sql-server-samples/releases/download/adventureworks/AdventureWorks2017.bak )

2) Download işlemi tamamlandıktan sonra PowerShell ile containerın durumunu kontrol ediyoruz. Eğer ki çalışmıyor ise start ediyoruz.

Kontrol için “docker ps – a” komutunu kullanıyoruz. Eğer “-a” parametresi bize çalışmayan containerların da listesini verir. Eğer ki çalışmıyor ise “docker start DockerID” komutu ile container’ı çalıştırıyoruz. Bizim örneğimizde WinDockerSQL isimli container aktif.

Resim-1

3) Containerı aktif ettikten sonra container da backup dosyasını taşıyacağımız bir path oluşturmamız gerekiyor. Bunun için öncelikle container üzerinde powershell çalıştırıp folder create ediyor olacağız.

docker exec -it WinDockerSQL powershell

Powershell ekranı geldikten sonra “Get-Location” ile nerede bulunduğumuzu kontrol edelim.

Resim-2

C dizini içerisinde DockerSQLBACKUP isimli bir klasör oluşturalım.

New-Item -ItemType directory -Path C:\DockerSQLBACKUP

Klasörü de oluşturduğumuza göre Windows sunucusunda C:\SQLBackup içerisine download ettiğimiz veritabanı yedeğimizi container’daki C:\DockerSQLBACKUP klasörü içerisine kopyalamaya geldi.

docker cp C:\SQLBACKUP\AdventureWorks2017.bak WinDockerSQL:/C:/DockerSQLBACKUP

Yukarıdaki kod ile localden docker üzerinde belirttiğimiz yola dosyayı kopyalamış oluyoruz.( Bakınız Resim-3)

Resim-3

Veritabanın yedeğimizin taşınma işlemi tamamlandığına göre şimdi “docker inspect” komutunu kullanıp ( daha önceki yazılarımızda mevcut ) sql server’ın ip adresini bulup erişelim.

Resim-4

Daha sonrasında klasik restore database işlemini gerçekleştiriyoruz.

Resim-5

Yukarıda gördüğünzü gibi C dizini içerisinde DockerSQLBACKUP klasörü mevcut ve içerisinde bizim download edip kopyaladığımız AdventureWorks2017 isimli veritabanın yedeği mevcut.

Resim-6

Sonuç olarak Windows Server 2016 işletim sisteminde çalıştırdığımız Docker’da SQL Server 2017 kurulumunu yaptığımız container’a bir veritabanı yedeğini taşımış olduk.

Resim-7

Linux üzerindeki işlemlerimiz için;

Windows tarafında yaptığımız işlem sıralamasını takip ediyor olacağız.

1) Öncelikli olarak veritabanı yedeğimizi linux üzerine indirmemiz gerekiyor. Ama indirme işlemi öncesinde linuxde hangi dizinde olduğumuzu “pwd” ile kontrol edin. Biz örneğimizde “/home/cozenc” dizini içerisindeyiz.

wget ‘https://github.com/Microsoft/sql-server-samples/releases/download/adventureworks/AdventureWorks2017.bak

Resim-8

2) Container içerisinde veritabanı backup dosyasını taşıyacağımız bir klasör oluşturmamız gerekiyor, bu işlem için öncelikli olarak container’e erişmemiz gerekiyor.

sudo docker exec -it DockerSQL bash

Klasör oluşturmak için ise “mkdir -p /var/opt/mssql/backup

3) Klasör oluşturma işlemide tamamlandığına göre Linux’e download ettiğimiz veritabanı yedeğini container içerisine taşımamız gerekiyor.

sudo docker cp /home/cozenc/AdventureWorks2017.bak DockerSQL:/var/opt/mssql/backup

4) Veritabanı kopyalamasını da tamamladığımıza göre restore işlemine geçebiliriz, bu işlem klasik restore işlemi gibidir. İster sqlcmd ile linux üzerinden isterseniz SSMS ile remote IP ile erişebilirsiniz. Ben SSMS ( SQL Server Management Studio ) ile RemoteIP aracılığı ile connect olup klasik restore işlemini gerçekleştireceğim.

Resim-9 

Resimde işaretli kısımlar “d32bcf0bcc21” değeri DockerID bilgimiz, bu bilgiye docker ps komutu ile ulaşabilirsiniz, Backup path ve path içerisine attığımız veritabanı yedeğimiz.Restore işlemi tamamlandıktan sonra SSMS ile kontrol ettiğimizde aşağıdaki bilgileri görebiliriz.

Resim-10 

Bu konuyla ilgili sorularınızı  alt kısımda bulunan yorumlar alanını kullanarak sorabilirsiniz.

Referanslar

www.mshowto.org

TAGs:  Docker, SQL Server on Docker,SQL Server Restore on Docker,github,azure, Docker, docker restore, docker sql, sq server 2017 restore docker, sql, sql restore, SQL Server, sql server restore

Bu İçeriğe Tepkin Ne Oldu?
  • 1
    harika_
    Harika!!
  • 0
    be_enmedim
    Beğenmedim
  • 0
    _ok_iyi
    Çok iyi
  • 0
    sevdim_
    Sevdim!
  • 0
    bilemedim_
    Bilemedim!
  • 0
    olmad_
    Olmadı!
  • 0
    k_zd_m_
    Kızdım!

Milenyumdan beri ilginç bir merak duygusu ile başlayan bilgisayar ve teknoloji dünyası merakı sayesinde eğitim yaşantımı doğup büyüdüğüm Düzce'de geçirdim. Sonrasında Düzce'nin kendimi geliştirmek adına yeterli imkanlara sahip olmadığından İstanbul'a gelip Bilge Adam Eğitim Kurumlarından Yazılım ve Veritabanı eğitimi aldım. Eğitimimi tamamlarken çeşitli Windows ve Web uygulamaları geliştirdim.Sırası ile Sentez Yazılım, Nebim Yazılım, Ciceksepeti, Doğan Holding, Kariyer.Net, TurkNet gibi firmalarında Yönetici / Müdür pozisyonlarında farklı ünvanlarda ( Yazılım Geliştirici / Raporlama ve Veritabanı Yöneticisi gibi) görev aldım. Şimdilerde ise DMC Bilgi Teknolojileri firmasının Kurucu Ortaklığını ve Veritabanı Danışmalığı Hizmeti vermekteyim.

Yazarın Profili

Bültenimize Katılın

Tıklayın, üyemiz olun ve yeni güncellemelerden haberdar olan ilk kişi siz olun.

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir