Создание базы данных 1с на сервере postgresql

Создание базы данных 1с на сервере postgresql

Кризис дело неприятное. и многие пытаясь сэкономить хоть как-нибудь, и устанавливают на Windows PostgreSQL вместо MS SQL.

Хотя если по Вашей компании небольшие обороты, то лучше поставить MS SQL Server 2014 Express, т.к. по опыту PostgreSQL хорошо работает на Linux, на Windows при настройках по умолчанию PostgreSQL работает медленнее MS SQL Server 2014 Express.

Устанавливаем PostgreSQL 9.2.4-1

Скачиваем официальные пакет с сайта 1С (users.v8.1c.ru) и запускаем установку

Отмечаем объекты к установке, если они не отмечены

Устанавливаем "как сервис". Для работы этого сервиса потребуется специальный пользователь. Указываем учетную запись, домен (если имеется) и пароль.

Если пользователь postgres не заведен в системе, то установщик спросит создать пользователя? — жмем да

Перейдем к следующему шагу и укажем Инициализировать кластер БД, порт 5432 и Кодировку UTF8

Если кластер серверов 1С и PostgreSQLна разных машинах, то ставим галочку «Поддерживать подсоединения с любых IP, а не только с localhost».

Далее — Может возникнуть ошибка «Secondary Logon». Тогда идем в «Администрирование» – «Службы». Стартуем службу «Вторичный вход в систему» или «Secondary Logon»

Далее отметьте галкой необходимые модули, можно установить все, но для 1С они не нужны, я устанавливаю только Adminpack

Если процесс установки завершается без проблем, то вам повезло

Чаще бывают проблемы, решение простое и элегантное (бубен можно оставить):

1. Создать/Изменить учетную запись postgres, включить её в группу Администраторы

2. Выйти из системы и войти в неё под учетной записью postgres

3. Запустить установку PostgreSQL

После установки через меню "Пуск" — "Все программы" запускаем утилиту администрирования «pgAdmin III».

Подключаемся к серверу. Там вводим пароль для пользователя «postgres». Если подключиться удалось, попробуем создать новую базу средствами самой 1С.

Запускаем клиентскую часть 1С. Жмем кнопку "Добавить", ставим галочку "Сервер предприятия 1С". Далее заполняем следующее: сервер базы данных (IP или DNS имя того сервера, куда ставили PostgreSQL) — если тот же, что и кластер 1С, то указываем 127.0.0.1. Имя базы данных: [любое_имя]. Пользователь: "postgres" Пароль: [ваш_пароль_postgres]. Далее.

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

ВАЖНО: Если у вас нет опыта работы с БД или этот опыт минимален, то мы настоятельно рекомендуем начать с минимальной базы для отработки процесса.

На скриншотах в инструкции показана работа с минимальной базой, соответственно и время указано для минимальной базы, но работа с расширенной и максимальной базой займет больше времени.

Скачивание и установка сервера баз данных PostgreSQL

1. Скачаем бесплатную программу для базы данных PostgreSQL c официального сайта http://www.postgresql.org/download/windows/

1. Скачаем бесплатную программу для базы данных PostgreSQL c официального сайта http://www.postgresql.org/
download/windows/

Затем перейдем по ссылке на подробную страницу версий базы данных для разных ОС: http://www.enterprisedb.com/products-services-training/pgdownload#windows:

ВАЖНО: Мы рекомендуем устанавливать сервер баз данных и делать выборки в 64-битной системе с минимум 6 Гб оперативной памяти при работе с минимальной и расширенной базами. В случае максимальной базы рекомендуемый объем оперативной памяти — от 32 Гб , также желателен быстрый диск. На компьютере с 32-битной системой процесс импорта данных, их индексации и собственно выборки будет проходить очень и очень долго, поэтому лучше отказаться от этой идеи.

Если вы не знаете разрядность своей ОС, то ее можно посмотреть в свойствах компьютера (правая кнопка мыши на пункте «Компьютер», выбрать в меню «Свойства»):

Читайте также:  Бэкап базы данных сайта

2. Устанавливаем скачанную БД PostgreSQL. Во время установки практически все по умолчанию …

… за исключением нескольких моментов.

При выборе папки для хранения данных – если у вас на системном диске мало места или он не самый быстрый из ваших дисков, то рекомендуем выбрать другой, на котором много свободного места и у которого показатели скорости чтения/записи выше. Например, мы выбрали диск D :

Примечание: для того, чтобы процедура импорта и индексации базы ключевых слов прошла успешно, вам нужно, чтобы свободного места на диске было примерно в три раза больше, чем размер базы. Например, текстовая база из 457 млн.слов занимает 11,2 Гб, тогда на диске, где расположена папка под хранение проектов, должно быть как минимум 33 Гб. Эта цифра ориентировочна и для других баз будет отличаться.

Дальше вводим пароль, который нужно запомнить, он понадобится в дальнейшем тоже:

Порт, региональные настройки оставляем по умолчанию.

На последнем шаге установки появляется экран:

Для нашей задачи дополнительные инструменты не нужны, поэтому убираем галочку на этом экране.

Сервер баз данных PostgreeSQL установлен, переходим к его настройке.

Настройка сервера баз данных PostgreSQL

1. Оптимизируем конфигурацию для ускорения работы сервера. В структуре папок, куда вы настроили хранение данных при установке PostgreSQL, находим файл postgresql.conf (в нашем случае, путь к этому файлу d:PostgreSQL9.5datapostgresql.conf ). Открываем Блокнот (Notepad) , в Блокноте выбираем и открываем postgresql.conf (для этого в окне диалога «Открыть» выбираем для отображения все форматы файлов), в файле конфигурации находим пункты # work_mem и # maintenance_work_mem , меняем значения на:

work_mem = 256MB
maintenance_work_mem = 2020MB

Примечание: Обратите внимание на то, что в файле конфигурации мы убираем комментирование ( # ) для исправляемых пунктов, иначе новые настройки не применятся. Далее нужно сохранить измененный файл postgresql.conf .

После установки сервер БД стартовал автоматически. Для того, чтобы изменения в конфигурации вступили в силу, его нужно перезапустить, но проще просто перезагрузить компьютер – в таком случае измененные настройки конфигурации наверняка вступят в силу.

Правильное выполнение этого шага очень важно, поскольку эти настройки влияют на скорость индексации (а также на скорость выборки). Если вы его пропустите, то процедура индексации потребует намного больше времени.

Создание базы данных

Открываем программу для управления базами данных PosgreSQL — PGAdmin .

1. Для подключения к серверу дважды кликнем на иконке сервера:

Введите пароль, который вы использовали на этапе установки. Установите галочку «Сохранить пароль» для удобства дальнейшей работы:

После подключения красный крестик в иконке названия сервера исчезнет и появится дерево структуры базы, которая создана по умолчанию.

2. Создаем базу для хранения английских ключевых слов. Для этого на пункте «Базы данных» в меню по правой кнопке мыши выбираем пункт «Новая база данных» .

Затем в открывшемся окне создания базы вписываем название MyDB , нажимаем OK :

Этого достаточно для создания базы.

Создание таблицы, импорт данных в таблицу и их индексация

Теперь, когда база MyDB создана, создадим таблицу eng_data_table в этой базе и импортируем в нее английские ключевые слова из текстового файла, который мы скачали.

Затем проиндексируем данные для того, чтобы поиск по таблице производился быстрее.

Эти подготовительные процедуры, хотя и занимают много времени, являются разовыми. После выполнения вам не придется их заново повторять, пока вы работаете с одной и той же базой данных.

Читайте также:  Нет фермента расщепляющего алкоголь

1. Становимся на названии базы и нажимаем кнопку SQL в верхней панели инструментов:

Появляется окно редактора запросов SQL. Для создания таблицы копируем и вставляем такую команду:

CREATE TABLE "eng_data_table" (
"keyword" VARCHAR NOT NULL
) WITH (fillfactor = 100, oids = false);

Нажимаем зеленую кнопку выполнения запроса в верхней панели:

Примечание: Если вы экспериментируете, то для удаления ранее созданной таблицы нужно применить команду:

drop table if exists "eng_data_table";

2. Импортируем данные из файла базы английских ключевых слов, который мы скачали с сайта и распаковали на локальный диск e:downloadsEnglishKeywords.txt , в созданную таблицу eng_data_table .

Для этого в SQL редактор вставим такой запрос:

copy "eng_data_table" from ‘e:downloadsEnglishKeywords.txt’;

и нажмем зеленую кнопку выполнения запроса в верхней панели:

Импорт выполняется в среднем 20-40 минут.

После выполнения команды copy архив и распакованный файл базы можно удалить, если у вас мало свободного места на диске.

Примечание: Если вы импортируете расширенную базу, обратите внимание на то, что название файла расширенной базы отличается от названия минимальной базы. В этом случае в синтаксисе команды копирования базы EnglishKeywords.txt нужно поменять на EnglishKeywordsExtended.txt . Соответственно при работе с максимальной базой нужно указать название EnglishKeywordsMax.txt

Дополнительно: База английских ключевых слов прошла фильтрацию от мусора и слов, состоящих из букв, не встречающихся в английском алфавите. Но на этом этапе из базы можно дополнительно отфильтровать фразы, которые по некоторым признакам являются неанглийскими. Если вы планируете осуществить такую чистку, то лучше это сделать до оптимизации и индексации таблицы. Подробнее о фильтрациии неанглийских слов.

3. Запускаем операцию оптимизации таблицы подобным образом:

Оптимизация выполняется в среднем 15-30 минут.

Примечание: Запросы выполняем по одному, предварительно стирая уже выполненные предыдущие запросы. О том, выполнен запрос или нет, вы можете узнать из сообщения в Панели вывода внизу (оно появляется, когда запрос выполнен), а время выполнения вы можете узнать в строке состояния внизу окна.

4. Индексируем таблицу для быстрого поиска в базе. Синтаксис запроса для индексации нашей таблицы такой:

CREATE INDEX "eng_data_table_idx" ON "eng_data_table" USING gin ((to_tsvector(‘english’::regconfig, ("keyword")::text)));

Примечание: Этот шаг самый длительный, займет 3-5 часов в зависимости от мощности вашего ПК. Для ускорения индексации лучше закрыть программы, потребляющие много ОЗУ и активно работающие с диском. Тем не менее, если вы продолжаете пользоваться вашим ПК, то в это время ваш компьютер может притормаживать, это нормально.

Если процесс индексации затягивается (например, для индексации английской базы в 500 млн. строк нужно 2-3 часа), то скорее всего вы 1) не поменяли/не сохранили настройки конфигурации либо 2) поменяли конфиг, но не перезагрузили компьютер.

5. Обновляем статистику таблицы (позволит эффективно использовать только что созданный индекс):

vacuum analyze "eng_data_table";

Оптимизация займет 5-10 минут.

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

Как заставить Сервер 1С (что работает на Windows), увидеть в сети сервер PostgreSQL на Linux UBUNTU?

Конечно, данная тема также подымается и на курсе: Администратор 1С!

Собственно решить такие проблемы как:

  • «Ошибка создания информационной базы»
  • «Ошибка операции администрирования»
  • «Сервер баз данных не обнаружен»
  • «Could not connect to server: Connection refused (Ox..00000/0000…)
  • Is the server running on host 192.168….x… and accepting TCP/IP connections on port 5432?»
Читайте также:  Как найти страницу вк по номеру мобильного

При установке на один физический сервер, «Cервера 1С» (кластер серверов) + СУБД PostgreSQL проблем обычно не возникает. И «Сервер 1С» прекрасно видит PostgreSQL, новые информационные базы создаются, и все работает по умолчанию, конечно если поставили птичку во время установки СУБД на Windows — «Разрешать подключения с любых IP адресов».

Но совсем другая история, когда PostgreSQL у нас работает на Linux!

Ведь в процессе установки PostgreSQL на Linux подобных «птичек» нет )

Как решить проблему?

На самом деле все довольно просто!

Проверим в начале c какого IP принимаются подключения, и какой порт слушает сервис PostgreSQL.

Тут нам поможет команда:

На картинке ниже, мы четко видим, что наш PostgreSQL слушает только localhost — 127.0.0.1 и порт по умолчанию 5432.

Выражаясь простым языком, «Сервер 1С» может работать в паре с СУБД, только на этом севере (хосте), при текущих настройках (По умолчанию, после установки «Постгреса» на этот сервер).

И так, теперь разобравшись, что проблема действительно есть в настройках PostgreSQL, можно приступить к ее решению!

Сперва нам нужно найти конфигурационный файл postgresql.conf

Местоположение этого файла зависит от версии СУБД PostgreSQL (На примере использую сборку от компании Postgres Professional — PostgreSQL 10.5, сборку установил на UBUNTU server 18.04 LTS).

Найти файл очень просто, используем команду:

Нас интересует все что мы видим после -D /var/lib/pgpro/1c-10/data/

Здесь в каталоге /data/ и лежит наш файл postgresql.conf

Идем в этот каталог, откроем для редактирования postgresql.conf, и внесем нужные правки.

Для передвижения по каталогам и редактированию файлов на UBUNTU server 18.04, я использую MC (Midnight Commander).

(Выбрав файл postgresql.conf) давим клавишу F4.

Ищем строку #listen_addresses = ‘localhost’.

Раскомментируем строку (убрав #).

И приведем строку к виду: listen_addresses = ‘*’

Давим F2 + Enter и сохраняем файл.

Далее выполним перезапуск сервиса postgresql:

service postgrespro-1c-10 stop

service postgrespro-1c-10 start

(Команда перезапуска у Вас будет отличатся, если версия PostgreSQL другая или другой сборки).

Затем стоит проверить работает ли PostgreSQL:

service postgrespro-1c-10 status

И если видим (как на картинке ниже) зеленым цветом active (running) значит PostgreSQL работает!

Смотрим, что теперь «слушает» PostgreSQL:

Отлично!

После перезапуска сервиса, PostgreSQL принимает подключения действительно с любых IP адресов на стандартный порт 5432!

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

Сервер 1С встретит Вас новой ошибкой! )

«ВАЖНО: в pg_hba.conf нет записи для компьютера «192.168.128.13», пользователя «postgres», базы «template1″, SSl выкл.»

Сервер 1С требует от нас создать еще одну запись, уже в другом файле pg_hba.conf

«Надо, так надо )»

Открываем для редактирования файл pg_hba.conf, он к слову находится в том же каталоге, что и файл postgresql.conf

Ищем строку: host all all 127.0.0.1/32 md5

И приводим к виду: host all all 192.168.128.13/24 md5

Где 192.168.128.13 ip адрес нашего Сервера 1С. (Тот сервер, где работает Сервер 1С).

Кстати! можно поступить и по-другому.

Просто добавить в строке ниже еще одну запись (Ту которую от нас и требует Сервер 1С):

Вот и все!

Сохраним файл и выполним перезапуск PostgreSQL.

Теперь новая информационная база 1С, будет создана успешно!

Сервер 1С работает на Windows, а PostgreSQL на Linux!

Если Вы хотите больше узнать о технической стороне 1С, тогда регистрируйтесь на первый бесплатный модуль курса: Администратор 1С >>>

Ссылка на основную публикацию
Adblock detector