Genel
SQL Database Downgrade İşlemi

SQL Database Downgrade İşlemi

Merhaba arkadaşlar,

Bugünkü konumuz SQL Server da alt versiyonlara database nasıl taşınır ondan bahsedip bir kaç kilit noktaya değineceğiz. Generate Script oluşturarak taşıma yapacağız ve kilit noktalara değineceğiz. Aslında işlem sorunsuz çalışmakta fakat DB boyutları belirli bir seviyenin üstünde olursa bu işlem sırasında DB çatlayabiliyor.

Şimdi biz Lab ortamı olarak SQL 2017 sürümünde çalışan bir db mizi daha düşük bir SQL versiyonuna taşıyacağız.

SQL server 2017 de Databasemize bakalım bi.

Görseldeki gibi bir db miz var bu DB de Table larımız dolu Foreign Key lerimiz İndex lerimiz var. Bildiğiniz içinde data olan canlı database aslında.

Biz hedef sistem olarak SQL 2012 e düşüreceğiz. Ve işlemlere başlıyoruz.

Database e Sağ tıklayıp Task’ın üzerine gelip Generate Scripts’ I seçiyoruz. Ve karşılama ekranı geliyor,

Klasik Next yapıp geçiyoruz.

Chose Object kısmında default ta “Script Entire Database and All database object” seçeneği işaretli geliyor.

Yani amcam diyor ki tüm veritabanını ögelerini vs alayım mı ? Biz işlemi böyle yapmayacağız.

İlk işimiz fazla yüklerden kurtulmak oluyor. Tabiki fazla yükleri siz belirleyecekseniz. Log a ihtiyacınız var mı yok mu lazım olduğunda mı dönülüp bakılıyor mu bunlar hep soru işareti.

Kendi database’nizde datayı alırken olmasada olur dediğiniz tabloları çıkarın. Aktarınca yeniden oluşturursunuz.

Log dışında herşeyi seçtikten sonra Next tuşumuza basarak bir adım daha atıyoruz.

Ve asıl işimizin olduğu yere geliyoruz. Burda şimdi bir çok ayarımız var ama bir sonra ki resimde göreceksiniz.

İlk olarak Output Type kısmında 2 seçeneğimiz var. “Save Scripts to a specific location” Script I kaydedip istediğin lokasyona at diyor amcamız.

Diğer seçenek “Publish to Web Service” Azure gibi bir cloud servisiniz varsa veya oluşturduğunuz script i bir web servis aracılığı ile taşımak istiyorsanız bu seçeneği kullanmanız gerekecek.

Biz ilkini seçiyoruz ve Advanced kısmına geliyoruz.

Bir sürü seçenek mevcut burada genelde biz super next yaparak geçtiğimiz için buraları atlarız.

Bizim burda dokunacağımız belirli başlı noktalar var onlardan kısaca bahsedelim;

Script For Server Version : Oluşturduğumuz Script nerede çalışacak ? yani database i taşıyacağımız hedef SQL server versiyonunu seçiyoruz. (Mevcut sürüm ve alt sürümleri vardır sadece).

Script For Database Engine Edition : Yine Hedef Serverın versionuna göre Standart ise standardı seçiyoruz.

En tatlı noktası

Types Of Data to Script : Bu kısımda 3 seçeneğimiz var;

Scheme Only : Database deki dataları almadan tüm şablonu yani tabloları kolonları boş bir şekilde almanızı sağlar. Default olarak Schema only gelir

Data Only : Buda üsttekinin tam tersi sadece data yı alır.

Scheme And Data : Üsttekilerin her ikisinin de birleşimi yani hacı ne var ne yoksa al scripte beni uğraştırma seçeneğidir.

NOT : Hepinizin aklına Schema and Data yattı diye düşünüyorum. Buradaki kilit noktamız da o aslında şöyle ki database boyutlarına bağlı olarak schema ile data yı aynı anda alabilirsiniz ama bizim bu test için kullandığımız database de ayrı ayrı olarak alacağız.

Script Foreign Key : Foreign key tablolarımız arasında olan ilişki için önemli olan bir obje ve bunuda schema ile birlikte almamız gerekirki tablo oluşurken ilişkileri de tanımlayabilsin.

Script İndexes : Tablolarda oluşturduğumuz indexlerin de script e eklenmesi diyebiliriz.

Script Primary Keys : Primary key lerde script e eklenmeli ki bunlar tablonun yapısını oluşturan temel parçalardan diyebiliriz. Bu yüzden default ta true gelir.

Bu ayarların tümü için Microsoft un kendi blogundaki açıklamalara bakabilirsiniz.

Şekildeki gibi yukarıda bahsedilen ayarlarımızı yaptık Server Version umuz 2012 olarak seçtik Foreign keylerimizi indexlerimizi schema ya dahil ettik ve diğer seçenekleri default ta bırakıyoruz.

Siz yukarıdaki linklerden detaylara bakarak ihtiyacınız olan ayarları bulabilirsiniz. Örneğin database deki compression ayarlarınızın aynı şekilde aktarılması gibi.

Ok dedik ve ilerledik.

Save to New Query Windows seçeneğini seçiyorum. Önce script i görüp öyle kaydedelim.

Ve next.

Yaptığımız ayarların bir özetini görüyoruz. Ve nextliyoruz.

Bu kısımda hata almamak mühim. Eğer bir tabloya store prosedüre hata verirse Script çöp olur.

Örnek olarak benim yaşadığım eğer şifrelenmiş bir store procedure varsa bütün Store Procedure lerde hata verecektir.

Sadece şifreli olan SP yi çıkarırsanız sorun düzelecektir.

Aşşa yukarı 12 bin satırlık bir Script imizi oluşturduk. Ve sol tarafta hedef sistem olan SQL 2012 mize bağlandık.

Direk CTRL + A CTRL + C yaparak kopyalayıp 2012 serverımızda bir query açıyoruz CTRL + V yapıyoruz.

Hemen F5 basayım demeyin hataları okuyup durursunuz. Bu script in çalışması için bir database olması gerekmektedir.

Hemen sağ tık new database diyip LORDSITH isimli bir database acıyoruz. Ve şimdi f5 e basıyoruz.

1 adet hata alıyoruz. Oda hedef sunucumda aynı linked server’ın tanımlı olmaması ile ilgili.(Lab ortamını tam kuramamışım demekki) Bunun dışında database in tüm schema sını taşımış bulunuyoruz.

Bu işlemden sonra 2017 sunucumuzdan aynı adımlarla Bir script daha oluşturuyoruz çünkü daha datalarımızı almadık.

Farklı olarak sadece options kısmından Data Only i seçerek oluşturuyoruz. ( O adımlar yukarıdan tekrar bakarak yapabilirsiniz ben sadece import sonucunu atacağım.)

NOT : Database’ in boyutuna bağlı olarak Memory ihtiyacınız olacaktır J

Eğer yeterli memory niz yoksa Save Single File seçeneği ile .sql uzantılı dosyayı hedef server’a atarak ilerleyin Zira datayı alırken çok sıkıntı yaşayabilir SSMS den trip atabilir J

Script çalıştığında satır satır işleyecek. Burada hata aldığınız zaman gerçekten çok sıkıntılı.

Ve bir tablodan Select çekiyoruz.

Mutlu son J İşinize yaraması dileğiyle.

Share this Story

Related Posts

Leave a Reply

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

This site uses Akismet to reduce spam. Learn how your comment data is processed.

The Hacker News

  • Google+ to Shut Down Early After New API Flaw Hits 52.5 Million Users
    by [email protected] (Mohit Kumar) on 10 Aralık 2018 at 21:02

    Google today revealed that Google+ has suffered another massive data breach, forcing the tech giant to shut down its struggling social network four months earlier than its actual scheduled date, i.e., in April 2019 instead of August 2019. Google said it discovered another critical security vulnerability in one of Google+'s People APIs that could have allowed developers to steal privat […]

  • How to Hack WiFi Password Easily Using New Attack On WPA/WPA2
    by [email protected] (Mohit Kumar) on 9 Aralık 2018 at 21:14

    Looking for how to hack WiFi password OR WiFi hacking software? Well, a security researcher has revealed a new WiFi hacking technique that makes it easier for hackers to crack WiFi passwords of most modern routers. Discovered by the lead developer of the popular password-cracking tool Hashcat, Jens 'Atom' Steube, the new WiFi hack works explicitly against WPA/WPA2 wireless network protocols […]

  • Australia Passes Anti-Encryption Bill—Here's Everything You Need To Know
    by [email protected] (Swati Khandelwal) on 7 Aralık 2018 at 13:18

    Australia's House of Representatives has finally passed the "Telecommunications Assistance and Access Bill 2018," also known as the Anti-Encryption Bill, on Thursday that would now allow law enforcement to force Google, Facebook, WhatsApp, Signal, and other tech giants to help them access encrypted communications. The Australian government argues the new legislation is important for nationa […]

  • SNDBOX: AI-Powered Online Automated Malware Analysis Platform
    by [email protected] (Mohit Kumar) on 6 Aralık 2018 at 20:07

    Looking for an automated malware analysis software? Something like a 1-click solution that doesn't require any installation or configuration…a platform that can scale up your research time… technology that can provide data-driven explanations… well, your search is over! Israeli cybersecurity and malware researchers today at Black Hat conference launch a revolutionary machine learning and […]

  • New Ransomware Spreading Rapidly in China Infected Over 100,000 PCs
    by [email protected] (Swati Khandelwal) on 6 Aralık 2018 at 19:30

    A new piece of ransomware is spreading rapidly across China that has already infected more than 100,000 computers in the last four days as a result of a supply-chain attack... and the number of infected users is continuously increasing every hour. What's Interesting? Unlike almost every ransomware malware, the new virus doesn't demand ransom payments in Bitcoin. Instead, the attacker is […]