Postgres pro standard документація 9

Щоб хто-небудь зміг звернутися до бази даних, необхідно спочатку запустити сервер баз даних. Програма сервера називається postgres. Для роботи програма postgres повинна знати, де знайти дані, які вона буде використовувати. Вказати це місце розташування дозволяє параметр -D. Таким чином, найпростіше запустити сервер, виконавши команду:

в результаті якої сервер продовжить роботу як процесу переднього плану. Запускати цю команду слід під ім'ям облікового запису Postgres Pro. Без параметра -D сервер спробує використовувати каталог даних, вказаний у змінній оточення PGDATA. Якщо і ця змінна не визначена, сервер не буде запущений.

Однак зазвичай краще запускати postgres в фоновому режимі. Для цього можна застосувати звичайний синтаксис, прийнятий в оболонці Unix:

Важливо де-небудь зберігати інформацію, яку виводить сервер в канали stdout і stderr. як показано вище. Це корисно і для цілей аудиту, і для діагностики проблем. (Більш глибоко робота з файлами журналів розглядається в Розділі 23.3.)

Програма postgres також приймає кілька інших параметрів командного рядка. За додатковими відомостями зверніться до довідкової сторінці postgres і до наступної Главі 18.

Такий варіант запуску досить швидко може виявитися незручним. Тому для спрощення подібних завдань пропонується допоміжна програма pg_ctl. наприклад:

запустить сервер у фоновому режимі і направить виводяться повідомлення сервера в зазначений файл журналу. Параметр -D для неї має те ж значення, що і для програми postgres. За допомогою pg_ctl також можна зупинити сервер.

Зазвичай виникає бажання, щоб сервер баз даних сам запускався при завантаженні операційної системи. Скрипти автозапуску для різних систем різні, але в складі Postgres Pro пропонується кілька типових скриптів в каталозі contrib / start-scripts. Для установки такого скрипта в систему потрібні права root.

У різних системах прийняті різні угоди про порядок запуску служб в процесі завантаження. У багатьох системах для цього використовується файл /etc/rc.local або /etc/rc.d/rc.local. В інших застосовуються каталоги init.d або rc.d. Однак при будь-якому варіанті запускатися сервер повинен від імені користувача Postgres Pro. але не root або будь-якого іншого користувача. Тому команду запуску зазвичай слід записувати у формі su postgres -c '. '. наприклад:

Нижче наведені більш конкретні пропозиції для кількох основних ОС. (Замість зазначених нами шаблонних значень необхідно підставити правильний шлях до каталогу даних і фактичне ім'я користувача.)

Для запуску у FreeBSD скористайтеся файлом contrib / start-scripts / freebsd в дереві вихідного коду Postgres Pro.
  • У OpenBSD. додайте в файл /etc/rc.local наступні рядки:

    У системах Linux ви можете або додати

    в /etc/rc.d/rc.local або в /etc/rc.local. або скористатися файлом contrib / start-scripts / linux в дереві вихідного коду Postgres Pro.
  • У NetBSD можна використовувати скрипт запуску для FreeBSD або для Linux. в залежності від уподобань.
  • У Solaris. створіть файл з ім'ям /etc/init.d/postgresql. що містить наступну стоку:

    Потім створіть символічну посилання на нього в каталозі /etc/rc3.d з ім'ям S99postgresql.

  • Коли сервер працює, ідентифікатор його процесу (PID) зберігається в файлі postmaster.pid в каталозі даних. Це дозволяє виключити запуск декількох примірників сервера з одним каталогом даних, а також може бути корисно для виключення сервера.

    може означати, що встановлений для вашого ядра граничний розмір пам'яті, що занадто малий для робочої області, яку намагається створити Postgres Pro (в даному прикладі 4011376640 байт). Можливо також, що в вашому ядрі взагалі відсутня підтримка розділяється пам'яті в стилі System-V. В якості тимчасового рішення можна спробувати запустити сервер з меншим числом буферів (shared_buffers), але в підсумку вам, швидше за все, доведеться переконфігурувати ядро ​​і збільшити допустимий розмір розділяється пам'яті. Ви також можете побачити це повідомлення при спробі запустити кілька серверів на одному комп'ютері, якщо запитаний ними обсяг пам'яті, що в сумі перевищує цю межу.

    не означає, що у вас закінчилося місце на диску. Це значить, що встановлена ​​у вашому ядрі граничне число семафорів System V менше, ніж кількість семафорів, яке намагається створити Postgres Pro. Як і в попередньому випадку, можна спробувати обійти цю проблему, запустивши сервер з меншим числом допустимих підключень (max_connections), але в кінці кінців вам доведеться збільшити цю межу в ядрі.

    Якщо ви отримуєте помилку "illegal system call" (невірний системний виклик), то, швидше за все, ваше ядро ​​зовсім не підтримує пам'ять, що розділяється або семафори. В цьому випадку, вам залишається тільки переконфигурировать ядро ​​і включити їх підтримку.

    Налаштування засобів IPC в стилі System V описується в ПІДРОЗДІЛИ 17.4.1.

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

    Це загальна проблема "я не можу знайти сервер і почати взаємодію з ним". Показане вище повідомлення говорить про спробу встановити підключення по TCP / IP. Дуже часто пояснюється це тим, що сервер просто забули налаштувати для роботи по протоколу TCP / IP.

    Крім того, при спробі встановити підключення до локального сервера через доменний сокет Unix можна отримати таке повідомлення: