TẠO DỮ LIỆU trên các phân vùng RAW không còn hoạt động?


16

Tôi đang cố gắng tạo cơ sở dữ liệu bằng hai phân vùng thô, tức là không được định dạng.

Microsoft Docs cho biết bạn có thể làm điều này, bạn chỉ cần chỉ định ký tự ổ đĩa của phân vùng thô, như trong:

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

Tuy nhiên, SQL Server 2017 trả về lỗi này:

Msg 5170, Cấp 16, Trạng thái 4, Dòng 1
Không thể tạo tệp 'S:' vì nó đã tồn tại. Thay đổi đường dẫn tệp hoặc tên tệp và thử lại thao tác.
Msg 1802, Cấp 16, Bang 4, Dòng 1
TẠO RA CƠ SỞ thất bại. Một số tên tập tin liệt kê không thể được tạo ra. Kiểm tra các lỗi liên quan.

Các bit thích hợp của tài liệu nêu:

Nếu tệp nằm trên phân vùng thô, os_file_name phải chỉ định ký tự ổ đĩa của phân vùng thô hiện có. Chỉ có một tệp dữ liệu có thể được tạo trên mỗi phân vùng thô.

Và có, ổ S: và T: đều là các phân vùng thô chưa được định dạng tồn tại trong hệ thống của tôi:

DISKPART> phân vùng chi tiết

Phân vùng 4
Loại: ebd0a0a2-b9e5-4433-87c0-68b6b72699c7
Ẩn: Không
Yêu cầu: Không
Attrib: 0000000000000000
Bù đắp bằng byte: 999934656512

  Tập ### Ltr Nhãn Fs Loại Kích thước Thông tin Trạng thái
  ---------- --- ----------- ----- ---------- ------- ---- ----- --------
* Tập 6 T Phân vùng RAW 127 MB Khỏe mạnh

DISKPART> chọn phân vùng 3

Phân vùng 3 hiện là phân vùng đã chọn.

DISKPART> phân vùng chi tiết

Phân vùng 3
Loại: ebd0a0a2-b9e5-4433-87c0-68b6b72699c7
Ẩn: Không
Yêu cầu: Không
Attrib: 0000000000000000
Bù đắp bằng byte: 1000067825664

  Tập ### Ltr Nhãn Fs Loại Kích thước Thông tin Trạng thái
  ---------- --- ----------- ----- ---------- ------- ---- ----- --------
* Tập 7 S Phân vùng RAW 129 MB Khỏe mạnh

Loại bỏ dấu hai chấm khỏi các ký tự ổ đĩa, như trong FILENAME = 'S'FILENAME = 'T', kết quả là:

Msg 5105, Cấp 16, Trạng thái 2, Dòng 1
Xảy ra lỗi kích hoạt tệp. Tên tệp vật lý 'S' có thể không chính xác. Chẩn đoán và sửa lỗi bổ sung, và thử lại thao tác.
Msg 1802, Cấp 16, Trạng thái 1, Dòng 1
TẠO RA CƠ SỞ thất bại. Một số tên tập tin liệt kê không thể được tạo ra. Kiểm tra các lỗi liên quan.

Tài liệu SQL Server 2000 hiển thị ví dụ sau trong CREATE DATABASEphần:

H. Sử dụng các phân vùng thô
Ví dụ này tạo ra một cơ sở dữ liệu gọi là Nhân viên sử dụng các phân vùng thô. Các phân vùng thô phải tồn tại khi câu lệnh được thực thi và chỉ một tệp có thể đi trên mỗi phân vùng thô.

    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

Tuy nhiên, ví dụ chương trình trên SIZE, MAXSIZEFILEGROWTHcác thông số được rõ ràng là không cần thiết cho SQL Server Data Files được lưu trữ trên phân vùng RAW.

Thông tin chi tiết từ tài liệu SQL Server 2000, đặc biệt liên quan đến các ổ đĩa thô:

Sử dụng phân vùng thô
Microsoft® SQL Server ™ 2000 hỗ trợ sử dụng các phân vùng thô để tạo tệp cơ sở dữ liệu. Phân vùng thô là phân vùng đĩa chưa được định dạng bằng hệ thống tệp Microsoft Windows NT®, chẳng hạn như FAT và NTFS. Trong một số trường hợp, sử dụng cơ sở dữ liệu được tạo trên các phân vùng thô có thể mang lại hiệu suất tăng nhẹ so với NTFS hoặc FAT. Tuy nhiên, đối với hầu hết các cài đặt, phương pháp ưa thích là sử dụng các tệp được tạo trên các phân vùng NTFS hoặc FAT. Khi tạo tệp cơ sở dữ liệu trên phân vùng thô, bạn không chỉ định tên vật lý của tệp chứa cơ sở dữ liệu; bạn chỉ định các ký tự ổ đĩa của các đĩa mà các tệp cơ sở dữ liệu sẽ được tạo. Nếu bạn đang sử dụng Microsoft Windows® 2000 Server, bạn có thể tạo các ổ đĩa được gắn để trỏ đến các phân vùng thô. Khi bạn gắn ổ đĩa cục bộ vào một thư mục trống, Windows 2000 chỉ định đường dẫn ổ đĩa cho ổ đĩa chứ không phải là ký tự ổ đĩa. Các ổ đĩa được gắn không phải tuân theo giới hạn 26 ổ đĩa được đặt bởi các ký tự ổ đĩa; do đó, bạn có thể sử dụng không giới hạn số lượng phân vùng thô. Khi bạn tạo tệp cơ sở dữ liệu trên ổ đĩa được gắn kết, bạn phải kết thúc đường dẫn ổ đĩa đến tên tệp bằng dấu gạch chéo ngược (), ví dụ: E: \ Tên mẫu. Để biết thông tin về cách tạo ổ đĩa được gắn, hãy xem tài liệu Windows 2000 Server.

Có một số hạn chế cần xem xét khi sử dụng phân vùng thô:
Chỉ có thể tạo một tệp cơ sở dữ liệu trên mỗi phân vùng thô. Phân vùng logic phải được cấu hình dưới dạng một tệp cơ sở dữ liệu, vì không có hệ thống tệp trên phân vùng thô.

Các hoạt động hệ thống tệp tiêu chuẩn như sao chép, di chuyển và xóa không thể được sử dụng với các phân vùng thô.

Các tệp cơ sở dữ liệu nằm trên các phân vùng thô không thể được sao lưu bằng tiện ích Sao lưu Windows NT. Tuy nhiên, cơ sở dữ liệu SQL Server hoặc sao lưu nhật ký giao dịch vẫn có thể được tạo.

Các tệp cơ sở dữ liệu trên các phân vùng thô không thể tự động mở rộng. Ban đầu, tạo cơ sở dữ liệu ở kích thước đầy đủ hoặc mở rộng thủ công các tệp cơ sở dữ liệu. Để biết thêm thông tin, xem Mở rộng cơ sở dữ liệu.

Chỉ các phân vùng chữ, chẳng hạn như E:, hoặc ổ đĩa được gắn, chẳng hạn như E: \ Tên mẫu \ có thể được sử dụng. Thiết bị đánh số không thể được sử dụng.

Các dịch vụ hệ thống tệp như thay thế khối xấu không có sẵn với các phân vùng thô.


Điều này được lấy cảm hứng từ bài đăng của Brent Ozar về SQL Server 6.5 , đã hỗ trợ các phân vùng thô


3
Bạn cần sử dụng RPaaS - Phân vùng thô làm dịch vụ hoặc ARPL - Azure Raw phân vùng hồ để nó hoạt động với SS 2017 ;-)
SQLRaptor

Câu trả lời:


3

Tôi có thể xác nhận các phân vùng thô hoạt động, như mong đợi, với SQL Server 2000 SP4 trên Windows XP x64.

Tôi vừa chạy phần sau thông qua Trình phân tích truy vấn (shudders) đối với SQL Server 2000 SP4:

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

Kết quả:

Quá trình CREATE DATABASE đang phân bổ 0,64 MB trên đĩa 't_primary'.
Quá trình CREATE DATABASE đang phân bổ 1,00 MB trên đĩa 't_log'.

Đoạn CREATE DATABASE tmã trên hoạt động với SQL Server 2005 trên Windows XP x64; đầu ra duy nhất làCommand(s) completed successfully.

SSMS hiển thị như sau khi bạn xem các tệp cơ sở dữ liệu:

nhập mô tả hình ảnh ở đây

Không phải là nó mát như một xô bu lông sao?

SQL Server 2012 SP1 trên Windows Server 2012 Standard, với tài khoản dịch vụ SQL Server Management Studio được đặt thành "Hệ thống cục bộ":

nhập mô tả hình ảnh ở đây

SQL Server 2014 (12.0.5000.0) đang chạy dưới dạng "Hệ thống cục bộ" trên Windows Server 2012 thể hiện hành vi tương tự như SQL Server 2017; tức là, nó trả về thông báo lỗi này:

Msg 5170, Cấp 16, Trạng thái 4, Dòng 1
Không thể tạo tệp 'E:' vì nó đã tồn tại. Thay đổi đường dẫn tệp hoặc tên tệp và thử lại thao tác.
Msg 1802, Cấp 16, Bang 4, Dòng 1
TẠO RA CƠ SỞ thất bại. Một số tên tập tin liệt kê không thể được tạo ra. Kiểm tra các lỗi liên quan.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.