Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 DBCC CHEKDB (DB, REPAIR_ALLOW_DATA_LOSS) --> грабли?  [new]
Alexander Us
Member

Откуда:
Сообщений: 1161
На базе с битыми страницами выполнил команду DBCC CHEKDB (DB, REPAIR_ALLOW_DATA_LOSS)
Отработала успешно, с потерей несколльких записей.
Но появилась новая проблема: лог растёт, даже после полного бэкапа и бэкапа лога.
Не знаю что делать, разве что создать базу заново и перелить все данные.
Может кто посоветует более разумное решение:

Ниже привожу данные:
DBCC SQLPERF(LOGSPACE)
Database NameLog Size (MB)Log Space Used (%)Status
DB24036.9999.81110


log_reuse_wait_desc базы показывает REPLICATION, хотя репликация не используется:
select state_desc, recovery_model_desc, log_reuse_wait_desc from sys.databases where name = 'DB'

state_descrecovery_model_desclog_reuse_wait_desc
ONLINEFULLREPLICATION


В логе видна открытая транзакция:
DBCC OPENTRAN
Transaction information for database 'DB'-Datenbank.

Replicated Transaction Information::
        Oldest distributed LSN     : (0:0:0)
        Oldest non-distributed LSN : (1551110:3214:4)  --> hex 0017AB06:00000C8E:0004
 


Которвя указывает на команду DBCC CHEKDB:
select  [Current LSN],[Operation],[Transaction ID], Left([Description],20) Description, F.[Begin Time], F.[End Time]   
from ::fn_dblog('0x0017AB06:00000C8E:0004','0x0017AB06:00000C8E:0004') F

Current LSNOperationTransaction IDDescriptionBegin TimeEnd Time
0017ab06:00000c8e:0004LOP_BEGIN_XACT0000:11ca2347CheckDb;0x01050000002016/04/24 11:31:51:297NULL


Открытых соединений с базой нет - восстановил из бэкапа для тестов.
4 май 16, 11:02    [19132465]     Ответить | Цитировать Сообщить модератору
 Re: DBCC CHEKDB (DB, REPAIR_ALLOW_DATA_LOSS) --> грабли?  [new]
Glory
Member

Откуда:
Сообщений: 104751
Alexander Us
log_reuse_wait_desc базы показывает REPLICATION, хотя репликация не используется:

Это значит
- никто никогда не настраивал репликацию
- репликацию настроили, но она никому не нужна
- репликация настроили, но она не работает
4 май 16, 11:09    [19132501]     Ответить | Цитировать Сообщить модератору
 Re: DBCC CHEKDB (DB, REPAIR_ALLOW_DATA_LOSS) --> грабли?  [new]
Glory
Member

Откуда:
Сообщений: 104751
Alexander Us
В логе видна открытая транзакция:
DBCC OPENTRAN
Transaction information for database 'DB'-Datenbank.

Replicated Transaction Information::
        Oldest distributed LSN     : (0:0:0)
        Oldest non-distributed LSN : (1551110:3214:4)  --> hex 0017AB06:00000C8E:0004
 

Это не отрытая транзакция. Это недоставленная транзакция.
4 май 16, 11:10    [19132506]     Ответить | Цитировать Сообщить модератору
 Re: DBCC CHEKDB (DB, REPAIR_ALLOW_DATA_LOSS) --> грабли?  [new]
Alexander Us
Member

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

спасибо,

- репликицию скорее всего вобще не настраивали

- что (и как) делать с недоставленной транзакцией?
4 май 16, 11:34    [19132622]     Ответить | Цитировать Сообщить модератору
 Re: DBCC CHEKDB (DB, REPAIR_ALLOW_DATA_LOSS) --> грабли?  [new]
Alexander Us
Member

Откуда:
Сообщений: 1161
Alexander Us,
4 май 16, 11:36    [19132632]     Ответить | Цитировать Сообщить модератору
 Re: DBCC CHEKDB (DB, REPAIR_ALLOW_DATA_LOSS) --> грабли?  [new]
Glory
Member

Откуда:
Сообщений: 104751
Alexander Us
спасибо,

- репликицию скорее всего вобще не настраивали

Так не бывает, что репликацию не настраивали, а недоставленные репликацией транзакции сами появились в журнале

Alexander Us
- что (и как) делать с недоставленной транзакцией?

делают что-то с репликацией - чинят или удаляют.
4 май 16, 11:36    [19132636]     Ответить | Цитировать Сообщить модератору
 Re: DBCC CHEKDB (DB, REPAIR_ALLOW_DATA_LOSS) --> грабли?  [new]
Alexander Us
Member

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

если репликацию и удалили, то давно.
новый сервер без репликаций, база из бэкапа.

А можно ли как то прибить саму недоставленную транзакцию?
4 май 16, 11:55    [19132767]     Ответить | Цитировать Сообщить модератору
 Re: DBCC CHEKDB (DB, REPAIR_ALLOW_DATA_LOSS) --> грабли?  [new]
Glory
Member

Откуда:
Сообщений: 104751
Alexander Us
если репликацию и удалили, то давно.

Скорее всего ее не удалили

Alexander Us
новый сервер без репликаций, база из бэкапа.

А репликация в бэкап базы попадает вообще-то.

Alexander Us
А можно ли как то прибить саму недоставленную транзакцию?

Репликацию удалите
4 май 16, 11:56    [19132780]     Ответить | Цитировать Сообщить модератору
 Re: DBCC CHEKDB (DB, REPAIR_ALLOW_DATA_LOSS) --> грабли?  [new]
Alexander Us
Member

Откуда:
Сообщений: 1161
Glory
Репликацию удалите


Так нету репликаций:

смотрю так:

SSMS
-Replications
--local publications
--local abonements
4 май 16, 15:00    [19133863]     Ответить | Цитировать Сообщить модератору
 Re: DBCC CHEKDB (DB, REPAIR_ALLOW_DATA_LOSS) --> грабли?  [new]
Alexander Us
Member

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

спасибо огромное.

Вот так получилось:

exec sp_removedbreplication 'myDB'

--выделить, обе команды, выполнить одним батчем 
backup log eVB to disk='L:\LOG-Shipping\myDB\myDB_20160504134100.trn'
GO
USE [myDB]
GO
DBCC SHRINKFILE (N'myDB_log' , 0, TRUNCATEONLY)
GO
4 май 16, 16:52    [19134534]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить