02 Дек

Лучшие практики настройки VmWare для MS SQL Server 

Лучшие практики настройки VmWare для MS SQL Server

Рекомендации по настройки виртуальной машины для SQL

  • Не использовать 8 vSocket/1 vCore , а использовать 1 vSocket /8 vCore
  • Не отключать Hyper-threading
  • Не включать горячую замену CPU и MEM
  • Для дополнительных дисков использовать Paravirtual (SCSI)
  • Для сети VMXNet3
  • Чем меньше vCPU и памяти для ВМ тем лучше для хоста при множестве ВМ
  • Не создавать ВМ с памятью больше  NUMA хоста, а если нужно больше  то два vSocket
  • Не создавать ВМ с большим количеством vCPU, чем у физического хоста
  • Для быстродействия нельзя превышать общее число vCPU, не путая их с lCore логическими потоками
  • Нужно зарезервировать для ВМ всю выделенную память в Vmware
  • Хранилища отформатированы в VMFS (строго нельзя старые VMFS3)
  • Антивирус без режима проверки реального времени
  • Сеть включен rss на сетевой

Нужно учитывать и нагрузку самой vmware на CPU, так как она все же делает фризы на ВМ.
И еще если у нас настроено 8 vSocket/1 vCore то SQL Std будет использовать только 4 vCPU.

Термины 
pCPU  — физический процессор, сокет, socket
pCore — физическое ядро
vSocket —  виртуальный процессор, сокет, socket
vCore — виртуальное ядро
vCPU — виртуальный процессор ( vSocket * vCore )
lCore — логическое ядро, поток из за Hyper-threading

документы от vmware по лучшим практикам https://www.vmware.com/content/dam/digitalmarketing/vmware/en/pdf/solutions/sql-server-on-vmware-best-practices-guide.pdf
https://docs.microsoft.com/ru-ru/sql/database-engine/configure-windows/soft-numa-sql-server?view=sql-server-ver15

 

04 Сен

Используем снепшоты MS SQL — это удобно

Иногда намного удобнее и быстрее делать моментальные снимки Snapshot MS SQL для отката изменений, чем использовать схему через бэкапы. Посмотрим как это делать.

Смотрим имена снепшотов
SELECT name,  database_id, source_database_id, create_date
FROM sys.databases
where source_database_id is not null

Делаем снепшот
CREATE DATABASE SNAP_CRM
ON
( NAME = crm, FILENAME= ‘B:\SNAP\SalesDev_MSCRM.snap’),
( NAME = ftrow_ftcat_documentindex, FILENAME=’B:\SNAP\ftrow_ftcat_documentindex.snap’)
AS SNAPSHOT OF SalesDev_MSCRM
go
Чтобы узнать имя NAME = crm
EXEC SP_HELPDB SalesDev_MSCRM

Удаляем снепшот
Use [master]
go
DROP DATABASE SNAP_CRM
go

Восстанавливаем снепшот (перед рестором должен быть только один снепшот и у базы недолжно быть подключений )
USE [master] go
RESTORE DATABASE SalesDev_MSCRM
FROM DATABASE_SNAPSHOT = ‘SNAP_CRM’
go

 

Есть особенность
откатить мы можем только один снепшот, так что перед откатом нужно удалить все другие снепшоты  Ms SQL

Этот механизм хорошо описан в книге