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

  • Use iPhone as Physical Security Key to Protect Your Google Accounts
    by [email protected] (Unknown) on 16 Ocak 2020 at 19:23

    Great news for iOS users! You can now use your iPhone or iPad, running iOS 10 or later, as a physical security key for securely logging into your Google account as part of the Advanced Protection Program for two-factor authentication. Android users have had this feature on their smartphones since last year, but now Apple product owners can also use this advanced, phishing-resistant form of […]

  • Broadening the Scope: A Comprehensive View of Pen Testing
    by [email protected] (The Hacker News) on 16 Ocak 2020 at 18:07

    Penetration tests have long been known as a critical security tool that exposes security weaknesses through simulated attacks on an organization's IT environments. These test results can help prioritize weaknesses, providing a road-map towards remediation. However, the results are also capable of doing even more. They identify and quantify security risk, and can be used as a keystone in […]

  • Download Ultimate 'Security for Management' Presentation Template
    by [email protected] (The Hacker News) on 15 Ocak 2020 at 09:20

    There is a person in every organization that is the direct owner of breach protection. His or her task is to oversee and govern the process of design, build, maintain, and continuously enhance the security level of the organization. Title-wise, this person is most often either the CIO, CISO, or Directory of IT. For convenience, we'll refer to this individual as the CISO. This person is t […]

  • Update Windows 10 Immediately to Patch a Flaw Discovered by the NSA
    by [email protected] (Unknown) on 14 Ocak 2020 at 19:51

    After Adobe today releases its first Patch Tuesday updates for 2020, Microsoft has now also published its January security advisories warning billions of users of 49 new vulnerabilities in its various products. What's so special about the latest Patch Tuesday is that one of the updates fixes a serious flaw in the core cryptographic component of widely used Windows 10, Server 2016 and 2019 […]

  • Adobe Releases First 2020 Patch Tuesday Software Updates
    by [email protected] (Unknown) on 14 Ocak 2020 at 14:52

    Adobe today released software updates to patch a total of 9 new security vulnerabilities in two of its widely used applications, Adobe Experience Manager and Adobe Illustrator. It's the first Patch Tuesday for the year 2020 and one of the lightest patch releases in a long time for Adobe users. Moreover, none of the security vulnerabilities patched this month were either publicly disclosed or […]