RAWパーティションでのCREATE DATABASEは機能しなくなりましたか?


16

2つの未加工、つまりフォーマットされていないパーティションを使用してデータベースを作成しようとしています。

Microsoft Docsでは、これを実行できると述べています。次のように、rawパーティションのドライブ文字のみを指定するだけです。

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

ただし、SQL Server 2017は次のエラーを返します。

メッセージ5170、レベル16、状態4、行1
ファイル 'S:'は既に存在するため作成できません。ファイルパスまたはファイル名を変更して、操作を再試行してください。
メッセージ1802、レベル16、状態4、行1
CREATE DATABASEが失敗しました。リストされている一部のファイル名を作成できませんでした。関連するエラーを確認してください。

ドキュメントの適切な部分には次のように記載されています。

ファイルがrawパーティションにある場合、os_file_nameは既存のrawパーティションのドライブ文字のみを指定する必要があります。各rawパーティションに作成できるデータファイルは1つだけです。

そして、はい、ドライブS:とT:はどちらも私のシステムに存在する未フォーマットのrawパーティションです:

DISKPART>詳細パーティション

パーティション4
タイプ:ebd0a0a2-b9e5-4433-87c0-68b6b72699c7
非表示:いいえ
必須:いいえ
属性:0000000000000000
バイト単位のオフセット:999934656512

  ボリューム### LtrラベルFsタイプサイズステータス情報
  ---------- --- ----------- ----- ---------- ------- ---- ----- --------
*ボリューム6 T RAWパーティション127 MB正常

DISKPART>パーティション3を選択

パーティション3が選択されたパーティションになりました。

DISKPART>詳細パーティション

パーティション3
タイプ:ebd0a0a2-b9e5-4433-87c0-68b6b72699c7
非表示:いいえ
必須:いいえ
属性:0000000000000000
バイト単位のオフセット:1000067825664

  ボリューム### LtrラベルFsタイプサイズステータス情報
  ---------- --- ----------- ----- ---------- ------- ---- ----- --------
*ボリューム7 S RAWパーティション129 MB正常

FILENAME = 'S'およびのようにドライブ文字からコロンを削除するとFILENAME = 'T'、次のようになります。

メッセージ5105、レベル16、状態2、行1
ファイルのアクティベーションエラーが発生しました。物理ファイル名「S」が正しくない可能性があります。追加のエラーを診断して修正し、操作を再試行します。
メッセージ1802、レベル16、状態1、行1
CREATE DATABASEが失敗しました。リストされている一部のファイル名を作成できませんでした。関連するエラーを確認してください。

SQL Server 2000のドキュメントでは、CREATE DATABASEセクションの下に次の例を示しています。

H. rawパーティションを使用する
この例では、rawパーティションを使用してEmployeesというデータベースを作成します。ステートメントが実行されるとき、RAWパーティションが存在する必要があり、各RAWパーティションに配置できるファイルは1つだけです。

    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

ただし、上記の例はSIZE、RAWパーティションに保存されたSQL Serverデータファイルには明らかに必要ではない、、MAXSIZEおよびFILEGROWTHパラメーターを示しています。

特にrawドライブに関するSQL Server 2000のドキュメントの詳細:

RAWパーティションの使用
Microsoft®SQL Server™2000は、データベースファイルの作成にrawパーティションの使用をサポートしています。rawパーティションは、FATやNTFSなどのMicrosoft WindowsNT®ファイルシステムでフォーマットされていないディスクパーティションです。場合によっては、RAWパーティションで作成されたデータベースを使用すると、NTFSまたはFATよりもわずかにパフォーマンスが向上することがあります。ただし、ほとんどのインストールでは、NTFSまたはFATパーティションで作成されたファイルを使用する方法をお勧めします。rawパーティションにデータベースファイルを作成する場合、データベースを構成するファイルの物理名を指定しません。データベースファイルを作成するディスクのドライブ文字のみを指定します。MicrosoftWindows®2000 Serverを使用している場合、マウントされたドライブを作成してrawパーティションを指すことができます。空のフォルダーにローカルドライブをマウントすると、Windows 2000は、ドライブ文字ではなくドライブにドライブパスを割り当てます。マウントされたドライブは、ドライブ文字による26ドライブの制限を受けません。したがって、使用できるrawパーティションの数に制限はありません。マウントされたドライブにデータベースファイルを作成する場合、ファイル名へのドライブパスの末尾にバックスラッシュ()を付ける必要があります(例:E:\ Sample name)。マウントされたドライブの作成については、Windows 2000 Serverのドキュメントを参照してください。

rawパーティションを使用する場合、考慮すべきいくつかの制限があり
ます。各rawパーティションに作成できるデータベースファイルは1つだけです。rawパーティションにはファイルシステムがないため、論理パーティションは単一のデータベースファイルとして構成する必要があります。

コピー、移動、削除などの標準のファイルシステム操作は、RAWパーティションでは使用できません。

rawパーティションにあるデータベースファイルは、Windows NTバックアップユーティリティを使用してバックアップできません。ただし、SQL Serverデータベースまたはトランザクションログのバックアップは作成できます。

rawパーティション上のデータベースファイルは自動的に展開できません。最初にデータベースをフルサイズで作成するか、データベースファイルを手動で展開します。詳細については、「データベースの拡張」を参照してください。

E:などの文字パーティション、またはE:\ Sample name \などのマウントされたドライブのみを使用できます。番号付きデバイスは使用できません。

不良ブロックの置換などのファイルシステムサービスは、RAWパーティションでは使用できません。


これは、生パーティションをサポートしていたSQL Server 6.5に関するBrent Ozarの投稿に触発されました


3
SS 2017で動作するには、RPaaS-Raw Partition as a Service、またはARPL-Azure Raw Partition Lakeを使用する必要があります;-)
SQLRaptor

回答:


3

Windows XP x64上のSQL Server 2000 SP4では、期待どおりにrawパーティションが機能することを確認できます。

SQL Server 2000 SP4に対して、クエリアナライザー(シャダー)を介して次を実行しました。

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

結果:

CREATE DATABASEプロセスは、ディスク 't_primary'に0.64 MBを割り当てています。
CREATE DATABASEプロセスは、ディスク 't_log'に1.00 MBを割り当てています。

上記のCREATE DATABASE tコードは、Windows XP x64上のSQL Server 2005で機能します。唯一の出力はCommand(s) completed successfully.

データベースファイルを見ると、SSMSは以下を表示します。

ここに画像の説明を入力してください

ボルトのバケツほどクールではありませんか?

SQL Server Management Studioサービスアカウントが「ローカルシステム」に設定されたWindows Server 2012 Standard上のSQL Server 2012 SP1:

ここに画像の説明を入力してください

Windows Server 2012で「ローカルシステム」として実行されているSQL Server 2014(12.0.5000.0)は、SQL Server 2017と同じ動作を示します。つまり、次のエラーメッセージを返します。

メッセージ5170、レベル16、状態4、行1
ファイル 'E:'は既に存在するため作成できません。ファイルパスまたはファイル名を変更して、操作を再試行してください。
メッセージ1802、レベル16、状態4、行1
CREATE DATABASEが失敗しました。リストされている一部のファイル名を作成できませんでした。関連するエラーを確認してください。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.