16 Ağustos 2009 Pazar

"SQL Server replication requires the actual server name to make a connection to the server. Connections through a server alias, IP address, or any oth

HATA MESAJI:
"SQL Server replication requires the actual server name to make a connection to the server. Connections through a server alias, IP address, or any other alternate name are not supported. Specify the actual server name, 'xxx-6J02WD\SQL2005'. (Replication.Utilities)"

AÇIKLAMA:
SQL Server sunucunuzda Replication kurmak isterken böyle bir hata mesajı ile karşılaşabilirsiniz. Aslında bu hata mesajıyla başka bir işlem yapmaya çalışırken de karşılaşabilirsiniz...

Sorun, sunucu adının olması gerektiğinden farklı olmasından kaynaklanıyordu.

Biliyorum, açıklamam gerekiyor =)

SELECT SERVERPROPERTY('SERVERNAME')

ve

SELECT @@SERVERNAME

komutları ideal dünyada aynı sonuçları döndürür. Fakat benimki gibi ideal olmayan bir dünyada yaşıyorsanız duruma göre farklı sonuçlar döndürebilirler. Ama şunu söyleyebilirim ki, SELECT SERVERPROPERTY('SERVERNAME') karşılaştığım her durumda doğru sonucu döndürüyordu. Bu iki komut da belli ki farklı yerlere bakıyorlar, tam olarak nereye baktıklarını ben de bilemiyorum...

Peki... Ben neden bunlardan bahsettim? Çünkü, eğer yukarıda Mesaj Başlığı bölümünde yazan mesaj ile karşılaştıysanız, büyük bir ihtimalle bu iki komutu çalıştırdığınızda farklı sonuçlar aldığınızı göreceksiniz.

Örneğin benim durumumda SELECT SERVERPROPERTY('SERVERNAME') komutunu çalıştırdığımda dönen sonuç şöyleydi: "EKREM-PC\SQL2005" (tabii ki bu değildi); fakat SELECT @@SERVERNAME komutunu çalıştırdığımda aldığım sonuç xxx-6J02WD\SQL2005 idi. Bunun nedeni ise, SQL Server Instance' ını kurduktan sonra bilgisayar adını değiştirmemdi.

ÇÖZÜM:
Böyle bir durumda yapmanız gereken ise şudur, öncelikle SQL Server' ınızda kayıtlı olan yerel bilgisayar adını aşağıdaki komut ile silersiniz:

sp_dropserver 'xxx-6J02WD\SQL2005'
GO

Daha sonra doğru yerel bilgisayar adını aşağıdaki komut ile eklersiniz:

sp_addserver 'EKREM-PC\SQL2005', 'Local'
GO

Bu işlemleri yaptıktan sonra SQL Server Database Engine servisini SQL Server Configuration Manager' dan veya Services MMC' den durdurup yeniden başlatırsınız.

Artık SELECT SERVERPROPERTY('SERVERNAME') komutunu da çalıştırsanız SELECT @@SERVERNAME komutunu da çalıştırsanız aynı sonucu alırsınız ve Mesaj Başlığında belirtilen hata mesajıyla veya türevleriyle artık karşılaşmazsınız.

Hiç yorum yok: