Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 Как правильно уменьшить Протокол транзакций при зеркалке. Два сервера включены зеркально.  [new]
student-uni
Member

Откуда: Одесса
Сообщений: 1102
Microsoft SQL Server 2008 R2 (RTM) - 10.50.1617.0 (X64) Apr 22 2011 19:23:43 Copyright (c) Microsoft Corporation Enterprise Edition (64-bit) on Windows NT 6.1 <X64> (Build 7600: ) (Hypervisor)
Как правильно уменьшить Протокол транзакций при зеркалке.

Два сервера включены зеркально.

Необходимо уменьшить транзакшн.лог (занимает 1.5 Терабайт на диске в 1,8).

Что правильнее делать, чтоб избежать Переполнения диска:

1. сразу просто ШРИНКФАЙЛ

2. Остановить Зеркало, потом запустить шринкфайл

3. РАзорвать зеркало, Потом запустить шринкфайл, потом создать зеркало ПО НОвой

4. ПРицепить ЕЩе харддрайв 2 ТЕРА и СОздать ВТОрой ТРАНЗАКШН. ЛОГ НА НЕМ

5. РАзорвать зеркало, перейти из полного в простой Режим восстановления, УменьШИТь Т-ЛОГ , Перейти Обратно В ПОЛный РЕЖИМ, Создать зеркало

6. ?

Спасибо
26 ноя 13, 00:47    [15188704]     Ответить | Цитировать Сообщить модератору
 Re: Как правильно уменьшить Протокол транзакций при зеркалке. Два сервера включены зеркально.  [new]
Ennor Tiegael
Member

Откуда:
Сообщений: 3274
Т.е. вариант "бэкап лога" даже не рассматривается?

Равно как и посмотреть, почему именно он растет:
select name, log_reuse_wait_desc from sys.databases;
26 ноя 13, 04:53    [15188919]     Ответить | Цитировать Сообщить модератору
 Re: Как правильно уменьшить Протокол транзакций при зеркалке. Два сервера включены зеркально.  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31444
Ennor Tiegael
Равно как и посмотреть, почему именно он растет:
Что тут смотреть - модель полная, бакап никогда не делался.
26 ноя 13, 08:55    [15189175]     Ответить | Цитировать Сообщить модератору
 Re: Как правильно уменьшить Протокол транзакций при зеркалке. Два сервера включены зеркально.  [new]
student-uni
Member

Откуда: Одесса
Сообщений: 1102
делал бекап лога, длилось всю ночь, после чего журнал стал на 0,2 терра больше.
Почему?

Спасибо
26 ноя 13, 11:43    [15190155]     Ответить | Цитировать Сообщить модератору
 Re: Как правильно уменьшить Протокол транзакций при зеркалке. Два сервера включены зеркально.  [new]
Glory
Member

Откуда:
Сообщений: 104760
student-uni
делал бекап лога, длилось всю ночь, после чего журнал стал на 0,2 терра больше.
Почему?

Потому что процесс бэкапа журнала не запрещает запись в журнал.
26 ноя 13, 11:45    [15190176]     Ответить | Цитировать Сообщить модератору
 Re: Как правильно уменьшить Протокол транзакций при зеркалке. Два сервера включены зеркально.  [new]
student-uni
Member

Откуда: Одесса
Сообщений: 1102
я думал после бекапа лог сам станет меньше, что я не сделал, чтоб его уменьшить?
Спасибо
26 ноя 13, 12:01    [15190320]     Ответить | Цитировать Сообщить модератору
 Re: Как правильно уменьшить Протокол транзакций при зеркалке. Два сервера включены зеркально.  [new]
Glory
Member

Откуда:
Сообщений: 104760
student-uni
я думал после бекапа лог сам станет меньше

Многие так думаеют.
student-uni
что я не сделал, чтоб его уменьшить?

Зачем его уменьшать ? Следующая же транзакция потребует его увеличения
26 ноя 13, 12:05    [15190352]     Ответить | Цитировать Сообщить модератору
 Re: Как правильно уменьшить Протокол транзакций при зеркалке. Два сервера включены зеркально.  [new]
AlexeyMish
Member

Откуда:
Сообщений: 71
student-uni,
В соседней ветке мне объяснили.
Бекап не уменьшает размер файла (!) журнала транзакций.
Размер файла остается прежним. Освобождается место "внутри" этого файла.
Т.е. размер файла перестанет рости, до тех пор, пока не заполнится весь файл. После этого будет выделено новое место и файл увеличится.
Знающие люди меня поправят, если я не правильно понял.
ИМХО можно сделать shrink транзакт лога, до более менее вменяемого размера, после чего настроить его регулярный бекап.
26 ноя 13, 12:11    [15190403]     Ответить | Цитировать Сообщить модератору
 Re: Как правильно уменьшить Протокол транзакций при зеркалке. Два сервера включены зеркально.  [new]
student-uni
Member

Откуда: Одесса
Сообщений: 1102
зачем уменьшать?
Свободного места на диске осталось 200 гб
что еще можно делать чтоб избежать переполнения диска?
26 ноя 13, 12:16    [15190453]     Ответить | Цитировать Сообщить модератору
 Re: Как правильно уменьшить Протокол транзакций при зеркалке. Два сервера включены зеркально.  [new]
Glory
Member

Откуда:
Сообщений: 104760
student-uni
что еще можно делать чтоб избежать переполнения диска?

С помощью регулярного бэкапа освобождать место _внутри_ журнала
26 ноя 13, 12:21    [15190484]     Ответить | Цитировать Сообщить модератору
 Re: Как правильно уменьшить Протокол транзакций при зеркалке. Два сервера включены зеркально.  [new]
student-uni
Member

Откуда: Одесса
Сообщений: 1102
AlexeyMish
ИМХО можно сделать shrink транзакт лога, до более менее вменяемого размера, после чего настроить его регулярный бекап.
Спасибо Алексей, просто шринкфайл? или есть нюансы?
26 ноя 13, 12:26    [15190514]     Ответить | Цитировать Сообщить модератору
 Re: Как правильно уменьшить Протокол транзакций при зеркалке. Два сервера включены зеркально.  [new]
student-uni
Member

Откуда: Одесса
Сообщений: 1102
Glory,

И Вам спасибо, только что делать если файл уже разросся до размеров диска?
26 ноя 13, 12:31    [15190539]     Ответить | Цитировать Сообщить модератору
 Re: Как правильно уменьшить Протокол транзакций при зеркалке. Два сервера включены зеркально.  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 37069
student-uni
Glory,

И Вам спасибо, только что делать если файл уже разросся до размеров диска?
Делать бэкап лога же. А все остальные транзакции пойдут в лес, потому что надо было об этом раньше думать.
26 ноя 13, 12:42    [15190602]     Ответить | Цитировать Сообщить модератору
 Re: Как правильно уменьшить Протокол транзакций при зеркалке. Два сервера включены зеркально.  [new]
student-uni
Member

Откуда: Одесса
Сообщений: 1102
То есть оставить размер файла как есть? или все же шринкануть?
26 ноя 13, 12:48    [15190643]     Ответить | Цитировать Сообщить модератору
 Re: Как правильно уменьшить Протокол транзакций при зеркалке. Два сервера включены зеркально.  [new]
Glory
Member

Откуда:
Сообщений: 104760
student-uni
И Вам спасибо, только что делать если файл уже разросся до размеров диска?

Как разовая операция
- проверить сколько свободного метса в журнале
- сделать шринк
26 ноя 13, 12:48    [15190645]     Ответить | Цитировать Сообщить модератору
 Re: Как правильно уменьшить Протокол транзакций при зеркалке. Два сервера включены зеркально.  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 37069
student-uni
То есть оставить размер файла как есть? или все же шринкануть?
Сначала сделать бэкап. Потом надо прикинуть, какой объем лога вам нужен с учетом запаздывания мирроринга и интервалов между бэкапами лога, и шринкануть до этого размера.
26 ноя 13, 12:53    [15190679]     Ответить | Цитировать Сообщить модератору
 Re: Как правильно уменьшить Протокол транзакций при зеркалке. Два сервера включены зеркально.  [new]
AlexeyMish
Member

Откуда:
Сообщений: 71
student-uni,
Насколько я понимаю, в вашем случае надо
1) сделать бекап журнала транзакций (BACKUP LOG DBNAME TO DISK = N'E:\MSSQL\DB_BACKUPS\DBLOGNAME.bak' WITH NOFORMAT, INIT, NAME = N'DBLOGNAME-Transaction)
2) сделать shrink (USE DBNAME DBCC SHRINKFILE (N'DBLOGNAME' , 'Размер_файла_файла_до которого_нужно_усечь', TRUNCATEONLY)

Потом настроить бекап регулятрно (каждую ночь). После этого, файл журнала транзакций расти просто перестанет. Если он все таки будет расти, то только до того значения, пока не сделался бекап.

Файл растет->освобождаем в нем место бекапом (размер файла не изменяется)->в этот же файл пишем транзакции(файл растет)-освобождаем место.
и так в цикле
26 ноя 13, 12:53    [15190683]     Ответить | Цитировать Сообщить модератору
 Re: Как правильно уменьшить Протокол транзакций при зеркалке. Два сервера включены зеркально.  [new]
student-uni
Member

Откуда: Одесса
Сообщений: 1102
Гавриленко Сергей Алексеевич
student-uni
Glory,

И Вам спасибо, только что делать если файл уже разросся до размеров диска?
Делать бэкап лога же. А все остальные транзакции пойдут в лес, потому что надо было об этом раньше думать.
простите, а если я создам базу данных по новой, на новом сервере с чистым диском, перелью данные итд. я же получу результат нормальный размер лога?
но ведь это не единственный способ?
26 ноя 13, 12:55    [15190704]     Ответить | Цитировать Сообщить модератору
 Re: Как правильно уменьшить Протокол транзакций при зеркалке. Два сервера включены зеркально.  [new]
Glory
Member

Откуда:
Сообщений: 104760
student-uni
перелью данные итд. я же получу результат нормальный размер лога?

А вы думаете, что команда "перелью данные" ничего в лог не запишет ?
26 ноя 13, 12:57    [15190722]     Ответить | Цитировать Сообщить модератору
 Re: Как правильно уменьшить Протокол транзакций при зеркалке. Два сервера включены зеркально.  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 37069
student-uni
Гавриленко Сергей Алексеевич
пропущено...
Делать бэкап лога же. А все остальные транзакции пойдут в лес, потому что надо было об этом раньше думать.
простите, а если я создам базу данных по новой, на новом сервере с чистым диском, перелью данные итд. я же получу результат нормальный размер лога?
но ведь это не единственный способ?
Еще винду переставьте и сервер новый купите, ага. Чтобы был полный комплект, вместо выполнения двух простых команд.
26 ноя 13, 12:58    [15190735]     Ответить | Цитировать Сообщить модератору
 Re: Как правильно уменьшить Протокол транзакций при зеркалке. Два сервера включены зеркально.  [new]
student-uni
Member

Откуда: Одесса
Сообщений: 1102
Благодарю, а как можно узнать размер свободного места внутри журнала?
26 ноя 13, 13:01    [15190753]     Ответить | Цитировать Сообщить модератору
 Re: Как правильно уменьшить Протокол транзакций при зеркалке. Два сервера включены зеркально.  [new]
AlexeyMish
Member

Откуда:
Сообщений: 71
student-uni,

Если вы никогда не делали бекап, то его там и нет.
26 ноя 13, 13:05    [15190787]     Ответить | Цитировать Сообщить модератору
 Re: Как правильно уменьшить Протокол транзакций при зеркалке. Два сервера включены зеркально.  [new]
student-uni
Member

Откуда: Одесса
Сообщений: 1102
AlexeyMish
student-uni,

Если вы никогда не делали бекап, то его там и нет.
делал бекап, вопрос как теперь узнать сколько свободного места внутри файла?
26 ноя 13, 13:11    [15190844]     Ответить | Цитировать Сообщить модератору
 Re: Как правильно уменьшить Протокол транзакций при зеркалке. Два сервера включены зеркально.  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 37069
student-uni
AlexeyMish
student-uni,

Если вы никогда не делали бекап, то его там и нет.
делал бекап, вопрос как теперь узнать сколько свободного места внутри файла?

dbcc sqlperf (logspace)

select
    a.name
    , a.log_reuse_wait_desc
from    sys.databases    a
26 ноя 13, 13:12    [15190857]     Ответить | Цитировать Сообщить модератору
 Re: Как правильно уменьшить Протокол транзакций при зеркалке. Два сервера включены зеркально.  [new]
student-uni
Member

Откуда: Одесса
Сообщений: 1102
Краткий отчет:

Скрипт Ennor Tiegael и Гавриленко Сергей Алексеевич показал проблему с REPLICATION.
Пока работала репликация лог при бекапе не уменьшался, скрипт показывал почти 96% занятости файла и файл после каждого бекапа дальше рос ( "Потому что процесс бэкапа журнала не запрещает запись в журнал. " Glory).

После отключения репликации БД и повторном бекапе лога скрипт показал, что занятo всего около 2% файла остальное свободно, файл сам оставался по-прежнему велик.

Шринк при работающем зеркале неполучился. Пришлось разорвать зеркало, шринкануть и потом настроить зеркало по-новой (стянуть бекап с принципала, восстановить на зеркальный с опциями "REWRITE" и "NO RECOVERY").

В общем все получилось, всем спасибо.

Остался только один вопрос:
почему с того момента как принципал-сервер начали реплицировать бекап лога перестал лог-файл опустошать?
10 дек 13, 18:37    [15273387]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить