(4.3)修改计算机名注意事项

转自:http://blog.51cto.com/jimshu/1588158

关键字:修改计算机名,改实例名,改计算机名

一、查看计算机名

1. 通过函数查看

  在安装SQL Server时,安装程序将本地服务器的名称设置为“计算机名”,并保存为一个全局变量@@SERVERNAME。如果在安装完成之后又修改了本地服务器的名称,那么@@SERVERNAME并不会主动修改。

  SQL Server还有一个SERVERPROPERTY函数,可以返回当前的本地服务器的网络名称。例如:

SELECT @@SERVERNAME as InstalledName, SERVERPROPERTY('SERVERNAME') as NetworkName

 

InstalledName    NetworkName

===============  ===========

WIN-IT2CFA8QS58  SQL2012SVR

  在上例中,可以确定这台计算机在安装后修改了计算机名。第一列返回了在安装SQL Server时的计算机名;第二列返回了当前的计算机名。

 

2. 通过系统存储过程查看

  可以使用sp_helpserver查看服务器的信息。http://msdn.microsoft.com/zh-cn/library/ms189804.aspx

EXEC sp_helpserver

 

name       network_name status                           id collation_name connect_timeout query_timeout

========== ============ ================================ == ============== =============== =============

SQL2012SVR SQL2012SVR   rpc,rpc out,use remote collation 0  NULL           0               0

 

 

 

二、修改计算机名

  当发现两个名称不符时,可以参照官网的示例进行修改。http://msdn.microsoft.com/zh-cn/library/ms174396.aspx

EXEC sp_dropserver 'current_server_name';
GO
EXEC sp_addserver 'new_server_name', 'local';
GO

  修改了计算机名之后,重启Windows后生效。

  完善后的脚本如下:

IF @@SERVERNAME <> SERVERPROPERTY('SERVERNAME')

BEGIN    

  EXEC sp_dropserver @server = @@SERVERNAME

  DECLARE @new_server_name SYSNAME

  SELECT @new_server_name = CAST(serverproperty('servername') as SYSNAME)

  EXEC sp_addserver @server = @new_server_name , @local = 'local'

END

 

 

三、计算机名对复制(Replication)的影响

  修改计算机名之后,发布和订阅的属性都不可以查看。

wKiom1SQ6Ymg5fC6AALez6gAdXw044.jpg

  由于存在着复制,SQL Server在sp_dropserver时失败:

消息 15190,级别 16,状态 1,过程 sp_dropserver,第 56 行

仍有对服务器 'WIN-IT2CFA8QS58' 的远程登录或链接登录。

  而且不可以删除链接服务器。

wKioL1SQ-AbQXw84AARaLvVj6CE909.jpg

 

对策:

1. 在修改计算机名之前,将发布和订阅“生成脚本”。

2. 在右键菜单中选择“禁用发布和分发”,这将删除所有的发布和订阅。

wKioL1SQ-I6jjFYtAAHOQo5PHEs769.jpg

3. 修改脚本,将计算机名改为新的名称。

4. 修改计算机名之后,根据脚本重新生成发布和订阅。

 

注解:如果在修改了计算机名之后再删除发布和订阅,那么在删除时需要清除“连接到发布服务器,并且在其中删除此订阅的记录”选项(因为无法连接到原来的计算机名)。

wKioL1SQ7krDpAygAAF_6A61_Wc242.jpg

 

四、计算机名对安全性的影响

  修改了计算机名,默认的安全帐户也会受影响。

  应注意到,默认的本地帐户仍然显示旧的计算机名。而且,在添加新的本地管理员帐户时被拒绝(实际上,Windows SID是相同的)。

wKiom1SRMAHD1JtPAAPW34lACjQ515.jpg

  需要使用另一个管理员帐户连接到SSMS,删除原有的默认本地帐户,再重新添加新的本地帐户。注意为新的本地帐户配置对应的服务器角色等权限。

 

 

五、对其它服务的影响

  例如,***S仍然将数据库指向旧的服务器名称。

wKioL1SRMo7iFJnEAAJyIdWEgvk572.jpgwKiom1SRMo2QQON5AAFqKmAPX3Q398.jpg

wKioL1SRM0DQ5P7aAAG_BUa2YI8039.jpg

wKiom1SRMtCyk_BwAAE7uK85tSM164.jpg

 

 

六、替代方案

  可以添加一个“别名”,使客户端工具仍然可以使用原先的计算机名。

wKioL1SQ7QuSXwhxAAMhDVW3f14356.jpg

  在64位的操作系统中,要注意区分客户端工具。例如,SSMS是一个32位的应用程序,因此需要在“SQL Native Client 11.0配置(32位)”中添加别名。

posted @ 2018-08-01 16:16  郭大侠1  阅读(857)  评论(0编辑  收藏  举报