Azure SQL Server ile On-Prem SQL Server arasındaki farklar nelerdir?

Azure SQL Server bir Paas ürünüdür ve bu nedenle on-premise kullanılan SQL Server’dan farklı olan özellikleri söz konusudur. Farklı olan önemli özelliklerden bazıları şunlardır.

Backup and Restore / Yedekleme ve Yedeklemeden Dönme

On-premise ortamda kullandığınız backup ve restore komutlarını Azure SQL Server’da desteklenmez. Yedeklemeler otomatik olarak zamanlanır ve veritabanı oluşturulduktan bir kaç dakika içerisinde çalışacak şekilde oluşturulur.

Yedeklemeler tutarlıdır, işlem bazlı gerçekleştirilir yani istenilen bir zamana geri dönebilirsiniz. Point in time restore özelliği mevcuttur. Bu yapıyı kullanmak adına on-premise sistemde yedekleme statejisi geliştirmeniz gerekmektedir. Azure SQL Server’da varsayılan olarak gelmektedir.

Azure SQL Server’da, Point in time restore özelliği varsayılan olarak 7 gün gelir fakat 35 güne kadar uzatılabilir. Uzun vadeli yedekleme yapmak isterseniz Long Term retention (LTR) özelliğini aktif etmeniz gerekmektedir. LTR ile veritabanı yedeklemelerinizi 10 yıla kadar Azure Blob Storage üzerinde barındırabilirsiniz ki bu değer bir çok uygulamanın yasal sürelerine göre belirlenmiştir.

Otomatik yedeklemenin yanı sıra, Azure SQL Veritabanı bacpac veya dacpac dosyasını halinde Azure Blob Storage üzerine alabilir ve oradan on-premise tarafına alabilirsiniz. Böyle yedekleme yapınızı on-premise ortamda da barındırmış olabilirsiniz.

Recovery Model

Azure SQL veritabanının varsayılan recovery model’i FULL olarak gelmektedir ve on-premise ortamda yaptığınız recovery model değişikliklerini Azure SQL Veritabanı üzerinde yapamazsınız.

Azure SQL veritabanın recovery model bilgisini görmek için aşağıdaki sorguyu kullanabilirsiniz.

SELECT name, recovery_model_desc FROM sys.databases;

Sonuç;

Resim-1

SQL Server Agent

Azure SQL Veritabanı, SQL Server Agent’a sahip değildir. On-Premise ortamlarda SQL Agent üzerinden gerçekleştirdiğiniz ve zamanlanmış işlerinizi yapabilmek için kullandığınız SQL Server Agent job’ları Azure SQL Server’da mevcut değil. Fakat merak etmeyin aşağıdaki geçici çözümler işinizi görecektir.

  • Azure Automation kullanabilirsiniz.
  • Elastic Database Job’larını kullanabilirsiniz.
  • Windows zamanlayıcı ile hazırladığınız powershell scriptini çalıştırabilirsiniz.

Change Data Capture

Change Data Capture (CDC), bir tabloda gerçekleştirilen Insert,Update ve delete işlemlerini yakalayan ve veri üzerindeki değişiklikleri istediğiniz sisteme aktarmanıza imkan sağlayan bir On-Premise SQL Server özelliğidir. CDC’nin çalışabilmesi için SQL Server Agent’a ihtiyaç duyulmaktadır. Bu sebeple Azure SQL Server’da kullanılamaz. Fakat CDC işini SSIS ve Azure Data Factory ile de yapabilirsiniz.

Auditing

Audit işlemleri (event log, SQL Server Log, SQL Server Trace, System Health Extended events)  gibi kullanımları yapabilmek adına işletim sistemi kaynaklarına erişim sağlamanıza ihtiyaç duyacaktır. Azure SQL Server bir Paas ürün olması ve ihtiyaç duyulan kaynaklara erişimlerini sınırlandırmasından ötürü C2 denetimi yapamazsınız. Fakat Azure SQL Server üzerinde gelişmiş Audit ve Threat Detection özelliği mevcuttur.

Mirroring

İki Azure SQL Server veritabanı için mirroring yapamazsınız. Fakat Azure SQL Server için Mirror bir sunucu oluşturup okuma amaçlı o sunucuyu kullanabilirsiniz.

Table Partitioning

On-Premise tarafta büyük tabloları farklı filegroup üzerine alıp performans kazanmak amaçlı kullanabildiğiniz table partitioning özelliğini Azure SQL Server tarafında kullanamazsınız. Aslında Azure SQL Server partition schema ve partition function kullanarak tablo bölmenize imkan sağlar. Yani Azure SQL Server’da table partitioning kullanabilirsiniz fakat Azure SQL Server bir Paas hizmet olmasından ötürü veritabanı dosyalarını tek filegroup üzerinde barındırmak isteyecektir. Kısacası, Azure SQL Server üzerinde table partitioning yapabilirsiniz fakat on-premise ortam da uygulayıp aldığınız performansı alamazsınız.  Ancak tek filegroup üzerinde yaparsanız performans artışı elde edebilirsiniz.

Replication

On-premise tarafta kullandığınız replikasyon işlemlerini iki Azure SQL Server veritabanı arasında kullanamazsınız. Fakat bir taraf on-premise diğer taraf Azure SQL Server olabilecek şekilde bir yapılandırma yapabilirsiniz. Ancak tabi bunun da sınırlamaları söz konusudur ve Azure SQL Server sadece push aboneliğini destekleyecektir. On-Premise tarafta kullanabildiğiniz çift taraflı çoğaltmayı değilde sadece tek yönlü çoğaltmayı kullanabilirsiniz.

Multi-Part Names

On-Premise tarafta kullandığınız dbadı.schemaadı.tabloadı gibi bir kullanımı Azure SQL Server tarafında gerçekleştiremezsiniz. Bu tarz bir kullanım sadece Azure SQL Server tarafında tempdb özellinde kullanılabilmektedir. Bir temp tablo oluşturarak kullanılabilirliği deneyimleyebilirsiniz. Bir azure SQL Sunucusundan farklı veritabanlarındaki tablolara erişmek için elastik query kullanabilirsiniz. Aksi taktirde üç isimli ( dbadı.schemaadı.tabloadı ) yada dört isimli ( sunucu. dbadı.schemaadı.tabloadı ) gibi bir kullanım ile işlemlerinize devam edemezsiniz.

Azure SQL Server tarafından Desteklenmeyen Özellikler

Azure SQL Server yada Azure SQL veritabanı tarafından desteklenmeyen bazı özellikler şunlardır.

  • SQL Server Browser : SQL Server Browser bir Windows hizmetidir. Gelen Clientları SQL Server’a bağlanırken yönlendiren bir servistir. Azure SQL Server ise sadece 1433 portunu destekler. Bu sebepten SQL Server Browser desteklenmemektedir.
  • Filestream : Azure SQL Server, bir Paas hizmet olmasından ötürü Filestream yada dosya barındırmayı desteklememektedir.
  • SQL CLR : Azure SQL Server tarafından ilk başlarda desteklense de güvenlik sorunları oluşturmasından ötürü kaldırıldı.
  • Resource Governor : CPU,Memory, IO gibi kaynakları sınırlandırmanızı yada limitlendirmenizi sağlayan bu on-prem özelliğine Azure SQL Server tarafında ihtiyaç yoktur. Azure SQL Server, farklı uygulamalara farklı hizmet katmanları ile kullanılmaktadır. 
  • Global Temporary Table
  • Log Shipping
  • SQL Trace ve SQL Profiler
  • Trace Flags
  • System Stored Procedure
  • USE kullanımı

Hepinize Data’lı günler dilerim.

Çağlar Özenç
DMC Bilgi Teknolojileri

Leave a Reply

Your email address will not be published. Required fields are marked *