7 Nisan 2009 Salı

"BackupDiskFile::CreateMedia: Backup device 'Z:\xxx.bak' failed to create. Operating system error 5(error not found)."

HATA MESAJI:
"BackupDiskFile::CreateMedia: Backup device 'Z:\xxx.bak' failed to create. Operating system error 5(error not found)."

AÇIKLAMA:
Yedek almaya çalışırken böyle bir hata mesajı ile karşılaşabilirsiniz.

ÇÖZÜM:
Yukarıda belirtilen hata mesajına göre gidersek, bu hatayı almanızın nedeni, SQL Server servisiniz için kullandığınız hesabın Z: sürücüsünde gerekli güvenlik haklarına sahip olmamasıdır.

Bu hatanın oluşmasını engellemek için, Bilgisayarım' dan Z: sürücüsünün özelliklerine gidin ve Güvenlik (Security) sekmesinde, SQL Server için kullandığınız hesabı (eğer listede yoksa) listeye ekleyin ve bu hesabın bu sürücüde Yazma (Write) hakkı olduğundan emin olun.

"A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible

HATA MESAJI:
"A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: Named Pipes Provider, error: 40 - Could not open a connection to SQL Server) (Microsoft SQL Server, Error: 2)"

AÇIKLAMA:
SQL Server Instance' ınıza bağlanırken böyle bir hata mesajıyla karşılaşabilirsiniz.

ÇÖZÜM:
Eğer bu hata mesajını alıyorsanız, belirttiğiniz SQL Server adı doğrudur; fakat bağlanılmaya çalışılan SQL Server servisi çalışmıyordur.

SQL Server servislerinin çalışırlığını kontrol etmek için SQL Server Configuration Manager veya Services MMC' sini (Başlat\Çalıştır = services.msc ENTER) kullanabilirsiniz.

"A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessi

HATA MESAJI:
"A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: SQL Network Interfaces, error: 26 - Error Locating Server/Instance Specified)"

AÇIKLAMA:
SQL Server Instance' ınıza bağlanırken böyle bir hata mesajıyla karşılaşabilirsiniz.

ÇÖZÜM:
Bu hata mesajını görmenizin nedeni, büyük ihtimalle SQL Server Instance adını yanlış belirtmenizden kaynaklanıyordur.

SQL Server' da temel olarak iki Instance tipi vardır, bunlardan biri Default Instance, diğeri ise Named Instance' tır.

Default Instance, bir sistemde sadece bir kere kurulabilir ve bilgisayar adından ibarettir. Örneğin, benim bilgisayarımın adı EKREM-PC olsun, eğer ben bu bilgisayara kuracağım SQL Server Instance' ını bir Default Instance olarak kurarsam, o zaman benim SQL Server Instance' ımın adı da bilgisayar adı gibi EKREM-PC olacaktır. Connection String' imdeki SERVER veya DATA SOURCE olarak da "EKREM-PC" adını kullanmam gerekir.

Named Instance ise bir veya birden fazla kurulabilir. Named Instance, \ biçimindedir. Örnek: "EKREM-PC\SQLExpress". Buradaki "EKREM-PC" benim bilgisayarımın adı, "SQLExpress" ise SQL Server kurulumu esnasında SQL Server Instance' ıma verdiğim isimdir. Connection String' imde de SERVER veya DATA SOURCE olarak "EKREM-PC\SQLExpress" adını kullanmam gerekir.

Eğer SQL Server' a gerek üçüncü parti bir uygulama gerekse SQL Server Management Studio ile bağlanırken Server adı yanlış belirtilirse bu hata ile karşılaşırsınız.

"The transaction log for database 'veritabanı_adı' is full. To find out why space in the log cannot be reused, see the log_reuse_wait_desc column

HATA MESAJI:
"The transaction log for database 'veritabanı_adı' is full. To find out why space in the log cannot be reused, see the log_reuse_wait_desc column in sys.databases (Microsoft SQL Server, Error: 9002)"

AÇIKLAMA:
Bir veritabanında, kayıt dosyasına işlenecek bir işlem yaparken (yeni bir Index oluşturma, Index Rebuild vb.) böyle bir hata mesajıyla karşılaşabilirsiniz.

Hata size kısaca, Transaction Log dosyasında yeterince yer kalmadığını söylüyor.

ÇÖZÜM:
Sorunu çözmek için, ilgili veritabanının Transaction Log dosyasında, yapılacak işlem için yeterince boş yer olduğundan emin olun.

Transaction Log dosyalarınızda ne kadar boş yer kaldığını aşağıdaki komut ile öğrenebilirsiniz.

DBCC SQLPERF(logspace)

Transaction Log dosyanızı boşaltmak için daha fazla bilgi edinmek istiyorsanız http://www.ekremonsoy.net/makaleler/sql/tlog_buyumesi/tlog_buyumesi.aspx.

"String or binary data would be truncated."

HATA MESAJI:
"String or binary data would be truncated."

AÇIKLAMA:
Bir tablonuzda güncelleme veya yeni kayıt ekleme işlemi yaparken böyle bir hata ile karşılaşabilirsiniz.

ÇÖZÜM:
Bu hata ile, bir alanı güncellemeye çalışırken veya bir tabloya yeni bir kayıt eklerken bu hatayı almanızın sebebi, alan genişliği az olan bir alana daha uzun bir genişlikte veri yazmaya çalışmanızdır.

Örneğin, NVARCHAR(10) veritipiyle tanımlanmış bir alana aşağıdaki şekilde veri güncellemeye çalışırsanız bu hatayı alırsınız:

UPDATE tabloX SET alanX = 'Ekrem Önsoy' WHERE alanNO = sayiX