SQL Server伺服器名稱與預設例項名不一致的修復方法
--原因分析:
--SERVERPROPERTY 函式的 ServerName 屬性與@@SERVERNAME 返回相似的資訊。
--ServerName 屬性提供Windows 伺服器和例項名稱,兩者共同構成唯一的伺服器例項;
[email protected]@SERVERNAME 提供當前配置的本地伺服器名稱。
--如果安裝時未更改預設伺服器名稱,則 ServerName 屬性和 @@SERVERNAME 返回相同的資訊。如果在安裝時已將本地伺服器名稱從預設伺服器名稱更改為其他名稱,則 @@SERVERNAME 返回更改後的新名稱。
--如果安裝時未更改預設伺服器名稱,但是安裝完成後更改過Windows 伺服器名稱,則@@SERVERNAME仍然返回安裝時的伺服器名稱,ServerName 屬性返回更改過後的Windows 伺服器名稱。也就是說,@@SERVERNAME不會報告Windows 伺服器名稱的更改,ServerName 屬性會報告Windows 伺服器名稱的更改。這就會造成SQL Server預設例項的@@SERVERNAME和ServerName 屬性不一致。這種情況在一些應用中常常會出現無法連線的問題,有時我們需要修復這種情況。
--修復方法:(修復方法很簡單,直接執行以下語句即可)
use master
go
select @@servername
select serverproperty('servername')
------
IF serverproperty('servername')<>@@servername
BEGIN
DECLARE @server SYSNAME
SET @ [email protected]@servername
EXEC sp_dropserver @[email protected]
SET @server=cast(serverproperty('servername') AS SYSNAME)
EXEC sp_addserver @[email protected],@local='LOCAL'
END
ELSE
PRINT '例項名與主機名一致,無需修改!'
若,安裝SQL之後 伺服器修改主機名,造成不一致,且之前有存在複製釋出:
機器名與例項名不同,解決辦法
在執行 exec sp_addlinkedserver'DMGZSRV10' 的時候一直提示
訊息 15190,級別 16,狀態 1,過程 sp_dropserver,第 56 行
仍有對伺服器 'DMGZSRV10' 的遠端登入或連結登入。
又執行
exec sp_dropserver 'DMGZSRV10', 'droplogins'
這時提示
無法刪除伺服器 'LC04',因為該伺服器用作複製過程中的釋出伺服器。 (Microsoft SQL Server,錯誤: 20582)
下面是解決的方案
原始狀態
1、伺服器名LC04 MSSQL例項名MSSQLSERVER
2、在LC04上建立了釋出,在另一臺伺服器上訂閱或者用SQLServer管理器遠端訪問LC04上的SQLServer,出現錯誤:
無法連線到 LC04。
-----------------------------
其他資訊:
解決處理
將LC04的計算機名稱改為MSSQLSERVER與MSSQL例項名相同
此時狀態
SQLServer管理器遠端可以訪問LC04的資料庫,但不能訂閱,出現錯誤:
SQL Server 複製需要有實際的伺服器名稱才能連線到伺服器。不支援通過伺服器別名、IP 地址或任何其他備用名稱進行連線。請指定實際的伺服器名稱“LC04”。 (Replication.Utilities)
解決處理
在LC04(現在應當名為MSSQLSERVER)的伺服器上,執行如下程式碼
SELECT @@SERVERNAME ,serverproperty('servername')
發現兩個不同,分別為LC04和MSSQLSERVER
執行如下程式碼
exec sp_droplinkedsrvlogin 'LC04',null
exec sp_dropserver 'LC04','droplogins'
exec sp_addserver 'MSSQLSERVER' , 'LOCAL'
出現錯誤
無法刪除伺服器 'LC04',因為該伺服器用作複製過程中的釋出伺服器。 (Microsoft SQL Server,錯誤: 20582)
解決處理
select * from msdb.dbo.MSdistpublishers
DELETE FROM msdb.dbo.MSdistpublishers
select * from msdb.dbo.MSdistpublishers
exec sp_droplinkedsrvlogin 'LC04',null
exec sp_dropserver 'LC04','droplogins'
exec sp_addserver 'MSSQLSERVER' , 'LOCAL'
重啟SQLServer服務
設定釋出伺服器屬性,發現釋出伺服器的伺服器名還是為LC04,造成釋出執行錯誤:
在建立與伺服器的連線時出錯。在連線到 SQL Server 2005 時,在預設的設定下 SQL Server 不允許進行遠端連線可能會導致此失敗。 (provider: 命名管道提供程式, error: 40 - 無法開啟到 SQL Server 的連線) (Microsoft SQL Server,錯誤: 53)
使用 exec sp_helpserver
發現name為repl_distributor的伺服器的network_name還是LC04
解決處理
執行exec sp_setnetname 'repl_distributor','MSSQLSERVER'
再次設定釋出伺服器,併發布,完成
實際上在SQLServer和其他應用中還有可能用到原有的資料庫名LC04
可以建立SQLServer的新別名為LC04,這樣基本上都可以解決了
相關推薦
SQL Server伺服器名稱與預設例項名不一致的修復方法
--原因分析: --SERVERPROPERTY 函式的 ServerName 屬性與@@SERVERNAME 返回相似的資訊。 --ServerName 屬性提供Windows 伺服器和例項名稱,兩者共同構成唯一的伺服器例項;
MS SQL Server:備份與恢復例項(命令列)
備份與恢復 1. 備份策略 2. 作業系統級備份: 讓資料庫離線 USE master GO ALTER DATABASE [MySQLServer] SET OFFLINE GO 讓資料庫聯機 USE master GO ALTER DATABASE [MySQL
tomcat伺服器時間與win系統時間不一致,是tomcat設定的時區不一致導致的
今天在tomcat伺服器上排查一個bug時發現,伺服器上的時間和系統的時間不一致,導致通過日誌定位bug比較吃力,而導致時間不一致是tomcat設定的時區和系統不一致導致的。以下是我的處理:到tomcat目錄下的bin資料夾中,找到catalina.bat檔案,使用筆記本開啟
PL/SQL客戶端字符集與服務端字符集不一致
啟動PL/SQL Developer 報字元編碼不一致錯誤Database character set (AL32UTF8) and Client character set (ZHS16GBK) are different.Character set conversion
SQL Server 伺服器更名及新增Windows登入名
虛擬機器安裝好 SQL Server ,發覺伺服器名字忘改了。所以下面就更改了伺服器名稱及在SQLServer中刪除新增Windows登入名。 直接更改Windows計算機名稱,改完重啟電腦 重啟系統後,登入SQLServer失敗。因為當前的Windows預設登入
SQL Server 關聯使用者與登入名
當在另一臺伺服器恢復資料庫時,資料庫使用者名稱無法與登入名建立關聯,用管理工具無法將登入名與使用者關聯,只能用SQL來實現,具體如下。 use 資料庫名exec sp_change_users_login 'update_one','使用者名稱','登入名' 說明:使用者名
SQL Server的備份與恢復
能夠 class tor 命令 備份 post database blog 註意 SQL Server的備份與恢復 SQL Server: 備份命令: BACKUP DATABASE test TO disk = ‘c:\test‘ WITH
SQL Server排名函式與排名開窗函式
什麼是排名函式?說實話我也不甚清楚,我知道 order by 是排序用的,那麼什麼又是排名函式呢? 接下來看幾個示例就明白了。 首先建立一個表,隨便插入一些資料。 ROW_NUMBER 函式:直接排序,ROW_NUMBER函式是以上升進行直接排序,並且以連續的順序給每一行資料一個唯一的序號。(即排名
SQL Server聚合函式與聚合開窗函式
以下面這個表的資料作為示例。 什麼是聚合函式? 聚合函式:聚合函式就是對一組值進行計算後返回單個值(即分組)。聚合函式在計算時都會忽略空值(null)。 所有的聚合函式均為確定性函式。即任何時候使用一組相同的輸入值呼叫聚合函式執行後的返回值都是相同的,無二義性。 COUNT(統計函式):COUNT
sql server遊標建立與使用
建立一個遊標,然後遍歷userinfo表的所有資料,列印使用者id和使用者名稱--定義遊標,讓遊標指向sql查詢結果declare demoCursor Cursor for select userName,userId,userAge from userInfo --開啟遊標open demoCursor
IDEA , 用JDBC驅動連線SQL Server伺服器異常詳解
本文適用於IDEA,sqlserver伺服器的使用者。 今天研究JDBC連線伺服器,一直琢磨了一晚上,才解決這個問題。 這類問題網上也有很多類似的部落格,但是不一定有用(本人親測),畢竟程式版本不同可能適用性就不同。 剛開始每次執行程式碼都是這樣的問題: 這是在資料庫連線成
SQL Server 資料型別與Java型別 對應關係表
SQL Server 型別 JDBC 型別 (java.sql.Types) Java 語言型別 bigint BIGINT long timestamp
再談SQL Server字串拆分與表格分列
字串拆分函式 剛工作那會寫了一篇關於字串拆分的文章,那時僅僅是考慮實現就可以了,沒考慮效能、簡潔等因素,現總結一下常用方法以及優劣。 為了考慮程式碼的可讀性和複用性,一般用函式將實現細節封裝,下面介紹幾種常用的方法: 迴圈拆分實現 CREATE FUNCTION [dbo].
SQL server伺服器sql查詢表佔用空間
SELECT t.NAME AS '表名稱', s.Name AS '架構', p.rows AS '資料條數', SUM(a.total_pages) * 8 AS '總分配空間KB', CAST(ROUND(((SUM(a.
淺談sql server聚集索引與非聚集索引
今天同事的服務程式在執行批量插入資料操作時,會超時失敗,程式碼debug了幾遍一點問題都沒有,SQL單條插入也可以正常錄入資料,除錯了一上午還是很迷茫,場面一度很尷尬,最後還是發現了問題的根本,原來是另一個同事為了提升查詢效率濫用了索引在搞鬼,沒有合理的運用索引使每次新增和修改資料時效率極低,大批量插入和修改
Eclipse中伺服器釋出時發現專案名後出現括號,括號中名字與專案名不一致的問題
eclipse的專案出現以下情況: 處理方式 第一步:右擊專案 屬性------------------------web專案設定 context root修改為何專案名稱一致; 第二步:專案根目錄.setting 下修改檔案org.eclipse.wst
Sql Server 儲存過程 - 使用者操作例項
使用者的增刪改查 新增 --新增使用者 create procedure addDeviceUser @name nvarchar(36) , @phone nvarchar(36) , @password nvarchar(255) as begin if exists(
sql server查詢器訪問其它例項中表資料
工作中經常需要從其他資料庫例項中拷貝資料到當前例項,或者關聯不同的例項的表中資料,可以通過下面方法在一個查詢器中同時訪問多個數據庫例項 use master go exec sp_configure 'allow updates', 0 reconfigure
PCB SQL SERVER 郵箱配置與發郵件
一.開啟SQL SERVER發郵件功能 --開啟發郵件功能 exec sp_configure 'show advanced options',1 reconfigure with override go exec sp_configure 'database mail xps',1 r
SQL SERVER 的釋出與訂閱
超詳細的sqlServer分發和訂閱 一、環境說明 兩臺區域網內的PC機 主機: &nb