LINUX.ORG.RU
ФорумAdmin

[1C][wine] Как додружить 1С и MySQL под Linux?

 ,


0

1

Админю предприятие. Значит есть сервер и 50 клиентов. На сервере держится БД 1С 7.7, а на клиентах собственно програма 1С, которая по сети берет БД и работает с ней. В связи с плановым переходом на СПО мне как админу нужно, чтобы это все работало. И вот что я сделал. Установил под вайном 1С, смонтировал удаленную БД на самба, но не всегда 1С запускается - раз через раз: http://imglink.ru/show-image.php?id=528cba4c2873b1b7f5aa3d43e2226418 Ни как не могу понять, в чем проблема, вроде кирилических букв в путях нет. ХЗ. И как я читал и слышал от умных людей, 1С на прямую не работает с MySQL. 1С 7.7 вообще, а 1С 8 вроде и работает, но часто такие данные выдает, что охренеть можно. Нельзя чтобы 1С думала что работает с MSSQL, но это был MySQL? Не гоже и БД под ванном гонять...

Попробуй заменить MySQL на PostgreSQL - там всё проще. И посмотри на продукты http://etersoft.ru/

gserg ★★
()

c MySQL никак, вообще. С Posgres работает 7.7 через selta@etersoft (транслятор запросов такой, сам не пробовал), 8.1 и 8.2 - из коробки, но иногда сцуко странно. Во избежание появления седых волос в неожиданных местах с восьмерками рекомендую использовать DB2-ExC

anon1984
()

а лучше оставь 7.7 в файловом варианте (на серваке через wine), клиентов пускай работать на сервер через FreeNX

anon1984
()

gserg, anon1984: интересные варианты, нужно попробовать. Но все же в планах на восмерку переходить. Вот сделаю, например, все будет работать, а потом опять переделывать. Или там просто обновиться и нет проблем? И еще, для чего нужен DB2-ExC и FreeNX, раньше такого не слышал?

KERNEL_PANIC ★★★
() автор топика
Ответ на: комментарий от KERNEL_PANIC

>DB2-ExC
IBM DB2 ExpressC - бесплатная версия бимеровской СУБД. из ограничений - использует только 2 Гб ОЗУ и 2 ядра одного CPU. с ней восьмерка работает поадекватней Postgres (хотя попробуйте, может и с постгрес все будет хорошо). FreeNX нужен, если будете делать терминальный сервер

anon1984
()
Ответ на: комментарий от anon1984

кроме того, кто-то из местных знающих людей говорил, что в каких-то древних версия DB2 были еще менее суровые ограничения

anon1984
()

1. 7.7 работает либо с MSSQL 2000/2005 (с подменой либы), либо с Postgres (через Selta от эзерсофта). 2. Есть внешняя компонента «быстрые регистры», которая позволяет вынести хранение регистров в почти любую СУБД (с офигенным приростом производительности), но и стоит ого-го. 3. 8.0 работала только с MSSQL, 8.1 MSSQL/Postgres, 8.2 MSSQL/Postgres/DB2/Oracle 4. У нас стоит 8.2 + постгрес, причем отлично. Особенно отлично стало когда перешли на другой тип блокировок. 5. С использованием Postgres phppgadmin в принципе нафиг не нужен. Переиндексацию, вакуум и прочая проще через командную строку запускать. 6. Дальше, по поводу семерки. Обновляйтесь уж. Давно пора. С 1с под вайном могут быть проблемы с локами. В принципе даже самбу надо под семерку немного затачивать, балуясь с lock/oplocks.

OldFornit
()
Ответ на: комментарий от KERNEL_PANIC

> Но все же в планах на восмерку переходить

это много более чем просто переустановить софт. затянуться может на года

VladimirMalyk ★★★★★
()

с семеркой не получится! Выход - иметь один вендосервер с семеркой и раздавать её тонкими клиентами на линукс-машины!

ipwww ★★
()
Ответ на: комментарий от zerropull

админю Wine@etersoft+RX@etersoft+1c8.2+postgres - задрало!!! зависает, проц грузит и невиданные фишки 1с выкидывает

anykey_mlya
()
Ответ на: комментарий от KERNEL_PANIC

и съедобный и вкусный. Но идеология там уже немного другая. Жесткое разделение кода на клиент-серверный.

OldFornit
()
Ответ на: комментарий от OldFornit

> Особенно отлично стало когда перешли на другой тип блокировок.

Каким образом? У нас блокировки парализовали всю работу к чертям собачьим. Postgres же (вроде?) не умеют блокировку по записям, а не по таблицам.

strangeman ★★★★
()
Ответ на: комментарий от strangeman

в свойствах корня дерева конфигурации выставляем тип блокировок - Управляемый. Сохраняемся, применяем и все. Моментально пропала ругань на блокировки, скорость работы возросла.

Может в паре мест придется потом закомментировать установки блокировок вручную - ничего страшного, это наследие автоматических.

OldFornit
()
Ответ на: комментарий от strangeman

> Postgres же (вроде?) не умеют блокировку по записям, а не по таблицам.

И давно с ним такое приключилось?

AnDoR ★★★★★
()
Ответ на: комментарий от OldFornit

>4. У нас стоит 8.2 + постгрес, причем отлично. Особенно отлично стало когда перешли на другой тип блокировок.

Какой размер базы у вас, за какой период?

straus
()
Ответ на: комментарий от straus

бинарный дамп весит гиг, в развернутом виде - чуть меньше 10-и гигов. Пока за полтора года, но остатки перенесены с предыдущих 4-х.

OldFornit
()
Ответ на: комментарий от OldFornit

>бинарный дамп весит гиг, в развернутом виде - чуть меньше 10-и гигов.

Мда, не густо. У нас база в mssql`е весит 150 гиг и производительность нас не радует, вот я думаю что с ней будет на постгресе.

anonymous
()
Ответ на: комментарий от anonymous

может стоит почитать анализы производительности в зависимости от размера базы? В целом размер коррелирует с производительностью меньше, чем корректность запросов/механизмов/настройки железа.

OldFornit
()
Ответ на: комментарий от OldFornit

>может стоит почитать анализы производительности в зависимости от размера базы? В целом размер коррелирует с производительностью меньше, чем корректность запросов/механизмов/настройки железа.

Почитать анализы это конечно интересно, но вот мы на одной и той же конфигурации эксплуатируем систему и видим значительное сползание производительности, где то в районе 100Гб размера базы, т.е. при этом запросы/механизмы/железо не меняются. Понятно, что можно залезть в конфигурацию и «всё там заоптимизировать», но для нас это дорого.

anonymous
()
Ответ на: комментарий от KERNEL_PANIC

>Интересно, за какое время столько накопилось?

База растёт так за один год на типовой УТ10

anonymous
()

>И как я читал и слышал от умных людей, 1С на прямую не работает с MySQL. 1С 7.7 вообще, а 1С 8 вроде и работает, но часто такие данные выдает, что охренеть можно.

Да, не работает.

kernelpanic ★★★★★
()
Ответ на: комментарий от KERNEL_PANIC

>все же в планах на восмерку переходить. Вот сделаю, например, все будет работать, а потом опять переделывать.

Centos + 1c 8.2 + Postgres 8.4.1 с патчами от 1с - все работает. Конфигурацию (для 8.1) делал пейсатель 1с, который линуксов не то что не видел, не слышал про них ни разу. Скормил конфигурацию - все само сконвертировалось и заработало. Насчет wine не скажу, клиенты ходят с терминального сервера.

kernelpanic ★★★★★
()
Ответ на: комментарий от kernelpanic

>Конфигурацию (для 8.1) делал пейсатель 1с, который линуксов не то что не видел, не слышал про них ни разу. Скормил конфигурацию - все само сконвертировалось и заработало.

Конфигурация не зависит ни от ОС, ни от типа БД. Т.е. ни чего ни куда не конвертится, и код 1С о среде в которой работает сервер 1с или база данных и даже какая база данных ни чего не знает.

anonymous
()
Ответ на: комментарий от anonymous

Я в такие дебри не лезу. У нас для этого есть специально обученые люди.

ни чего ни куда не конвертится

Я про конвертацию конфигурации 8.1 в 8.2

kernelpanic ★★★★★
()
Ответ на: комментарий от anonymous

это то понятно. Только в любом случае - решать проблему надо комплексно. Тот же самый режим блокировок. Может отключение какой-нибудь избыточной аналитики. Отказ от использование партий и переход на РАУЗ, если это возможно.

OldFornit
()

>Ни как не могу понять, в чем проблема, вроде кирилических букв в путях нет. ХЗ.

Пробелов не должно быть в пути

И как я читал и слышал от умных людей, 1С на прямую не работает с MySQL.


не работает, но не так как ты думаешь

1С 7.7 вообще, а 1С 8 вроде и работает, но часто такие данные выдает, что охренеть можно.


Во-первых, активно используются хранимки.
Во-вторых, оно написано под MS SQL и его T-SQL.
То есть, MySQL как база для хранения основной базы идёт лесом — это слишком тупая база, которая и хранимки и транзанкции научилась поддерживать только недавно. И то, она не поддерживает T-SQL.

В-третьих, там можно через COM делать к другой базе вызовы через ADO через ODBC, чтобы обращаться к другой базе. Таким образом к MySQL базе обращаться можно, и это даже работает быстрее, чем через стандартные базовые объекты. См. под семёрку компоненты «Быстрые регистры» от vtools.ru (это где работал В. Иванов, автор 2С) и компоненты Rainbow, 1C++ (и документацию к 1С++).

Но это означает, что логику нужно вручную переписать через ADO/ODBC. То есть, велосипед (правда, этот велосипед работает быстрее, чем методы в платформе).

Хранить базу в MySQL вместо MSSQL не получится, это слишком разные сервера СУБД, слишком разные диалекты SQL.

Нельзя чтобы 1С думала что работает с MSSQL, но это был MySQL?


Для PostgreSQL Etersoft делал костыль под названием «транслятор запросов», который переводил запросы MSSQL-ного T-SQL в Postgres-SQL. Костыль, однако. Другим костыльным методом удавалось запустить 7.7 под IBM DB2 или Oracle. Вручную патчился бинарник платформы 7.7 заменой строки ODBC-соединения на нужный. Тоже вроде бы работало, но всё-таки диалекты SQL сильно разные.

anonymous
()

как админу, у тебя 2 варианта:
1. файлсерверный вариант, сеть расшарена через SAMBA. Говорят, работает быстрее родного (а родной файлсерверный работает быстрее родного MSSQL-ного).
2. терминальные клиенты везде: ставишь на виндосервер Citrix/Radmin/стандартный сервер терминалов, на клиентах настраиваешь терминалы, ярлыки, чтобы заходили по сети на терминальный сервер, и работали фактически на сервере терминалов локально. То есть, сервером терминалов эмулируем сервер приложений, которого в 7.7 отродясь не бывало. Тогда не так сильно тормозит — работали 80-120 человек в одной базе.

anonymous
()
Ответ на: комментарий от KERNEL_PANIC

>а потом опять переделывать. Или там просто обновиться и нет проблем?

конечно, переделывать. Welcome to real world.
Вариант с терминальным сервером придётся переделывать только на сервере, на клиентах минимум изменений. Правда, в восьмёрке в связи с сервером приложений актуальность терминального способа невелика.

И еще, для чего нужен DB2-ExC и FreeNX, раньше такого не слышал?


окультуриваться надо. IBM DB2 — СУБД от IBM, есть Express версия с незначительными для твоего случая ограничениями (хотя, как посмотреть): на размер базы и на количество одновременных пользователей.
Citrix, MSTS(C), Radmin, FreeNX, (free)VNC — терминальные сервера.

anonymous
()
Ответ на: комментарий от anon1984

> просто обновиться с 7.7 на 8 1С вам не позволит :)

ну почему, обновиться технически возможно, вопрос, в трудоёмкости, сроках, оплате. Проще всего если конфигурации типовые — обновляем 7.7 на последнюю актуальную, ставим на тот же комп 8, с новой пустой базой, в 8 выбираем «загрузить данные из 7.7», и оно в теории работает.
На практике, тут вылазят всякие костыли, связанные с тем, что конфигурации сильно разные, а процесс миграции в готовом виде (правила конвертации конфигураций) есть только для типовых. Поэтому придётся повозиться с конфигурацией «конвертация данных», посочинять и потестировать правила конвертации. Затем по правилам конвертации в 7.7 данные выгружаем в XML, в 8.8 загружаем из XML (при этом правила конвертации, которые тоже XML зададут соответствия между исходными и целевыми конфигурациями). Перепроводим, сверяем, выверяем косяки. Работаем.
Хардкор порно начинается, когда конфигурация самописная. Тогда с конфигурацией «конвертация данных» начинается жуткий секс.
Второй раз хардкор порносекс начинается когда пытаемся конвертировать бизнес-логику с самописки на самописку 8. Оно конвертирует тексты модулей как закомментированный текст, потому что языки сильно разные, и надо логику написать заново, отталкиваясь от закомментированного.

anonymous
()
Ответ на: комментарий от KERNEL_PANIC

> Теперь знаю в какую сторону капать))

главное, не надо капать на мозги ))

anonymous
()
Ответ на: комментарий от strangeman

> Postgres же (вроде?) не умеют блокировку по записям, а не по таблицам.

postgres он вообще-то версионник, а не блокировочник. И MSSQL до 2005 был блокировочник, потом стал версионник.

anonymous
()
Ответ на: комментарий от kernelpanic

>>иметь один вендосервер с семеркой и раздавать её тонкими клиентами на линукс-машины!

Наркоман штоле?


тычо, нормальный сервер приложений!!!111

anonymous
()
Ответ на: комментарий от OldFornit

> и, кстати это не в постгресе дело. Это сервер 1с-и так себя ведет на автоматических.

на семёрке он ещё высокий %CPU жрал в IDLE. Это дело как-то костыльно разруливали, но да, оно не сервер приложений...

anonymous
()
Ответ на: комментарий от anonymous

> код 1С о среде в которой работает сервер 1с или база данных и даже какая база данных ни чего не знает.

датычо! а если я через ODBC или ADO в SQL базу залезу, где данные лежат из кода на 1С? А если я через хранимки MSSQL блокировки, или юзеров базы посмотрю, или notepad.exe вызову?

anonymous
()
Ответ на: комментарий от anonymous

> и видим значительное сползание производительности, где то в районе 100Гб размера базы, т.е. при этом запросы/механизмы/железо не меняются. Понятно, что можно залезть в конфигурацию и «всё там заоптимизировать», но для нас это дорого.

ППЦ. А закрывать периоды, сворачивать и обрезать базу религия кактусоедов не позволяет? Нужна аналитика с отчётами? делайте 2 базы для аналитики с тормозами и для оперативной работы без тормозов.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.