Исходные данные:
Приступим.
// начиная с версии postgresql 9.3 настройку параметров разделяемой памяти производить не нужно.
//In 9.3, PostgreSQL has switched from using SysV shared memory to using Posix shared memory and mmap for memory management. This allows easier installation and configuration of PostgreSQL, and means that except in unusual cases, system parameters such as SHMMAX and SHMALL no longer need to be adjusted. We need users to rigorously test and ensure that no memory management issues have been introduced by the change. источник
Настроим параметры ядра, отвечающие за выделяемую системе память.
Параметр SHMMAX — это максимум памяти, выделяемой в одном запросе в байтах. Я для PQSQL выделил виртуалку с 10ГБ оперативки, поэтому установлю размер в 8ГБ: kernel.shmmax = 8589934592.
Параметр kernel.shmall – Общее количество доступной разделяемой памяти в страницах. Рассчитывается как shmmax/PAGE_SIZE. Как правило, размер страницы в системе — 4096 байт, уточнить можно запросом в консоли
1 getconf PAGE_SIZE.Поэтому kernel.shmall = 8589934592/4096 или kernel.shmall = 2097152
123 echo "kernel.shmmax=8589934592" >> /etc/sysctl.confecho "kernel.shmall=2097152" >> /etc/sysctl.confsysctl -p
Задаем локаль, естественно, UTF-8:
1 2 |
locale-gen en_US ru_RU ru_RU.UTF-8 export LANG="ru_RU.UTF-8" |
Ставим зависимости:
1 |
apt-get install libssl0.9.8 libossp-uuid16 libxslt1.1 libicu52 libt1-5 t1utils imagemagick ttf-mscorefonts-installer unixodbc texlive-base libgfs-1.3-2 ssl-cert libicu-dev icu-devtools |
Устанавливаем PostgreSQL
1 2 3 4 5 6 |
dpkg -i libpq5_9.4.2-1.1C_amd64.deb dpkg -i postgresql-client-common_154.1.1C_all.deb dpkg -i postgresql-client-9.4_9.4.2-1.1C_amd64.deb dpkg -i postgresql-common_154.1.1C_all.deb dpkg -i postgresql-9.4_9.4.2-1.1C_amd64.deb dpkg -i postgresql-contrib-9.4_9.4.2-1.1C_amd64.deb |
И в этот момент мы получим ошибку
1 2 |
postgresql-contrib-9.4 зависит от libicu48 (>= 4.8-1), однако: Пакет libicu48 не установлен. |
потому что версия нашего пакета libicu отличается от ожидаемой.
Придется этот пакет перепаковать, перевыпаковать или установить эту бибилиотеку. Она отсутствует в репозитории Ubuntu-server 14.04. Но есть в репозитории дебиана. тут или с этого сайта - libicu48. Во втором случае перепаковка пакета не нужна. Перепаковка:
1 2 |
dpkg -x postgresql-contrib-9.4_9.4.2-1.1C_amd64.deb tmpdir dpkg -e postgresql-contrib-9.4_9.4.2-1.1C_amd64.deb tmpdir/DEBIAN |
Теперь открываем распакованный файл в редакторе
1 |
nano ./tmpdir/DEBIAN/control |
находим в строке Depends упоминание пакета libicu48 и меняем на libicu52, после чего сохраняем, перепаковываем пакет и снова устанавливаем:
1 2 |
dpkg -b tmpdir postgresql-contrib-9.4_9.4.2-1.1C_amd64_fixed.deb dpkg -i postgresql-contrib-9.4_9.4.2-1.1C_amd64_fixed.deb |
Проверяем, что PostgreSQL установился:
1 |
whereis postgresql |
Ответ должен быть таким:
1 |
postgresql: /etc/postgresql /usr/lib/postgresql /usr/share/postgresql |
и что он запущен: на команду
1 |
service postgresql status |
должен быть ответ
1 |
9.4/main (port 5432): online |
Затем создаем директорию для хранения баз 1С PostgreSQL и устанавливаем на нее права для пользователя postgres:
1 2 |
mkdir /1cdb chown postgres: /1cdb/ |
Инициализируем базу:
1 2 3 |
su postgres /usr/lib/postgresql/9.4/bin/initdb -D /1cdb/ --locale=ru_RU.UTF-8 psql -U postgres -c "alter user postgres with password 'ПАРОЛЬ_ПОЛЬЗОВАТЕЛЯ_POSTGRES';" |
Перезапускаем сервис
1 |
service postgresql restart |
и радуемся надписи
1 |
* Restarting PostgreSQL 9.4 database server [ OK ] |
Самое главное — для корректной работы с базой из 1С базу необходимо создавать из 1С, а не в PgAdmin`е.
Ставим сервер 1с
1 2 3 4 5 6 7 |
dpkg -i 1c-enterprise83-common_8.3.5-1625_amd64.deb dpkg -i 1c-enterprise83-server_8.3.5-1625_amd64.deb dpkg -i 1c-enterprise83-ws_8.3.5-1625_amd64.deb #остальные не обязательно dpkg -i 1c-enterprise83-common-nls_8.3.5-1625_amd64.deb dpkg -i 1c-enterprise83-server-nls_8.3.5-1625_amd64.deb dpkg -i 1c-enterprise83-ws-nls_8.3.5-1625_amd64.deb |
Даем пользователям 1С сервера права на запись:
1 |
chown -R usr1cv8:grp1cv8 /opt/1C |
Перезапускаем сервер 1с:
1 |
service srv1cv83 restart |
1 2 3 |
Stopping 1C:Enterprise 8.3 server: Warning: server not running! OK Starting 1C:Enterprise 8.3 server: OK |
Проверяем порты:
1 2 3 4 |
netstat -atn |grep 0.0.0.0:15 tcp 0 0 0.0.0.0:1560 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:1540 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:1541 0.0.0.0:* LISTEN |
Так же можно для профилактики проверить, все ли процессы сервера запущены нормально:
1 2 3 4 5 6 |
ps aux|grep 1c usr1cv8 28351 0.0 1.1 264284 22664 ? Ssl 10:01 0:00 /opt/1C/v8.3/x86_64/ragent -daemon usr1cv8 28354 0.3 2.0 776216 41956 ? Sl 10:01 0:00 /opt/1C/v8.3/x86_64/rmngr -port 1541 -host test -range 1560:1591 usr1cv8 28378 0.1 1.6 323900 34076 ? Sl 10:01 0:00 /opt/1C/v8.3/x86_64/rphost -range 1560:1591 -reghost test -regport 1541 -pid f10fbd88-c9eb-11e3-0599-40618600e473 root 28439 0.0 0.0 13472 892 pts/2 S+ 10:03 0:00 grep --color=auto 1c |
Источник
ERROR: type “mvarchar” does not exist at character 31
ну вот зачем совершенно бездумно тащить к себе в блог информацию без какой либо предварительной проверки… Вы же, как сисадмин, должны думать, анализировать, а не тупо копипастить всё, что нашли в этих ваших интернетах… именно по этому интернет превратился в помойку, в которой с каждым годом становится все сложнее найти полезную информацию…
начиная с версии PostgeSQL 9.3 для разделяемой памяти разработчики перешли с использования sysv на posix и на nmap для управления памятью, по этому использование параметров shmmax и shmall больше не имеет смысла
Спасибо за уточнение
Получится ли к такой конфигурации дать доступ через VPN, если openvpn сервер — настроен на этом же сервере? Или же придется использовать другой сервер, или виртуализацию?
почему бы и нет. Обращаться надо будет либо на локальный ип сервера, либо на ип сети впн, в зависимости от настройки самого впн
Добрый день. тоже установил сервер, но у меня одна проблема, прикрутил еще вебинтерфейс, и при входе с браузера пишет что база не найдена, хотя postgres запущен. вроде логин и пароль тоже указал при настройке 1с
-connstr «Srvr=10.0.1.111;Ref=base1c;» — сервер 1с для подключения, с указанием IP и названия базы
указывать надо именно 1с сервер, а не сервер postgre.
в последней ссылке подробнее
CTAPOMAK: спасибо за ответ,
у меня 1с и база на одном сервере. или надо было их по отдельности?
я по последней ссылке и сделал. но увы. что то не так получилось