У нас были сообщения о медленном выполнении запросов или об истечении времени ожидания рано утром, и единственное, что я вижу, работает, на мой взгляд, может повлиять на это, это задание резервного копирования нашей базы данных.
Сама база данных составляет около 300 ГБ, а задание резервного копирования начинается в 4:30 утра и заканчивается только после 7:00 утра. Текущий синтаксис нашего задания резервного копирования:
BACKUP DATABASE [DatabaseName]
TO DISK = N'E:\Database Backups\DatabaseName.Bak'
WITH INIT, NOUNLOAD, NAME = N'DatabaseName.Bak',
NOSKIP, STATS = 10, NOFORMAT
E:\
это раздел на сервере, который содержит базы данных и резервные копии базы данных.
Также следует отметить, что это виртуальный сервер, а не выделенный автономный сервер. Мы начали получать жалобы на замедление процесса резервного копирования сразу после переключения на виртуальный сервер, поэтому я думаю, что это может быть связано.
Есть ли способ запустить это задание резервного копирования, чтобы оно не влияло на производительность запроса во время его выполнения?
Мы используем SQL Server 2005
источник
Это общая проблема, существует множество решений, и она действительно зависит от вашей среды. Давайте пройдемся по ним:
1- Резервное сжатие на лету
В 2008 году R1 Backup Compression стала доступна в Enterprise, в 2008R2 стала доступна в Standard. Это ОГРОМНО. Это сэкономит вам много времени. Если вы можете обновить пойти на это. Если вы не можете, воспользуйтесь утилитой RedGate HyperBak или Quest LiteSpeed . Оба имеют бесплатную пробную версию.
2- Полное и разностное резервное копирование
Я унаследовал базу данных на 2 ТБ, что привело к большим тайм-аутам для 24/7 крупной интернет-компании, которую я разработал. Мы включили полное и дифференциальное резервное копирование, что сэкономило нам много времени. Я бы взял полную резервную копию в воскресенье в 12:00, когда активность была низкой, и делал различий в течение недели. Это сэкономило много места. Работа Diff отличается от журналов транзакций, поскольку они работают с тем, какие страницы базы данных были изменены. Любые измененные страницы резервируются. Таким образом, вы делаете полное восстановление, а затем восстановление diff, чтобы добавить измененные страницы.
3- Какое у вас узкое место?
Анализ узких мест важен для диагностики. Вы резервное копирование на тот же массив дисков, что и ваши файлы данных? Ваши файлы данных привязаны? Каковы ваши диски DISK SEC / READ и DISK SEC / WRITE для дисков данных во время резервного копирования? Я изменил резервные копии, чтобы создать 4 файла. Каждый файл имеет свою собственную программу записи потоков и в нашей сети хранения данных, которая отлично работает. Проверьте это, я сбрил 45 минут, просто создав 4 резервных файла. Просто убедитесь, что ваши показатели диска, перечисленные выше, низкие. Получить базовый уровень.
4- Репликация на другой сервер и резервное копирование
Этот немного продвинутый. Вы должны убедиться, что ваша реплицированная база данных обновлена, и вам необходим надлежащий мониторинг для этого. Если это так, вы можете просто сделать резервную копию реплицированной базы данных.
источник
Вы можете использовать эти параметры:
BLOCKSIZE - Выберите размер 512, 1024, 2048, 4096, 8192, 16384, 32768, 65536. (в КБ)
BUFFERCOUNT - указывает общее количество буферов ввода / вывода, которые будут использоваться для операции резервного копирования. Вы можете указать любое положительное целое число; однако большое количество буферов может вызвать ошибки «нехватки памяти» из-за неадекватного виртуального адресного пространства в процессе Sqlservr.exe. - из MSDN
MAXTRNASFERSIZE - от 65536 байт (64 КБ) до 4194304 байт (4 МБ)
источник
Попытайся. это решило проблему истечения времени ожидания в то время как большой размер дБ.
источник