- Трохи теорії, або що нам дає SQL?
- Від теорії до практики. Установка SQL сервера.
- Налаштування 1С Підприємство
Одним із способів підвищити швидкодію 1С Підприємства 7.7, особливо при роботі з великими базами, є перехід від файлового режиму 1С до використання SQL сервера. Незважаючи на те, що обидва продукти вже закінчують свій життєвий цикл, дана тема залишається досить актуальною. У даній статті ми розглянемо практичну настройку сервера для роботи 1С Підприємства спільно з SQL Server 2000.
Трохи теорії, або що нам дає SQL?
Перед тим як братися за реалізацію проекту, необхідно засвоїти базовий обсяг знань і твердо знати відповіді на наступні питання: в чому основна відмінність файлового і SQL варіантів роботи 1С Підприємства, від чого залежить швидкодія в обох випадках і які вимоги пред'являються до обладнання та мережі. Нерозуміння цих, загалом то простих, речей призводить до того, що перехід на SQL версію 1С не приносить бажаних результатів або взагалі, результат протилежний очікуваному.
Розглянемо роботу 1С в режимі поділу файлів. Вся обробка інформації проводиться на робочій станції, сервер грає роль загального файлового сховища. Основні вимоги до такого серверу: швидкий жорсткий диск і відмовостійкість дискової системи (зазвичай реалізується RAID 1, рідше RAID 10). Зазвичай такий "сервер" представляє з себе звичайну бюджетну машину з RAID контролером і гігабітним мережним адаптером.
При виконанні операції (звіту, обробки та т.п.) частина бази або навіть вся база закачується по мережі на робочу станцію, де вже і виконується вся необхідна обробка даних. Від чого залежить швидкодія в даному випадку? В першу чергу від потужності робочої станції і пропускної здатності мережі, більш потужна машина буде швидше будувати звіти і виконувати проводки.
Ще одним важливим параметром є розмір бази даних, з її ростом вище деяких меж швидкодію починає падати в геометричній прогресії. Основним вузьким місцем стає пропускна здатність мережі, а основним чинником впливає на швидкодію і визначає критичний розмір бази є кількість активних користувачів.
Наш практичний досвід показує: для невеликих робочих груп (5-10 користувачів) критичний розмір бази починається від 200-300 Мб. Боротися з цим можна збільшенням швидкодії мережі і оптимізацією потоків трафіку в організації або щорічної (щоквартальної) сверткой БД.
Однак згортка це не вихід, для нормальної роботи торгового підприємства необхідні дані як мінімум за поточний рік, та й дані минулих періодів також бувають частенько потрібні. Вкладення в розширення пропускної здатності мережі себе як правило не окуповують, розміри БД і обсяги трафіку в мережі ростуть набагато швидше, особливо якщо керівництво вирішить "трохи" розширитися, на 1-2 робочих місця.
Тепер подивимося як йдуть справи в SQL варіанті. Замість таблиць всі дані зберігаються в одній SQL базі даних. Тепер робоча станція передає на сервер короткі запити, які повністю обробляються на стороні сервера і робочої станції повертається кінцевий результат запиту. Це дозволяє знизити трафік в рази і в стільки ж разів підвищує навантаження на сервер. До швидкодії робочих станцій особливих вимог не висувають, також буде цілком достатньо звичайної 100 Мб мережі.
Хоча слід пам'ятати, що 1С Підприємство 7.7 для SQL досить неоптимально і не використовує багато можливостей SQL сервера, тому частина даних обробляються на серверах, а робочою станцією і в разі роботи з ємними звітами і обробками швидкодію робочої станції теж буде грати не останню роль. Основна ж навантаження лягає на сервер.
Поширена помилка - використання в якості SQL сервера того ж заліза, що використовувалося в якості файлового сервера. Можна з упевненістю сказати, що результат буде протилежний очікуваному. Якщо відразу п'ять користувачів запустять формування звітів, всі ці п'ять звітів будуть формуватися сервером, отже обчислювальних ресурсів сервера повинно вистачати для одночасної обробки запитів відразу від усіх користувачів. Об'єм оперативної пам'яті повинен бути достатнім для того, щоб в ньому повністю містилися SQL бази, також бази бажано винести на окремий від системи і інших даних жорсткий диск (дисковий масив), щоб уникнути конкуренції за доступ до голівок жорсткого диска.
У разі суміщення SQL сервера з сервером терміналів на одній фізичній машині слід упевнитися, що її ресур досить для одночасної обробки запитів SQL сервера і клієнтських додатків 1С, а оперативної пам'яті досить як для SQL сервера, так і для призначених для користувача додатків. У будь-якому випадку бажано обмежиться виносом в термінал тільки 1С, інші додатки бажано залишити на робочих станціях, або рознести сервер терміналів і SQL сервер по окремим машинам. Також небажано поєднувати на одному SQL сервері кілька об'ємних 1С баз. Як показує практика, буває дешевше купити під другу базу окремий сервер, ніж купувати потужний сервер відразу під всі бази.
Підіб'ємо короткі підсумки. Основні переваги SQL сервера розкриваються при роботі з базами великого обсягу, в той же час немає ніякого сенсу переводити на SQL невеликі бази з малою кількістю користувачів.
Від теорії до практики. Установка SQL сервера.
Установка MS SQL Server 2000 проста і нехитра, проте вже на стадії установки необхідно вказати кілька відмінних від установки за замовчуванням параметрів, необхідних для нормальної роботи 1С. Платформою для установки сервера буде Windows Server 2003 SP2. Якщо ви встановлюєте версію SQL сервера з пакетом оновлень нижче ніж SP3, то система виведе вам грізне попередження, що встановлюється версія несумісна з системою, яку можна сміливо проігнорувати, практика показала - все працює прекрасно.
Далі, в процесі встановлення приймаємо всі значення за замовчуванням поки не дійдемо до екрану Services Accounts, тут встановлюємо перемикач в положення Use the Local System account
На наступному екрані вибираємо варіант Mixed Mode і вводимо пароль для користувача sa, від імені якого ми будемо підключатися до БД.
Інші параметри залишаємо за замовчуванням. По завершенню установки бажано оновити SQL сервер до останньої версії, встановивши SP4 ( завантажити ). Установка SP4 проводиться зі значеннями за замовчуванням, крім параметрів з'єднання з сервером, тут переводимо перемикач у верхнє положення і вводимо пароль для sa.
Після установки SP4 обов'язково потрібно встановити виправлення KB899761 ( завантажити ) Виправляє повільну роботу і неповне завантаження пам'яті SQL сервером. При установці виправлення також необхідно вказати авторизацію через sa з введенням пароля.
Налаштування 1С Підприємство
Тепер, коли SQL сервер встановлений і готовий до використання необхідно налаштувати 1С Підприємство. Нагадаємо, що для роботи з SQL сервером необхідна окрема версія 1С для SQL. Для успішної роботи з SQL сервером в базі 1С повинен бути заведений хоча б один користувач. Далі завантажуємо цільову базу в конфігуратор і виробляємо вивантаження даних через Адміністрування - вивантажити дані.
Після чого створюємо заготовку майбутньої БД, для цього в окрему папку копіюємо все папки з робочої бази даних і всі файли крім файлів конфігурації і таблиць (V7Plus, бібліотеки для роботи з торговим обладнанням і т.п.)
Наступним кроком необхідно створити нову SQL базу для збері наших даних. Для цього запускаємо Enterprise Manager.
Розгортаємо дерево до рівня Databases і клацнувши правою кнопкою миші у вікні праворуч вибираємо New Database.
На першій закладці вікна вводимо ім'я створюваної бази, друга і третя закладка визначають шляхи зберігання файлу БД і файлу логу транзакцій. За умовчанням передбачається їх зберігання в папці установки SQL сервера, проте бажано зберігати їх в окремій папці поруч з базою 1С (бажано на окремому жорсткому диску або на окремому розділі).
Створивши базу, підключаємо папку з заготівлею в якості бази 1С і завантажуємо Конфігуратор. На питання вибору формату зберігання даних вказуємо MS SQL Server, в Конфігураторі вибираємо Адміністрування - Параметри бази даних SQL і заповнюємо поля.
Як сервер вказуємо мережеве ім'я машини, його можна підглянути в SQL Server Service Manager, клацнувши на значку в треї поряд з годинником. В поле База Даних вводимо назву бази, яке ми вказали при її створенні в Enterprise Manager. Користувач sa, нижче вводимо його пароль.
Якщо всі дані введені правильно 1С успішно з'єднається з SQL базою, в іншому випадку ми отримаємо повідомлення про помилку. Тепер залишається завантажити дані в базу скориставшись пунктом меню Адміністрування - Завантажити дані і вказавши файл вивантаження створений раніше. Система видасть кілька попереджень, погоджуємося з ними натискаючи на кнопку ОК.
Якщо все зроблено правильно і вихідна БД не містила помилок ми повинні отримати повідомлення Завантаження успішно завершена, тепер ми можемо завантажувати БД і працювати з нею в звичайному режимі.
Як бачимо нічого складного немає, і при наявності належних навичок весь процес займає не більше години, при цьому велика частина часу йде на завантаження - вивантаження бази.
Додаткові матеріали:
- Створення резервних копій баз даних MS SQL Server 2000
- 1С Підприємство 7.7 Тестування продуктивності в різних режимах
Від чого залежить швидкодія в даному випадку?