UTWÓRZ BAZY DANYCH na partycjach RAW już nie działa?


16

Próbuję utworzyć bazę danych przy użyciu dwóch surowych, tj. Niesformatowanych partycji.

Dokumenty Microsoft mówią, że możesz to zrobić, wystarczy podać tylko literę dysku surowej partycji, jak w:

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

Jednak SQL Server 2017 zwraca ten błąd:

Msg 5170, poziom 16, stan 4, wiersz 1
Nie można utworzyć pliku „S:”, ponieważ już istnieje. Zmień ścieżkę lub nazwę pliku i ponów operację.
Wiadomość 1802, poziom 16, stan 4, wiersz 1
UTWÓRZ BAZY DANYCH nie powiodło się. Nie można utworzyć niektórych wymienionych nazw plików. Sprawdź powiązane błędy.

Odpowiedni fragment dokumentacji stanowi:

Jeśli plik znajduje się na partycji raw, nazwa_pliku os musi określać tylko literę dysku istniejącej partycji raw. Tylko jeden plik danych może zostać utworzony na każdej surowej partycji.

I tak, dysk S: i T: to zarówno niesformatowane surowe partycje, które istnieją w moim systemie:

DISKPART> partycja szczegółowa

Partycja 4
Wpisz: ebd0a0a2-b9e5-4433-87c0-68b6b72699c7
Ukryty: Nie
Wymagane: Nie
Atrybut: 0000000000000000
Przesunięcie w bajtach: 999934656512

  Objętość ### Ltr Etykieta Fs Typ Rozmiar Status Informacje
  ---------- --- ----------- ----- ---------- ------- ---- ----- --------
* Tom 6 T RAW Partycja 127 MB Zdrowy

DISKPART> wybierz partycję 3

Partycja 3 jest teraz wybraną partycją.

DISKPART> partycja szczegółowa

Partycja 3
Wpisz: ebd0a0a2-b9e5-4433-87c0-68b6b72699c7
Ukryty: Nie
Wymagane: Nie
Atrybut: 0000000000000000
Przesunięcie w bajtach: 1000067825664

  Objętość ### Ltr Etykieta Fs Typ Rozmiar Status Informacje
  ---------- --- ----------- ----- ---------- ------- ---- ----- --------
* Tom 7 S Partycja RAW 129 MB Zdrowa

Usunięcie dwukropka z liter dysku, jak w FILENAME = 'S'i FILENAME = 'T', powoduje:

Msg 5105, poziom 16, stan 2, wiersz 1
Wystąpił błąd aktywacji pliku. Fizyczna nazwa pliku „S” może być niepoprawna. Zdiagnozuj i popraw dodatkowe błędy i ponów operację.
Wiadomość 1802, poziom 16, stan 1, wiersz 1
UTWÓRZ BAZY DANYCH nie powiodło się. Nie można utworzyć niektórych wymienionych nazw plików. Sprawdź powiązane błędy.

Dokumentacja programu SQL Server 2000 zawiera następujący przykład w CREATE DATABASEsekcji:

H. Używaj surowych partycji W
tym przykładzie tworzona jest baza danych o nazwie Pracownicy korzystający z surowych partycji. Surowe partycje muszą istnieć podczas wykonywania instrukcji, a tylko jeden plik może przejść na każdą surową partycję.

    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

Jednakże, powyższy przykład pokazuje SIZE, MAXSIZE, oraz FILEGROWTHparametry, które nie są wyraźnie wymagane dla SQL Server danych zapisanych na partycji RAW.

Dalsze szczegóły z dokumentacji SQL Server 2000, szczególnie dotyczące dysków surowych:

Korzystanie z surowych partycji
Microsoft® SQL Server ™ 2000 obsługuje użycie surowych partycji do tworzenia plików bazy danych. Surowe partycje to partycje dysku, które nie zostały sformatowane za pomocą systemu plików Microsoft Windows NT®, takiego jak FAT i NTFS. W niektórych przypadkach korzystanie z baz danych utworzonych na surowych partycjach może nieznacznie zwiększyć wydajność w porównaniu z NTFS lub FAT. Jednak w przypadku większości instalacji preferowaną metodą jest użycie plików utworzonych na partycjach NTFS lub FAT. Podczas tworzenia pliku bazy danych na surowej partycji nie określa się fizycznych nazw plików zawierających bazę danych; określasz tylko litery dysków, na których powinny zostać utworzone pliki bazy danych. Jeśli używasz systemu Microsoft Windows® 2000 Server, możesz tworzyć zamontowane dyski, aby wskazywały na surowe partycje. Po zamontowaniu dysku lokalnego w pustym folderze Windows 2000 przypisuje ścieżkę do dysku zamiast litery dysku. Zamontowane dyski nie podlegają limitowi 26 dysków narzuconemu przez litery dysków; dlatego możesz używać nieograniczonej liczby surowych partycji. Podczas tworzenia pliku bazy danych na zamontowanym dysku należy zakończyć ścieżkę dysku do nazwy pliku końcowym ukośnikiem odwrotnym (), na przykład E: \ Przykładowa nazwa. Aby uzyskać informacje o tworzeniu zamontowanego dysku, zobacz dokumentację systemu Windows 2000 Server.

Podczas korzystania z surowych partycji należy wziąć pod uwagę kilka ograniczeń:
Na każdej partycji surowej można utworzyć tylko jeden plik bazy danych. Partycja logiczna musi być skonfigurowana jako pojedynczy plik bazy danych, ponieważ na partycji surowej nie ma systemu plików.

Standardowych operacji systemu plików, takich jak kopiowanie, przenoszenie i usuwanie, nie można używać w przypadku partycji typu raw.

Nie można wykonać kopii zapasowej plików bazy danych znajdujących się na partycjach raw przy użyciu narzędzia Kopia zapasowa systemu Windows NT. Można jednak nadal tworzyć kopie zapasowe bazy danych SQL Server lub dziennika transakcji.

Pliki bazy danych na surowych partycjach nie mogą być automatycznie rozwijane. Najpierw utwórz bazę danych w pełnym rozmiarze lub ręcznie rozwiń pliki bazy danych. Aby uzyskać więcej informacji, zobacz Rozbudowywanie bazy danych.

Można używać tylko partycji z literami, takich jak E: lub zamontowanych dysków, takich jak E: \ Nazwa próbki \. Nie można używać urządzeń numerowanych.

Usługi systemu plików, takie jak wymiana złych bloków, nie są dostępne dla partycji raw.


To był inspirowany przez postu Brent Ozar chodzi o SQL Server 6.5 , który zrobił obsługuje surowych partycji


3
Musisz użyć RPaaS - Raw Partition as a Service, lub ARPL - Azure Raw Partition Lake, aby działało z SS 2017 ;-)
SQLRaptor

Odpowiedzi:


3

Mogę potwierdzić, że surowe partycje działają zgodnie z oczekiwaniami z SQL Server 2000 SP4 na Windows XP x64.

Właśnie uruchomiłem następujące za pomocą Query Analyzer (drży) przeciwko SQL Server 2000 SP4:

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

Wyniki:

Proces CREATE DATABASE przydziela 0,64 MB na dysku „t_primary”.
Proces CREATE DATABASE przydziela 1,00 MB na dysku „t_log”.

Powyższy CREATE DATABASE tkod działa z SQL Server 2005 na Windows XP x64; jedynym wyjściem jestCommand(s) completed successfully.

Podczas przeglądania plików bazy danych SSMS pokazuje:

wprowadź opis zdjęcia tutaj

Czy to nie jest tak fajne jak wiadro śrub?

SQL Server 2012 SP1 w systemie Windows Server 2012 Standard z kontem usługi SQL Server Management Studio ustawionym na „System lokalny”:

wprowadź opis zdjęcia tutaj

SQL Server 2014 (12.0.5000.0) działający jako „System lokalny” w systemie Windows Server 2012 wykazuje takie samo zachowanie jak SQL Server 2017; tzn. zwraca ten komunikat o błędzie:

Msg 5170, poziom 16, stan 4, wiersz 1
Nie można utworzyć pliku „E:”, ponieważ już istnieje. Zmień ścieżkę lub nazwę pliku i ponów operację.
Wiadomość 1802, poziom 16, stan 4, wiersz 1
UTWÓRZ BAZY DANYCH nie powiodło się. Nie można utworzyć niektórych wymienionych nazw plików. Sprawdź powiązane błędy.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.