SQL Server แปลงอินสแตนซ์ที่มีชื่อเป็นอินสแตนซ์เริ่มต้นหรือไม่


135

ฉันต้องการแปลงอินสแตนซ์ที่ตั้งชื่อของ SQL Server 2005 เป็นอินสแตนซ์เริ่มต้น

มีวิธีการทำเช่นนี้โดยไม่ต้องติดตั้งใหม่หรือไม่?


ปัญหาคือ 2 ใน 6 ของนักพัฒนาติดตั้งด้วยอินสแตนซ์ที่มีชื่อ มันกลายเป็นความเจ็บปวดที่เปลี่ยนสายเชื่อมต่อสำหรับพวกเราอีก 4 คน ฉันกำลังมองหาเส้นทางของความต้านทานน้อยที่สุดเพื่อให้ทั้งสองกลับไปที่การตั้งค่ามาตรฐานทีมของเรา

แต่ละคนได้แสดงให้เห็นว่านี่จะเป็นปัญหามากเกินไปและจะใช้เวลาในการพัฒนา ฉันคิดว่ามันต้องใช้เวลาพอสมควรในการแก้ปัญหาเพื่อผลประโยชน์สูงสุดของทุกคนที่เกี่ยวข้องฉันลองรวมกับแอปการกำหนดค่าที่ติดตั้งและไม่เห็นอะไรเลยดังนั้นฉันจึงหาคนที่มีความรู้เพิ่มเติมเกี่ยวกับการทำงานภายใน


12
หากคุณต้องการเข้าถึงอินสแตนซ์ที่มีชื่อจากสตริงการเชื่อมต่อใด ๆ โดยไม่ต้องใช้ชื่ออินสแตนซ์และใช้เฉพาะชื่อเซิร์ฟเวอร์ : ดูคำตอบของฉันด้านล่าง
Zasz

คำตอบ:


20

เท่าที่ฉันรู้ไม่ เหตุผลหนึ่งคือโครงสร้างโฟลเดอร์ในฮาร์ดไดรฟ์ พวกเขาจะมีชื่อเช่น MSSQL10 [instancename]


4
อันที่จริงนี่คือการตอบคำถามนี้ แต่ถ้าคุณต้องการเปลี่ยนชื่ออินสแตนซ์ของคุณโปรดดูคำตอบ Zasz กรุณาอย่าลงคะแนนเพราะไม่ใช่สิ่งที่คุณกำลังมองหาตรวจสอบคำถามก่อน
ลีอันโดร

7
ไม่ถูกต้อง. ดูคำตอบด้านล่าง
Tomas Beblar

ก็หวังว่าโทมัสเบบลาร์เขียนด้านล่าง
Jared

388

ฉันต้องการแปลงอินสแตนซ์ที่ตั้งชื่อเป็นค่าเริ่มต้นด้วยเหตุผลของฉันคือเข้าถึงด้วยชื่อเครื่องจากแอปพลิเคชันต่างๆ

หากคุณต้องการเข้าถึงอินสแตนซ์ที่มีชื่อจากสตริงการเชื่อมต่อใด ๆโดยไม่ใช้ชื่ออินสแตนซ์และใช้เฉพาะชื่อเซิร์ฟเวอร์และ / หรือที่อยู่ IP คุณสามารถทำสิ่งต่อไปนี้:

  • เปิด SQL Server Configuration Manager
  • คลิก SQL Server Network Configuration
  • คลิกที่Protocols for INSTANCENAMEคุณต้องการให้มี (เช่น SQLExpress)
  • คลิกขวาTCP/IPและคลิกEnabled
  • คลิกขวาTCP/IPและไปที่Properties
    • ไปที่IP Addressesแท็บ
    • เลื่อนลงไปที่IPAllส่วน
    • ล้างข้อมูลTCP Dynamic Ports(เช่นว่างเปล่า / ว่างเปล่า )
    • ตั้งค่าTCP Portเป็น1433
    • คลิก Ok
  • ไปที่ SQL Server Services
  • คลิกขวาของคุณSQL Server (INSTANCENAME)แล้วคลิกRestart

ตัวจัดการการกำหนดค่าเซิร์ฟเวอร์ SQL

นี่จะทำให้อินสแตนซ์ที่มีชื่ออยู่ฟังบนพอร์ตเริ่มต้น หมายเหตุ: คุณสามารถมีเพียงหนึ่งอินสแตนซ์ที่กำหนดค่าเช่นนี้ - ไม่มีสองอินสแตนซ์ที่สามารถมีพอร์ตเดียวกันในส่วน IP All ยกเว้นว่าอินสแตนซ์นั้นเป็นคลัสเตอร์ล้มเหลว


3
นี่คือสิ่งที่ฉันต้องการ
TheXenocide

9
นี่ไม่ได้ตอบคำถามเดิมโดยตรง แต่ตอบคำถามของฉันจาก Google
pb

47
ความแตกต่างระหว่างการตอบคำถามและการแก้ปัญหา ขอบคุณมากเพื่อน
IvanP

1
หมายเหตุสำหรับผู้ใช้ windows 8 เครื่องมือจัดการการกำหนดค่าไม่สามารถเข้าถึงได้ผ่านทางเมนูเริ่ม ต้องเรียกใช้จากคอนโซลคำสั่งเป็น SQLServerManager11.msc ( technet.microsoft.com/en-us/library/ms174212.aspx )
CGK

3
นี่เป็นหนึ่งในเทคนิคที่หอมหวานที่สุดที่ฉันเคยเห็นในชีวิตของฉัน
Saeed Neamati

14

นี่คือเหตุผลที่ บริษัท จำนวนมากเก็บสตริงการเชื่อมต่อของแอปพลิเคชันในระดับเครื่องแทนที่จะเป็นระดับแอปพลิเคชัน

เพียงนำสตริงการเชื่อมต่อออกจากซอร์สโค้ดทั้งหมด จากนั้นทุกคนได้ใส่ของพวกเขาสตริงการเชื่อมต่อในของพวกเขา machine.config

สิ่งนี้มีประโยชน์เพิ่มเติมในการหลีกเลี่ยงตรรกะของสภาพแวดล้อมเฉพาะของแอปเช่นเมื่อคุณคัดลอกแอปพลิเคชันของคุณไปยังเซิร์ฟเวอร์จัดเตรียมเซิร์ฟเวอร์จัดเตรียมจะ "รู้" ว่าจะใช้ฐานข้อมูลใด


2

วิธีเดียวในการเปลี่ยนชื่ออินสแตนซ์คือการติดตั้งใหม่ - ถอนการติดตั้งและติดตั้งเป็นอินสแตนซ์เริ่มต้น


แก้ไข. แต่นั่นไม่ใช่คำถาม
Tomas Beblar

2

หลายครั้งที่ฉันจะใช้นามแฝงของลูกค้าเพื่อชี้แอปพลิเคชันที่เซิร์ฟเวอร์ sql ที่แตกต่างจากที่มันเป็นสตริงการเชื่อมต่อสำหรับ esp มีประโยชน์เมื่อทำงานกับ DTS หรือแอปพลิเคชันที่มีสตริงการเชื่อมต่อแบบเข้ารหัสยาก ให้ทุกคนใช้นามแฝงที่ใช้กันทั่วไปใช้นามแฝงในสตริงการเชื่อมต่อและชี้นามแฝงของแต่ละกล่อง dev ไปยังอินสแตนซ์ที่แตกต่างกัน ด้วยวิธีนี้คุณจะไม่ต้องกังวลว่าเซิร์ฟเวอร์จะเป็นอินสแตนซ์เริ่มต้นหรือไม่


0

คุณไม่จำเป็นต้องทำเช่นนี้จริงๆ ซอฟต์แวร์ส่วนใหญ่ที่อ้างสิทธิ์ต้องการอินสแตนซ์เริ่มต้น (เช่น Great Plains หรือ Dynamics) ไม่ได้มีอยู่จริง

หากคุณ repost กับสถานการณ์ของคุณ (ติดตั้ง X แล้ว Y แต่ต้องสำเร็จ Z) ฉันเดิมพันคุณจะได้รับการแก้ไขที่ดี


0

ฉันคิดว่าคุณสามารถโยกย้ายข้อมูลของคุณจาก SQL Server โดยไม่ต้องติดตั้งอินสแตนซ์เริ่มต้น คุณสามารถระบุหมายเลขพอร์ตของอินสแตนซ์เซิร์ฟเวอร์ Sql ของคุณใน Oracle Sql Developer และคุณสามารถเชื่อมต่อโดยใช้ชื่อเซิร์ฟเวอร์เท่านั้นโดยไม่ใช้ชื่อเซิร์ฟเวอร์และอินสแตนซ์ ชอบสิ่งนี้: เชื่อมต่อกับ "MYSERVER, 1433"

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