Apakah berguna untuk memiliki direktori root contoh SQL Server pada drive terpisah?

29

Saya tahu itu mungkin untuk mengubah banyak jalur default ketika menginstal SQL Server, dan umumnya ketika saya melakukan instalasi saya mengubah data dan folder log untuk berada di drive yang terpisah (biasanya D dan E), namun saya baru saja diberi mesin pra-instal yang menjalankan nama instance selain dari default dan mereka telah mengkonfigurasi direktori root instance untuk berada di drive D bersama dengan file mdf. Ini berarti bahwa pada apa yang biasanya menjadi drive yang relatif bersih dengan hanya folder dan file database di atasnya saya sekarang memiliki instalasi penuh binari SQL Server juga.

yaitu sekarang saya memiliki yang berikut:

C:\Program Files\Microsoft SQL Server\ --Base Install
D:\Microsoft SQL Server\MSSQL10_50.MyInstance --Instance Binaries
D:\Microsoft SQL Server\MSSQL10_50.MyInstance\MSSQL\DATA --Data Files
E:\Microsoft SQL Server\MSSQL10_50.MyInstance\MSSQL\LOGS --Log Files

Di mana biasanya saya akan berlari dengan sesuatu seperti:

C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\ --Base Install & Default Instance Binaries
D:\MSSQL\DATA --Data Files
E:\MSSQL\LOGS --Log Files

Saya dapat mengerti mengapa memiliki folder biner instance terpisah diperlukan, tetapi saya tidak dapat melihat mengapa akan berguna untuk meletakkan semua binari tersebut pada drive yang terpisah.

Adakah yang bisa memberi tahu saya mengapa hal itu masuk akal? Atau mungkin itu tidak ada bedanya sama sekali? Bagi saya sepertinya sangat tidak rapi ...

adhocgeek
sumber

Jawaban:

23

Sehubungan dengan memecah root instance ada beberapa argumen yang mendukung melakukannya.

  1. Beberapa Orang lebih suka menjaga drive "C" mereka didedikasikan hanya untuk OS dan binari OS. Ini dapat memberi Anda beberapa opsi berbeda untuk pemulihan jika terjadi kerusakan pada drive C, ini dapat membantu menjaga OS dari menyebabkan atau menerima masalah terkait ruang agar tidak dibagikan dengan aplikasi lain.
  2. Anda mengisolasi binari SQL Server dari program lain dan memastikan ketersediaan beberapa folder penting seperti folder Logs tempat log error pergi - folder ini harus dapat diakses untuk SQL Server memulai. Anda melindungi diri sendiri dari orang lain, pada dasarnya.

Anda dapat meletakkan file biner / contoh SQL Server di tempat yang sama dengan Anda cenderung meletakkan file program lainnya. Tetapi jika Anda melakukannya - setidaknya pastikan Anda mengambil file database sistem Anda dan berpotensi lokasi cadangan default Anda dan memindahkannya ke tempat lain ..

Inilah yang cenderung saya lakukan ketika diberi jumlah huruf drive yang tidak terbatas untuk dimainkan (minimal .. Surat tidak penting di sini):

  • C - OS dan file tingkat sistem. Hanya
  • D - File program untuk semua aplikasi (termasuk SQL Server)
  • S - File tingkat Instance / database sistem SQL Server dan file log biasanya (kecuali untuk TempDB) (catatan .. Jika saya memiliki beberapa instance, saya tidak akan membuat 4 ini. Saya akan meletakkan semua binari SQL untuk semua instance pada S dalam sebagian besar situasi, dengan folder menyediakan pemisahan)

( ED- Catatan lain - Saya sering tidak memiliki drive "S". Pada akhirnya, memiliki file database sistem Anda untuk Master, Model, MSDB, dan Resource db yang hidup di drive yang sama dengan beberapa pengguna Anda file database, tetapi dalam folder terpisah untuk pemisahan logis untuk menjaga hal-hal yang kurang membingungkan bukanlah akhir dunia.)

  • F - File data untuk database pengguna
  • L - Log file drive untuk database pengguna
  • T - TempDB
  • X - Cadangan drive (meskipun dalam banyak kasus saya memilih untuk mengalirkan cadangan ke drive jaringan, tidak membayar salinan setelah cadangan dan saya segera mencadangkan ke penyimpanan di tempat lain.)

Saya akan sering memiliki lebih banyak data dan drive log dan terkadang drive TempDB lain. Tambahkan beberapa contoh dan Anda dapat kehabisan huruf drive dengan cepat. Anda tentu bisa lolos dengan meletakkan file level instance Anda di C :. Dan saya melakukan banyak pemeriksaan kesehatan untuk klien yang diatur seperti itu - dan saya tidak pernah mengatakan "oh wow .. kita harus memperbaikinya sekarang" - Sekarang jika file TempDB mereka ada di sana juga, saya biasanya akan minta mereka mengubahnya. Terkadang memindahkan database master dan MSDB mereka juga ..

Tetapi dunia tidak akan berakhir jika Anda tidak membagi hal-hal ini. Saya pikir manfaatnya adalah memisahkan file -Anda. Sebagai seorang DBA, Anda harus memiliki paranoia yang sehat di sekitar peran lain di perusahaan Anda, aplikasi lain, instalasi lain, dll. Dan semakin Anda dapat mengisolasi diri dari potensi konflik, semakin baik Anda. Dan itu memberi Anda beberapa opsi lagi untuk instalasi ulang dan pemulihan. Jadi ya pisahkan binari Anda dari C .. Tapi saran saya tidak akan menjadi gila pada drive terpisah untuk setiap contoh ..

Mike Walsh
sumber
3

Yah, hanya ada 26 kemungkinan huruf drive di Windows. 1
Tetapi Anda memiliki kemungkinan untuk menggunakan poin mount. 2

Jadi jika Anda perlu menginstal 25 server yang berbeda (SQL, Web, ...) pada satu mesin, masuk akal untuk memiliki satu huruf drive untuk salah satu server.
Tetapi jika Anda hanya memiliki satu server, akan lebih masuk akal untuk memiliki huruf drive yang berbeda untuk file log, database, dan file program.
Anda juga dapat membagi file log / database / program jika mereka berada di folder yang berbeda.

  1. hentikan server SQL
  2. tambahkan partisi
  3. salin semua file database ke partisi
  4. ubah mount point ke folder, di mana file database telah (misalnya: d: \ database)
  5. jadi
gnomix
sumber
Ini sama sekali tidak menjawab pertanyaan. Saya tidak bertanya tentang huruf drive atau poin pemasangan, saya bertanya mengapa masuk akal untuk meletakkan root instance pada drive terpisah. Karena ini adalah file sistem, bagi saya masuk akal untuk membiarkannya di drive sistem.
adhocgeek
1
Maaf saya salah paham dengan Anda. Poin yang baik untuk menyatukan semua yang menjadi milik SQL dalam satu drive adalah kesederhanaan skrip cadangan, yang hanya perlu dijalankan di drive ini. Tetapi jika Anda meletakkan semuanya dalam satu drive saja, basis data, binari, dan log harus berada dalam folder yang terpisah. Dan saya sampai pada titik dengan mountpoints, bahwa Anda dapat mengatur ulang data pada partisi yang berbeda tanpa mengubah keseluruhan sistem.
@gnomix Anda selalu dapat mengedit jawaban (dan pertanyaan) dengan mengeklik tautan 'edit' di bawahnya.
dezso
@gnomix Kesederhanaan skrip cadangan potensial adalah salah satu alasan utama saya cenderung meletakkan Data dan Log pada drive mereka sendiri, tetapi saya tidak pernah memiliki kebutuhan untuk membuat cadangan file sistem. Saya ingin tahu apakah ini persyaratan umum. Insting saya menyarankan kepada saya bahwa menempatkan file sistem pada drive non-sistem dapat menyebabkan masalah.
adhocgeek
1
Plus, memisahkan drive menjadi dua atau lebih partisi tidak akan membantu disk I / O. Tapi ya, saya sangat setuju dengan Anda. Itu membuat hal-hal terlihat jauh lebih baik untuk meletakkan file database di root drive dan membuatnya lebih mudah untuk menemukan sesuatu. Saya biasanya memasukkan semuanya ke direktori seperti D: \ Data E: \ Logs F: \ Backup, ...
user1207758