SQL Server: Apa yang dinamai dan instance default?


35

Apa yang dinamai dan instance default? Apa perbedaan di antara mereka? Mengapa digunakan?

Jawaban:


30

Menurut Microsoft tentang bernama vs default

Aplikasi klien terhubung ke sebuah instance dari Microsoft SQL Server 2005 untuk bekerja dengan database SQL Server. Setiap contoh SQL Server terdiri dari serangkaian layanan berbeda yang dapat memiliki pengaturan unik. Struktur direktori, struktur registri, dan nama layanan semuanya mencerminkan nama instance spesifik yang Anda identifikasi selama pengaturan.

Sebuah instance adalah instance default, instance tanpa nama, atau instance instance. Ketika SQL Server 2005 diinstal dalam contoh default, itu tidak memerlukan klien untuk menentukan nama contoh untuk membuat koneksi. Klien hanya perlu tahu nama server.

Contoh bernama diidentifikasi oleh nama jaringan komputer ditambah nama contoh yang Anda tentukan selama instalasi. Klien harus menentukan nama server dan nama contoh saat menghubungkan.

Secara default, SQL Server menginstal di instance default kecuali Anda menentukan nama instance. SQL Server Express, bagaimanapun, selalu menginstal dalam contoh bernama kecuali Anda memaksakan instalasi default selama pengaturan.


17

Anda juga dapat menginstal hanya satu default (instance tanpa nama) tetapi Anda dapat menginstal banyak instance bernama.

Banyak perangkat lunak pihak ketiga biasanya akan menggunakan contoh bernama default meskipun mereka mungkin tidak menyebutkannya. Alasannya jelas dari jawaban di atas, versi standar menginstal instance tanpa nama secara default sedangkan versi Express menginstal instance bernama secara default.

Penting untuk mengetahui perbedaan dari perspektif ini karena jika Anda menjalankan 2 atau 3 Server DB, Anda mungkin tidak akan pernah terhubung ke versi yang benar. Karena perangkat lunak pihak ketiga sedang mencari instance default sementara Anda berpikir itu adalah instance SQLEXPRESS yang sedang ia coba sambungkan. Ini dapat secara signifikan meningkatkan waktu pemecahan masalah Anda, jika Anda tidak tahu bagaimana menghubungkan ke instance bernama vs tanpa nama.

Jadi jika Anda ingin terhubung ke Versi Bernama atau Tidak Dinamai, gunakan pedoman berikut.

MY-MACHINE-NAME\SQLEXPRESS  /* named version - correct */
MY-MACHINE-NAME             /* unnamed version (default instance) - correct */
MY-MACHINE-NAME\MSSQLSERVER /* unnamed version (default instance) - Wrong */

Perhatikan bahwa meskipun instance default memiliki nama, itu tidak dapat dirujuk oleh namanya!


5

Selain penjelasan yang diposting Brett G, berikut adalah beberapa alasan mengapa menggunakannya:

  • Anda dapat memiliki instance yang berbeda menggunakan versi SQL yang berbeda (ie- default menggunakan SQL 2008, bernama instance using SQL 2005)
  • Pemisahan masalah, baik itu dengan aplikasi atau keamanan Anda atau apa pun
  • Lingkungan pengembangan yang berbeda
  • Lingkungan aplikasi yang berbeda (mis. Homegrown vs. pihak ketiga)

Segala macam alasan untuk menggunakannya. Namun, tidak berarti itu selalu merupakan ide yang baik: P


5

Namun perbedaan praktis lainnya: SQL2005 dan lebih tinggi memungkinkan Anda untuk menginstal 16 instance atau lebih per sistem. Karena lisensi adalah per CPU fisik , per instalasi SQL server (dan bukan per instance!), Ini berarti Anda dapat menjalankan hingga 16 contoh SQL Server 2005 tanpa membayar satu sen lebih dari yang Anda lakukan.

Mengingat bahwa lisensi CPU dapat berjalan hingga $ 15000 (!) Per soket, ini harus dimiliki untuk instalasi besar dengan, katakanlah, 16 core dan memori 256GB.


1

Anda juga dapat membatasi memori dan menetapkan batas penggunaan prosesor per instance. Anda juga dapat membuat instance untuk aplikasi tertulis vendor yang 'membutuhkan' hak istimewa admin sistem, sehingga Anda tidak membahayakan aplikasi lain.


0

Salah satu alasan terbaik adalah pemisahan basis data. Jika Anda mengembangkan aplikasi Anda sendiri dan mengemas SQL Express dengan itu, maka masuk akal untuk menginstalnya ke instans itu sendiri. Plus memberi pengguna pilihan untuk menentukan instalasi SQL yang ada jika mereka menolaknya.

Jika Anda memiliki database yang sangat penting dan Anda ingin memastikan tidak ada orang lain yang memiliki akses, itu bisa menjadi contoh sendiri dengan otorisasi keamanan yang sangat terbatas. Katakan itu DB prodcution Anda, dan kemudian direplikasi ke DB pelaporan di server yang sama ** yang hanya dibaca untuk orang. Lebih kecil kemungkinannya karena kesalahan pengguna (admin), pengguna secara tidak sengaja akan mendapatkan akses ke DB produksi, dengan membatasi siapa yang sebenarnya dapat memperbarui grup keamanan pada instance produksi hanya beberapa orang.

** Praktik yang baik mengatakan untuk membuat server pelaporan sebagai mesin yang terpisah, tapi saya hanya melakukan ini sebagai contoh.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.