Чтобы обнаружить причину по которой место в журнале не может быть
Содержание статьи
/ Microsoft SQL Server
Member : : 205 | : delete from STOCK where Curr_ >= ‘20100101’
sys.databases log_reuse_wait_desc LOG_BACKUP : DBCC SHRINKFILE (,2) DBCC SHRINKFILE ( ,2) ? ? | |
Member : : 205 | , tempdb ACTIVE_TRANSACTION |
USBcab Member : : 48 | , 1. LOG_BACKUP 2. Recovery model -> Simple |
Member : : 205 | :
| |
Member : Moscow : 37228 | 100 , , . |
Member : Moscow : 37228 | STOCK.Curr_ — ? |
Member : : 205 |
| |
Member : : 205 | BACKUP LOG SalesBase WITH TRUNCATE_ONLY
SQL 2008R2 | |
Member : Moscow : 37228 |
, , , . | ||
komrad Member : : 5674 | , exec sp_help go dbcc sqlperf(logspace) go |
Member : : 205 | … … — , … , ? |
komrad Member : : 5674 | , exec xp_fixeddrives |
iljy Member : : 8711 |
— — . | |
Member : : 205 |
exec sp_help go
Help :
dbcc sqlperf(logspace) go
| ||||||||||||||
Member : : 205 |
| ||||||||
Member : : 205 |
, . . | |||
gds Member : : 1842 |
FULL? SIMPLE dbcc shrinkfile(log_file,[ ]) tempdb dbcc shrinkdatabase. | |
Member : : 205 |
, 🙂
!!! | |||||||||
gds Member : : 1842 |
FULL ( , ). FULL FULL . .. . backup log. . | |||||||||
alexeyvg Member : Moscow : 31864 |
, 🙂 | ||
Member : : 205 |
! alexeyvg , simple | |||||||||
EvgErmak Member : : 648 | , dbcc shrinkfile(log_file,[ ]) () [ ]? |
Источник
Журнал транзакций заполнен. HRESULT=80040E14. Лог в 350 гиг
Основная теорема систематики: Новые системы плодят новые проблемы.
Eugeneer 21.09.11 — 10:15 | Забился диск. Интернет прошуршал. Никаокго решения не нашел. Одно есть у Евгения https://help1c.com/faq/hits/12.html Но не помогает, ругается что нет такого метода T_runcate_only SQL 2005. Перезагрузки сервера, скуля, остановки сервера 1С не помогают. Лог чистится не хочет. |
GoldenDawn 101 — 21.09.11 — 19:59 | (98)а сегодня не уехал потому что паяльник уже греют? ))) |
Кириллка 102 — 21.09.11 — 20:02 | Маня, будь мужиком, блеать. Признай, что ты чайнег 🙂 Специально нашел для чайнега: #define DB_E_ERRORSINCOMMAND ((HRESULT)0x80040E14L) Это код твоей ошибки, объявлена она в oledberr.h Т.е. еще раз, эррогировать на HRESULT=80040E14 нет смысла, потомочто в HRESULT=80040E14 написано по-программистски (ну т.е. не для тебя, так как ты не программист) «Ошибка в команде, ахтунг, за разъяснениями вызывайте GetError» |
fisher 103 — 21.09.11 — 20:03 | (98) Когда срочно надо освободить место, то всякие реорганизации плохой выбор, т.к. они тоже места потребовать могут. В итоге долго выполняются и могут ошибкой завершиться. Реорганизации и шринки для лога и самой базы отдельные. Скорее всего ты базу реорганизовал, а не лог. |
Eugeneer 104 — 21.09.11 — 20:04 | (102) если бы ты не булы тупым то уже бы давно открыл ссылку и прочитал бы Журнал транзакций заполнен. HRESULT=80040E14 Ошибка СУБД: Microsoft OLE DB Provider for SQL Server: Журнал транзакций для базы данных «zup» заполнен. Чтобы обнаружить причину, по которой место в журнале не может быть повторно использовано, обратитесь к столбцу log_reuse_wait_desc таблицы sys. databases HRESULT=80040E14, SQLStvr: Error e=2, Severity=11,native=9002, line=1 или Ошибка СУБД: Microsoft OLE Provider for SQL Server: The transaction log for database «DataBase» is full. To find out why space in the log cannot be reused, see the log_reuse_wait_desc column is sys.database HRESULT=80040E14, SQLE=4 2000, native=9002 Решение: 1. Посмотрите сколько свободного места осталось на дисках, может его нет и логу некуда записаться… 2. Это ошибка Microsoft SQL Server — переполняется лог транзакций и не очищается. Урезать его возможно различными способами, в том числе и с помощью стандартной оснастки, но не всегда данная операция получается, и размер файла лога остается прежним. Как вариант предлагаю следующее решение из двух строчек: |
Кириллка 105 — 21.09.11 — 20:04 | +102 программисты платформы вызвали GetError и получили от провайдера «Журнал транзакций для базы данных <имябазы> заполнен….» |
Eugeneer 106 — 21.09.11 — 20:04 | Внимательно читаем и смотрим — Это ошибка Microsoft SQL Server |
Eugeneer 107 — 21.09.11 — 20:05 | Я еще в сабже написал ссылку и сказал что ошибка описана по ссылке и у меня таже проблема. Но ты оказался туп и этого не заметил. |
Кириллка 108 — 21.09.11 — 20:06 | (104)Маня, ты серьезно считаешь, что еси будешь меня называть тупым, кто-то в это поверит?? |
Eugeneer 109 — 21.09.11 — 20:06 | Так вот «обратитесь к столбцу log_reuse_wait_desc таблицы» сообщает нам что там есть незавершенная транзакция. Это и является ПРОБЛЕМОЙ. |
Eugeneer 110 — 21.09.11 — 20:07 | (108) нет. я сичтаю что ты тупость проявляешь сам своими постами корчЯ из себя знатока и умника. |
Eugeneer 111 — 21.09.11 — 20:09 | а оскорбляешь именно ты меня. а не я тебя. уже сколько десятков постов, а ты даже сабж не изучил. |
Кириллка 112 — 21.09.11 — 20:09 | Маня, еще раз: — HRESULT=80040E14 это не ошибка Microsoft SQL Server; — это код ошибки, которую выкинул oledb-провайдер на то, что скуль не смог увеличить размер лог-файла по той причине, что места на диске ему не хватило. Потому что ты криво настроил модель восстановления (бекап раз в полгода). Потому что ты взялся за то, чего не умел никогда. Потому что у тебя руки из опы. Могу долго продолжать … 🙂 |
Eugeneer 113 — 21.09.11 — 20:10 | и я тебе Киррилка не Маня. Будешь маней называть своих родственников. Я тебя впервые вижу и слышу. Для теюя я Евгений Владимирович. |
fisher 114 — 21.09.11 — 20:11 | (106) Ошибка программы и ошибка в программе — чуточку разные вещи. |
Eugeneer 115 — 21.09.11 — 20:11 | (112) иди накуй. вот что я тебе могу сказать. |
Кириллка 116 — 21.09.11 — 20:11 | (113)бугага, Маня, не смеши меня. |
Eugeneer 117 — 21.09.11 — 20:12 | (116) Пидриллка шел бы ты уже. по добру. |
Ленинград 118 — 21.09.11 — 20:13 | мдээээээээээ |
bizon2008 119 — 21.09.11 — 20:13 | (104)Смотрим в книгу, видим фигу? Там же ясно написано кто ошибку тебе писал «Microsoft OLE DB Provider for SQL Server» и где надо подробности было смотреть «обратитесь к столбцу log_reuse_wait_desc таблицы sys. databases HRESULT=80040E14, SQLStvr: Error e=2, Severity=11,native=9002, line=1″ Иди учись делать бекапы. |
bizon2008 120 — 21.09.11 — 20:16 | Евгений Владимирович зарубите себе на носу. Ни один сервер БД не скажет тебе свою ошибку. Он данные выдает. А ошибки он пишет в логи. Наймите DBA, и жить станет проще. |
Кириллка 121 — 21.09.11 — 20:16 | Маня, а ты на своем сайте дашь ссылочку на эту ветку, чтоб народ видел, как ты абасцрался прилюдно? |
fisher 122 — 21.09.11 — 20:19 | Почему это он абасцрался? Он честно признался, что не является специалистом в данной теме. Потом, правда, начал агрессивно заблуждаться. |
GoldenDawn 123 — 21.09.11 — 20:20 | (121)нет сейчас манин друг придет и даст ценный совет маня пропиарит друга друг пропиарит маню и никакой рекламы |
Кириллка 124 — 21.09.11 — 20:20 | Маня, ты так и не понял-поди, что у тебя произошло? Если понял, вещай — мы скорректируем если че 🙂 |
Ленинград 125 — 21.09.11 — 20:20 | (121) а я веточку засейваю |
GoldenDawn 126 — 21.09.11 — 20:23 | топикстартер правильно всё делает новый сервак купят за лям потом сотрудников наберут на поддержку «1с которая тормозит без поддержки» а сам будет сидеть админом на скуле и смотреть на лог |
Eugeneer 127 — 21.09.11 — 20:23 | (121) да я абацрался. но на тебя. Так что не воняй. |
Eugeneer 128 — 21.09.11 — 20:24 | (126) я не выполняю обязанности админа. Но если с базой что то происходит то ковырять естественно кроме меня некому. админ который админ в этом вообще ноль. |
Кириллка 129 — 21.09.11 — 20:24 | (127)для пущей окраски ты должен был еще описать каким калом ты на меня абасцрался. Как-то уныло у тебя получилось. Попробуй еще разок :)) |
Eugeneer 130 — 21.09.11 — 20:26 | (129) ну ты и извращенец. За сим откланиваюсь. Ветка запахла очень сильно. Не выветрить. Рекламное место пустует |
Кириллка 131 — 21.09.11 — 20:26 | (128)так вы там два брата-акробата чтоли? Печалька.. |
aleks-id 132 — 21.09.11 — 20:28 | /*жует попкорн*/ |
Кириллка 133 — 21.09.11 — 20:30 | (130)Маня, будь мужиком, блеать. Останься и реабилитируйся в глазах общественности — докажи, что ты чего-то стоишь. |
Krendel 134 — 21.09.11 — 20:32 | Лень читать. Скока на исправлении этой ошибки маня заработал? хоть часиков 10 выставил на курение манов по скл? |
pectopatop 135 — 21.09.11 — 20:43 | (134) Маня поднял 10 левелов Репутации на этом |
pectopatop 136 — 21.09.11 — 20:44 | (135) + и произвел 3 тонны огородных удобрений |
zmaximka 137 — 21.09.11 — 20:52 | да уж. и эти люди хотят от ста тыщь и покупают логан |
aleks-id 138 — 21.09.11 — 20:54 | (137) зато он знает про рекурсию ))) |
GoldenDawn 139 — 21.09.11 — 21:20 | мажоры хуле… базнес = связи |
Источник
По какой причине место в журнале транзакций не может быть повторно использовано?
Вопрос
По какой причине место в журнале транзакций не может быть повторно использовано при режиме восстановления Simple Recovery Mode?
Ответы
- Предложено в качестве ответа Abolmasov Dmitry 7 июня 2012 г. 9:33
- Отменено предложение в качестве ответа TownSparrow 7 июня 2012 г. 19:51
- Помечено в качестве ответа TownSparrow 11 июня 2012 г. 6:58
Все ответы
- Предложено в качестве ответа Abolmasov Dmitry 7 июня 2012 г. 9:33
- Отменено предложение в качестве ответа TownSparrow 7 июня 2012 г. 19:51
- Помечено в качестве ответа TownSparrow 11 июня 2012 г. 6:58
Причина по которой я задал вопрос — почему место в журнале транзакций не может быть повторно использовано при режиме восстановления Simple Recovery Model следующая. Я сейчас пишу WPF-приложение, использующее MS SQL 2008 R2 с простой моделью восстановления. Это приложение должно работать с фондовой биржей РТС/ММВБ. Для связи с биржей использую их библиотеку объектов P2ClientGate. Мне нужно только создать в MS SQL базу данных и пользователя (с соответствующими привилегиями), а таблицы и данные в них объект пропишет сам автоматом. Суть моей проблемы в том, что с одними потоками репликации SQL Server работает прекрасно, а вот с другими — нет. Например, при использовании одного из потоков у меня в логе появилась следующая запись (здесь привожу её не полностью):
…descr ‘[] / e:42000 native_error:9002[Microsoft][ODBC SQL Server
Driver][SQL Server]Журнал транзакций для базы данных «FortsReplication_Futures» заполнен. Чтобы обнаружить причину, по которой место в журнале не может быть повторно использовано, обратитесь к столбцу log_reuse_wait_desc таблицы sys.databases (row:1,col:-1)’
В службе техподдержки РТС/ММВБ мне, относительно этого, ответили, что: «в данном случе проблема заключается именно в работе SQL сервера». А почему же тогда он с другими потоками нормально работает? Пользователь на всех один и тот же. Привилегии — одни и те же. Кстати, я смотрел столбец log_reuse_wait_descr таблицы sys.databases. В первой строке содержится слово NOTHING, во второй — ACTIVE TRANSACTION, во всех остальных — NOTHING. На всякий случай привожу тест оператора CREATE DATABASE с помощью которого создавал БД, в которую должны писаться данные из глючного потока.
USE master; GO CREATE DATABASE FortsReplication_Futures1 ON PRIMARY (NAME = Arch2, FILENAME = ‘C:FortsReplicationDataFutures_ReplicationDataFutFortsReplDat1.mdf’, SIZE = 50MB, MAXSIZE = 100, FILEGROWTH = 10), ( NAME = Arch2, FILENAME = ‘C:FortsReplicationDataFutures_ReplicationDataFutFortsReplDat2.ndf’, SIZE = 50MB, MAXSIZE = 100, FILEGROWTH = 10), ( NAME = Arch3, FILENAME = ‘C:FortsReplicationDataFutures_ReplicationDataFutFortsReplDat3.ndf’, SIZE = 50MB, MAXSIZE = 100, FILEGROWTH = 10) (NAME = Archlog1, FILENAME = ‘C:FortsReplicationDataFutures_ReplicationDataFutFortsReplLog1.ldf’, SIZE = 25MB, MAXSIZE = 50, FILEGROWTH = 5), (NAME = Archlog2, FILENAME = ‘C:FortsReplicationDataFutures_ReplicationDataFutFortsReplLog2.ldf’, SIZE = 25MB, MAXSIZE = 50, FILEGROWTH = 5) ; GO
Исходя из написанного выше — из за чего может кпапризничать SQL Server?
С уважением Евгений.
P.S. Поделюсь секретом — в MS SQL Server я пока ещё очень слаб.
Исходя из написанного выше — из за чего может кпапризничать SQL Server?
Ещё раз: сиквел работает, так как ВЫ это инициируете…смотрите активные транзакции, смотрите размер этих активных транзакций, ищите повисшие транзакции…запрос я вам указал в самом первом ответе
ЗЫ: диски стоят копейки…вопрос свободного места сегодня звучит — смешно
https://www.t-sql.ru
Хорошо, Алексей. Все материалы по ссылкам, которые вы дали, я прочитаю. Большое спасибо вам за них и за помощь вобще.
Но меня смущает следующая вещь. Зимой я поймал вирус (сейчас не помню точно как он назывался) и после этого у меня впервые появились глюки с сервером и потоком, которые я и описываю здесь. Потом я купил лицензионного Касперского Internet Security, установил его и пролечил компьютер. Касперский нашёл этот вирус и подавил его. Но глюки после этого некоторое время (довольно долго) всё равно шли. Потом прекратились. А вот сейчас опять начались. Поэтому у меня вопрос — мог ли быть SQL Server испорчен вирусом и настолько сильно, что даже после подавления вируса Касперским эта «поломка» в сервере осталась? Не очень-то хочется возиться с его переустановкой и пересозданием БД и пользователя. Но вобще есть вероятность порчи SQL Server’а вирусом? Кстати вирус я тогда поймал при включенном брандмауэре — предупреждение о нём дал он. Не мог ли брандмауэр тогда прописать в реестр что-нибудь такое, что сейчас мешает приёму даннвх? Хотя перед установкой Касперского я отключил брандмауэр, но если он до этого выполнил запись в реестр, то она всё равно осталась. Может ли всё это мешать работе сервера?
Сомневаюсь, что вирус стал причиной того, что у вас переполняется лог-файл. Вы с этим «проблемным» сервером можете работать? проблемы только с P2ClientGate?
https://www.t-sql.ru
У меня этот сервер только и работает, что с P2ClientGate. Но ведь с другими-то потоками, и вчера в частности, он работал хорошо — не глючил.
В принципе, вот как раз сейчас я гоняю своё приложение с P2ClientGate и SQL Server заработал с глючным потоком скажем так хорошо: где-то на 4 с минусом, а то и на 4. Но во первых, сегодня на бирже нет торгов и соответственно потоки только переходят в режим online-репликации, а физические данные по ним не идут, а во вторых, я сделал серверу полный backup, при котором, при Simple Recovery Model, файлы журналов автоматически очищаются. Вобщем пока работает.
У меня ещё один вопрос. Вот если я хочу увеличить общую ёмкость журналов транзакций (что бы подстраховаться от ошибки 9002), то как лучше это сделать — добавить к двум имеющимся ldf-файлам третий таковой или же просто увеличить ёмкость каждого из двух имеющихся ldf-файлов, не добавляя при этом ещё один? Как лучше?
Источник
По какой причине место в журнале транзакций не может быть повторно использовано?
Вопрос
По какой причине место в журнале транзакций не может быть повторно использовано при режиме восстановления Simple Recovery Mode?
Ответы
- Предложено в качестве ответа Abolmasov Dmitry 7 июня 2012 г. 9:33
- Отменено предложение в качестве ответа TownSparrow 7 июня 2012 г. 19:51
- Помечено в качестве ответа TownSparrow 11 июня 2012 г. 6:58
Все ответы
- Предложено в качестве ответа Abolmasov Dmitry 7 июня 2012 г. 9:33
- Отменено предложение в качестве ответа TownSparrow 7 июня 2012 г. 19:51
- Помечено в качестве ответа TownSparrow 11 июня 2012 г. 6:58
Причина по которой я задал вопрос — почему место в журнале транзакций не может быть повторно использовано при режиме восстановления Simple Recovery Model следующая. Я сейчас пишу WPF-приложение, использующее MS SQL 2008 R2 с простой моделью восстановления. Это приложение должно работать с фондовой биржей РТС/ММВБ. Для связи с биржей использую их библиотеку объектов P2ClientGate. Мне нужно только создать в MS SQL базу данных и пользователя (с соответствующими привилегиями), а таблицы и данные в них объект пропишет сам автоматом. Суть моей проблемы в том, что с одними потоками репликации SQL Server работает прекрасно, а вот с другими — нет. Например, при использовании одного из потоков у меня в логе появилась следующая запись (здесь привожу её не полностью):
…descr ‘[] / e:42000 native_error:9002[Microsoft][ODBC SQL Server
Driver][SQL Server]Журнал транзакций для базы данных «FortsReplication_Futures» заполнен. Чтобы обнаружить причину, по которой место в журнале не может быть повторно использовано, обратитесь к столбцу log_reuse_wait_desc таблицы sys.databases (row:1,col:-1)’
В службе техподдержки РТС/ММВБ мне, относительно этого, ответили, что: «в данном случе проблема заключается именно в работе SQL сервера». А почему же тогда он с другими потоками нормально работает? Пользователь на всех один и тот же. Привилегии — одни и те же. Кстати, я смотрел столбец log_reuse_wait_descr таблицы sys.databases. В первой строке содержится слово NOTHING, во второй — ACTIVE TRANSACTION, во всех остальных — NOTHING. На всякий случай привожу тест оператора CREATE DATABASE с помощью которого создавал БД, в которую должны писаться данные из глючного потока.
USE master; GO CREATE DATABASE FortsReplication_Futures1 ON PRIMARY (NAME = Arch2, FILENAME = ‘C:FortsReplicationDataFutures_ReplicationDataFutFortsReplDat1.mdf’, SIZE = 50MB, MAXSIZE = 100, FILEGROWTH = 10), ( NAME = Arch2, FILENAME = ‘C:FortsReplicationDataFutures_ReplicationDataFutFortsReplDat2.ndf’, SIZE = 50MB, MAXSIZE = 100, FILEGROWTH = 10), ( NAME = Arch3, FILENAME = ‘C:FortsReplicationDataFutures_ReplicationDataFutFortsReplDat3.ndf’, SIZE = 50MB, MAXSIZE = 100, FILEGROWTH = 10) (NAME = Archlog1, FILENAME = ‘C:FortsReplicationDataFutures_ReplicationDataFutFortsReplLog1.ldf’, SIZE = 25MB, MAXSIZE = 50, FILEGROWTH = 5), (NAME = Archlog2, FILENAME = ‘C:FortsReplicationDataFutures_ReplicationDataFutFortsReplLog2.ldf’, SIZE = 25MB, MAXSIZE = 50, FILEGROWTH = 5) ; GO
Исходя из написанного выше — из за чего может кпапризничать SQL Server?
С уважением Евгений.
P.S. Поделюсь секретом — в MS SQL Server я пока ещё очень слаб.
Исходя из написанного выше — из за чего может кпапризничать SQL Server?
Ещё раз: сиквел работает, так как ВЫ это инициируете…смотрите активные транзакции, смотрите размер этих активных транзакций, ищите повисшие транзакции…запрос я вам указал в самом первом ответе
ЗЫ: диски стоят копейки…вопрос свободного места сегодня звучит — смешно
https://www.t-sql.ru
Хорошо, Алексей. Все материалы по ссылкам, которые вы дали, я прочитаю. Большое спасибо вам за них и за помощь вобще.
Но меня смущает следующая вещь. Зимой я поймал вирус (сейчас не помню точно как он назывался) и после этого у меня впервые появились глюки с сервером и потоком, которые я и описываю здесь. Потом я купил лицензионного Касперского Internet Security, установил его и пролечил компьютер. Касперский нашёл этот вирус и подавил его. Но глюки после этого некоторое время (довольно долго) всё равно шли. Потом прекратились. А вот сейчас опять начались. Поэтому у меня вопрос — мог ли быть SQL Server испорчен вирусом и настолько сильно, что даже после подавления вируса Касперским эта «поломка» в сервере осталась? Не очень-то хочется возиться с его переустановкой и пересозданием БД и пользователя. Но вобще есть вероятность порчи SQL Server’а вирусом? Кстати вирус я тогда поймал при включенном брандмауэре — предупреждение о нём дал он. Не мог ли брандмауэр тогда прописать в реестр что-нибудь такое, что сейчас мешает приёму даннвх? Хотя перед установкой Касперского я отключил брандмауэр, но если он до этого выполнил запись в реестр, то она всё равно осталась. Может ли всё это мешать работе сервера?
Сомневаюсь, что вирус стал причиной того, что у вас переполняется лог-файл. Вы с этим «проблемным» сервером можете работать? проблемы только с P2ClientGate?
https://www.t-sql.ru
У меня этот сервер только и работает, что с P2ClientGate. Но ведь с другими-то потоками, и вчера в частности, он работал хорошо — не глючил.
В принципе, вот как раз сейчас я гоняю своё приложение с P2ClientGate и SQL Server заработал с глючным потоком скажем так хорошо: где-то на 4 с минусом, а то и на 4. Но во первых, сегодня на бирже нет торгов и соответственно потоки только переходят в режим online-репликации, а физические данные по ним не идут, а во вторых, я сделал серверу полный backup, при котором, при Simple Recovery Model, файлы журналов автоматически очищаются. Вобщем пока работает.
У меня ещё один вопрос. Вот если я хочу увеличить общую ёмкость журналов транзакций (что бы подстраховаться от ошибки 9002), то как лучше это сделать — добавить к двум имеющимся ldf-файлам третий таковой или же просто увеличить ёмкость каждого из двух имеющихся ldf-файлов, не добавляя при этом ещё один? Как лучше?
Источник