จะเปลี่ยนชื่ออินสแตนซ์ของ SQL Server 2008 ได้อย่างไร?


28

ฉันจะเปลี่ยนชื่ออินสแตนซ์ของ SQL Server 2008 โดยไม่ต้องติดตั้งใหม่ได้อย่างไร

ตัวอย่างเช่นหาก db ถูกอ้างอิงเป็น "MySQLServer \ MSSQL2008" ฉันจะเปลี่ยนชื่อเป็น "MySQLServer \ SQL2008" ได้อย่างไร

คำตอบ:


31

ฉันไม่คิดว่าเป็นไปได้ที่จะเปลี่ยนชื่อโดยไม่ต้องติดตั้ง

มีร่องรอยเหลืออยู่ในชื่อฐานข้อมูลภายในไม่กี่แห่งเช่นการจำลองแบบและคุณอาจพบข้อผิดพลาดในภายหลัง

หากคุณสามารถทำได้เว้นแต่คุณมีมากกว่าหนึ่งอินสแตนซ์คุณควรทำการติดตั้งใหม่และนำเข้าฐานข้อมูลทั้งหมดอีกครั้ง


3
วิลอย่างถูกต้อง ไม่มีทางที่จะเปลี่ยนชื่ออินสแตนซ์ได้ คุณต้องถอนการติดตั้งอินสแตนซ์แล้วติดตั้งอินสแตนซ์ใหม่ (หรือติดตั้งอินสแตนซ์ใหม่ย้ายฐานข้อมูลไปยังอินสแตนซ์ใหม่จากนั้นปิดใช้งานหรือถอนการติดตั้งอินสแตนซ์เก่า)
mrdenny

ทำการถอนการติดตั้งแล้วติดตั้งใหม่ด้วยอินสแตนซ์ที่ตั้งชื่อแล้วนั้นไม่ยากมากนัก เพียงแค่ถือไว้ในไดเรกทอรีข้อมูล (และอาจจะเป็นไดเรกทอรีสำรองข้อมูล) ในอินสแตนซ์เก่า
djangofan

9

ฉันรู้ว่าสคริปต์นี้แพร่หลายทั่วทั้ง 'net แต่เมื่อใดก็ตามที่ฉันใช้ google ฉันจะพบกับ proc ที่จัดเก็บอย่างละเอียดที่เกินความต้องการของฉัน - ดังนั้นนี่คือคำสั่งที่จำเป็นในการเปลี่ยนชื่ออินสแตนซ์ของ SQL Server สำหรับลูกหลาน:

  • รับชื่อปัจจุบันของอินสแตนซ์ SQL Server สำหรับการเปรียบเทียบในภายหลัง
    SELECT @@servername
  • ลบเซิร์ฟเวอร์ออกจากรายการเซิร์ฟเวอร์ระยะไกลและเซิร์ฟเวอร์ที่รู้จักในอินสแตนซ์ในเครื่องของ SQL Server
    EXEC master.dbo.sp_dropserver ‘[SERVER NAME]‘
  • กำหนดชื่อของอินสแตนซ์ในเครื่องของ SQL Server
    EXEC master.dbo.sp_addserver ‘[NEW SERVER NAME]‘, ‘local’
  • รับชื่อใหม่ของอินสแตนซ์ SQL Server สำหรับการเปรียบเทียบ SELECT @@servername

และหมายเหตุบางประการที่เกี่ยวข้องกับการใช้งานของพวกเขา:
sp_dropserver :

  1. ขั้นตอนการจัดเก็บนี้สามารถลบทั้งเซิร์ฟเวอร์ระยะไกลและเซิร์ฟเวอร์ที่เชื่อมโยง
  2. การใช้พารามิเตอร์ droplogins ระบุว่าต้องลบการลงชื่อเข้าใช้รีโมตและเซิร์ฟเวอร์ที่เชื่อมโยงสำหรับ [SERVER NAME] ที่เกี่ยวข้อง

sp_addserver :

  1. ในการกำหนดเซิร์ฟเวอร์ที่เชื่อมโยงให้ใช้ sp_addlinkedserver (เนื่องจากการทำงานนี้จะถูกคิดค่าเสื่อมราคาในเวอร์ชันด้านบน SQL Server 2005);
  2. sp_addserver ไม่สามารถใช้ภายในธุรกรรมที่ผู้ใช้กำหนด

ฉันจะแนะนำต่อไปนี้เมื่อเปลี่ยนชื่อ SQL Server:
หากคุณกำลังทำงานนี้เป็นส่วนหนึ่งของการเปลี่ยนชื่อเครื่องให้เปลี่ยนชื่อเครื่องก่อนแล้วเปลี่ยนชื่อ SQL Server เมื่อคุณเปลี่ยนชื่อ SQL Server แล้วให้รีสตาร์ท SQLServer เต็มรูปแบบรวมถึงบริการที่ต้องพึ่งพา

ฉันได้รับข้อมูลนี้จากลิงค์ด้านล่าง:

https://web.archive.org/web/20141116031942/http://modhul.com/2008/01/15/renaming-a-sql-server-instance/


1

เพียงบันทึกย่อที่คุณสามารถเพิ่ม "นามแฝง" และใช้ภายใต้ชื่อทั้งสอง:

ป้อนคำอธิบายรูปภาพที่นี่


0

select @@servername จะแสดงชื่อใหม่ แต่ชื่อเซิร์ฟเวอร์ใน ERRORLOG จะแสดงชื่อเก่าและคุณไม่สามารถเชื่อมต่อโดยใช้ชื่อใหม่ได้

ทางออกเดียวคือติดตั้งใหม่


-1

บล็อกนี้ดูเหมือนจะบ่งบอกว่ามันค่อนข้างง่าย

http://www.modhul.com/2008/01/15/renaming-a-sql-server-instance/


3
แต่ไม่สามารถเปลี่ยนชื่อไดเรกทอรีอินสแตนซ์ได้ ที่อาจทำให้เกิดความสับสนกับบางคน ฉันจะไม่แนะนำวิธีการนั้นแม้ว่าจะง่าย
djangofan

-4

คุณต้องการใช้ ALTER DATABASE

http://msdn.microsoft.com/en-us/library/ms174269.aspx

ในสถานการณ์นี้สำหรับตัวอย่างของคุณด้านบนฉันลอง:

ALTER DATABASE MSSQL2008 MODIFY NAME = 'SQL2008'

โชคดี!


6
ผมคิดว่าข้อเสนอนี้กับการปรับเปลี่ยนชื่อฐานข้อมูลมากกว่าตัวอย่างของเซิร์ฟเวอร์ SQL
วิลเลียม Hilsum

ใช่ ... ฉันต้องการเปลี่ยนชื่ออินสแตนซ์เอ็นจินเซิร์ฟเวอร์ sql ไม่ใช่แค่ชื่อตารางหรือฐานข้อมูล
Scott Marlowe

คุณถูกต้อง และฉันเห็นด้วยกับ @Wil - ฉันไม่ทราบวิธีการทำเช่นนี้หากไม่มีการติดตั้งใหม่
Nicolas Webb
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.