|
Хранение внешних файлов | ☑ | ||
---|---|---|---|---|
0
Pro-tone
31.10.11
✎
13:02
|
В связи разработкой нового функционала собственно встает вопрос. Где хранить лучше внешние файлы ? Как правило это сканы входящих доков, которые получают по почте и через сканер продажники.
Сисадмин наш всеми фибрами против хранения в самой базе, т.к. по нашим подсчетам в год манагеры накидывать будут до 40 гиг только одних картинок и что из-за этого распухания могут начаться глюки с потерей рабочих данных. Он за хранение на внешнем прицепе. Я смотрю типовую "библиотеку ст. подсистем", и в ней хранение файлов сделано во временном хранилище самой базы. И прежде чем переделывать под внешнее файловое хранилище хотелось бы узнать, как все-таки и где оптимальнее хранить файлы ? |
|||
1
Diabolicum 1C
31.10.11
✎
13:04
|
И каким образом "распухание" приведет к потере рабочих данных? И чем собственно отличаются "картинки" от "данных" с позиции СУБД?
|
|||
2
shuhard
31.10.11
✎
13:05
|
(0) админ прав,
хранить 40 Гбайт в 1С не стоит |
|||
3
Pro-tone
31.10.11
✎
13:06
|
(1) ничем, просто распухание базы само по себе вещь такая, которую пытаются минимизировать, либо уменьшить размер базы, а тут мы получим обратный процесс
|
|||
4
Defender aka LINN
31.10.11
✎
13:07
|
40 гигов в год. Всего-то? :)
|
|||
5
kosts
31.10.11
✎
13:07
|
(0) Храни во второй БД, подключай по com
|
|||
6
Maxus43
31.10.11
✎
13:07
|
храните во внешнем, в сасой 1с хранить путь к файлу на внешнем носителе
|
|||
7
Diabolicum 1C
31.10.11
✎
13:07
|
Други, у меня база более 150 гиг данных. И ничего. Не теряется как-то:)
|
|||
8
Defender aka LINN
31.10.11
✎
13:07
|
(3) Как ни крути, но тебе куда-то их придется засунуть.
|
|||
9
Александр_
Тверь 31.10.11
✎
13:07
|
(6) +1
только сделайте что-нибудь вроде доменной шары и там хранилище, чтобы удобнее при необходимости физически менять местоположение. |
|||
10
Pro-tone
31.10.11
✎
13:08
|
(5) что за страшный бубен ты предлагаешь =))
|
|||
11
Александр_
Тверь 31.10.11
✎
13:09
|
(7) большой размер БД имеет свои минусы.
1. Долго делается бэкап. 2. Долго разварачивается бэкап в случае необходимости 3. долго и тяжело копируется бэкап на другой сервер. 4. Работа с тобой БД может быть медленее и т.д. |
|||
12
Pro-tone
31.10.11
✎
13:09
|
(8) ну можно в папку на прицепе, а в базе только строку пути
|
|||
13
Александр_
Тверь 31.10.11
✎
13:10
|
(5) правильный пример того как делать нельзя!
|
|||
14
ptiz
31.10.11
✎
13:10
|
(0) Голосовалка где? Я - за внешнее хранение.
|
|||
15
Pro-tone
31.10.11
✎
13:11
|
(6) (9) пока только такие мысли как раз
|
|||
16
Diabolicum 1C
31.10.11
✎
13:11
|
(11) Согласен с первыми 3 пунктами. Для решения (4) нужно всего лишь с умом и прямыми руками подойти к оптимизации.
|
|||
17
Diabolicum 1C
31.10.11
✎
13:12
|
(11) Ну и опять таки, разностный бэкап никто не отменял.
|
|||
18
Defender aka LINN
31.10.11
✎
13:12
|
(13) В БСП есть подсистема, которая именно это и делает. Problem, officer? *trollface*
|
|||
19
Александр_
Тверь 31.10.11
✎
13:13
|
(16) конечно можно, но это дополнительные затраты. А плюсы от хранения в БД совершенно не очевидны.
Получать картинки из БД - это нагружать сервер БД, нагружать сервер предприятия, в то время как получение данных со стороннего файлового хранилища проще и быстрее.Хотя возможны свои нюансы. |
|||
20
Александр_
Тверь 31.10.11
✎
13:14
|
(17) не знаю как у вас, а у меня отрицательный опыт использования разностных бэкапов. По времени получается не быстрее чем полный бэкап, а проблем больше.
|
|||
21
Pro-tone
31.10.11
✎
13:14
|
(19) надо бэкапить внешними средствами уже тогда хранилище, например
|
|||
22
Лефмихалыч
31.10.11
✎
13:15
|
(0) у нас в базе всё хранится. Таблица со сканами вести 1.3Тб, полет нормальный
|
|||
23
Александр_
Тверь 31.10.11
✎
13:15
|
(21) это не представляет проблемы, на мой взгляд. Один раз настроил и забыл (настройка пару минут).
|
|||
24
Pro-tone
31.10.11
✎
13:16
|
(23) согласен
|
|||
25
Pro-tone
31.10.11
✎
13:16
|
(22) мда, не подымешь такое если рухнет ))
|
|||
26
Александр_
Тверь 31.10.11
✎
13:18
|
(25) да.. спорное решение. очень спорное.
|
|||
27
Pro-tone
31.10.11
✎
13:20
|
эх, почему в БСП не сделали хранение за пределами базы =(
|
|||
28
Лефмихалыч
31.10.11
✎
13:22
|
(25) размер от методов хранения зависит слабо, так что, если рухнет, похрену, как оно реализовано
|
|||
29
Defender aka LINN
31.10.11
✎
13:24
|
(27) А что, пост (18) скрытый, что ли?
|
|||
30
Diabolicum 1C
31.10.11
✎
13:25
|
(28) +1
А та самая пресловутая доп нагрузка на сервер - но она ведь никуда не денется. Просто перераспределится на другие каналы. |
|||
31
pumbaEO
31.10.11
✎
13:30
|
Неправильная у вас БСП. Сделано там хранение или в базе или же "в томах на диске". Константа "ТипХраненияФайлов" - "Глобальная настройка - где хранятся файлы - в базе как ХранилищеЗначения или в каталоге на диске"
|
|||
32
Pro-tone
31.10.11
✎
13:36
|
(31) вопрос в том можно ли указать путь теперь где именно на диске
|
|||
33
pumbaEO
31.10.11
✎
13:40
|
Справочник ТомаХраненияФайлов, настройки есть как для виндовых шар, так и для linux каталога.
|
|||
34
Pro-tone
31.10.11
✎
14:28
|
(33) прописал туда путь к сетевой папке, указал ТипХраненияФайлов = В томах на диске, при добавление нового прикрепл. файла он в сетевую папку не копируется, открывается с диска локально лишь
|
|||
35
acsent
31.10.11
✎
14:31
|
прав у сервера 1с не хватает
|
|||
36
Pro-tone
31.10.11
✎
14:39
|
(35) папка расшарена для всех
|
|||
37
Pro-tone
31.10.11
✎
14:41
|
пользователей домена
|
|||
38
MaxS
31.10.11
✎
14:46
|
Если разделить базу с картинками, то как быть с ссылочной целостностью?
Например, подняли бэкап предыдущего дня. Значит в хранилище картинок будут картинки с зависшими ссылками. Или хранилище упало, восстановили, в базе 1с будут зависшие ссылки на картинки. |
|||
39
acsent
31.10.11
✎
14:47
|
а сервер под доменным пользователем крутится?
|
|||
40
Pro-tone
31.10.11
✎
14:56
|
(38) по идее если подымается бэкап базы вместе бэкапом папки с файлами, то там не должно быть никакой потери ссылочной целостности = )
|
|||
41
Pro-tone
31.10.11
✎
14:57
|
(39) ну да под любым доменным пользователем - любые действие в папке
|
|||
42
Pro-tone
31.10.11
✎
16:56
|
(31) а ты пробовал вообще в БСП хранить файлы "В томах на диске" ?
Я вот долго смотрю в код и в упор не вижу что вообще оно хоть каким-то боком пытается засунуть файл вне базы )) Все дороги ведут в одно место там - во внутреннее хранилище в самой базе при попытке добавить файл )) А по (31) как ты написал по-видимому файлы хранить вне базы оно будет при выгрузке из 1С:Документооборот. |
|||
43
Dimasik2007
31.10.11
✎
17:25
|
(0) Второй год используется внешнее хранилище с Raid-6. В месяц проходит сканов документов примерно на 15-20 ГБ. В базе только линки на текущее хранилище (в нем статус активно и url), в 1С данные храняться как ссылка на это хранилище и относительный путь к файлу (пример \2011\10\29\1-91315#РАСХ#1_1#v1#ИНН=7715671546.PNG)
|
|||
44
pumbaEO
31.10.11
✎
18:21
|
Иначе // в базе-приемнике файлы должны храниться в томах на диске - переместим разархивированный файл на том
ФайлИсх = Новый Файл(ПолныйПутьФайлаНаДиске); РазмерФайла = ФайлИсх.Размер(); ВремяИзменения = Объект.ДатаМодификацииУниверсальная; ИмяБезРасширения = Объект.Наименование; Расширение = Объект.Расширение; Зашифрован = Объект.Зашифрован; ПолныйПутьНовый = ФайлИсх.Путь + ИмяБезРасширения + "." + Объект.Расширение; ПереместитьФайл(ПолныйПутьФайлаНаДиске, ПолныйПутьНовый); ПутьКФайлуНаТоме = ""; СсылкаНаТом = Неопределено; // добавить в один из томов (где есть свободное место) ФайловыеФункции.ДобавитьНаДиск(ПолныйПутьНовый, ПутьКФайлуНаТоме, СсылкаНаТом, ВремяИзменения, "", ИмяБезРасширения, Расширение, РазмерФайла, Зашифрован); Объект.ПутьКФайлу = ПутьКФайлуНаТоме; Объект.Том = СсылкаНаТом.Ссылка; КонецЕсли; Пробовал. Вот кусок кода из Общий модуль - Присоединенные файлы. Версия БСП 1.1.3.1 |
|||
45
Pro-tone
01.11.11
✎
10:30
|
(43) хорошо =)
(44) может я что-то не то делаю. Но в БСП я делаю так. Я параметризовал команду "ПрисоединенныеФайлы" по документу "Счета на оплату (полученные)". Открываю форму документа "СчетНаоплатуПолученный" - "Присоединенные файлы" (Панель навигации формы.Перейти) - появляется форма списка прис. файлов, жму "Добавить" - выбираю файл, открывается форма элемента, и вот на этом этапе судя по коду файл уже помещен в хранилище базы вот такой конструкцией: Если НЕ ПоместитьФайлы(ПомещаемыеФайлы, ПомещенныеФайлы, , Ложь, ФормаВладелец.УникальныйИдентификатор) Тогда ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( НСтр("ru = 'Ошибка при помещении файла в хранилище: %1'"), Файл.ПолноеИмя); КонецЕсли; Намека на копирование в место где-то вне базы там нет, и в процедуру (44) ДобавитьФайлыВТомаПриРазмещении(СоответствиеПутейФайлов, ТипХраненияФайлов) исполнение кода не идет. |
|||
46
pumbaEO
01.11.11
✎
11:24
|
||||
47
GenV
01.11.11
✎
11:33
|
(45) Плохо смотрел. Файл всегда сначала помещается в хранилище для передачи на сервер, а затем либо сохраняется из хранилища в реквизит, либо в фал в томах (в этом случае через ФайловыеФункции.ДобавитьНаДиск) ...
|
|||
48
Leksus
01.11.11
✎
11:38
|
(0) Хочешь в базе, хочешь в томах (оба способа есть в БСП), либо в отдельной инф. базе типа Документооборот со связкой через web-сервисы (опять же есть в БСП).
Потеря данных из-за размера базы? Это че за бред? У нас например хранилось 200 Гиг присоединенных файлов в базе и все было ок! Щас переделали на хранение в Документообороте, т.к. бэкапы по 400 Гиг стало долго разворачивать |
|||
49
Ritofc
01.11.11
✎
11:47
|
С целью повышения общей образованности спрашиваю: резервное копирование файлов, расположенных в "томах" БСП должно выполняться отдельно?
(0) Сисадмин против по каким соображениям? Из-за размера бэкапов? (это совсем не проблема, если не использовать только полные копии или того хуже копирование каталогов) |
|||
50
Pro-tone
01.11.11
✎
11:56
|
(46) делал точно также как и ты, только форма списка немного другая у меня - вот такая
http://imglink.ru/show-image.php?id=a98ecabef581ad755db054b41413605e не видно из твоего видео что файл скопировался в \\sosna\share у меня все также, только файлов нет физически по тому пути в томе хранения файлов |
|||
51
GenV
01.11.11
✎
11:59
|
(50) В БСП ест Файлы и есть Присоединенные файлы ...
|
|||
52
Pro-tone
01.11.11
✎
11:59
|
(48) (49) у нас несколько баз, бэкапы средствами 1С раскиданы по времени ночью, при большом размере базе возможно не будет хвататать и целой ночи ))
|
|||
53
pumbaEO
01.11.11
✎
12:01
|
Копируется в шару + дата (20110101). БСП 1.1.3.1
|
|||
54
Ritofc
01.11.11
✎
12:04
|
(52) тут не ночь длиннее нужна, а понимание того, что такое разностный бэкап и бэкап журнала транзакций. После этого и полу часа для резервных копий станет очень много. А вот отдельно каждую ночь резервировать все файловое хранилище - это по истине ерунда. Или ты файлы бэкапить не будешь? Или ты файловое хранилище привяжешь к системе контроля версий какой-нибудь, а из нее уже диф. бэкапы выжимать будешь? :)
|
|||
55
Pro-tone
01.11.11
✎
12:08
|
(54) ну а если не бэкапить все файловое хранилище, то файлов по ссылкам ведь может и не оказаться при подъеме бэкапа...
|
|||
56
vde69
01.11.11
✎
12:10
|
(0) поставь ограничение на размер файла в 400к (вполне нормально для скана А4), я сильно сомневаюсь что манагеры смогут за год запихнуть в базу 100 000 сканов.
У меня база от файлов пухнет на пару гигов в год :) |
|||
57
Ritofc
01.11.11
✎
12:12
|
(55) вот к тому и веду, что вы лечите порез на ноге, которую чуть выше уже ампутируют. :)
Оставь все файлы в базе, для MS SQL 40 гб - это ерунда, бэкапы настрой дифференциальные (за несколько минут пролетать будут, если все грамотно сделать), раз в неделю - месяц можно делать полные бэкапы. В итоге и файлы бэкапиться будут, и данный 1С. |
|||
58
Ritofc
01.11.11
✎
12:14
|
(56) а смысл ограничения? Пусть хоть фильмы туда заливают. Просто в запросах не забывай про это. Что мне делать, например, если мне договор на 100 страницах пришел? :)
|
|||
59
Pro-tone
01.11.11
✎
12:15
|
(53) вроде у меня была ошибка с путем в томе, по указан. пути не было такой папки, БСП не сделали окно предупреждения, поэтому я искал в той папке которая видать не была указана, сейчас еще раз задал путь, вроде стало копировать в папку с датой =)
|
|||
60
vde69
01.11.11
✎
12:17
|
(58) в том и смысл, что-бы рационально использовать и софт и железо и людские ресурсы.
Это по началу кажется что тебя урезали, а вообще 500к хватает в 99.999% случаев, а там где не хватает всегда можно сделать кусковой архив. |
|||
61
Pro-tone
01.11.11
✎
12:18
|
(58) прошу прощения, может быть за глупый вопрос, но SQL только в планах, поэтому про дифференциальные бэкапы я впервые слышу =) что это такое и где об этом почитать можно ?
|
|||
62
vde69
01.11.11
✎
12:21
|
(61) есть фулл бекап, это полная копия базы от него делаются диф бекапы (только то что изменилось за последее время)
например фул бекап 1 сент 100 гиг, и каждые 5 минут диф бекапы по 0.5 метра |
|||
63
Ritofc
01.11.11
✎
12:28
|
http://msdn.microsoft.com/ru-ru/library/ms190218.aspx - это формальное описание, в (62) все в принципе нужное описано.
|
|||
64
D_Pavel
01.11.11
✎
12:33
|
(0) Я храню сканы документов в файлах. Это позволяет быстрее делать бэкапы базы не зависимо от картинок.
|
|||
65
Pro-tone
01.11.11
✎
12:44
|
(62) (63) спасибо, буду читать про диф. бэкапы = )
|
|||
66
Pro-tone
01.11.11
✎
13:01
|
(57) в MS SQL админ мне отказал, сказав что дорого, не дадут денег, будет на PostgreSQL, а там я не знаю есть ли частичные бэкапы или нет
|
|||
67
vde69
01.11.11
✎
13:14
|
(66) с каких пор админ определяет что дорого а что нет?
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |