2011-08-24

SQL Server 2008 Service Pack 3 CTP Versiyonu Görücüye Çıktı

Microsoft, SQL Server 2008 Service Pack 3'ün CTP versiyonu yayınladı. SP3 CTP; SP2'den sonra çıkan Cumulative Updates 1, 2, 3 ve 4'ü içeriyor.

SQL Server 2008 SP3 CTP versiyonuna http://www.microsoft.com/download/en/details.aspx?id=27150 adresinden ulaşıp indirebilirsiniz. SQL Server 2008 SP3 CTP versiyonu ile düzeltilen hataların listesine http://support.microsoft.com/kb/2546945 adresinden ulaşbilirsiniz.

2011-08-18

Veritabanı Adını Değiştirme - Change Database Name

Bir çok yerde ismi değiştirilecek veritabanı önce single_user mode alınıp ardından isim değişikliği yapacak T-SQL kodlar paylaşılıyor. Evet, ismi değiştirilecek veritabanı adını single_user mode alıp değiştirebilirsiniz hatta SQL Server ile ilgili bir çok kaynakta Master veritabanını seçtirerek single_user moda alma şeklinde yapılmış. Fakat sakın ola master veritabanı seçili iken ismini değiştireceğiniz veritabanını single_user moda almayın; aşağıdaki gibi hata mesajları alırsınız:

Hata Mesajı-1:
“Msg 5064, Level 16, State 1, Line 1
Changes to the state or options of database 'databasename' cannot be made at this time. The database is in single-user mode, and a user is currently connected to it.
Msg 5069, Level 16, State 1, Line 1
ALTER DATABASE statement failed.”

Hata Mesajı-2:
"Msg 1205, Level 13, State 68, Line 1
Transaction (Process ID XXX) was deadlocked on lock resources with another process and has been chosen as the deadlock victim. Rerun the transaction.
Msg 5069, Level 16, State 1, Line 1
ALTER DATABASE statement failed."

Bu durumda ilgili veritabanına tüm erişimleri kesmeden veritabanı ismini değiştirip multi_user moda alamazsınız. Önce single_user  moda alıp veritabanını ismini değiştirecekseniz ilgili scriptinizi ismini değiştirmek istediğiniz veritabanını seçerek(USE) single_user mode alınız. Bu durumda single_user sizin mevcut bağlantınız olur. Bu tür sorunları ve sistem kesintisine mahal vermemek için aşağıdaki iki scripten dilediğinizi kullanıp uygulayabilirsiniz:

Script-1:

use [master]
go
-- set database to restricted_user mode
alter database [databasename] set restricted_user with rollback immediate

-- rename database name
alter database [databasename] modify name = [databasename_new]

--set database to multi-user mode
alter database [databasename] set multi_user with rollback immediate

Script-2:
use [databasename]
go

-- set database to restricted_user mode
alter database [databasename] set single_user with rollback immediate

-- rename database name
alter database [databasename] modify name = [databasename_new]
--set database to multi-user mode
alter database [databasename] set multi_user with rollback immediate


Not:  İlgili veritabanını kullanmaya çalışan session'ları aşağıdaki kod ile sonlandırabilirsiniz:

declare @tsql varchar(max)=''

select distinct @tsql = @tsql + 'kill ' + cast(request_session_id as varchar(16)) +';
'
from sys.dm_tran_locks
where resource_database_id=db_id('databasename')
group by request_session_id

exec(@tsql)

2011-08-12

Dedicated Administrator Connection (DAC)

Dedicated Administrator Connection (DAC) SQL Server 2005 ile birlikte gelen güzel, kullanışlı ve çoğu zaman hayat kurtarıcı bir özelliktir(Bir DBA için DAC, zorda kaldığında kullanabileceği bir arka kapıdır.).

SQL Server veritabanı sisteminiz bir şekilde kaynak yetersizliğinden dolayı cevap veremez halde iken(veritabanı sistemi yeni bir bağlantı kabul etmiyorken ) Dedicated Administrator Connection (DAC) ile SQL Server'a erişebilirsiniz. Bu tür durumlarda DAC, çoğu zaman sorunu çözmek için hayat kurtarıcı olur. DAC a default olarak ilgili veritabanı sunucusu üzerinden erişilebilir. DAC a uzaktan erişmek için ise sp_configure' da "remote admin connections" özelliğini aşağıdaki gibi açmak gerekir:

sp_configure 'remote admin connections',1
reconfigure;

SQL Server'a DAC ile iki şekilde ulaşabilirsiniz:

  1. Query ekranında Change Connection ile Server name alanına ADMIN:ServerName şeklinde bilgileri girip erilebilirsiniz.
  2. DOS komut satırında SQLCMD ile -A (Administrator) parametresini vererek erişebilirsiniz.
    Örnek : sqlcmd -S ServerName -U UserName -P Password -A

DAC ile ilgili bilinmesi gerekenler:

  • Her bir SQL Server instance'ı için aynı anda sadece bir adet DAC erişimi yapılabilir.
  • DAC ile erişecek kullanıcının sysadmin rolüne sahip olması gerekir.
  • DAC ile kullanabileceğiniz komutlar sınırlıdır. Örneğin DAC ile RESTORE, BACKUP komutlarını kullanamazsınız.
  • DAC default 1434 nolu portu kullanır. DAC'ın hangi portu kullandığını SQL Server Error Log'undan öğrenebilirsiniz. SQL Server servisi başlatıldığında DAC ile ilgili olarak error log'a aşağıdaki gibi mesajı yazar:
    Dedicated admin connection support was established for listening locally on port 1434.
  • Express sürümünde 7806 nolu trace flag'ı kullanmadan DAC ı kullanamazsınız.

2011-08-11

Bir Tablodaki Kümülatif Satır Toplamını Bulma

Yazılım geliştiren bir arkadaşın "Bir tablodaki kümülatif satır toplamı belli değerin altında olan kayıtları nasıl bulabilirim?" sorusuna cevap bulmak için aşağıdaki gibi bir test tablosu oluşturdum:

create table [dbo].[TableCumulative](
[id] [int] identity(1,1) not null,
[urunkodu] [varchar](16) null,
[adet] [int] null
) on [primary]


Oluşturduğumuz tablomuzdaki verilerimiz aşağıdaki gibi olsun:


TableCumulative tablosundaki  adet alanının kümülatif satır toplamlarını aşağıdaki SQL kodu ile bulabiliriz:

select id,
urunkodu,
adet,
select sum(x.adet) from tablecumulative as x where x.id <= s.id and x.urunkodu=s.urunkodu) as cumulativesum

from tablecumulative as s
order by id

Sorgu Sonucu:

Kümülatif satır toplamları 7'den küçük olan kayıtları bulalım:

select *
from(
select id,
urunkodu,
adet,

(select sum(x.adet) from tablecumulative as x where x.id <= s.id and x.urunkodu=s.urunkodu) as cumulativesum
from tablecumulative as s
)drv
where cumulativesum <=7

Sorgu Sonucu:

Habersiz

Günde bir taş-ı bina-yı ömrümün düşdi yire
Can yatar gafil binası oldı viran bi-haber

Dil bekası Hak fenası istedi mülk-i tenim
Bir devasız derde düştüm ah ki Lokman bi-haber

Bir ticaret kılamadım nakd-i ömür oldı heba
Yola geldum lakin göçmüş cümle karban bi-haber

Kös-i rihlet çaldı mevt amma henüz can bi-haber
Asker-i azaya lerze düşdi sultan bi-haber

Ağlayıp nalan edip düştün yola tenha garib
Dide giryan sine püryan akıl hayran bi-haber

Azığum yok yazığum çok,yolda dürlü korku var
Yolımu alursa n'ola ger div ü şeytan bi-haber

Yol erü yolda gerekdür çağ-u çıplak aç-u tok
Mısri'ye gel didi sana çünkü canan bi-haber

Niyazi Mısri

2011-07-30

İnsanlık için 5 TL'niz var mı?


Birleşmiş Milletler’in son 50 yılın en ağır kuraklığını yaşadığını belirterek, kıtlık alarmı verdiği Somali’de yüzde 30′u çocuk olmak üzere 3 milyondan fazla insanın içinde bulunduğu ciddi açlık felaketi ölümlere neden olmaya başladı.

Türkiye, Afrika’nın en fakir ülkelerinden Somali’de yaşanan açlık ve kıtlığa duyarsız kalmadı ve harekete geçti.

İnsani Yardım Vakfı İHH ve Deniz Feneri Derneği ile birlikte bir çok yardım kuruluşunun yanı sıra Diyanet İşleri Başkanlığı da Somali için bağış kampanyası başlattı.

40 milyonun üzerinden insanın açlık tehlikesi altında olduğu ve her gün yüzlercesinin de açlık ve susuzluktan hayatını kaybettiği Somali için en etkin yardım türü ise cep telefonlarından SMS karşılığında yapılanı. Yardım Kurululuşları ve Diyanet İşleri Başkanlığı’nın kontrolünde olan telefon numaralarına gönderilen her bir SMS 5 TL yardım yerine geçiyor.

5 TL BAĞIŞ YAPMANIN YOLU

İHH

TURKCELL, VODAFONE VE AVEA tüm hatlardan “SOMALI” yazıp 3072′ye SMS göndererek 5 TL bağışta bulunabilirsiniz.

http://www.ihh.org.tr/

Deniz Feneri Derneği

TURKCELL, VODAFONE VE AVEA’nın tüm faturalı ve kontörlü hatlarından 5560′a boş SMS göndererek 5 TL bağışlayabilirsiniz.

http://www.denizfeneri.org.tr/

DİYANET İŞLERİ BAŞKANLIĞI

1 Ağustos’tan itibaren başlayacak olan uygulama ile bütün operatörlerden “AFRIKA” yazıp 5601’e gönderilecek olan SMS’ler 5 TL karşılığında olacak, 3 SMS gönderildiğinde bir fitre bir iftar parası verilmiş olacak.

http://www.diyanet.gov.tr/



AFRİKA’DA NELER OLUYOR?

Doğu Afrika’yı kasıp kavuran kuraklık Somali başta olmak üzere Kenya, Etiyopya, Cibuti ve Uganda’da büyük bir insani felakete dönüşmüş durumda.

Kuraklık nedeni ile Afrikalı insanların bulundukları yerlerden göç etmek zorunda kaldıkları ve Kenya yakınlarında bulunana Dadaab Kampına sığınmış Somalili mültecilerin sayısının 400.000’e yükseldiği belirtiliyor.

Tek umutları mülteci kamplarında verilecek olan yemek ve su sayesinde hayatta kalabilmek olan mülteciler zor günler geçiriyor. BM raporuna göre yolculuklar esnasında iki milyon çocuk yetersiz besleniyor ve hayatta kalabilmeleri için çok acil yardıma ihtiyaç duyuyorlar.

2011-07-29

Security Vulnerabilities of Any Database Platform


NIST(National Institute of Standards and Technology)'nin, 2002 ile Haziran 2010 döneminde veritabanı teknolojisi üzerinde toparladığı istatistikler doğrultusunda SQL Server en güvenli veri tabanı olarak ortaya çıkıyor.

Konu ile ilgili kaynak makaleler:
Kaynak: Microsoft TechNet Aylık BT E-Bülteni - Temmuz 2011 Sayısı‏





Microsoft, SQL Server 2000'den bu yana veritabanı tarafında çok büyük gelişmeler kaydetti. Bana göre SQL Server, SQL Server 2005 ile tam bir enterprise ürün haline geldi. SQL Server 2008 ve SQL Server 2008 R2 ile birlikte kullanışlı ve ihtiyaç olan yeni özellikler eklendi(SQL Server 2008 İle Birlikte Gelen Yenilikler'i ilgili yazımdan okuyabilirsiniz. Bu sene sonunda yada 2012 başında çıkması beklenen ve kod adı Denali olan yeni sürümde daha kullanışlı ve işe yarar yeni özellikler gelecek). Bu gelişmelere paralel olarak zaman içerisinde rüştünü ispat eden SQL Server KOBI'lerden tutun da büyük şirketlere kadar hatta bankalarda kullanım alanı buldu. Halihazırda bildiğim kadarıyla ülkemizdeki 4 banka ana bankacılık veritabanı sistemlerini SQL Server üzerinde koşturuyor.

2011-07-28

Stop / Start SQL Server Agent Service With T-SQL

Zaman zaman çalışan SQL Server Agent servisini durdurmak yada duran SQL Server Agent servisini ise başlatmak ihtiyacımız olur. Bu ihtiyacımızı sunucuya bağlanıp servisin durumunu değiştirmek yada Central Management Server altından ilgili sunucunun Central Management Server Actions, Service Control altından yapabiliriz. Ama tüm bu seçenekler biraz uzun ve uğraştırıcı olduğu için SSMS üzerinden T-SQL ile servislerimi nasıl yönetirim diyenler cevabını aşağıda bulabilir:

Durmuş olan SQL Server Agent servisini aşağıdaki extended stored procedure yardımıyla başlatabilirsiniz:

exec xp_servicecontrol N'start',N'SQLServerAGENT'

Çalışan SQL Server Agent servisini aşağıdaki extended stored procedure yardımıyla durdurabilirsiniz:

exec xp_servicecontrol N'stop',N'SQLServerAGENT'

xp_servicecontrol  extended stored procedure aşağıdaki parametreleri alır:
  • start
  • stop
  • pause
  • continue
  • querystate
xp_servicecontrol  extended stored procedure ile dilediğiniz servisi dilediğiniz duruma getirip, durumu hakkında bilgi alabilirsiniz.

2011-07-27

SQL Server Version, Service Pack, Edition ve Cluster Bilgilerilerini Alma

SQL Server'ınızın build number'ının kaç olduğunu, hangi service pack'ın ve hangi sürümün kurulu olduğu ile birlikte cluster olup olmadığını aşağıdaki sorgu ile öğrenebilirsiniz:

SELECT SERVERPROPERTY('productversion') As Version,
SERVERPROPERTY ('productlevel') As ServicePack,
SERVERPROPERTY ('edition') As Edition,
SERVERPROPERTY('IsClustered') As isClustered

2011-07-19

SQL Server 2008 SP1 & SP2 için CU Çıktı!

SQL Server 2008 SP1 ve  SP2 için yeni CU'ler yayınladı. SQL Server 2008 SP1 için CU15; SQL Server 2008 SP2 için CU5 yayınlandı. CU'ler ile ilgili makalelere aşağıdaki bağlantılardan ulaşabilirsiniz:

KB #2555406 : Cumulative update package 15 for SQL Server 2008 Service Pack 1

KB #2555408 : Cumulative update package 5 for SQL Server 2008 Service Pack 2

SQL Server 2008 R2 SP1 CU1 Çıktı!

SQL Server 2008 R2 SP1; RTM sürüm için çıkan CU7 ve CU8 kapsamıyordu. Geçen hafta çıkan SQL Server 2008 R2 SP1 için bugün CU1 yayınlandı. Yayınlanan CU1: RTM CU7 ve CU8 deki fixleri kapsıyor.

KB #2544793 : Cumulative update package 1 for SQL Server 2008 R2 Service Pack 1

Geçen hafta yayınlanmış olan SQL Server 2008 R2 SP1 http://www.microsoft.com/download/en/details.aspx?id=26727 adresinden indirebilirsiniz.
 
Yayınlanan her türlü SP, CU'yu veritabanı sisteminize kurmadan önce muhakkak test etmenizi öneririm!

.::YASAL UYARI::.

©2004-2023 Mehmet GÜZEL, www.mehmetguzel.net

Site içeriği kaynak gösterilmek koşuluyla yayınlanabilir. Yazılan yazı ve yorumlar sadece yazı ve yorum sahiplerini bağlar.