Ошибка при приреплении файлов

Ошибки работы в системе и их устранение
Ответить
kvz
Новичок
Сообщения: 2
Зарегистрирован: 25 июл 2017, 06:59
2 + 2 = ?: 4

Ошибка при приреплении файлов

Сообщение kvz » 25 июл 2017, 07:12

При прикреплении файлов выходит ошибка
Кажись что-то заполнено
как очистить, желательно не удаляя прикрепленные файлы за всю историю?
на дисках место есть несколько десятков Гб...

System.Data.SqlClient.SqlException (0x80131904): Не удалось выделить место для объекта "dbo.BLOB_DATA" в базе данных "FD - FossDoc", поскольку файловая группа "PRIMARY" переполнена. Выделите место на диске, удалив ненужные файлы или объекты в файловой группе, добавив дополнительные файлы в файловую группу или указав параметр автоматического увеличения размера для существующих файлов в файловой группе.

Выполнение данной инструкции было прервано.

Server stack trace:

at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection)

at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection)

at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning()

at System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj)

at System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString)

at System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async)

at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, DbAsyncResult result)

at System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(DbAsyncResult result, String methodName, Boolean sendToPipe)

at System.Data.SqlClient.SqlCommand.ExecuteNonQuery()

at Foss.FossDoc.ApplicationServer.DatabaseProvider.MSSQL.Connection.BinaryStream.Write(Byte[] buffer, Int32 offset, Int32 count)

at System.IO.BufferedStream.Write(Byte[] array, Int32 offset, Int32 count)

at Foss.FossDoc.ApplicationServer.DatabaseProvider.StreamReadAccessControl.Write(Byte[] buffer, Int32 offset, Int32 count)

at Foss.TemplateLibrary.StreamCopy.Copy(Stream source, Stream destination, Int32 bufferSize)

at Foss.FossDoc.ApplicationServer.ObjectDataManagment.DatabaseProviderGlue.EmulationRouterLayer.EmulationRouterLayer.DetachedStream.CommitParentStream(Boolean synchronizePosition)

at Foss.FossDoc.ApplicationServer.ObjectDataManagment.DatabaseProviderGlue.EmulationRouterLayer.EmulationRouterLayer.DetachedStream.Close()

at Foss.FossDoc.ApplicationServer.ObjectDataManagment.ObjectDataManager.StreamWriteAccessControl.Close()

at System.IO.Stream.Dispose()

at Foss.FossDoc.ApplicationServer.IO.StreamExWrapper.Dispose(Boolean disposing)

at System.IO.Stream.Close()

at System.IO.Stream.Dispose()

at Foss.FossDoc.ApplicationServer.UserSession1.DataObject.SaveChanges()

at System.Runtime.Remoting.Messaging.StackBuilderSink._PrivateProcessMessage(IntPtr md, Object[] args, Object server, Int32 methodPtr, Boolean fExecuteInContext, Object[]& outArgs)

at System.Runtime.Remoting.Messaging.StackBuilderSink.SyncProcessMessage(IMessage msg, Int32 methodPtr, Boolean fExecuteInContext)



Exception rethrown at [0]:

at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg)

at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)

at DS.ITransactiveEntity.SaveChanges()

at Foss.FossDoc.ObjectModel.Data.ObjectHolder._SaveChanges()

at Foss.FossDoc.ObjectModel.Data.ObjectHolder.InternalSaveChanges(ObjectHolder parent)

at Foss.FossDoc.ObjectModel.Data.ObjectHolder.SaveChanges()

at Foss.FossDoc.ObjectModel.DataRepresentation.View.BusinessLogic.Attachment.Attachment.Save()

at Foss.FossDoc.ObjectModel.DataRepresentation.View.BusinessLogic.Attachment.AttachmentContainerView.Save()

at Foss.FossDoc.ObjectModel.DataRepresentation.View.BusinessLogic.Attachment.AttachmentsInplaceForm.SaveRoutine()

at Foss.FossDoc.ObjectModel.DataRepresentation.View.BasePropertiesControl.Save()

at Foss.FossDoc.ObjectModel.DataRepresentation.Plugins.Forms.InplaceFormCollectionContainerControl.Save()

at Foss.FossDoc.ObjectModel.DataRepresentation.Plugins.Forms.DefaultWindowForm.Save()

at Foss.FossDoc.Messaging.EncryptionSignature.Plugin.WindowFormObjectSiteExtended.SavePersistObject()

at Foss.FossDoc.ObjectModel.DataRepresentation.View.ObjectBrowser.WindowFormObjectSite.SaveObject()

at Foss.FossDoc.Messaging.EncryptionSignature.Plugin.WindowFormObjectSiteExtended.SaveObject()

at Foss.FossDoc.ObjectModel.DataRepresentation.Plugins.Forms.InplaceFormCollectionContainerControl.SaveObject()

at Foss.FossDoc.ObjectModel.DataRepresentation.Plugins.Forms.InplaceFormCollectionContainerControl._ActionSaveAndCloseObject_Perform(Object sender, EventArgs e)

at Foss.FUIS.Action.OnPerform(EventArgs e)

at Foss.FUIS.Action.Do()

at Foss.FUIS.Action.Click(Object sender, EventArgs e)

at System.Windows.Forms.ToolStripItem.RaiseEvent(Object key, EventArgs e)

at System.Windows.Forms.ToolStripButton.OnClick(EventArgs e)

at System.Windows.Forms.ToolStripItem.HandleClick(EventArgs e)

at System.Windows.Forms.ToolStripItem.HandleMouseUp(MouseEventArgs e)

at System.Windows.Forms.ToolStripItem.FireEventInteractive(EventArgs e, ToolStripItemEventType met)

at System.Windows.Forms.ToolStripItem.FireEvent(EventArgs e, ToolStripItemEventType met)

at System.Windows.Forms.ToolStrip.OnMouseUp(MouseEventArgs mea)

at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)

at System.Windows.Forms.Control.WndProc(Message& m)

at System.Windows.Forms.ScrollableControl.WndProc(Message& m)

at System.Windows.Forms.ToolStrip.WndProc(Message& m)

at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)

at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)

at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

ClientConnectionId:8724e427-7a2a-4487-895f-1f7b0f8ee262

Error Number:1105,State:2,Class:17
Вложения
Error.jpg
Error.jpg (29.59 КБ) 15064 просмотра

Аватара пользователя
Andrew
Разработчики FossDoc
Сообщения: 875
Зарегистрирован: 26 дек 2008, 16:03

Re: Ошибка при приреплении файлов

Сообщение Andrew » 25 июл 2017, 08:43

У вас вероятно, установлен SQL Express. У него есть предел по базе - не более 10 ГБ, и скорее всего вы его достигли.
Остановите сервер FossDoc, снимите бекап базы средствами SQL.

Далее варианты:

1) вы где-то достали "полноценный SQL Server", подняли там бекап и живете дальше
2) не факт что сходу поможет, но можно включить режим FileStream. В этом случае ваши файлы (которые и заняли объем) будут вытеснены на диск, и база сама станет меньше. Но эта возможность для не-старых редакций, SQR Server 2008 R2 и новее. Когда вы его включите, назад дороги нет - но он обычно работает лучше, чем "классика" без него.
Чтобы включить - https://fossdoc.com/ru/sed-docs/filestream

Очистите логи, см.лог MSSQL.log, что оно там пишет. Если увидите, что пошел процесс преобразования (оно будет писать про порции обработки) значит окей.
На более свежих версиях FossDoc режим включается отдельно в конфиге. На старых - сработает сам сходу, если увидит что SQL Server это поддерживает.

Сама конвертация будет не-быстрой, но возможно это поможет.

kvz
Новичок
Сообщения: 2
Зарегистрирован: 25 июл 2017, 06:59
2 + 2 = ?: 4

Re: Ошибка при приреплении файлов

Сообщение kvz » 25 июл 2017, 12:26

Если есть риск, что "назад дороги нет"
Есть идея установить SQL 2008/2012
Будет ли база работать не смотря на версии? или надо как то конвертировать?
не слетят ли данные ? и какую версию лучше использовать?

Аватара пользователя
Andrew
Разработчики FossDoc
Сообщения: 875
Зарегистрирован: 26 дек 2008, 16:03

Re: Ошибка при приреплении файлов

Сообщение Andrew » 25 июл 2017, 12:33

Вы, чтобы не переживать установите 2012 SQL где-либо на любой другой машине, потренируйтесь поднять там бекап и даже запустить там FossDoc. Это лучшее решение, чтобы с одной стороны не переживать, а с другой все нюансы вы уже узнаете, перед тем, как уже это делать на настоящем сервере.

Обычно бекап SQL Server если снят с старой более версии поднимается на более новой, НЕ поднимается если наоборот (например если у вас был 2012 а вы его на 2008 хотите поднять).

Ответить

Вернуться в «Ошибки работы»