Ru-Board.club
← Вернуться в раздел «В помощь системному администратору»

» Стоит ли переносить 1с(*.dbf)на SQL сервер?

Автор: dartvaider
Дата сообщения: 10.10.2005 21:33
Поставили новый сервак 2хXeon 2.4мГц по 2Мб кэш, 2Гб память, рэйд 5 уровня на 4хСигейт 80 Гб SATA на Интеловском контроллере.Винда 2003 север, поднят терминал на 50 одновременных подключений!Сейчас БД весит 700 МБ! Всё работает Бд находиться на dbf файлах!
Слышал я , что можно перенести без всяких проблем БД 1с из dbf файлов на SQL сервер!
Корректно перенести у почему то не получается- может кто знакт Бд чтобы она крутилась только на SQL Сервере и всё работало нормально?Но вопрос собственно не в этом!
Вопрос заключается в том, что стоит ли переносить БД на SQL сервер и сильно ли это ухужшит работу! Все гооврят что при правильной настройке SQL сервера - работь будет более менее нормально, будут свои +, свои - , плюсы например транзакции , минусы- полные бекапы БД!
Но говорят ещё,если объем Бд на dbf файлах привысит 1 гиг, то будет вообще невозможно работать и перепроводить документы!Лучше ли будет это делать на SQL Сервере?
И как будет он работать, если создать учетную запись sa, которая есть в любом MSSQL сервере по умолчанию
создать её запросом:
sp_changeDBOWNER sa
смогут ли заходить в 1с терминальные пользователи одновременно все под этой учетной записью? или же на каждого пользователя нужно создавать свою учетную запись в SQL сервере? -это очень не удобно при подключении по терминалу!
Заранее благодарен!



Автор: Alan Mon
Дата сообщения: 11.10.2005 08:28
dartvaider
Если переносить 1С на SQL, то лучше отказаться от терминалов. Или SQL-сервер поставить на отдельную машину. Если один сервер будет являться и SQL-сервером и сервером терминалов, ему не хватит ресурсов.
У нас, например, база 2,5 гига. Сервер чуть послабее вашего, количество одновременных терминальных сеансов 30 - 35. Мы пошли по второму пути. Поставили рядом второй сервер (существенно слабее) и водрузили на него SQL. Теперь клиенты заходят терминалом на первый сервер, а работают - на втором. Производительность существенно повысилась. А клиенты ничего не заметили. На сервере терминалов заменили 1cv7.exe на 1cv7s.exe и переименовали его. Даже ярлыки не пришлось переделывать.
Автор: dartvaider
Дата сообщения: 11.10.2005 10:00

Цитата:
А как корректно перенести БД с dbf файлов на SQL сервер

Я создаю учетную запись SA в MSSQL сервере создаю её запросом:
sp_changeDBOWNER sa
потом указываю загрузить измененную конфигурацию и выбераю *.md файл, но Бд не переносяться на SQL сервер переносяться только настройки ...
может быть нужно каждый dbf файл экспортировать на SQL сервер?

Автор: ShriEkeR
Дата сообщения: 11.10.2005 10:20
dartvaider

Цитата:
Я создаю учетную запись

она создаётся при установке SQL Server'a.


в Enterprise Manager создай базу.
в Конфигураторе сделай выгрузку базы с пользователями.
сделай новый каталог для базы.
запусти 1С и добавь новую базу, указав на созданный каталог.
входим в режиме Конфигуратора.
на вопрос о формате базы отвечаем - SQL
в конфигураторе открываем Администрирование и настраиваем соединение с SQL Server'ом.
делаем загрузку из файла, сделанного выше.
копируем в новый каталог файлы *.spl и другие /если нужны/.

а от сервера терминалов лучше отказаться и RAID сделать "зеркало".
Автор: dartvaider
Дата сообщения: 11.10.2005 10:47
Всё так и делаю, но после если открывать конфигурацию через :Конфигурация, загрузить измененную конфигурацию, то тогда посла открытия файла *.md
открываются пользователия и БД- нажимаю CTRL+S сохранить измененную конфигурацию на БД MSSQL Сервера с которым уже соеденился- соеденяюсь с ним- всё оки, но БД на нём весит почему то пару метров , а на dbf файлах 700 метров
А если делать через :Администрирование/восстановить данные/1Cv7.zip то слетают настройки подключения к SQL Серверу и все файлы с выгруженой БД т.е. с архива 1Cv7.zip переносяться в созданной новый каталог!
Автор: ShriEkeR
Дата сообщения: 11.10.2005 10:53
dartvaider

Цитата:
загрузить измененную конфигурацию


Цитата:
А если делать через :Администрирование/восстановить данные


не нужно придумывать велосипед.
или почитай документацию, или делай через выгрузку/загрузку данных.
Автор: valdi77
Дата сообщения: 11.10.2005 10:55
ShriEkeR позволь сделать маленькие но ОЧЕНЬ СУЩЕСТВЕННОЕ ДОПОЛНЕНИя
при установке SQL сервера. если ты его не ставил для работы с 1С.
1. так как у тебя ОС win 2003 srv, то тебе для коректной работы 1с ОБЯЗАТЕЛЬНО необходимо установить SP3a или выше для твоего SQL иначе просто не заработает.
2. при установке SQL порядок сортировки (server collation) обязательно должен совпадать с порядком сортировки базы т-ть если у тебя к примеру ураинская тогда UKrainian_CI_AS
AS тоже очень важно
3. Порядок аутентификации толжен быть смешаным (mixed) SQL srv and Windows

удачи тебе, если что не так обязательно спрашивай я в первый раз 3 дня мучалался пока не получилось. при работе не в терминале необходимо на клиентах чуть подкрутить ODBC в зависимости от клиентских ОС




Добавлено:
PS у нас несколько баз от 2 до 7 ГБ не представляю работу в дбф

Автор: dartvaider
Дата сообщения: 11.10.2005 11:08

Цитата:
ShriEkeR


Цитата:
valdi77

Спасибо всё разобрался БД с dbf файлов не сохранял как конфигурацию ,а просто копировал (архивировал)...
У меня настройки SQL сервера вот такие:


Код:

I. Настройки SQL-сервера

Все настройки указываются для SQL-2000

1) Вызвать SQL-Enterprise
2) Выбрать нужную инсталяцию SQL (например Default)
3) Нажатием правой кнопки вызвать свойства инсталяции не путать с
конкректным MDB-файлом
а) Закладка Memory
- переставить переключатель в состояние "Use fixed memory size"
выделить ползунком примерно 70-75% имеющейся памяти
(у себя выставил 6Гб из 8 имеющихся)
- установить галочку Reserve Physical Memory for SQL Server
- в окошке Minimum query memory выставить значение 8192Кб
(можете больше)
б) Закладка Processor
- выставить галочку на Use ..XX.. processor, где XX количество
имеющихся у Вас на сервере процессоров, если используется
процессор XEON или ITANIUM , кол-во физических процессоров
умножайте на два.
в) Закладка Processor
- если на сервере кроме SQL ничего не крутится
выставьте галочку Boost SQL Priority on Windows
(этот пункт проверьте экспериментально)
в целом производительность у пользователей возрастет
но по проведению по моему нет.
ОЧЕНЬ ОСТОРОЖНО - СОМНИТЕЛЬНЫЙ ПУНКТ

г) Закладка Connections
- Maximum concurrent user connections - выставьте в 50 или больше
иначе при каждом соединении будет выделяться и освобождаться
память для пользователя, на что требуется время
4) Заархивировать базу
5) Убить базу - удалить из SQL
6) Остановить SQL-Server
7) Сделать раза три подряд дефрагментацию диска
8) Запустить SQL-Server
10) Создать базу , при создании
- для самой базы выделить место около 5Гб (можете больше)
приращение дать размером 500Мб
- для файла транзакций выделить 500Мб
приращение дать размером 100Мб

файл транзакций и файл базы желательно иметь на разных физических
дисках – и даже на разных каналах

11) Открыть свойства созданной базы
- Закладка "Options"
а) Список "Model" выбрать Simple
б) убрать галочку Auto Update Statictic
в) убрать галочку Auto Create Statictic

12) Всё хитрости придуманы и проверены экспериментальным путем и дают выигрыш
по скорости почти в два раза, негативов при этом не было

Пункт "3-в" сомнителен – у нас на одном из серверов выигрыш давал, на
втором нет

13) Ограничения для сервера
а) Сервер баз данных ни в коем случае не должен быть контроллером
домена.
б) На сервере SQL ни в коем случае не должны крутиться никакие DBF
базы в рабочее время - особенно по сети
Для проведения в DBF этот сервер можно и нужно использовать
в) На сервере SQL ни в коем случае не должны лежать
сетевые файлы Misrosoft Office
14) Поэкспериментируйте с константой
Максимальное количество документов в транзакции при проведении
У меня выставлено 10 и все нормально работает

При указанных настройках база размером 4Гб в SQL перепроводится в полном объеме
(за 15 месяцев) на вышеуказанном сервере SuperMicro P4DP6-Dual-XEON в течении
26-27 часов


II. Настройки 1С
Если количество пользователей начинает превышать 15 одновременно работающих,
а размер базы превысил 1Гб у пользователей при проведении документов
возникает ситуация SQL-Transaction. Избавиться от них можно используя
рекомендации описанные в пунктах 1,2,4 в начале данного руководства,
а также настроить 1С:

1) Режим 1С-Предприятие "Сервис"-"Параметры"+"Закладка Общие"
а) Период опроса изменений базы - 30 секунд
б) Время ожидания захвата таблиц базы данных - 90 секунд
(У моих знакомых при размере базы 12Гб,40 пользователя и
таком сервере как у меня по пункту "б" выставили 180 секунд
и транзакции исчезли)

Сделать можно для одного рабочем месте потом раскидать файл
1Cv7.CFG из каталога пользователя по всем пользователям
НО НАСТРОЙКИ ПРЕДЫДУЩИЕ У ВСЕХ ЗАТРУТСЯ !!!
Лучше пробежаться по всем !!!


2) Перейти на УРИБ и разнести в среднем по 15 пользователей
на базу
(там где создают ПланВыпуска и ПланЗакупок по возможности совсем отдельно)

3) Ограничьте время записи и проведения документов
ПланВыпуска и ПланЗакупок и соответственно их коррекцию
обеденным перерывом и вечерними часами
Можно в модуле формы указать
ПриЗаписиПерепроводить(0)

Любой такой документ блокирует базу в среднем на три минуты,
при количестве изделий около 50 и вопли идут по трем телефонам и
примерно одновременно 20-30 голосами

4) Ни в коем случае не запускайте технологическое перепроведения
любых документов в рабочее время

5) Если у Вас используется УРИБ, то обмен между базами
также необходимо делать в нерабочее время

6) В конфигурации ИТРП проставьте во всех регистрах галочку
"Быстрая обработка движений"

Данную работу оставьте на выходные, потому что если у Вас слабый
сервер то может отрабатывать данную операцию довольно долго

7) Кроме этого движок 1С имеет способность писать при объединениях,
проведениях очень много служебных файлов во временный каталог
пользователя в Win2000 и за собой их не чистить
Пример:
"C:\Documents and Settings\LATYPOV\Local Settings\Temp\RA...."
Ручками периодически необходимо удалять каталоги с именем RA...
ВНИМАНИЕ: Все сессии 1С при этом должны быть закрыты

8) Попробуйте погонять разработку Т-Запрос может Вам поможет

Автор: valdi77
Дата сообщения: 11.10.2005 11:38
dartvaider так как у тебя win 2003 srv НЕ 64 разрядный (я надеюсь ты упомянул бы об этом а вообщем то какая редакция напиши
пункты
3а у меня вызывает один вопрос, как один процесс может использовать к примеру 5 ГБ если я не прав приведи кол-во используемой памяти из диспечера задач, у меня максимум 1,72 гб
11. Simple очень хорошо что не надо следить за размерами лога и периодически обрезать его, но при этом возможность восстановления резко ограничивется, это только для желающих править 1С базы на низком уровне не профи не рекомендуется
а вобщем очень ничего главное запустись все остальные параметры сам подберешь от задач и сервака.
SQL сервер позваляет автоматизировать множество задач администрирования.

Автор: ShriEkeR
Дата сообщения: 11.10.2005 11:41
valdi77

Цитата:
необходимо установить SP3a

установка SQL Server'a здесь не поднималась для обсуждения.

Цитата:
обязательно должен совпадать

не обязательно

dartvaider
в SQL Server Client Network Utility /cliconfg/ разреши протокол TCP/IP /другие не нужны/
на сервере сделай точно также.
Автор: dartvaider
Дата сообщения: 11.10.2005 11:54
ShriEkeR TCP/IP открыт был - спасибо! А можно ли узнать на будующее если ставить SQL server на другой сервер, который замкнуть с терминальным сервером напрямую без свичей, то можно на сервере на котором MSSQL Отрубить клиент сетей милкрософт?


Автор: valdi77
Дата сообщения: 11.10.2005 12:13
ShriEkeR ты абсолютно прав я написал про SP3 так как когда не ладится, есть вероятность что ошибка на предыдущем этапе.
Но что касается, не долже совпадать порядок сортировки то позволь не согласиться, ты просто не загрузишь базу из выгрузки, с другой кодировкой если я не прав то напиши как
ведь он (сервер ) тебе напишит не совпадает кодировка и все
и насчет отключения других протоколов тоже вопрос какие ОС на клииентах и способы подключения (терминал/сетевое) pipes тоже могут пригодиться но это все взагали так сказать не зная точной погодыберешь и зонтик и крем от загара
Автор: ShriEkeR
Дата сообщения: 11.10.2005 12:30
valdi77

Цитата:
ты просто не загрузишь базу из выгрузки

при установке эти параметры можно оставить по умолчанию.

Цитата:
при установке SQL порядок сортировки (server collation) обязательно должен совпадать с порядком сортировки базы

а если у тебя будет несколько баз с разной кодовой страницей? для каждой отдельный сервер?

Цитата:
pipes тоже могут пригодиться

TCP/IP я рекомендовал как самый быстрый.
Автор: valdi77
Дата сообщения: 11.10.2005 12:41
конечно
Автор: LexusG
Дата сообщения: 18.10.2005 09:46
SQL2000 (v7) в отличии от версии 6.5 где, не если правильно указал кодировку, приходилось переставлять заново, позволяет задавать порядок сортировки отдельно для каждой базы. А для базы 1С действительно если порядок сортировки отличается от заданной в установках, сиквел выдаст ошибку во время загрузки.
Автор: valdi77
Дата сообщения: 18.10.2005 16:57
LexusG
Если я правильно понял, на одном SQL сервере можно ОДНОВРЕМЕННО работать с несколькими базами 1С в РАЗНЫХ кодировках. Зависит ли это от редакции сервера (std develop enterpr) и работало ли у тебя лично так.
Автор: dartvaider
Дата сообщения: 18.10.2005 19:52
LexusG

А как можно настроить пользователя SQL cервера так чтобы можно было входит под этим пользователем одновременно и повлияет ли это на работу SQL сервера?
Я имею ввиду если у подключаться к терминальной машине с удаленных машин, а терминальный сервер уже будет работать с SQL сервером под одной учетной записью!
Автор: valdi77
Дата сообщения: 18.10.2005 20:08
Самое простое работать с 1С со встроенной учетной записью SQL Sa
Автор: dartvaider
Дата сообщения: 18.10.2005 20:12
ну да с ней можно ли работать с ней через 1с с нескольких компов одновременно?
т.е. одновременно юзать 1с с удаленных компов , а 1с будет юзать SQL сервер под учетной записью SA
Автор: LexusG
Дата сообщения: 19.10.2005 10:23
Работу баз с разной кодировкой не проверял, небыло необходимости но такая возможность заложена. Подробней об этом лучше смотреть в форумах, посвещенных SQL. А работа под одним пользователем из терминала и нет работает без проблем, единственно все советую не работать под SA а создать Нового пользователя и сделать его владельцем базы 1С или баз если планируешь использовать несколько.

Добавлено:
Забыл добавить....возможность работы с несколькими базами от редакции сервера не зависит. Здесь только ограничения Сиквела для операционной системы. В частности, версия Ent - ставится только на серверные ОС, Develop и Desktop (MSDE) - на все. У меня на сервере стоит Ent, а на рабочей тачке с Win2000 - стоит MSDE, просто иногда требуется подцепить базу локально. Только маленькое дополнение...пришлось прикрутить с MSDE Enterprise Manager для более комфортного манипулирования базами.
Автор: XMMS
Дата сообщения: 24.10.2005 11:25

Цитата:
А как можно настроить пользователя SQL cервера так чтобы можно было входит под этим пользователем одновременно и повлияет ли это на работу SQL сервера?

Вопрос подниму. Под SA невозможно работать, т.к. есть такая штука как безопастность.


Добавлено:
Весьма интересный результат тут получил... запусти отчёт, замерил время - на MS SQL всё выполнялось дольше в 4 раза, чем по DBF лежащим на том же сервере. Причём загрузка протца-памяти была совсем небольшая. Ваши коментарии?
Автор: dartvaider
Дата сообщения: 24.10.2005 15:01

Цитата:
Причём загрузка протца-памяти была совсем небольшая. Ваши коментарии?

А какие настройки у Вас на SQL Сервере?Сколько весит БД,Какой сервер?



Цитата:
Цитата:А как можно настроить пользователя SQL cервера так чтобы можно было входит под этим пользователем одновременно и повлияет ли это на работу SQL сервера?

Вопрос подниму. Под SA невозможно работать, т.к. есть такая штука как безопастность.


Ну так я и спрашиваю можно ли будет работать с 1С 50 пользователям, которые одновременно зайдут по терминалу на сервир под одной учетной записью SA??
И смогут ли вообще зайди хотябы 2 пользователя одновременно под учекой SA?




Автор: XMMS
Дата сообщения: 24.10.2005 18:40
По моему вопросу:
оказалось фишка в следующем: тестировал я естественно под одним юзером по незнанию, и вышел такой вот результат. При запуске одновременно хотя бы двух отчётов - всё с точность наоборот, SQL своей скорости почти не меняет. А вот в DBF всё медленее намного.
Вот так вот. Very Happy Так что SQL реально быстрее выходит.


Цитата:
Ну так я и спрашиваю можно ли будет работать с 1С 50 пользователям, которые одновременно зайдут по терминалу на сервир под одной учетной записью SA??
И смогут ли вообще зайди хотябы 2 пользователя одновременно под учекой SA?

У меня работало три клиента под одной учёткой(НЕ SA).
Автор: dartvaider
Дата сообщения: 24.10.2005 19:29
У меня сейчас 1с юзают 50 пользователей!Все 50 пользователей подрубаются через терминал к 1с-ке и юзают одну БД на *.dbf файлах, но размер бд уже достигает 1 гига, вот думаю перенести на SQL сервер, но не знаю нужно ли мне создавать 50 учетных записей в SQL сервере, если не нежно, то смогут ли все 50 юзеров пользоваться одной учеткой и работать в ней одновременно, если смогут, то насколько тормознуто?
Автор: XMMS
Дата сообщения: 24.10.2005 19:41
dartvaider
Думаю ненадо... но проверить стоило бы...
Автор: dartvaider
Дата сообщения: 24.10.2005 20:13
XMMS
Ну если по принципу
Если всё работает , то ничего не надо трогать , то да

А если с точни зрения улучшения работы.... Но SQL Сервер ещё покупать нужно , если всё по честному и + к этому , что нужно выбрать момент для бекапа и поговорить с гл.Бухгалтером дабы никто не работал во время теста стремно кароче , но ничё залью бекап на DVD и попробую , как собираюсь с мыслями
Автор: XMMS
Дата сообщения: 24.10.2005 20:21
dartvaider
Для всех маштабных работ нам выделяется рабочая суббота.. когда приспичит...
PS: если затея с SQL себя не оправдает(в чём я сомневаюсь), новый сервак совсем не помешает.
Автор: dartvaider
Дата сообщения: 25.10.2005 09:02

Цитата:
если затея с SQL себя не оправдает(в чём я сомневаюсь), новый сервак совсем не помешает


Так вот в чем же вся суть был сервер терминальный , на нем жила 2к Smoll Buzines после того как кол-во пользователей достигло 50 челов, начались глюки при одновременных подключениях т.к. когда юзера юзали сервак все вместе!Smoll Buzines не может работать более , чем с 10 пользователями, проблему решили покупкой нового сервера, но Бд перенесли на него и на форуме узнал , что когда БД перейдет порог 1 гига, то .... вот теперь мы в ожидании чуда, которое хотелось бы предотвратить , 2-й сервер точно не купят
Автор: lufw
Дата сообщения: 26.10.2005 11:03
Очень полезная информация по поводу 1С на SQL
hxxp://www.1csql.ru/materials/articles/firststep.html
}>
Автор: dartvaider
Дата сообщения: 28.10.2005 10:47
Есть доки 20 метров для 1с , вот попробую за ночь выложить на рапсшаред? или на мегааплоад? Туда столько зальёться?

Страницы: 12

Предыдущая тема: ГДЕ МОЖНО НАЙТИ КНИГУ?


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.