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 DATABASE
sekcji:
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 FILEGROWTH
parametry, 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
źródło
Odpowiedzi:
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:
Wyniki:
Powyższy
CREATE DATABASE t
kod 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:
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”:
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:
źródło