Вики IT-KB

Пошаговые руководства, шпаргалки, полезные ссылки...

Инструменты пользователя

Инструменты сайта


1c:setting-up-microsoft-sql-server-for-1c-enterprise-8-3:preparing-disk-subsystem-for-sql-server-database-files

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Следующая версия
Предыдущая версия
1c:setting-up-microsoft-sql-server-for-1c-enterprise-8-3:preparing-disk-subsystem-for-sql-server-database-files [10.02.2019 17:30] – создано Алексей Максимов1c:setting-up-microsoft-sql-server-for-1c-enterprise-8-3:preparing-disk-subsystem-for-sql-server-database-files [10.02.2019 20:24] (текущий) Алексей Максимов
Строка 1: Строка 1:
 ===== Подготовка дисковой подсистемы под файлы БД SQL Server ===== ===== Подготовка дисковой подсистемы под файлы БД SQL Server =====
 +
 +{{:1c:setting-up-microsoft-sql-server-for-1c-enterprise-8-3:pasted:20190210-202335.png }} Прежде чем размещать файлы баз данных **SQL Server** на дисковой подсистеме, нужно специальным образом подготовить соответствующие разделы **NTFS**, учитывая пару правил:
 +
 +  * В случае использования ОС **Windows Server 2003** желательно произвести выравнивание (смещение) начального сектора (**Partition Offset** / **Starting Offset**) на уровень **1024KB**. Выравнивание может быть выполнено только на этапе создания дискового раздела NFTS и невозможно для уже существующих разделов без из пересоздания. Для ОС **Windows Server 2008** и выше выравнивание проводить не требуется, так как все вновь создаваемые разделы NTFS уже смещены на число байт, кратное размеру кластера (**Bytes Per Cluster** / **Allocation unit size**). Для системного тома в ОС **Windows Server 2008** и выше смещение первого раздела в конфигурации по умолчанию составляет **1024KB**.\\
 +
 +  * При форматировании дискового раздела **NTFS** желательно выбирать рекомендуемый размер кластера в **64KB** (по умолчанию используется размер в 4KB).
 +
 +При проверке смещения разделов, на которых планируется размещение файлов БД, можно руководствоваться правилом:
 + 
 +<WRAP center box 100%>Размер смещения **Partition Offset** в байтах, делённый на размер кластера, которым отформатирован раздел (**Allocation unit size** или **Bytes Per Cluster**) в байтах = любое целое число.</WRAP>
 + 
 +В случае, если в результате деления получается дробное число, считается, что выравнивание диска выполнено неправильно.
 +
 +Чтобы проверить смещение разделов, на которых планируется расположить файлы БД, можно воспользоваться утилитой **diskpart**, введя примерно следующую последовательность команд:
 +
 +<HTML><pre style="background:#5a5a62;color:#ffffff;padding:10px;border:0px;">
 +diskpart<font style="color:#B2B2B2;">                         # Вызываем утилиту diskpart</font>
 +<font style="color:#B2B2B2;">DISKPART></font> list disk<font style="color:#B2B2B2;">              # Получаем список дисков</font>
 +<font style="color:#B2B2B2;">DISKPART></font> select disk 2<font style="color:#B2B2B2;">          # Выбираем интересующий нас диск</font>
 +<font style="color:#B2B2B2;">DISKPART></font> list partition<font style="color:#B2B2B2;">         # Получаем список разделов на текущем диске</font>
 +<font style="color:#B2B2B2;">DISKPART></font> select partition 2<font style="color:#B2B2B2;">     # Выбираем интересующий нас раздел</font>
 +<font style="color:#B2B2B2;">DISKPART></font> detail part<font style="color:#B2B2B2;">            # Получаем информацию о разделе</font>
 +</pre></HTML>
 +
 +{{ :1c:setting-up-microsoft-sql-server-for-1c-enterprise-8-3:pasted:20190210-174227.png }}
 +
 +В нашем примере диск //**Disk 2**// является кластерным GPT-диском, на котором разделы //**Partition 1**// и //**Partition 3**// являются скрытыми служебными разделами. Раздел //**Partition 2**// является тем видимым в оснастке **Disk Management** разделом, который был нами создан под файлы БД SQL Server. Его смещение мы и будем проверять.
 + 
 +Смещение раздела //**Partition 2**// имеет значение **135266304** байт (129MB), а сам раздел при этом отформатирован кластерами по **65536** байт (64KB). Проверяем:  **135266304**/**65536** = **2064**. Мы получили целое число, то есть в нашем случае смещение раздела сделано правильно и выравнивание раздела не требуется.
 + 
 +В разных источниках можно встретить рекомендацию проверять смещение разделов с помощью команды типа: 
 +
 +<HTML><pre style="background:#5a5a62;color:#ffffff;padding:10px;border:0px;">wmic partition get StartingOffset, Name, Index</pre></HTML> 
 +
 +Однако, исходя из практики, могу сказать, что в случае использования GPT-дисков эта команда может выдавать результаты, сбивающие с толку.  Например, неверно могут быть указаны номера разделов на диске (даже по значению смещения понятно, что раздел #1 на самом деле расположен на диске раньше раздела #0). Также не виден один из скрытых разделов GPT (на самом деле на диске не два, а три раздела):
 +
 +{{ :1c:setting-up-microsoft-sql-server-for-1c-enterprise-8-3:pasted:20190210-180400.png }}
 +
 +Такая информация может внести некоторую сумятицу, поэтому для более внятного определения смещения раздела лучше использовать утилиту **diskpart**.
 +
 +Что же касается размера кластеров, которыми должен быть отформатирован NTFS раздел (**Allocation unit size** или **Bytes Per Cluster**) под файлы БД SQL Server, то его можно определить на этапе форматирования раздела.
 +
 +{{ :1c:setting-up-microsoft-sql-server-for-1c-enterprise-8-3:pasted:20190210-180629.png }}
 +
 +Без явного указания размера кластера, если выбрано значение **Default**, раздел форматируется более мелкими 4KB кластерами. 
 +Проверить размер кластера уже отформатировано ранее раздела можно с помощью утилиты **fsutil**
 +
 +<HTML><pre style="background:#5a5a62;color:#ffffff;padding:10px;border:0px;">fsutil fsinfo ntfsinfo R:</pre></HTML> 
 +
 +{{ :1c:setting-up-microsoft-sql-server-for-1c-enterprise-8-3:pasted:20190210-180848.png }}
 +
 +В нашем примере видно, что диск отформатирован кластерами по 64KB.
 +
 +Для систем на базе **Windows Server 2003** пример создания раздела со смещением в 1024KB на MBR-диске и форматирования этого раздела в NFTS с размером кластера 64KB может выглядеть следующим образом:
 +
 +<HTML><pre style="background:#5a5a62;color:#ffffff;padding:10px;border:0px;">diskpart</br>
 +<font style="color:#B2B2B2;">DISKPART></font> list disk
 +<font style="color:#B2B2B2;">
 +  Disk ###  Status      Size     Free     Dyn  GPT
 +  --------  ----------  -------  -------  ---  ---
 +  Disk 0    Online       100 GB      0 B
 +  Disk 1    Online       150 GB   150 GB
 +
 +DISKPART></font> select disk 1
 +
 +<font style="color:#B2B2B2;">Disk 1 is now the selected disk.
 +
 +DISKPART></font> create partition primary align=1024
 +
 +<font style="color:#B2B2B2;">DiskPart succeeded in creating the specified partition.
 +
 +DISKPART></font> assign letter=V
 +
 +<font style="color:#B2B2B2;">DiskPart successfully assigned the drive letter or mount point.
 +
 +DISKPART></font> format fs=ntfs unit=64K label="SQL DB Files Disk" nowait
 +</pre></HTML>
 +
 +
 +----
 +Дополнительные источники информации: 
 +
 +  * [[https://docs.microsoft.com/en-us/previous-versions/sql/sql-server-2008/dd758814(v=sql.100)|SQLCAT Articles - Disk Partition Alignment Best Practices for SQL Server]]
  
  
Строка 8: Строка 91:
  
 ---- ----
-{{:user:blogroot.png?50&nolink |}} Автор первичной редакции:\\ [[user:blogroot|Алексей Максимов]] \\ Время публикации: 10.02.2019 17:29+{{:user:blogroot.png?50&nolink |}} Автор первичной редакции:\\ [[user:blogroot|Алексей Максимов]] \\ Время публикации: 10.02.2019 17:30
  
-{{tag>"SQL Server" "Windows Server 2012 R2"}}+{{tag>"SQL Server" "Windows Server 2003" "Windows Server 2008" "Windows Server 2012 R2" "Partition Offset" NTFS diskpart fsutil "Disk Management"}}
  
 ~~DISCUSSION~~ ~~DISCUSSION~~
  
 ~~NOTOC~~ ~~NOTOC~~
- 
-~~DISCUSSION~~ 
1c/setting-up-microsoft-sql-server-for-1c-enterprise-8-3/preparing-disk-subsystem-for-sql-server-database-files.1549809059.txt.gz · Последнее изменение: 10.02.2019 17:30 — Алексей Максимов

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki