BUAT DATABASE pada partisi RAW tidak lagi berfungsi?

16

Saya mencoba membuat database menggunakan dua partisi mentah, yaitu belum diformat.

Microsoft Documents menyatakan Anda dapat melakukan ini, Anda hanya perlu menentukan huruf pengandar partisi mentah, seperti pada:

CREATE DATABASE DirectDevice 
ON (NAME = DirectDevice_system, FILENAME = 'S:')
LOG ON (NAME = DirectDevice_log, FILENAME = 'T:')

Namun, SQL Server 2017 mengembalikan kesalahan ini:

Msg 5170, Level 16, Negara 4, Baris 1
Tidak dapat membuat file 'S:' karena sudah ada. Ubah jalur file atau nama file, dan coba lagi operasi.
Msg 1802, Level 16, Negara 4, Baris 1
BUAT DATABASE gagal. Beberapa nama file yang tercantum tidak dapat dibuat. Periksa kesalahan terkait.

Bagian dokumentasi yang terkait menyatakan:

Jika file berada di partisi mentah, os_file_name harus menentukan hanya huruf drive dari partisi mentah yang ada. Hanya satu file data yang dapat dibuat pada setiap partisi mentah.

Dan ya, drive S: dan T: keduanya adalah partisi mentah yang tidak diformat yang ada di sistem saya:

DISKPART> partisi detail

Partisi 4
Jenis: ebd0a0a2-b9e5-4433-87c0-68b6b72699c7
Tersembunyi: Tidak
Diperlukan: Tidak
Attrib: 0000000000000000
Offset dalam Bytes: 999934656512

  Volume ### Ltr Label Fs Jenis Ukuran Info Status
  ---------- --- ----------- ----- ---------- ------- ---- ----- --------
* Volume 6 T RAW Partition 127 MB Healthy

DISKPART> pilih partisi 3

Partisi 3 sekarang adalah partisi yang dipilih.

DISKPART> partisi detail

Partisi 3
Jenis: ebd0a0a2-b9e5-4433-87c0-68b6b72699c7
Tersembunyi: Tidak
Diperlukan: Tidak
Attrib: 0000000000000000
Offset dalam Bytes: 1000067825664

  Volume ### Ltr Label Fs Jenis Ukuran Info Status
  ---------- --- ----------- ----- ---------- ------- ---- ----- --------
* Volume 7 S RAW Partition 129 MB Healthy

Menghapus tanda titik dua dari huruf drive, seperti pada FILENAME = 'S'dan FILENAME = 'T', menghasilkan:

Msg 5105, Level 16, Negara 2, Baris 1
Terjadi kesalahan aktivasi file. Nama file fisik 'S' mungkin salah. Diagnosis dan koreksi kesalahan tambahan, dan coba lagi operasi.
Msg 1802, Level 16, Status 1, Baris 1
BUAT DATABASE gagal. Beberapa nama file yang tercantum tidak dapat dibuat. Periksa kesalahan terkait.

Dokumentasi SQL Server 2000 memperlihatkan contoh berikut di bawah CREATE DATABASEbagian:

H. Gunakan partisi mentah
Contoh ini membuat database yang disebut Karyawan menggunakan partisi mentah. Partisi mentah harus ada saat pernyataan dieksekusi, dan hanya satu file yang bisa masuk pada setiap partisi mentah.

    USE master
    GO
    CREATE DATABASE Employees
    ON
    ( NAME = Empl_dat,
        FILENAME = 'f:',
        SIZE = 10,
        MAXSIZE = 50,
        FILEGROWTH = 5 )
    LOG ON
    ( NAME = 'Sales_log',
        FILENAME = 'g:',
        SIZE = 5MB,
        MAXSIZE = 25MB,
        FILEGROWTH = 5MB )
    GO

Namun, contoh di atas menunjukkan SIZE,, MAXSIZEdan FILEGROWTHparameter yang jelas tidak diperlukan untuk File Data SQL Server yang disimpan di partisi RAW.

Rincian lebih lanjut dari dokumentasi SQL Server 2000, khususnya tentang drive mentah:

Menggunakan Partisi Mentah
Microsoft® SQL Server ™ 2000 mendukung penggunaan partisi mentah untuk membuat file database. Partisi mentah adalah partisi disk yang belum diformat dengan sistem file Microsoft Windows NT®, seperti FAT dan NTFS. Dalam beberapa kasus, menggunakan database yang dibuat pada partisi mentah dapat menghasilkan sedikit peningkatan kinerja dibandingkan NTFS atau FAT. Namun, untuk sebagian besar instalasi metode yang disukai adalah menggunakan file yang dibuat pada partisi NTFS atau FAT. Saat membuat file database pada partisi mentah, Anda tidak menentukan nama fisik file yang terdiri dari database; Anda hanya menentukan huruf drive dari disk di mana file database harus dibuat. Jika Anda menggunakan Microsoft Windows® 2000 Server, Anda bisa membuat drive yang terpasang untuk mengarahkan ke partisi mentah. Saat Anda memasang drive lokal di folder kosong, Windows 2000 memberikan lintasan drive ke drive daripada huruf drive. Drive yang dipasang tidak tunduk pada batas 26 drive yang dikenakan oleh huruf drive; karena itu, Anda dapat menggunakan partisi mentah dalam jumlah tak terbatas. Saat Anda membuat file database pada drive yang dipasang, Anda harus mengakhiri jalur drive ke nama file dengan trailing backslash (), misalnya, E: \ Nama sampel. Untuk informasi tentang membuat drive yang dipasang, lihat dokumentasi Windows 2000 Server.

Ada beberapa batasan untuk dipertimbangkan saat menggunakan partisi mentah:
Hanya satu file database yang dapat dibuat pada setiap partisi mentah. Partisi logis harus dikonfigurasi sebagai file basis data tunggal, karena tidak ada sistem file pada partisi mentah.

Operasi sistem file standar seperti menyalin, memindahkan, dan menghapus tidak dapat digunakan dengan partisi mentah.

File database yang terletak di partisi mentah tidak dapat didukung menggunakan utilitas Cadangan Windows NT. Namun, database SQL Server atau cadangan log transaksi masih dapat dibuat.

File database pada partisi mentah tidak dapat diperluas secara otomatis. Baik awalnya membuat database pada ukuran penuhnya, atau secara manual memperluas file database. Untuk informasi lebih lanjut, lihat Memperluas Basis Data.

Hanya partisi berhuruf, seperti E :, atau drive yang dipasang, seperti E: \ Contoh nama \ yang dapat digunakan. Perangkat yang diberi nomor tidak dapat digunakan.

Layanan sistem file seperti penggantian blok buruk tidak tersedia dengan partisi mentah.


Hal ini terinspirasi oleh posting Brent Ozar tentang SQL Server 6.5 , yang memang mendukung partisi mentah

Max Vernon
sumber
3
Anda perlu menggunakan RPaaS - Raw Partition sebagai Layanan, atau ARPL - Azure Raw Partition Lake agar dapat bekerja dengan SS 2017 ;-)
SQLRaptor

Jawaban:

3

Saya dapat mengkonfirmasi kerja partisi mentah, seperti yang diharapkan, dengan SQL Server 2000 SP4 pada Windows XP x64.

Saya hanya menjalankan yang berikut ini melalui Query Analyzer (shudders) terhadap SQL Server 2000 SP4:

CREATE DATABASE t
ON PRIMARY 
(
    NAME = t_primary
    , FILENAME = 'E:'
)
LOG ON 
(
    NAME = t_log
    , FILENAME = 'F:'
);

Hasil:

Proses CREATE DATABASE mengalokasikan 0,64 MB pada disk 't_primary'.
Proses CREATE DATABASE mengalokasikan 1,00 MB pada disk 't_log'.

CREATE DATABASE tKode di atas berfungsi dengan SQL Server 2005 pada Windows XP x64; satu-satunya output adalahCommand(s) completed successfully.

SSMS memperlihatkan hal-hal berikut ketika Anda melihat file database:

masukkan deskripsi gambar di sini

Bukankah itu sekeren ember baut?

SQL Server 2012 SP1 pada Windows Server 2012 Standar, dengan akun layanan SQL Server Management Studio diatur ke "Sistem Lokal":

masukkan deskripsi gambar di sini

SQL Server 2014 (12.0.5000.0) berjalan sebagai "Sistem Lokal" pada Windows Server 2012 menunjukkan perilaku yang sama seperti SQL Server 2017; yaitu, ia mengembalikan pesan kesalahan ini:

Msg 5170, Level 16, Negara 4, Baris 1
Tidak dapat membuat file 'E:' karena sudah ada. Ubah jalur file atau nama file, dan coba lagi operasi.
Msg 1802, Level 16, Negara 4, Baris 1
BUAT DATABASE gagal. Beberapa nama file yang tercantum tidak dapat dibuat. Periksa kesalahan terkait.

Max Vernon
sumber