Налаштування обладнання та програмного забезпечення

Бази даних та субд. Бази даних та субд Основні функції реляційної субд

Фінансовий аспект впровадження 1С на ORACLE

Перше питання, яке хотілося б розглянути - це фінансовий аспект впровадження 1С на ORACLE. У більшості склалася така думка, що використання 1С на ORACLE дуже дороге, і що в принципі, якщо в проекті використовувати СУБД ORACLE, то вартість проекту зросте на порядок. Це не зовсім необґрунтована думка, проте, все-таки хотілося б розібратися докладніше, з чого складатиметься вартість проекту, якщо для його реалізації буде обрано СУБД ORACLE.

Перше – це, звичайно, ліцензії. Оскільки я не експерт з ліцензування, я просто набрав в інтернеті ORACLE і MSSQLServer, переглянув вартість ліцензій для однієї людини (не по SOCKET, не по пам'яті, не по серверах - а в спрощеному варіанті) і отримав приблизно такі суми. Як бачимо, одна ліцензіяORACLE коштує навіть дешевше, ніж аналогічна ліцензія.MSSQL. Для порівняння використовую редакції StandartEditionONEORACLE та StandartEditionMSSQLServer, тому що це початкові редакції, і 1С нам більшість «фіч», які є в Enterprise версіях, забороняє використання.

OC на сервер дляORACLE взагалі безкоштовна(умовно безкоштовна, звичайно) - цеLINUX. Справа в тому, що ORACLE - це продукт, який спочатку розроблявся під LINUX, і він спочатку "лінуксовий" - подивіться на структуру каталогів, на купу файлів налаштувань, на JAVA-інтерфейс, - ви відразу це помітите. Для Microsoft - це, відповідно, WindowsServer (іншого варіанту у нас немає), але навіть у StandartEdition версії він все одно коштує 1000 руб.

Сам сервер (залізо) - звичайно, складе велику частку вартості проекту, але для порівняння вартості впровадження СУБД його вартість нас не хвилюватиме.

А от останній пункт(Наявність DBA - ORACLEDBAабоMSSQLDBA) - він найцікавіший. Якщо ми говоримо про впровадження на MSSQL - то все ж таки у більшості були впровадження, в яких можна було обійтися без DBA, оскільки MSSQLServer - це продукт не такий складний, у нього хороша usability, хороша методологія Microsoft, з його адмініструванням більш-менш можна розібратися самому. ДляORACLE- на маленьких проектах, звісно, ​​є шанс - на великих проектах(від 100 користувачів), звичайно, вже необхідна окрема людина, яка стежитиме за роботою СУБД, який адмініструватиме її роботу, нею керуватиме. Графічні засобиадміністрування СУБДORACLE не такі потужні, не такі красиві і не такі чудові, якMSSQLServer.

Перше поняття – це схемаORACLEта база даних.

Найчастіше, під час обговорення роботи 1С на ORACLE, приймається за правило таке спрощення, що з ORACLE база даних це схема. Це найпопулярніша помилка. У ньому корінь всіх проблем (дуже багатьох проблем роботи 1С із СУБД ORACLE).

Схема – це логічна сутність. Це група таблиць. База даних – це фізична сутність. Це група файлів. Ставити між ними знак рівності – аж ніяк не правильно!

Тому в ORACLE є проблеми з резервним копіюванням, веденням логів, з переміщенням баз даних на окремий диск і т.д.

1С, для спрощення собі життя, обрала схему як інструмент для створення консолі кластера. Щоб можна було створити базу даних з 1С, вони вибрали замість неї схему. Справа в тому, що створення бази даних в ORACLE – це нетривіальний процес. Кожна база даних Oracle - це окремий сервіс, окремий instance. 1С це спростила, і для окремої бази даних використовує окрему схему. Мені здається, що 1С обрала неправильну політику. Це такий обман користувачів. Немає знаку рівності між поняттями Схема та База даних. Велике рішення на ORACLE може нормально функціонувати лише в тому випадку, якщо у вас на одному сервері, на одному Instance є лише одна база 1С. Іншого варіанту немає.

Версійність.

Не буду докладно зупинятись. Скажу тільки, що є версійні СУБД та блокувальні СУБД.

У блокувальних СУБД, якщо одна транзакція вже почала змінювати дані, інша транзакція в цей момент змушена чекати. У версійних СУБД інша транзакція може прочитати дані.

Версійна СУБД – це добре, блокувальна СУБД – погано. Однак, версійна СУБД - це не панацея від усіх бід, тому що якщо ви в результаті її використання отримаєте попередню версію залишків, ви не дуже зрадієте. Все одно доводиться накладати керовані блокування, однаково паралельно записати нічого не зможете - чудес не буває!

Блокувальні СУБД - це IBMDB2 і MSSQLServer (треба визнати, що в MSSQLServer є режим Read_Commited_Snapshot, - якась пародія на версіонування - його використовують у версії платформи 1С 8.3, ще його використовують у Microsoft Dynamics AX). Версійні СУБД - це ORACLE і PostgreSQL. Про Postgre нічого поганого сказати не хочу, це безплатна СУБД, проект ентузіастів. Особисто не розглядаю його як СУБД для серйозних проектів. Мені здається, що серед версійних СУБД, що підтримуються платформою 1С, ORACLE – єдиний повноцінний варіант.

За що ж люблятьORACLE?

Відразу скажу, що у статті буде багато поганого про цю СУБД, але є деякі позитивні моменти, характерні для ORACLE.

Зазвичай - з СУБД ORACLE пов'язують якість високої продуктивності, unbreakable і т.д.

На мою думку, суть тут трохи в іншому. В Oracle застосовуються дві прогресивні технології - RAC і ASM.

RAC(кластер типу "активний" - "активний") - це повноцінний кластер. Саме повноцінний, не як ми звикли до MSSQLServer. Я маю сумнів, що хтось зміг реалізувати розпаралелювання запитівв MSSQLServer на різних серверах (або що це найближчим часом з'явиться). В ORACLE це з'явилося давно. Це вже обкатана на великих системах технологія (для великих систем це необхідно). Вракистандартногоедіону кластеризація RAC повною мірою не підтримується.

ASM зазвичай використовується спільно з RAC. Це окремо встановлюється на кожен вузол кластера міні-примірник Oracle, що надає послуги роботи з дисками і дозволяє уникнути звернення до диска (що дозволяє працювати на RAWdevices - дисках без файлової системи- всю роботу з кешування даних виконує сам Oracle)

ASM підвищує продуктивність шляхом автоматичного розосередження об'єктів бази даних за великою кількістю пристроїв, збільшує доступність бази даних, оскільки дозволяє додавати до бази даних нові дискові пристрої, не зупиняючи її.

ASM автоматично, з мінімальним втручанням у роботу, робить вирівнювання розподілу файлів по пристроях.

По суті, управління дисками та ФС автоматизовано та віддано на відкуп DBA. У разі використання SAN та великої кількості дисків – дуже актуально.

Логування

З логуванням все досить складно. Єдине, на що хотілося б звернути увагу, що якщо ми працюємо в режиміArchiveLog - ми можемо робити повноцінніBackup-и, а якщо ми працюємо в режиміNoArchiveLog - ми повноціннихBackup-ів робити не можемо (тільки засобамиimpdp таexpdp).

У режимі ArchiveLog якщо у вас на сервері є більше 1 БД 1С і ви хочете використовувати повнофункціональні бекапи - знадобиться друга БД, створена спеціальним чином, для відновлення бекапу, щоб потім засобами datapump перенести на основний сервер. Загалом у 90% випадків для 1С буде NoArchiveLog. Все залежить від обраної стратегії резервного копіювання та SLA (якщо є). Насправді ArchiveLog - банальна ротація, але без неї online резервне копіюваннянеможливо. Якщо скінчиться місце для ArchiveLog, 1С тупо впаде.

Табличні простори вOracle

Цікава тема. У MSSQLServer-і табличні простори – це просто група файлів. У ORACLE це поняття дуже розширили, т.к. в ORACLE за традицією для файлів необхідно збільшувати початковий розмір і збільшення, тобто. Для ТП можна встановити розмір блоку, bigfile, ведення логів. Якщо не bigfile, то обмеження 32 ГБ.

Табличні простори 1С:

  • Data - Самі таблиці
  • Index - індекси
  • Index_Big – розмір блоку 16КБ. Якщо індекс не вдається створити в Index, платформа намагається створити в Index_big. Ще необхідно встановити розмір кешу для 16 КБ блоків. Власне, розмір блоку можна змінювати. Чим менше – тим швидше запис. Що більше, то швидше читання великих обсягів
  • LOB - сховища значень та рядки необмеженої довжини. Дуже добре, що поділили. Тепер можна, не порушуючи ліцензійної угоди, винести все сміття на окремий диск
  • Temp – tempdb. Потрібен дуже швидкий дисковий масив.

Хотілося б звернути увагу на табличний простір 1С V81C_LOB. ORACLE на Наразічасу єдина СУБД, у якій є повноцінне зберігання файлів та рядків необмеженої довжини. ВORACLE ми можемо перекласти файли та рядки необмеженої довжини на окремий диск.Що це означає? Ми можемо, наприклад, впроваджувати 1С: Документообіг у великих компаніях, на великих обсягах даних і при цьому не ставити цю галочку, яку всі люблять – «зберігання файлу у зовнішньому сховищі». ORACLE дозволяє нам зберігати всі наші файли безпосередньо в базі даних (ця база даних буде розміщена на кількох дисках). Найцікавіше, що не тільки ORACLE – будь-яка СУБД нам дозволяє це зробити, просто ліцензійна угода 1С накладає обмеження – для будь-яких інших СУБД стандартних засобів перенесення файлів та рядків необмеженої довжини на окремий дисковий простір сервера у нас немає. А у випадку зORACLE 1С здогадалися виділити для цього окремий табличний простірV81C_LOB. Чудова "фіча".

Ще кілька основних понять:

  • REDOLOG (поточний бал) - Потрібно стежити за розміром вільного простору. Можна вимкнути. Oracle "не прощає помилки". Якщо закінчується місце під логі – просто «падає». Якщо немає Backup-ів, то й логі не потрібні
  • ALERTLOG(технологічний журнал) - / u01/ app/ oracle/ diag/ rbms/ main/ OID/ alert дивитися в нього доведеться навіть якщо є dba
  • LISTENER (організація мережного доступу) - під час роботи з MSSQLServer ми не звикли, що мережевий доступдо бази - це окрема програма
  • SYSDBA (режим роботи з базою) – root для oracle – звичайні дії в цьому режимі недоступні. Режим лише для адміністратора.

Із основними поняттями розібралися. Тепер перейду до «основної статті» - розповідатиму конкретно про роботу ORACLE з 1С.

Проблеми розробки 1С наORACLE

Перша та найголовніша - специфічне лінгвістичне сортування. Якщо ми говоримо про роботу в ORACLE з текстовими рядками, то це, мабуть, головна проблема.

Платформа 1С використовує однакові механізми роботи з усіма варіантами СУБД (зокрема з файловою версією). Відповідно, сортування рядкових значень у таблицях баз даних платформа 1С реалізує за своїми правилами. Зокрема, якщо в рядку присутні крапка або кома, то для 1С це впливатиме на сортування. В ORACLE, яка орієнтована на стандарти, точка або кома на сортування не впливають. Через таку елементарну проблему 1С довелося городити цілий «город» - використовувати функцію NLSSORT для того, щоб було своє сортування. А вже використання цієї функції спричинило суттєві модифікації.

Будь-який індекс та будь-яке сортування за рядком, які у вас є, будуть використовувати функціюNLSSORT (неявно її викликати). Використання цієї функції викликає також обов'язковість установки для роботи ORACLE з 1С специфічної програми Lbuilder (це єдине, що відрізняє установку ORACLE для 1С від простої установки ORACLE).

Чим це загрожує розробникам? А для розробника це загрожує тим, що у вас (за замовчуванням) не працюватимуть регістри, що мають більше 3-х рядкових вимірів. І ще тим, що розмір рядкового індексу буде дуже великий. Коротше - будь-який довгий рядок у регістрі відомостей або у регістрі бухгалтерії, або у регістрі накопичення - це дуже погано. Будь-який індекс по рядку - це теж погано, і сортування по рядку - це теж погано. Проте, загалом, функціональний індекс працює швидко. Те, що такі рядкові індекси у табличному просторі V81C_INDEX_BIG займають великі обсяги, звичайно, не дуже добре, але не критично. Просто потрібно знати, що загалом регістр накопичення з виміром типу «Рядок» - це архітектурна помилка. Зокрема ORACLE просто про це нагадує.

Далі – ще одна дуже неприємна новина. ORACLE не використовує кластерні індекси. Тобто ORACLE, звичайно, використовує кластерні індекси – вони там називаються IOT – це більше правильна назвадля кластерних індексів ціна в ORACLE | Просто 1С наORACLE кластерні індекси не використовує, а створює звичайні індекси.

Чим це нам загрожує? П при роботі 1С на ORACLE швидкість запису у нас збільшується, на відміну від інших СУБД – здається, що це плюс. З іншого боку – швидкість читання знижується. При роботі з іншими СУБД 1С будує кластерний індекс для будь-яких типів посилань за посиланням - це найбільш швидкий спосібвибору даних. А при реалізації двигуна роботи з ORACLE 1С довелося від кластерних індексів відмовитися. І мені іноді цікаво спостерігати в інтернеті тести, де гарно представлено, що коли рішення працює на ORACLE, воно так швидко записується, а читається трохи повільніше. Насправді – це не зовсім проблема ORACLE – це просто логіка роботи 1С. Якщо про цю логіку знати – то нічого дивного в цьому немає.

Ще два неприємні моменти

  • по типуNULLу всіх СУБД, крім MSSQLServer, ведеться зворотний порядок сортування.
  • Тимчасові таблиці - ми вже звикли до них. Всі розробники з ними працюють, але у разі використання ORACLE - тимчасові таблиці стають не зовсім тимчасовими. Я вважаю, що у розробників 1С це була методологічна помилка – оскільки тимчасові таблиці в ORACLE призначені зовсім для іншого. В цілому ORACLE не рекомендує використовувати часові таблиці для збереження проміжних результатів. Там проміжний результат зберігається у завірюхах. 1С зберігає цей проміжний результат у тимчасових таблицях, а ці тимчасові таблиці створюються основою як стандартні таблиці і від них не отличаются. Створюються, потім використовуються. Очищуються. Але у словнику залишаються. Крім того, тимчасові таблиці ORACLE орієнтовані на жорстку структуру, хіба що дані з них використовуються тільки в рамках сеансу. Поділяються для кожної сесії, тому навіть із включеним dynamic_sampling ніхто не обіцяє коректного плану виконання запиту. Не говорить про те, що не треба використовувати тимчасові таблиці, їх треба використовувати. Просто якщо, наприклад, я сам писав запит, у якому тимчасові таблиці генерувалися програмно під час збирання запиту, то це при роботі наORACLE викличе суттєві проблеми: якщо у вас у запиті 200 часових таблиць, то запит при першому виконанні на ORACLE - добре, якщо виконається, а може виконуватися дуже довго.

Не хочеться вимовляти слова «баги», але все-таки доведеться. Слайд частково дублює попередні.

  • Якщо ви розробляли хоча б раз конфігурації під керовану програму - ви, безумовно, знаєте, що таке БСП. БСП наORACLE навіть не запускається… Проблема копійчана – швидко вирішується, можна було б просто трохи переписати запит або внести маленьку модифікацію в платформу, але – досі ця проблема не вирішена ( три останні релізи БСП ця проблема існує). Викликано цю проблему тим, що у перерахуваннях звернення до реквізиту «порядок» призводить до помилки. Нагадаю, що БСП – це основа всіх останніх рішень 1С. 1С позиціонує БСП як «основний інструмент розробника» та «флагманський продукт», не зважаючи на цю помилку. Це означає, що навіть первинне тестування працездатності на ORACLE не проводиться.
  • Про проблему з БД (з її резервним копіюванням та обслуговуванням через використання схеми як БД) уже сказав . Резервне копіювання вORACLE - або у вас одна база наInstance - Production, або у вас резервне копіювання здійснюється лише засобами імпорту (немає диференціального, немає різницевого резервного копіювання).
  • З тимчасовими таблицями та читанням даних з 1С в oracle все погано.
  • Технологічний журнал 1С відORACLE не отримує плану запитів- Поки що ця фіча не працює.
  • Нормального Профайлера, як у MSSQL, ні- Не знайдете. Є купа різних LogAnalizer-ів. В т.ч. вміють Toad і Spotlight, про які йтиметься нижче. Але Online, графічний план запиту, повноцінної фільтрації не знайти. Звичайно, професійні ORACLEDBA вміють аналізувати завантаженість – вони запускають консольні засоби, генерують html-файлики… Але це вже не «два кліки» - отже, якщо на проекті йдеться про аналіз продуктивності, то обов'язково необхіднийORACLEDBA.
  • Оптимізатор Oracle не орієнтований на широке використання вкладених запитів і зазвичай вибирає досить простий план виконання для з'єднань (NASTEDLOOPS).

На цьому слайді я зібрав усе те, що порушує ліцензійну угоду 1С (1Забороняє нам використання цих можливостей). Тут є деякі важливі моменти:

  • Секціонування (в ORACLE його 6 видів, таблицю можна розбити на 2 диски) - 1С використання секціонування не передбачає
  • Storedoutline – «підказки» оптимізатору. Наскільки я знаю, в MSSQLServer ми можемо вплинути на план запиту лише побічно (тобто ми раніше, щоб блокувань у базі MSSQLServer не було, додавали до регістру 2000 записів) – в ORACLE все набагато простіше. Oracle дозволяє керувати планами запитів. 1З використання цієї можливості не передбачає
  • Mat. View - індексовані уявлення, які можна використовувати замість таблиць. 1С також не використовує цю можливість
  • Стиснення
  • Бітові індекси - коротко - індекс організації. Усі, хто відстежував історію становлення прикладних рішеньфірми 1С могли звернути увагу: спочатку реквізит «Організація» у всіх документах був індексованим. Потім розвиток конструкторської думки архітекторів прикладних рішень 1С призвело до того, що реквізит «Організація» перестав бути індексованим. Логічно. Організацій зазвичай 3-4 штуки, селективність маленька, індекс не використовується, він зайвий. Потім знову з'явилися рекомендації, що цей реквізит потрібно додавати в індекс. Це, як то кажуть, «на безриб'ї і рак риба». Реквізит "Організація" - це типовий випадок бітового індексу. Коли у вас низька селективність, але при цьому він скрізь використовується, по ньому скрізь є відбори… На жаль, цю можливість Oracle ми теж не можемо використовувати...Тобто можемо, звичайно, АЛЕ…

Параметри

За промовчанням Oracle підійде лише для тестового середовища. Обов'язково при первинному налаштуванні необхідно виставити такі параметри:

  • Sessions>230і Processes>200. SessionіProcesses завжди майже не вистачить. У production не злочинно збільшити до 200. Сесій може бути трохи більше. По суті, процес - це поєднання, але є купа внутрішніх процесів
  • Trace_enabledFALSE(розширений технологічний журнал) не SQLTrace звичайно, але все одно не потрібен постійно ... та й нам не допоможе
  • RecyclebinOFF(Кошик) - можна тільки посміхатися. За замовчуванням, в ORACLE включено дуже багато всього. Кошик теж за замовчуванням включений - що правильно - тому що, якщо ви видаляєте таблицю, вона поміщається в кошик, а не видаляється. Дуже тішить, що вона не на видалення рядків - лише видалення таблиць. А в 1С будь-яка реструктуризація – видалення таблиць… 1С взагалі оригінально працює з базою даних у разі реструктуризації. Якщо ви реструктуризуєте базу, то таблиця видаляється і створюється заново. Додали критерій відбору або загальний реквізит та обсяг бази виріс у 2 рази J. Тому – звичайно, кошиктребавідключати
  • Поштові оповіщення- сповіщають про проблеми, місце, що закінчується, тощо, якщо вчасно відреагувати, можна запобігти «падінню» Оракла. Обов'язково увімкніть!
  • Cursor_sharing- керує механізмом пошуку запиту у кеші запитів. Щоб зменшити час на розпарювання запитів, треба одразу ставити exact. Міняти не можна – перестануть використовуватися функціональні індекси. Тобто. Усе…
    EXACT- шукається запит, який точно збігається з вашим. Жодного перезапису вашого запиту (використання змінних зв'язування) для можливого використання іншими сесіями не проводиться. З одного боку, купа дрібних запитів зі складними конструкціями - типова ситуація для 1С: витрачається багато часу на їх компіляцію
    FORCE- шукається запит, що збігається з вашим запитом з точністю до зв'язкових змінних. Перезапис здійснюється: всі літерали замінюються на зв'язкові змінні, план створюється для «удосконаленого» запиту
    SIMILAR(з'явилося в 9i) -виконуються ті ж дії, що і при FORCE, але також здійснюється перевірка: чи можна підібрати аналогічний вже розібраний запит, який не повинен змінити план вашого запиту. Якщо оптимізатор вирішить, що для виконання вашого запиту потрібен інший план, ніж у вже розібраному, то ваш запит буде повністю розбиратися
  • Статистикадуже важливо для CBO. Але в 10 версії Job збір статистики є вже системний, до того ж збирає статистику лише за тими таблицями, за якими потрібно. Тим не менш, збір статистики можна запустити і вручну.

Параметри Backup-ів

Далі – параметри Backup-ів. В ORACLE, якщо, не дай Боже, немає адміністратора бази даних, потрібно обов'язково увімкнути автоматичне керування пам'яттю (AMM), інакше через якийсь час Oracle працювати перестане, а також у разі використання коштів impdp та expdp - звичайних засобів імпорту/експорту відключити ArchiveLog та RedoLog обмежити.

Тонка настройка

  • Ось ще один цікавий параметр – optimizer_index_cost_adj- суттєве налаштування. Якщо ми поставимо його в значення 1, то ORACLE буде використовувати всі індекси, які може. Чим менше, тим нижче поріг використання індексів. Тобто якщо у нас у довіднику всього 3 значення, то при значенні цього параметра 1 у нас все одно всі індекси будуть використовуватися. Якщо ми залишимо значення за замовчуванням (100) - то ми будемо використовувати індекси тільки в тому випадку, якщо ми вибираємо один запис з мільйона. Дуже добре, що ми можемо цим варіювати - SQLServer, наприклад, не можна. Найкраще виставити в 30, т.к індекси у нас лише штатні
  • Fileststemio_options =SETALL - скасовує використання файлової системи(можна використовувати дискові пристрої без файлової системи: суттєво підвищується продуктивність, виконується пряме звернення до диска - всю роботу з кешування даних виконує сам Oracle).
  • Redo log group members > 2 Redo log groups > 1 - зменшити кількість перемикань

Засоби адмініструванняORACLE

Якщо база ORACLE не має ORACLEdba, то без засобів адміністрування не обійтися (якщо ви звичайно, не фанати консолі і не горите бажанням багато писати в чорному екрані).

EnterpriseManager

Один з найулюбленіших інструментів адміністрування ORACLE – це EnterpriseManager. Безкоштовний, Web інтерфейсі т.п. У ньому досить багато функціоналу та 80% завдань адміністрування цей інструмент успішно покриває. Єдина проблема в тому, що мова інтерфейсу – англійська.

SQLDeveloper

Інший інструмент для адміністрування СУБД ORACLE – це SQLDeveloper. Цей інструмент найбільше схожий на ManagementStudioMSSQL. Але реально цей інструмент можна використовувати лише для побудови запитів та створення таблиць вручну.

Крім того, на мою суб'єктивну думку, все графічні програми, написані на Java, мають великі недоліки інтерфейсу Так само як і ЕМ – безкоштовний.

Для адміністрування СУБД ORACLE є платні продукти - наприклад, TOAD. Може обійтися дорожче за Oracle. Дуже багато функціональності (не завжди затребуваної). Режим BestPractice виставляє налаштування найбільш оптимальні. Варто хоча б подивитися на роботу цього продукту, щоб зрозуміти, які налаштування він запропонує (щоправда, деякі з виставлених цим режимом налаштувань не підходять для роботи Oracle з 1С, на це потрібно звертати увагу. Я у своїх попередніх слайдах вказав потрібні значення критичних параметрів) .

Spotlight

Ще один зручний інструмент моніторингу роботи СУБД Oracle – Spotlight (виготовляє та ж компанія, що й TOAD). Гарний. Не дуже дорогий (близько 37 УРАХУВАННЯМ). Зручний.

Дуже красиво, правильно і швидко виявляє всі проблеми, навіть варіант рішення запропонує. Показує одному екрані всі аспекти продуктивності.

Технічна підтримка

Технічна підтримка: при покупці ORACLE рік підтримки безкоштовний.

Як бачите, різноманітність мов, що підтримуються, вражає. По підтримуваним мовами можна дійти невтішного висновку, у яких розташовується переважна більшість фахівців oracle.

Власне, на фахівців високого рівня очікувати там важко. Просто можуть добре покопатися у внутрішній БД та внутрішніх ресурсах.

Зазвичай відповідь надходить протягом дня.

Крім сервісу звернень там же доступ до БД техпідтримки та доступ до завантаження оновлень.

Але самі оновлення – ціла історія. Оновлення включають перекомпіляцію схеми, перестворення деяких таблиць. Оновлення виконуються лише в консолі. Це не MSSQLServer і не WindowsUpdate, де "натиснули кнопку і все оновилося". Це цілий день роботи dba.

Останнє питання, на яке кожен з вас уже, напевно, сам собі відповів - це питання про те, коли ж нам таки потрібен ORACLE, коли від його використання на проекті будуть якісь переваги?

Якщо у вас є ORACLEDBA, тоді всі озвучені мною проблеми – вони всі невеликі, вони всі вирішуються, а ORACLEDBA – це така людина, яка може зробити роботу вашого рішення на Oracle красивою та коректною. Особливо, якщо вам вдасться в чомусь домовитися з 1С або 1С дозволить нам використовувати якісь фічі з тих, які я перерахував. Грамотний DBA може прискорити запуск і правильну роботу вашого рішення в два рази. Тому що кількість коштів, які ORACLE нам надає, справді вражає.

Кластер в ORACLE з'явився вже давно – RAC – дуже продуктивна технологія, перевірена часом. Вона використовується у великих організаціях. Якщо у вас проект, в якому планується кілька тисяч (кілька десятків тисяч) підключень – навіть через роздільник, то RAC – це єдиний варіант, який дозволить вам повноцінно організувати це з точки зору СУБД. Зокрема, якщо 1С зараз орієнтується на «хмари», і у вас вже є своя «хмара» або ви плануєте її зробити – то в цьому випадку, напевно, ORACLE – це найбільш повноцінний вибір.

Проте рішення на ORACLE – це специфічне рішення. Якщо ви захочете використати секціонування, захочете використовувати math. view, захочете використовувати якісь інші "фічі" ORACLE, то тут звичайно, треба буде постаратися "договоритися з 1С", оскільки на даний момент ці "фічі" 1С нам використовувати не дозволяє. Проте - рішення, що використовують такі "фічі" є, і ці рішення навіть отримали "1С:Сумісно" - наприклад, рішення, що використовує прямий запис проводок.

А в інших випадках краще обійтись MSSQL.

*******

Стаття написана на основі доповіді, прочитаної на конференції IE 2012 (15-16 листопада 2012 року). Також вона опублікована у журналі Інфостарту №1

Запрошуємо вас на нову конференцію.

1С:Підприємство 8- Програмний продукт компанії1С, призначений для швидкої розробки прикладних рішень. Технологічна платформа «1С:Підприємство» не є програмним продуктом для використання кінцевими користувачами, які зазвичай працюють з одним із багатьох прикладних рішень (конфігурацій), що використовують єдину технологічну платформу. Платформа та прикладні рішення, розроблені на її основі, утворюють систему програм «1С:Підприємство», яка призначена для автоматизації різних видів діяльності, включаючи вирішення завдань автоматизації обліку та управління на підприємстві (КІС).

Web- сервер-Apache2.2.10.

Apache – сервер номер один у мережі Інтернет. Більше половини всіх інтернет-сайтів працюють під Apache або похідних від нього. Переваги Apache полягають у модульній організації, стабільності та швидкодії. За наявності відповідних апаратних засобів та настроювання він може витримувати найвищі завантаження. Наслідком модульної архітектури сервера є гнучкість, легкість зміни та конфігурації Web-сервера.

За допомогою web-сервера Apache можна керувати сотнями сайтів з різними іменами та рівнями доступу. Грошова вартість та тимчасові витрати на додавання кожного сайту мінімальні. Веб-сервер Apache, популярний завдяки своїй прозорості для програмістів та адміністраторів і не в останню чергу завдяки безкоштовності, реалізований під усе більш-менш популярні операційні системи. Його налаштування для всіх ОС однакові, відрізняються лише шляхи, де зберігаються конфігураційні файли. На одному сервері може бути запущено кілька екземплярів Apache, які прослуховують різні адреси та/або порти. Один екземпляр може обслуговувати декілька сайтів. Проект настільки популярний, що постійно зростає новою функціональністю.

Антивірусний сервер - Avast Professional Edition 4.8. Можливості програми:

    резидентний антивірусний сканер.

    Перевірка комп'ютера на віруси під час показу заставки.

    Перевірка комп'ютера на вірус під час запуску до повного завантаження операційної системи.

    Евристичний аналіз.

    Блокування шкідливих скриптів.

    Автоматичне оновлення антивірусних баз, а також самої програми.

    Вбудований у програму полегшений міжмережевий екран (IDS - Intrusion Detection System (система виявлення вторгнень)).

    Модульність резидентного захисту: Web екран; Миттєві повідомлення; Мережевий екран; Стандартний дисплей; Екран P2P; Електронна пошта, також модулі перевірки поштових баз програм Microsoft Outlook, Outlook Express та плагін для The Bat!.

    Сканер SMTP/POP3/IMAP4 та плагін для Outlook

    Видалення шпигунського програмного забезпечення(Spyware) із комп'ютера.

    Можливість встановлення пароля на зміну настройок програми.

    Багатомовний інтерфейс.

    Антивірусний сканер командного рядка.

    Ведення VRDB – Virus Recover Database – бази відновлення заражених файлів.

    Підтримка тем оформлення (у базове постачання вже включено 3).

    Сертифікований продукт ICSA.

Proxy -сервер - Extra Systems Proxy Server (ES Proxy)

Extra Systems Proxy Server четвертого покоління – безкоштовний проксі-сервер для Windows. Запропонована версія проксі-сервера призначена для роботи на платформі Win32: Windows 95, 98, ME, NT, 2000, 2003, XP. Проте рекомендуються серверні платформи. Також рекомендується, щоб сервер, на якому працює дана програма, був виділеним (тобто не використовувався як робоча станція). Призначенням даної програми є забезпечення одночасного доступу в Інтернет з боку безлічі комп'ютерів локальної мережі клієнта через один канал зв'язку з провайдером, що є в його розпорядженні. Розглянутий програмний продукт вже вбудований в операційну систему і його необхідно лише запустити як сервіс. Ця програма може використовуватися будь-якою особою або організацією для будь-яких цілей, що не суперечать закону, у тому числі комерційних, без будь-якої оплати авторам.

Print- сервер- Print Server 2.4.

Програма не вимагає інсталяції та додаткових налаштувань. Робота з принтером здійснюється за протоколом TCP IP. За допомогою цієї програми будь-який локальний принтер можна зробити мережевим. Для цього достатньо запустити програму на файл-сервері, до якого підключено принтер. На робочій машині необхідно зайти в установки принтера і встановити підтримку відповідного принтера, вказавши, що він є мережевим IP-адресою файл-сервера.

Mail- сервер- Courier Mail Server 1.56 – це безкоштовний поштовий сервер (сервер електронної пошти) під Windows для офісних та домашніх мереж. Він допоможе вам швидко організувати обмін електронною поштоюу локальній мережі та в Інтернеті.

Переваги Courier Mail Server:

    простота установки та видалення

    компактність

    легкість адміністрування

    мале споживання системних ресурсів

    багатопоточність

    зручна графічна оболонка

    російськомовний інтерфейс та документація

    підтримка необмеженої кількості поштових скриньок

Склад Courier Mail Server:

SMTP-сервер, POP3-сервер, IP-фільтр, SMTP-клієнт, POP3-клієнт, планувальник, сортувальник пошти, віддалений доступ.

Програміст і реальний експерт із запровадження 1С повинен знати нюанси роботи 1С Підприємства різних системах управління баз даних.

У цій статті будуть розглянуті основні особливості роботи всіх СУБД, сумісних із 1С 8.3.

1С підприємство підтримує 5 видів СУБД:

  • файловий варіант самого 1С;
  • IBM DB2;
  • MS SQL;
  • Oracle BD;

В файловому режимі роботиСУБД у 1С є такі особливості. У системі кожна таблиця представлена ​​4 файлами:

  • файл опису таблиці;
  • файл записів;
  • файл значень необмеженої довжини (їх виносять із основного файлу записів для оптимізації);
  • файли індексів.

Ключові особливості:

  1. Обмеження розміруодного з перерахованих вище файлів 4 Гб дискового простору.
  2. такої бази даних не може перевищувати 1920 байтів.
  3. Кількість полів для індексації обмежується 256 полями (в інших СУБД лише 16 полів).

Отримайте 267 відеоуроків з 1С безкоштовно:

Microsoft SQL

Ключова особливість СУБД MS SQL з 1С 8.2 максимальна кількістьтаблиць у запиті 256. Може здатися, що багато, проте при зверненні по крапці до полів складового типу Ви можете миттєво отримати всі 256 таблиць.

  1. NULLтак само, як і Oracle, при сортуванні за зростанням стає наприкінці результату.
  2. У режимі автоматичного блокування при читанні таблиця блокується повністю.
  3. У СУБД PostgreSQL сильно зменшується продуктивність у режимі інтенсивної роботи, система якнайчастіше потрібна реіндексування(метод REINDEX).
  4. Великий вплив на продуктивність PostgreSQL надає швидкість роботи жорсткогодиска – дані після команди COMMIT (фіксація транзакції) з кешу поміщаються на диск. Це значно підвищує надійність, проте знижує продуктивність СУБД під час запису інформації ( функція fsync). Тому вважається, що ця СУБД є дуже повільною щодо запису та видалення інформації, однак це можна виправити.
  5. Можна досягти підвищення надійності використанням RAID - масивіву поєднанні з блоками безперебійного живлення. Тим самим ми підвищимо надійність системи. Після підвищення надійності можна нехтувати включенням функції fsyncі цим істотно збільшити швидкість роботи системи.
  6. При обчисленні різниці між датами, якщо у проміжку дат трапляються переходи із зимового часу на літній (і навпаки), СУБД PostgreSQL враховує різницю. Приклад — різниця між 29.10.2013-00:00:00 та 30.10.2013-00:00:00 буде не 24 години, а 25.
  7. СУБД неефективно відпрацьовує вид з'єднання - "ПОВНЕ ЗОВНІШнє З'ЄДНАННЯ".

IBM DB2

  1. СУБД DB2 має нетипізоване значення NULL.
  2. DB2 чутлива до регістру рядкових значень порівняно. Стосується не тільки прямого порівняння, а й операцій згрупувати, об'єднати, РІЗНІ.
  3. Максимальна довжина числового значення - 31 знак(В інших СУБД - 38).
  4. Максимальна довжина ресурсу регістрів бухгалтерії та накопичення - 25 знаків(скрізь 32).
  5. Максимальна кількість колонок у списку вибірки - 1012.
  6. Максимальний розмір поля необмеженої довжини 1 Гб.
  7. Аргументом у конструкції «Подібно» може бути лише літералзаборонено використання основних шаблонів.
  8. Продуктивність СУБД IBM DB2 суттєво знижується при використанні підзапитів за умови з'єднання.

Oracle DB

  1. Не можна використовувати конструкції «ПЕРШІ» та «Упорядковувати» всередині підзапиту умови «В (..підзапит..)».
  2. NULL при сортуванні за зростанням стає наприкінці результату.
  3. На роботу СУБД Oracle DB дуже впливає статистика планів запиту 1C.

На жаль, ми фізично не можемо проконсультувати безкоштовно всіх бажаючих, але наша команда буде рада надати послуги з впровадження та обслуговування 1С. Докладніше про наші послуги можна дізнатися на сторінці

Для успішного застосування цього програмного забезпечення необхідно правильно вибрати потрібний режим роботи. Стануть в нагоді на практиці також знання про сумісність 1С з різними базами даних. Матеріали цієї статті допоможуть точніше налаштувати функціонування програм з урахуванням вимог конкретного підприємства.

Режими роботи та клієнтські програми

У найпростішому варіанті конфігурації системи рекомендується застосування спеціального файлу: "1Cv8.1CD". У ньому зберігається нова інформація користувачів, фіксуються зміни у регістрах, зроблені індивідуальні налаштування. Такий спосіб відрізняється зручністю використання. Його функціонал доступний без додаткових витрат. Єдиним істотним недоліком є ​​обмежена кількість користувачів, трохи більше 10.

Важливо! Для зберігання самого файлу "1Cv8.1CD" виділяють окремий комп'ютер. До нього згодом організують доступ усіх користувачів локальної мережі, які отримують можливість роботи з дисковим простором У разі відбувається імітація режиму «клієнт-сервер».

Наведемо відомості, які дозволять точніше оцінити придатність такого вибору для вирішення певних завдань:

  • Структура вищезгаданого файлу є табличною. Розмір кожного окремого блоку обмежений обсягом 4 Гб;
  • Якщо використовуються «молодші» версії 1С нижче 8.3, то коректне виконання деяких завдань в автоматичному режимі буде неможливо. Обмеженням є необхідність підключення окремих користувачів;
  • У цьому вся варіанті не можна здійснювати одночасне проведення кількох документів;
  • Він забезпечує високий рівень безпеки. За бажання будь-який користувач може зробити копію основного файлу, в якому зберігається база даних підприємства.

Для масштабніших проектів краще підходить повноцінна організація роботи в режимі «клієнт-сервер». Перерахуємо його особливості:

  • Такий варіант розроблено для одночасної роботи великої кількості користувачів. Для отримання достатньої продуктивності застосовують різні системи управління базами даних та сервера, об'єднані в кластери;
  • Його швидкісні параметри кращі порівняно з «файловим» варіантом, що дозволяє обробляти швидше великі масиви даних;
  • У цьому випадку простіше встановити та експлуатувати сучасний захист інформації;
  • Для збільшення обчислювальної потужності достатньо додавання потрібної кількості серверів певний кластер.

У режимі «клієнт-сервер» застосовують стандартну архітектуру з трьох рівнів. Найнижчий – це користувальницькі програми. Від них надходять звернення до серверів кластеру. При необхідності включається кешування даних. Алгоритм обробки запитів передбачає можливість негайного отримання відповідей. Для отримання інформації під керівництвом менеджера процесів сервер формує звернення до СУБД. Дані до клієнта надходять по зворотному ланцюжку.

Порада! Якщо передбачаються пікові навантаження, рекомендується встановити необхідну кількість додаткових робочих серверів. До них автоматично перенаправлятимуться запити користувачів.

Для переходу від файлового варіанта, до продуктивнішого, «клієнт-серверного» режиму достатньо завантажити старі дані в спеціальний архів. Їх далі зберігають на сервері. У розділі «Конфігурація» програми 1С можна переглянути, який саме режим активізовано.

Клієнтські програми


У 1С передбачено роботу із застосуванням кількох видів програмного забезпечення. Відзначимо особливості цих трьох клієнтів:

  • Тонкий – прийом/передача даних складає основі власного протоколу. Якщо використовується https, то необхідне відповідне налаштування сервера.
  • Товстий застосовується лише за достатньої продуктивності ліній зв'язку. З його допомогою виконують налагоджувальні та обчислювальні операції, звертаються до БД.
  • У Web використовують програми, що працюють у браузері.

Важливо! Застосування не придатне на вирішення розробником практичних питань.

Якщо використовується «файловий» режим, то даних у 1Cv8.1CD можуть звертатися безпосередньо, а Web – лише через сервер. При роботі з тонким клієнтомдопустиме використання обох шляхів. У «клієнт-серверному» варіанті використовуються подібні схеми, але додається ще одна ланка, об'єднані в кластер сервера. Саме від нього одержують деякі відповіді оперативно. При необхідності запит адресується більш високий рівень, в СУБД.

Застосування різних систем керування базами даних

  • Файлова СУБД:
    • Подання будь-якої з таблиць наступними файлами: описи, записів, індексів та значень;
    • Кожен із файлів займає трохи більше 4 Гб на диску;
    • Довжина ключа обмежена 1920 байтами;
    • Для індексації можна використовувати максимум 256 полів.
  • PostgreSQL:
    • Якщо використаний режим сортування за зростанням величин NULL розташовуються наприкінці списку;
    • Швидкість обробки даних у цій СУБД зменшується при суттєвому підвищенні інтенсивності звернень користувачів;
    • Показники продуктивності дуже залежать від відповідних технічних параметрівнакопичувачів;
    • Особливий алгоритм фіксації кожної трансакції підвищує рівень надійності;
    • Запобігти появі помилок допоможе комплексне використання джерел безперебійного живлення та масивів RAID.
  • Microsoft SQL – найбільша кількістьв одному запиті таблиць не повинно перевищувати 256 од.;
  • В Oracle DB, як і PostgreSQL, після сортування за зростанням NULL встановлюється в кінці списку. У цій СУБД заборонено «Упорядкувати», або «Перші» розміщувати всередині конструкції «У «підзапит». У разі її використання слід уважно працювати зі статистичними даними планів запитів. Вони помітно впливають на стабільність 1С;
  • IBM DB2:
    • NULL не є типовим показником;
    • Числове значення не повинно перевищувати 31 символ;
    • Одне поле обмежено об'ємом 1 Гб;
    • У разі збільшення кількості підзапитів (за умови з'єднання) не виключено певне зниження продуктивності.

Правильне використання 1С для підприємства здійснюється з урахуванням відомостей, представлених у цій статті.

Сподобалась стаття? Поділіться з друзями!
Чи була ця стаття корисною?
Так
Ні
Дякую за ваш відгук!
Щось пішло не так і Ваш голос не було враховано.
Спасибі. Ваше повідомлення надіслано
Знайшли у тексті помилку?
Виділіть її, натисніть Ctrl+Enterі ми все виправимо!