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

Откуда:
Сообщений: 106
DBCC OPENTRAN (db1)
DBCC OPENTRAN (db2)
-- No active open transactions.
-- No active open transactions.

DBCC SQLPERF(LOGSPACE);

-- db1 / log size = 40511 Mb/ % used = 12.7

select log_reuse_wait, log_reuse_wait_desc
from sys.databases 
where name = 'db1'
-- ACTIVE_TRANSACTION

select log_reuse_wait, log_reuse_wait_desc
from sys.databases 
where name = 'db2'
-- NOTHING

EXEC sp_helpreplicationdboption 'db1'
EXEC sp_helpreplicationdboption 'db2' 
-- нет репликаций

Почему в базе db1 есть некая транзакция, лог используется, однако...
В Activity Monitor нет активных запросов
По виндовому Resource Monitor нет активности ни по диску ни по процу.

Где искать эту транзакцию?
22 сен 11, 10:35    [11317063]     Ответить | Цитировать Сообщить модератору
 Re: Необходимо обрезать лог БД.  [new]
WarAnt
Member

Откуда: Питер
Сообщений: 2423
truper
Где искать эту транзакцию?


sp_who2
sysprocesses
22 сен 11, 10:39    [11317098]     Ответить | Цитировать Сообщить модератору
 Re: Необходимо обрезать лог БД.  [new]
truper
Member

Откуда:
Сообщений: 106
WarAnt
truper
Где искать эту транзакцию?


sp_who2
sysprocesses


Итак, эти команды действительно выдают что запущен некий процесс, но исследовав более детально, я понял что это отображается именно тот запрос который я сейчас выполняю (либо sp_who2, либо sysprocesses), больше активных транзакий нет.

К сообщению приложен файл (sp_who2.txt - 6Kb) cкачать
22 сен 11, 11:12    [11317417]     Ответить | Цитировать Сообщить модератору
 Re: Необходимо обрезать лог БД.  [new]
truper
Member

Откуда:
Сообщений: 106
второй файл sysprocesses

К сообщению приложен файл (sysprocesses.txt - 13Kb) cкачать
22 сен 11, 11:13    [11317420]     Ответить | Цитировать Сообщить модератору
 Re: Необходимо обрезать лог БД.  [new]
truper
Member

Откуда:
Сообщений: 106
Транзакция исчезла, хотя во время выполнения sp_who2(а в ней ничего небыло) команда
select log_reuse_wait, log_reuse_wait_desc from sys.databases  where name = 'db1' 
выдавала активную транзакцию.
С сервером кроме никто не работает.

Странно все это.
22 сен 11, 11:26    [11317543]     Ответить | Цитировать Сообщить модератору
 Re: Необходимо обрезать лог БД.  [new]
Glory
Member

Откуда:
Сообщений: 104751
truper
Транзакция исчезла, хотя во время выполнения sp_who2(а в ней ничего небыло) команда
select log_reuse_wait, log_reuse_wait_desc from sys.databases  where name = 'db1' 
выдавала активную транзакцию.

Информация в системных представлениях имеет свойство меняться
22 сен 11, 11:32    [11317603]     Ответить | Цитировать Сообщить модератору
 Re: Необходимо обрезать лог БД.  [new]
truper
Member

Откуда:
Сообщений: 106
Опять возникла проблема с ростом лог файла

Ситуация номер один

Что мы имеем по базе
1.
DBCC OPENTRAN (DB1)
Replicated Transaction Information:
Oldest distributed LSN : (0:0:0)
Oldest non-distributed LSN : (39041:20358:1)


2.
DBCC SQLPERF(LOGSPACE);
DB1 115583.4Mb 97.45 %

3.
select log_reuse_wait, log_reuse_wait_desc from sys.databases  where name = 'DB1'
6 REPLICATION

4.
EXEC sp_helpreplicationdboption 'DB1'
DB1 1 0 0 1 0

5.
select * from sys.sysprocesses
Все процессы либо background либо sleeping.

Получается что в базе нет никаких репликаций, но в логе хранятся данные именно для репликации.

Ситуация номер два
Тут рост лога небольшой, но смущает активная транзакция которую я немогу найти.

1.
DBCC OPENTRAN (DB2)
No active open transactions.

2.
DBCC SQLPERF(LOGSPACE);
DB2 459.11Mb 10.79 %

3.
select log_reuse_wait, log_reuse_wait_desc from sys.databases  where name = 'DB2'
4 ACTIVE_TRANSACTION

4.
EXEC sp_helpreplicationdboption 'DB2'
DB1 1 0 0 1 0

5.
select * from sys.sysprocesses
Тут по сути также нет ничего интересного, статусы либо background либо sleeping.


Я уже и незнаю где искать, помогите.
28 сен 11, 11:01    [11346456]     Ответить | Цитировать Сообщить модератору
 Re: Необходимо обрезать лог БД.  [new]
Glory
Member

Откуда:
Сообщений: 104751
truper
4.
EXEC sp_helpreplicationdboption 'DB1'
DB1 1 0 0 1 0

5.
select * from sys.sysprocesses
Все процессы либо background либо sleeping.

Получается что в базе нет никаких репликаций, но в логе хранятся данные именно для репликации.



https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=881509&msg=11307719

Сообщение было отредактировано: 28 сен 11, 11:09
28 сен 11, 11:07    [11346525]     Ответить | Цитировать Сообщить модератору
 Re: Необходимо обрезать лог БД.  [new]
truper
Member

Откуда:
Сообщений: 106
Glory, Я уже делал эту операцию несколько раз.
Возможно она и сейчас поможет, но мне ее чтоли каждый день делать?

Как окончательно вытравить эту репликацию из БД?
28 сен 11, 11:11    [11346559]     Ответить | Цитировать Сообщить модератору
 Re: Необходимо обрезать лог БД.  [new]
truper
Member

Откуда:
Сообщений: 106
собственно говоря эта команда
EXEC sp_helpreplicationdboption 'DB1'
Говорит о том что в базе НЕТ репликаций, либо я чтото непонимаю?
28 сен 11, 11:12    [11346573]     Ответить | Цитировать Сообщить модератору
 Re: Необходимо обрезать лог БД.  [new]
Glory
Member

Откуда:
Сообщений: 104751
truper
Glory, Я уже делал эту операцию несколько раз.
Возможно она и сейчас поможет, но мне ее чтоли каждый день делать?

Ну так разберитесь, кто эту репликацию каждый день создает
Наверное ежедневный рестор бэкапа какого-нибудь ?
28 сен 11, 11:13    [11346585]     Ответить | Цитировать Сообщить модератору
 Re: Необходимо обрезать лог БД.  [new]
Glory
Member

Откуда:
Сообщений: 104751
truper
собственно говоря эта команда
EXEC sp_helpreplicationdboption 'DB1'
Говорит о том что в базе НЕТ репликаций, либо я чтото непонимаю?

Процедура возвращает вообще то результат из 8ми полей
А у вас я вижу 6
28 сен 11, 11:15    [11346603]     Ответить | Цитировать Сообщить модератору
 Re: Необходимо обрезать лог БД.  [new]
truper
Member

Откуда:
Сообщений: 106
Glory
truper
Glory, Я уже делал эту операцию несколько раз.
Возможно она и сейчас поможет, но мне ее чтоли каждый день делать?

Ну так разберитесь, кто эту репликацию каждый день создает
Наверное ежедневный рестор бэкапа какого-нибудь ?


Я выше написал - база говорит о том что репликаций то нет.
28 сен 11, 11:16    [11346613]     Ответить | Цитировать Сообщить модератору
 Re: Необходимо обрезать лог БД.  [new]
Glory
Member

Откуда:
Сообщений: 104751
truper
Я выше написал - база говорит о том что репликаций то нет.

Говорящая база ! ААААА !
А на каком языке она говорит ?
А
DBCC OPENTRAN (DB1)

А
Replicated Transaction Information:
Oldest distributed LSN : (0:0:0)
Oldest non-distributed LSN : (39041:20358:1)
это не база "говорит" ?
28 сен 11, 11:18    [11346631]     Ответить | Цитировать Сообщить модератору
 Re: Необходимо обрезать лог БД.  [new]
truper
Member

Откуда:
Сообщений: 106
Glory
truper
собственно говоря эта команда
EXEC sp_helpreplicationdboption 'DB1'
Говорит о том что в базе НЕТ репликаций, либо я чтото непонимаю?

Процедура возвращает вообще то результат из 8ми полей
А у вас я вижу 6


Сам незнаю почему, по возвращается именно 6

SELECT SERVERPROPERTY('productversion'), SERVERPROPERTY ('productlevel'), SERVERPROPERTY ('edition')
10.50.1600.1 RTM Enterprise Edition (64-bit)
28 сен 11, 11:18    [11346636]     Ответить | Цитировать Сообщить модератору
 Re: Необходимо обрезать лог БД.  [new]
Glory
Member

Откуда:
Сообщений: 104751
truper
Сам незнаю почему, по возвращается именно 6

SELECT SERVERPROPERTY('productversion'), SERVERPROPERTY ('productlevel'), SERVERPROPERTY ('edition')
10.50.1600.1 RTM Enterprise Edition (64-bit)

http://msdn.microsoft.com/en-us/library/ms174389.aspx
28 сен 11, 11:20    [11346652]     Ответить | Цитировать Сообщить модератору
 Re: Необходимо обрезать лог БД.  [new]
truper
Member

Откуда:
Сообщений: 106
Glory, Юмор понял:)

Oldest non-distributed LSN : (39041:20358:1)

Как мне понять кто это запустил и что это вообще
28 сен 11, 11:20    [11346655]     Ответить | Цитировать Сообщить модератору
 Re: Необходимо обрезать лог БД.  [new]
Glory
Member

Откуда:
Сообщений: 104751
truper
Glory, Юмор понял:)

Oldest non-distributed LSN : (39041:20358:1)

Как мне понять кто это запустил и что это вообще

Что это ?
Запускали обыкновенные запросы. Результаты которых должны быть реплицированы
Потому что есть репликация
28 сен 11, 11:21    [11346671]     Ответить | Цитировать Сообщить модератору
 Re: Необходимо обрезать лог БД.  [new]
truper
Member

Откуда:
Сообщений: 106
Glory
truper
Сам незнаю почему, по возвращается именно 6

SELECT SERVERPROPERTY('productversion'), SERVERPROPERTY ('productlevel'), SERVERPROPERTY ('edition')
10.50.1600.1 RTM Enterprise Edition (64-bit)

http://msdn.microsoft.com/en-us/library/ms174389.aspx


Сам себе злобный буратино.
EXEC sp_helpreplicationdboption 'DB1', 'replication allowed', 1

DB1 1 0 0 1 0 0 0
28 сен 11, 11:23    [11346684]     Ответить | Цитировать Сообщить модератору
 Re: Необходимо обрезать лог БД.  [new]
truper
Member

Откуда:
Сообщений: 106
В этом и загвоздка, что в базе репликации нет, а лог файл хранит данные для нее.
28 сен 11, 11:51    [11346923]     Ответить | Цитировать Сообщить модератору
 Re: Необходимо обрезать лог БД.  [new]
Glory
Member

Откуда:
Сообщений: 104751
truper
В этом и загвоздка, что в базе репликации нет

Битая репликация все равно есть
А процедуры вроде sp_helpreplicationdboption всего лишь показывают флажки из системных таблиц
28 сен 11, 11:53    [11346940]     Ответить | Цитировать Сообщить модератору
 Re: Необходимо обрезать лог БД.  [new]
truper
Member

Откуда:
Сообщений: 106
выполнил
EXEC sp_removedbreplication 'DB1', 'both'
Лог освободился.

Возможно репликация включается после рестарта БД.
Вариант с тем что ктото включает эту репликацию отпадает на 100%.
28 сен 11, 11:56    [11346973]     Ответить | Цитировать Сообщить модератору
 Re: Необходимо обрезать лог БД.  [new]
Glory
Member

Откуда:
Сообщений: 104751
truper
Вариант с тем что ктото включает эту репликацию отпадает на 100%.

Ага, а сервер сам запрограммировался создавать репликацию, да еще главное битую
Искуственный интеллек практически
28 сен 11, 11:58    [11346993]     Ответить | Цитировать Сообщить модератору
 Re: Необходимо обрезать лог БД.  [new]
Кудряшка
Member

Откуда: Сидней
Сообщений: 2219
truper
В любом случае есть вопрос.
Зачем вообще хранить этот лог файл со старыми транзакциями? С текущими транзакциями все понятся (если вдруг чего, нужно откатиться), но если у транзакции было указано commit, после завершения записи данных в базу, можно ведь этот лог(часть) зачистить.


Например, чтобы иметь возможность восстановления БД на момент времени.
28 сен 11, 13:06    [11347582]     Ответить | Цитировать Сообщить модератору
 Re: Необходимо обрезать лог БД.  [new]
truper
Member

Откуда:
Сообщений: 106
Кудряшка
truper
В любом случае есть вопрос.
Зачем вообще хранить этот лог файл со старыми транзакциями? С текущими транзакциями все понятся (если вдруг чего, нужно откатиться), но если у транзакции было указано commit, после завершения записи данных в базу, можно ведь этот лог(часть) зачистить.


Например, чтобы иметь возможность восстановления БД на момент времени.


С этим разобрались, за это отвечает SET RECOVERY SIMPLE


По поводу роста лога сойдемся на запуске sp_removedbreplication каждый день, благо на втором нашем сервере такой ситуации не наблюдается.


А что с этим делать?
truper
Ситуация номер два
Тут рост лога небольшой, но смущает активная транзакция которую я немогу найти.

1.
DBCC OPENTRAN (DB2)
No active open transactions.

2.
DBCC SQLPERF(LOGSPACE);
DB2 459.11Mb 10.79 %

3.
select log_reuse_wait, log_reuse_wait_desc from sys.databases  where name = 'DB2'
4 ACTIVE_TRANSACTION

4.
EXEC sp_helpreplicationdboption 'DB2', 'replication allowed', 1
DB1 1 0 0 1 0 0 0

5.
select * from sys.sysprocesses
Тут по сути также нет ничего интересного, статусы либо background либо sleeping.

6.
exec sp_who2
Также нет активных запросов. только background и sleeping.
28 сен 11, 18:33    [11350670]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 [2] 3   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить