Добро пожаловать в форум, Guest >> Войти | Регистрация | Поиск | Правила | | В избранное | Подписаться | ||
Все форумы / Microsoft SQL Server |
![]() ![]() |
Топик располагается на нескольких страницах: [1] 2 3 вперед Ctrl→ все |
akaipbay Member Откуда: Сообщений: 109 |
Извиняюсь за глупый вопрос. А можно ли бэкапить базу в MS SQL когда пользователи работают в ней? |
26 окт 15, 07:59 [18325035] Ответить | Цитировать Сообщить модератору |
aleks2
Guest |
Дозволяю. Т.е. можно. |
26 окт 15, 08:22 [18325064] Ответить | Цитировать Сообщить модератору |
SQL2008 Member Откуда: Москва Сообщений: 4406 |
Можно. Только имейте в виду, что в конце бекапа, сервер дописывает все изменения, которые внесены в базу с начала запуска бекапа. Таким образом, если активность пользователей по изменению данных велика, то есть вероятность его никогда не завершить. "Ахиллес и черепаха" - наиболее демонстративный привет тому. |
||
26 окт 15, 10:35 [18325673] Ответить | Цитировать Сообщить модератору |
o-o
Guest |
что же хрень, простите. даже у нас, при мега-идиотическом расписании бэкапа, когда полный бэкап пашет над двухтерабайтной базой, к-ая всю ночь перезаливается с нуля, бэкап успешно завершается за 4 часа. а уж пишущая активность -- "больше некуда". |
||
26 окт 15, 11:31 [18326000] Ответить | Цитировать Сообщить модератору |
Pavel1211 Member Откуда: Екатеринбург Сообщений: 205 |
SQL2008, Вы хоть раз сталкивались с таким? |
26 окт 15, 15:23 [18327814] Ответить | Цитировать Сообщить модератору |
gang Member Откуда: Сообщений: 1394 |
Типа так?
Хотя тут скорее PostgreSQL |
||||
26 окт 15, 15:28 [18327854] Ответить | Цитировать Сообщить модератору |
SQL2008 Member Откуда: Москва Сообщений: 4406 |
Нет. Чтобы бекап не смог завершиться из-за постоянного внесения изменений - нет. Но вообще вопрос интересный. Нужно будет попробовать. Сделать в бесконечном цикле UPDATE случайным значением какого-нибудь поля таблицы и запустить бекап. |
||
26 окт 15, 16:38 [18328424] Ответить | Цитировать Сообщить модератору |
o-o
Guest |
SQL2008, о боже, да всегда бэкап завершится. вот статьи для осознания процесса бэкапа: Debunking a couple of myths around full database backups (1) More on how much transaction log a full backup includes (2) A SQL Server DBA myth a day: (30/30) backup myths (3) начало записываемой части лога:
и вот это вот the LSN at which the data read portion ends есть вполне конкретная величина. он же не пишет данные на диск *постоянно*, а сбрасывает по чекпойнту, в бэкап же данные берет с диска, не из buffer pool
так что чтение он закончит, как только закончит, и не полезет в buffer pool проверять, чего там еще наизменяли. и не полезет заново на диске перечитывать, что перезаписали там, где он уже прочел:
он для того и дописывает в полный бэкап кусок лога, чтобы потом разобраться с теми страницами, что он захватил, а транзакция на момент окончания не завершилась, или наоборот, он захватил, а что-то в течение бэкапа туда позаписало (что именно и какой транзакцией позаписало будет в дописываемом куске лога отражено) |
||||||||
26 окт 15, 17:11 [18328756] Ответить | Цитировать Сообщить модератору |
o-o
Guest |
ну и еще раз: у нас запускается сперва минимум 10-тичасовой перелив данных; во время заливки начинается полный бэкап (верх безумия, но вот так вот) он завершается через 4 часа, а заливка все продолжается. причем бэкап на заливку какает дай бог каждому, время выполнения каждого из SELECT INTO увеличивается раз в 5, все, что могло быть MINIMALLY LOGGED, становится FULLY LOGGED. а вот заливка бэкапу не так уж и много добавляет, что ему гигабайты, когда он 2 терабайта бэкапит. а времени на рестор добавит, конечно |
26 окт 15, 17:17 [18328804] Ответить | Цитировать Сообщить модератору |
akaipbay Member Откуда: Сообщений: 109 |
o-o, Так можно или нельзя бэкапить базу при рабочих сеансах? Просто на ней стоит 1ЭС, и работает много пользователей, а если средствами 1с делать, то нужно выгонять всех пользователей. Неудобно. |
27 окт 15, 08:06 [18330800] Ответить | Цитировать Сообщить модератору |
o-o
Guest |
akaipbay, Конечно можно. Просто лучше это делать, когда в базу меньше пишут. |
27 окт 15, 08:16 [18330812] Ответить | Цитировать Сообщить модератору |
SQL2008 Member Откуда: Москва Сообщений: 4406 |
Вчера поставил опыт. Вы правы, я ошибался. |
||
27 окт 15, 09:34 [18331034] Ответить | Цитировать Сообщить модератору |
Между сообщениями интервал более 1 года. |
V_e_g_a Member Откуда: Сообщений: 41 |
Какая-то непонятная ситуация у меня. Помогите пожалуйста разобраться. Каждый вечер делается бекап базы таким вот заданием: BACKUP DATABASE [SED] TO [SED_4] WITH INIT , NOUNLOAD , NAME = N'SED backup', NOSKIP , STATS = 10, NOFORMAT Задание отрабатывает примерно за 20-30 минут. Размер базы 150 гигабайт. Задание перезаписывает существующий файл. Если я переименовываю файл бекапа, то есть задание его уже не перезаписывает, а создает новый, то бекап выполняется гораздо дольше. Например 1 час 40 минут. В данный момент я опять запустил выполнение бекапа, прошло уже 1 час 40 минут, а выполнилось только 35 процентов. Вчера вечером надо было переезжать на другой сервер. Я рассчитывал по времени на 20-30 минут, а в итоге бекап не сделался и за два с половиной часа. Так я вот понять не могу. Неужели когда бекап пишется поверх, он только изменения дописывает? Или за счет чего получается быстрее? |
9 июн 17, 15:21 [20553465] Ответить | Цитировать Сообщить модератору |
AlanDenton Member [скрыт] Откуда: Сообщений: 1004 |
Попробуйте все таки использовать сжатие бекапа (если позволяет редакция). Т.е. просто дописать COMPRESSION к Вашему скрипту |
9 июн 17, 15:34 [20553516] Ответить | Цитировать Сообщить модератору |
o-o
Guest |
ожидания посмотрите у своего бэкапа, sys.dm_os_waiting_tasks в помощь |
9 июн 17, 15:41 [20553539] Ответить | Цитировать Сообщить модератору |
alexeyvg Member Откуда: Moscow Сообщений: 31785 |
Может, на диске места кирдык, и если пишется новый файл, то он заполняет разрозненные оставшиеся фрагментики? Или может у вас диск на виртуалке, и он расширяется при добавлении нового файла бакапа?
|
||||||
9 июн 17, 15:41 [20553540] Ответить | Цитировать Сообщить модератору |
V_e_g_a Member Откуда: Сообщений: 41 |
Так? BACKUP DATABASE [SED] TO [SED_4] WITH INIT , NOUNLOAD , NAME = N'SED backup', NOSKIP , STATS = 10, NOFORMAT, COMPRESSION
Посмотрел как описано по ссылке https://habrahabr.ru/post/216309/ Получается бекап и не делается, а просто ждет своей очереди на выполнение.
Да, на тот же и медленнее.
На диске места было более 500 гиг свободно. диск на виртуалке, но не динамический. К сообщению приложен файл. Размер - 135Kb |
||||||||
9 июн 17, 16:49 [20553771] Ответить | Цитировать Сообщить модератору |
o-o
Guest |
не sys.dm_os_wait_stats, а sys.dm_os_waiting_tasks. буквы немного разные. та ваша супер-картинка на весь экран не нужна, а вот на нижней видно, что диск ждет. ну и не надо так уж категорично, "не выполняется". то ваш селект выполняется, то бэкап |
9 июн 17, 17:17 [20553859] Ответить | Цитировать Сообщить модератору |
o-o
Guest |
off: а на хабрахабре так принято что ли, перевести чужое, но как бы автор в самом заде статьи? т.е. читаешь типа статью Бородина, но как бы текст-то до боли знакомый, и автор его Рэндал. в самом конце все же Рэндал упомянут, и на том спасибо. но мне все еще непонятно, вот читаешь книгу того же Бен-Гана в переводе, и все равно автор Бен-Ган, а не переводчик. нет, переводчик тоже указан, но не на обложке книги. ибо да, работу он проделал, но автор книги(статьи) все же не он, и именно автор достоин быть упомянут рядом с заголовком |
9 июн 17, 17:25 [20553895] Ответить | Цитировать Сообщить модератору |
o-o
Guest |
*автор достоин быть упомянутЫМ/автор должен быть упомянут рядом с заголовком |
9 июн 17, 17:28 [20553906] Ответить | Цитировать Сообщить модератору |
V_e_g_a Member Откуда: Сообщений: 41 |
Я нормально буквы рассмотрел. Просто не знаю как полученную информацию трактовать ) Пока ни разу не застал процесс бекапа в состоянии running. К сообщению приложен файл. Размер - 130Kb |
9 июн 17, 17:30 [20553914] Ответить | Цитировать Сообщить модератору |
o-o
Guest |
надо по своему спиду 151 фильтровать. нехорошо, что бэкап все время suspended. какой-нибудь Resource Governor не настроен ли? покажите еще ваше @@version |
9 июн 17, 17:37 [20553932] Ответить | Цитировать Сообщить модератору |
o-o
Guest |
хотя вон картинкой выше видно, что большое время ожидания именно ASYNC_IO_COMPLETION. так что это скорее не его ограничивают, а просто плохо справляющийся диск |
9 июн 17, 17:42 [20553942] Ответить | Цитировать Сообщить модератору |
o-o
Guest |
А сколько уже длится бэкап? Чего-то там ожидание почти 12 млн мс, это что, 3 часа уже ждет? Наверное диск в стадии подыхания, пока старый файл перезаписываете, еще в живую часть пишете, а как новый создаете, там как раз уже померло |
9 июн 17, 18:03 [20553995] Ответить | Цитировать Сообщить модератору |
V_e_g_a Member Откуда: Сообщений: 41 |
Когда уходил с работы бекап еще не завершился и время его выполнения приближалось к 4 часам. Я бы не стал грешить на диск. Во-первых он не один. Организован 10-й рейд. Сколько винчесетров не помню. Но они чуть больше чем полгода в эксплуатации. Да и делается на них только этот единственный бекап раз в день. |
9 июн 17, 22:08 [20554441] Ответить | Цитировать Сообщить модератору |
Топик располагается на нескольких страницах: [1] 2 3 вперед Ctrl→ все |
Все форумы / Microsoft SQL Server | ![]() |