Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Опять растёт лог и открытая транзакция.  [new]
NIIIK
Member

Откуда: Россия, Ростовская область, г. Таганрог
Сообщений: 1295
Всем доброе время суток

Растёт лог

dbcc opentran


выдаёт

автор
Transaction information for database 'ukRacingDev'.

Replicated Transaction Information:
Oldest distributed LSN : (0:0:0)
Oldest non-distributed LSN : (33190:217484:1)
DBCC execution completed. If DBCC printed error messages, contact your system administrator.


select operation, [Transaction Name]--, *
from sys.fn_dblog(033190000021748400001, 033190000021748400001)


выдаёт

operationTransaction Name
LOP_BEGIN_XACTALTER TABLE


select log_reuse_wait_desc
from sys.databases
where name = 'ukRacingDev'
go


выдаёт REPLICATION

Могу привести результаты

sp_repltrans 
go 

sp_replcmds
go


Но сам не знаю как их интерпретировать.

Самое странное начинется в том, что я на другую машину установил триалку ApexSQL Log. Другого метода узнать имя таблицы я не знаю. Он есть?
Начал смотреть логи. Сначала по времени, потом тупо все "alter table" и найти ничего не мог. Засомневался... сделал тестовый alter - убедился что работает.
Не могу понять в чём проблема висящей транзакции или хотя бы узнать на како таблице она висит!
31 окт 13, 01:27    [15056301]     Ответить | Цитировать Сообщить модератору
 Re: Опять растёт лог и открытая транзакция.  [new]
Гость333
Member

Откуда:
Сообщений: 3683
select AllocUnitName, *
from sys.fn_dblog(null, null)
where [Transaction ID] = <ID транзакции, соответствующей LSN 33190:217484:1>

Изучаете значения AllocUnitName — там должно быть имя модифицируемой таблицы.
31 окт 13, 09:43    [15056686]     Ответить | Цитировать Сообщить модератору
 Re: Опять растёт лог и открытая транзакция.  [new]
invm
Member

Откуда: Москва
Сообщений: 9396
Вы, почему-то, все время ходите по одним и тем же граблям...
Size of the Transaction Log Increasing and cannot be truncated or Shrinked due to Snapshot Replication
31 окт 13, 10:47    [15057000]     Ответить | Цитировать Сообщить модератору
 Re: Опять растёт лог и открытая транзакция.  [new]
NIIIK
Member

Откуда: Россия, Ростовская область, г. Таганрог
Сообщений: 1295
Гость333
select AllocUnitName, *
from sys.fn_dblog(null, null)
where [Transaction ID] = <ID транзакции, соответствующей LSN 33190:217484:1>

Изучаете значения AllocUnitName — там должно быть имя модифицируемой таблицы.


Для этой транзакции очень много строчек (чисто по ЛСН одна)

Вот такой запрос

select distinct top 10000  AllocUnitName--, *
from sys.fn_dblog(null, null)
where [Transaction ID] = '0000:029a4e21'
  and AllocUnitName is not null


выдал
AllocUnitName
dbo.sysarticles.c1sysarticles
dbo.systranschemas.uncsystranschemas
dbo.tEvent.pk_tEvent
sys.syscolpars.clst
sys.syscolpars.nc
sys.sysidxstats.clst
sys.sysidxstats.nc
sys.sysiscols.clst
sys.sysiscols.nc1
sys.sysmultiobjrefs.clst
sys.sysmultiobjrefs.nc1
sys.sysobjvalues.clst
sys.sysrowsets.clust
sys.sysrscols.clst
sys.sysschobjs.clst
sys.sysschobjs.nc1
sys.sysschobjs.nc2
sys.sysschobjs.nc3
sys.syssoftobjrefs.clst
sys.syssoftobjrefs.nc1


т. е. ни одной таблицы.

invm
Вы, почему-то, все время ходите по одним и тем же граблям...
Size of the Transaction Log Increasing and cannot be truncated or Shrinked due to Snapshot Replication

Да потому что я как бы в этой области плаваю как топор. Я не вижу картину/картуГорода в целом, а вижу частные кусочки (или определённые маршруты).
Сейчас я знаю что транзакция мешает, знаю что repl_done поможет. Но почему транзакция может мешать, тем более везде убрано "Replicate schema changes" (и какой ещё альтер может лезть) я ума не приложу.
Тем более ни по информации из ApexSQL log ни по fn_dblog (тут хотя бы ПК вылез) я не могу установить "вот хаппен блин".
И смотрю как баран на новые ворота с кучей ссылок и текста в результатах поиска.
31 окт 13, 15:12    [15059114]     Ответить | Цитировать Сообщить модератору
 Re: Опять растёт лог и открытая транзакция.  [new]
Гость333
Member

Откуда:
Сообщений: 3683
NIIIK
dbo.tEvent.pk_tEvent

т. е. ни одной таблицы.

Таблица dbo.tEvent с кластерным индексом pk_tEvent.
31 окт 13, 15:33    [15059239]     Ответить | Цитировать Сообщить модератору
 Re: Опять растёт лог и открытая транзакция.  [new]
invm
Member

Откуда: Москва
Сообщений: 9396
NIIIK
тем более везде убрано "Replicate schema changes"

1. Где результат select @@version?
2. Покажите результат
select
 sp.replicate_ddl
from
 [Опубликованная БД]..syspublications sp
where
 sp.name = 'Проблемная публикация';
31 окт 13, 15:37    [15059268]     Ответить | Цитировать Сообщить модератору
 Re: Опять растёт лог и открытая транзакция.  [new]
NIIIK
Member

Откуда: Россия, Ростовская область, г. Таганрог
Сообщений: 1295
Гость333
NIIIK
dbo.tEvent.pk_tEvent

т. е. ни одной таблицы.

Таблица dbo.tEvent с кластерным индексом pk_tEvent.


Да на вид одинаковые как и были. Не было там изменений.
Единственное что в целевой таблице (Снапшот репликация) НЕТ ПК констрейнта (да и вообще никаких констрейтов).


invm
NIIIK
тем более везде убрано "Replicate schema changes"

1. Где результат select @@version?
2. Покажите результат
select
 sp.replicate_ddl
from
 [Опубликованная БД]..syspublications sp
where
 sp.name = 'Проблемная публикация';


Version
Microsoft SQL Server 2008 R2 (SP2) - 10.50.4286.0 (X64)
May 29 2013 15:04:02
Copyright (c) Microsoft Corporation
Standard Edition (64-bit) on Windows NT 6.1 <X64> (Build 7601: Service Pack 1)


Проверил все. Две снапошот - 0, Мердж - ничего (строчки нет).

Но в Мёрдже было установлено Replicate schema changes (хотя там совершенно другие таблицы и НЕ меняются), просто обраружил конфликты в этой репликации. Причём лог растёт на обеих базах в репликации.
31 окт 13, 16:00    [15059423]     Ответить | Цитировать Сообщить модератору
 Re: Опять растёт лог и открытая транзакция.  [new]
NIIIK
Member

Откуда: Россия, Ростовская область, г. Таганрог
Сообщений: 1295
С логом на второй базе (блин, как бейсбол) та же история.
Что характерно реплиакция идёт в таблицу с другим названием (хотя таблица с таким же названием есть), но

select operation, [Transaction Name], *
from sys.fn_dblog('00028910:00014410:0002', '00028910:00014410:0002')


выдаёт то же имя констрейнта в той же таблице
31 окт 13, 17:34    [15060173]     Ответить | Цитировать Сообщить модератору
 Re: Опять растёт лог и открытая транзакция.  [new]
invm
Member

Откуда: Москва
Сообщений: 9396
Что вернет
declare @t table
(
 article_id int, 
 partial_command bit,
 command varbinary(1024),
 xactid binary(10), 
 xact_seqno varbinary(16), 
 publication_id int, 
 command_id int, 
 command_type int, 
 originator_srvname sysname, 
 originator_db sysname, 
 pkHash int, 
 originator_publication_id int, 
 originator_db_version int, 
 originator_lsn varbinary(16) 
);

insert into @t
 exec [Проблемная БД]..sp_replcmds 100;

select
 cast(command as nvarchar(4000))
from
 @t
order by
 xact_seqno, command_id;
31 окт 13, 18:27    [15060501]     Ответить | Цитировать Сообщить модератору
 Re: Опять растёт лог и открытая транзакция.  [new]
NIIIK
Member

Откуда: Россия, Ростовская область, г. Таганрог
Сообщений: 1295
Ничего,
точнее одну строчку не с NULL, а с ''

Что это :) ?!
31 окт 13, 18:34    [15060544]     Ответить | Цитировать Сообщить модератору
 Re: Опять растёт лог и открытая транзакция.  [new]
NIIIK
Member

Откуда: Россия, Ростовская область, г. Таганрог
Сообщений: 1295
Могу добавить что ApexSQL видит в это же время с этой же "подозрительной таблицей" очень большое количество апдейтов. Причём перед ними был удалн индекс, а апдейты "на старое значение" (беспонтовые).
31 окт 13, 18:36    [15060554]     Ответить | Цитировать Сообщить модератору
 Re: Опять растёт лог и открытая транзакция.  [new]
NIIIK
Member

Откуда: Россия, Ростовская область, г. Таганрог
Сообщений: 1295
идентификтор транзакции такой же именно у update-операторов.
31 окт 13, 18:39    [15060563]     Ответить | Цитировать Сообщить модератору
 Re: Опять растёт лог и открытая транзакция.  [new]
invm
Member

Откуда: Москва
Сообщений: 9396
Исправьте на
select
 cast(command as nvarchar(4000)), *
И покажите результат.
31 окт 13, 18:46    [15060589]     Ответить | Цитировать Сообщить модератору
 Re: Опять растёт лог и открытая транзакция.  [new]
NIIIK
Member

Откуда: Россия, Ростовская область, г. Таганрог
Сообщений: 1295
Был неправ, видит ApexSQL эти Alter
Просто не видет если включены фильтры на них.
Но репликация была точно в режиме "Replicate schema changes = False"


Полный результат

(No column name) article_idpartial_commandcommandxactidxact_seqnopublication_idcommand_idcommand_typeoriginator_srvnameoriginator_dbpkHashoriginator_publication_idoriginator_db_versionoriginator_lsn
000x0x000070EE00003D8700010x000070EE00003E9200010100NULL NULL NULL


Надеюсь правильно отформатировал.
31 окт 13, 18:59    [15060644]     Ответить | Цитировать Сообщить модератору
 Re: Опять растёт лог и открытая транзакция.  [new]
NIIIK
Member

Откуда: Россия, Ростовская область, г. Таганрог
Сообщений: 1295
В самих alter скриптах ничего интересного. Один столбец меняет тип данных, другой добавляется.
но потом идёт пимерно такой.
begin transaction
update dbo.sysarticles set sync_objid=781462414 where artid = 5 and pubid = 1

if @@rowcount <=1 commit transaction else begin rollback transaction; print 'error: statement affected more than one row. All the changes were rolled back.' end


С другой стороны почему он пытался "изменить схему" (Как я понял) если изменения схемы не должны реплицироваться.
31 окт 13, 19:15    [15060708]     Ответить | Цитировать Сообщить модератору
 Re: Опять растёт лог и открытая транзакция.  [new]
invm
Member

Откуда: Москва
Сообщений: 9396
NIIIK
Полный результат

(No column name) article_idpartial_commandcommandxactidxact_seqnopublication_idcommand_idcommand_typeoriginator_srvnameoriginator_dbpkHashoriginator_publication_idoriginator_db_versionoriginator_lsn
000x0x000070EE00003D8700010x000070EE00003E9200010100NULL NULL NULL
У вас там, судя по publication_id = 0 и по article_id = 0, явно какой-то баг поселился. Я бы поубивал все реплики, почистил БД вызовом sp_removedbreplication и настроил все заново.
31 окт 13, 20:14    [15060976]     Ответить | Цитировать Сообщить модератору
 Re: Опять растёт лог и открытая транзакция.  [new]
NIIIK
Member

Откуда: Россия, Ростовская область, г. Таганрог
Сообщений: 1295
такое же возликло на другой публикации. Что может быть причиной бага?
5 ноя 13, 12:10    [15077746]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить