Bu Makalede bir sunucuda çalışan SQL Server’ın kullandığı disklerin, Windows IP ve computer name’in başka bir sunucuda çalışan SQL Server’a (Yeni kurulum) taşıma işlemlerinin yapılması anlatılacaktır. SQL Server Kurulumu için “SQL ServerNasıl Kurulur” adlı makaleyi okuyabilirsiniz. Bu işlem SQL Server Always-On mimarisinde hem root disk, hem de root disk altında bulunan mount diskler üzerinde gerçekleştirilmiştir. Yapılacak bu çalışmanın amacı büyük database sahip sunucuların, database restore edilmeden sunucu değişimini sağlamaktır. Çalışmanın anlaşılır olması adına; *Disklerin bulunduğu sunucuya A *Disklerin taşınacağı sunucuya B *Always-On Primary Sunucusunu C diye adlandıracağız. 1-) İlk olarak taşıma işlemi gerçekleştirilecek olan sunucuda (B) root disk tanımlanır. Disk tanımlama işlemi için “Disk Nasıl Tanımlanır” adlı makaleyi okuyabilirsiniz. 2-) Tanımlanan disk altında data file’ların bulunduğu yerdeki (A) klasörler, disklerin taşınacağı yerde (B) aynı isim ile klasör olarak oluşturulur. 3-) Yeni kurulan sunucuda (B) SQL Server kurulumu tamamlanır. Kurulacak olan SQL Server versiyon ve CU’ların aynı […]
Bu yazımızda SQL Server 2019 Failover Cluster Instance kurulum aşamasında karşılaşılan hatalara ilişkin çözümleri sunacağız. FCI Kurulum aşamalarından biride servis hesaplarının tanımlanması istenmektedir. Bu aşamayı doğru biçimde tanımlayamazsa bir sonraki aşamaya geçilememektedir. Bildiğiniz gibi FCI bir Windows Server Failover Cluster içinde Akitf 2 Node üzerinde çalışan bir sistemdir. SQL Server kurulumundan önce WSFC kurulumu yapılması gerekmektedir. FCI Kurulumu yapılırken DNS, Node ve Server Name, Disk ve Servis hesaplarına ilişkin bilgiler in hepsi WSFC içinden çekilmektedir. Problem 1: Biz kurulum yaparken aşağıdaki gibi Agent Servis hesap bilgisinin gelmediğini gördük. Siz burada şifre girseniz de SQL Server size “The Credentials you provided for the SQL Server Agent service are invalid.To continue, provide a valid account and password for the SQL Server Agent service” şeklinde size hata mesajı dönecektir. Çözüm 1: Hatanın çözümüne ilişkin öncelikle Servis hesaplarında Agent hesabının kurulum ekranında olmadığını gördük. Buradaki hesapların WSFC içinden aldığını daha önceki kurulumlarımızdan biliyoruz. WSFC […]
Bu makalemizde, çocukluğumuzda hemen hemen herkesin oynadığı veya bir şekilde bildiği Python’da taş-kağıt-makas oyununu anlatacağım. Uygulama senaryosu Kullanıcıya bilgi vermesi açısından kaç hakkının olduğunu ve seçeneklerinin neler olduğunu gösterelim sonra bu sahip olduğu hak sayısınca kullanıcıdan taş, kağıt veya makas seçeneklerden birini seçmesi ve karşı taraftan da bilgisayardan bir rastgele bir seçim yapmasını sağlayalım ve sonra kullanıcı seçimini ve bilgisayar seçimini karşılaştırıp kimin kimi yendiğini belirleyelim. kazananmaları halinde +3 puan, beraberlikleri halinde de taraflara 1’er puanı verelim. Şimdi buraya kadar okuduysan devamına bakmadan sen yapmaya çalış sonradan da yapılışına bakarsın, eminim ki bunu yaparsın.😉 Öyleyse haydi kodlamaya başlayalım:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
import random print(""" ========Taş-Kağıt-Makas Oyunumuza Hoş Geldiniz======== Unutma 3 hakkın var ve kazanan taraf +3 puan alır, beraberlik durumunda ise 1 puan alır lütfen seçimizi yapınız taş- makas- kağıt """) hak=4 kullaniciPuan=0 PcPuan=0; def tas_kagit_makas(): global kullaniciPuan,PcPuan; secenekler = ["taş", "kağıt", "makas"] bilgisayar_secimi = random.choice(secenekler) kullanici_secimi = input("Seçiminizi yapın: ").lower() print("Bilgisayarın seçimi:", bilgisayar_secimi) if kullanici_secimi not in secenekler: print("Geçersiz bir seçim yaptınız. Lütfen taş, kağıt veya makas seçin.") elif kullanici_secimi == bilgisayar_secimi: print("Berabere! Her iki taraf da", kullanici_secimi, "seçti.") kullaniciPuan+=1 PcPuan+=1 elif (kullanici_secimi == "taş" and bilgisayar_secimi == "makas") or \ (kullanici_secimi == "kağıt" and bilgisayar_secimi == "taş") or \ (kullanici_secimi == "makas" and bilgisayar_secimi == "kağıt"): kullaniciPuan+=3 print("Tebrikler! Kazandınız. Siz", kullanici_secimi, "seçtiniz, bilgisayar", bilgisayar_secimi, "seçti.") else: print("Üzgünüm, kaybettiniz. Siz", kullanici_secimi, "seçtiniz, bilgisayar", bilgisayar_secimi, "seçti.") PcPuan+=3 while True: tas_kagit_makas() hak-=1 if hak==1: break print(f"""\n===========oyun bitti Toplam skor================ sen {kullaniciPuan} puan, bilgisayar ise {PcPuan} puan aldı""") |
Yukarıda uygulama senaryosunda anlattığım gibi, burada kullanıcı rastgele bir seçim yapabilmesi için ilgili random kütüphanesini import random ile dahil ettim. kullanıcın kaç kez tahmin edeceğini hak değişkeninde belirledim. hak=4 belirleyip her tahmininde bunu bir adet azalttım ve sıfır olunca da break ile döngüden çıkıp programın bitmesini sağladım. (global kullaniciPuan,PcPuan;) şimdi şu […]
Arkadaşlar bugüne kısa bir makale ile başlayalım. Veri tabanına yeni bir file ekleyip daha sonrasında bu file’ı Shrink&Empty yapıp kaldırmayı ve bu işlemleri yaparken karşılaşabileceğiniz hatalardan adım adım bahsedeceğim. Bu yapacağımız işlemler kritik ve çok dikkat edilmesi gereken işlemlerdir. Veri tabanınızın hizmet verememesi gibi sonuçlar doğurabilir. Teknik açıdan bilgili kişilerin yardımına başvurmanızı öneririm. 1-İlk adımız olarak veri tabanımıza bir file ekleyeceğiz hatta bu file ekleme işlemini yaparken uzantısını belirtmeyeceğim sql server bu ekleyeceğimiz file içerisine acaba veri yazabilecek mi 🙂 Veri tabanımızın özellikler bölümüne giriyoruz. 2-Açılan pencerede “files” bölümüne geliyoruz ve yeni bir file ekliyoruz. 3-Aşağıda gördüğünüz üzere FGAdventureWorks_2011_2015 filegroup içerisine AdventureWorks_2012_2 adında bir file ekliyorum fakat file uzantısını “mdf”,”ndf” yada “ldf” olarak belirtmedim. 4-Eklediğim file dosyasının birde gidip diskte nasıl göründüğüne bakalım. 5-Şimdi ise “DBCC showfilestats” komutu ile file içerisine “UsedExtents“ kolonuna bakarak veri yazılıp yazılmadığını kontrol edebiliriz. Bizim eklemiş olduğumuz file içerisine yazılan herhangi bir veri olmadığını […]