Ответы пользователя по тегу PostgreSQL
  • Psq восстановление бэкапа, что делаю не так?

    @dr753 Автор вопроса
    Все оказалось до банального просто , был открыт pgadmin - соответственно он и держал базу postgres под пользаком postgres). Закрыл - все отработало
    Ответ написан
    Комментировать
  • Можно ли корректно забэкпить БД Postgres в Proxmox?

    @dr753 Автор вопроса
    Гмм пока из самых доступных - вариант бэкап VM с базой данных не в режиме Snaphot а в режиме Stop. Но это "спецефект" не совсем подходит (на время выполнения бэкапа vm-ка тушится, по окончанию автоматически запускается) .
    Ответ написан
    Комментировать
  • Как перенести каталог data в postgrespro-1c-15 на другой диск?

    @dr753 Автор вопроса
    Обнаружил боле простой вариант (правка postgresql.conf не требуется)
    Алгоритм прилагаю
    Имеем ранее созданный каталог под PG (/mnt/pg_data/data) в который нужно перенести pg из старого место расположения (Не забываем дать нужные права chown -R postgres:postgres )
    1) Стопарим PG
    2)правим mcedit /opt/pgpro/1c-15/bin/pg-setup
    указываем путь к новому каталогу
    #PGDATA=/var/lib/pgpro/1c-15/data
    PGDATA=/mnt/pg_data/data
    3) Правим mcedit /etc/default/postgrespro-1c-15
    #PGDATA=/var/lib/pgpro/1c-15/data
    PGDATA=/mnt/pg_data/data
    Копируем pg из старого места в новое
    Переименовываем /var/lib/pgpro/1c-15/ (mv /var/lib/pgpro/1c-15 /var/lib/pgpro/1c-15_old)

    Стартуем PG





    Как гриться, мы пошли другим путём )
    1)
    Cтопарю постгрес и копирую /var/lib/pgpro/1c-15/data в /mnt/pg_data.
    Меняю владельца /mnt/pg_data на postgres.
    В /var/lib/pgpro/1c-15/data/postgresql.conf в параметре указываю новое место расположения
    data_directory = '/mnt/pg_data/data' # use data in another directory
    Запускаю postgres
    SHOW data_directory;
    Вижу что каталог дата переехал
    /mnt/pg_data/data
    Оcтанавливаю postgres делаю mv /var/lib/pgpro/1c-15 в /var/lib/pgpro/1c-15_old

    2) mcedit /opt/pgpro/1c-15/bin/pg-setup
    и делаем как на скрине 65deec6546f7b120663813.jpeg

    Делаю /opt/pgpro/1c-15/bin/pg-setup initdb (от root), так как /mnt/pg_data/data уже есть не отрабатывает ( data там уже лежит, переименовываю /mnt/pg_data/data в /mnt/pg_data/data1 ).
    Повторяю, все ок.

    Cтартую pg - все работает но кластер чистый (что не удивительно).

    Cтопарю pg удаляю /mnt/pg_data/data и переименовываю /mnt/pg_data/data1 в /mnt/pg_data/data.
    Проверяю владельца на /mnt/pg_data/data (должен быть postgres:postgres).

    Снова стартую Pg - проверяю мои базы на месте , data каталог в /mnt/pg_data/data
    65dee5c9dbd7b704274781.jpeg
    Ответ написан
  • Ubuntu 18.04: как перенести /var/run из оперативки на диск?

    Мы можем создать каталог /run/postgresql "на лету" во время загрузки, используя механизм systemd-tmpfiles, создав файл конфигурации postgresql, как показано ниже
    echo "d /run/postgresql 0755 postgres postgres -" > /usr/lib/tmpfiles.d/postgresql.conf
    Ответ написан
    Комментировать
  • Почему не стартует full Pg_probackup?

    @dr753 Автор вопроса
    Одним словом

    В системе установлен системный пакет libpq. Системный libpq пытается установить соединение с сервером через /var/run, в то время как не-дебиановские постгресы ожидают соединения в /tmp.

    Проблему решаем так
    В postgresql.conf
    Задаем м значение
    unix_socket_directories = '/var/run/postgresql/' # comma-separated list of directories

    И вуаля

    root@bakupTest:/var/lib/pgpro/1c-16/data# sudo -u postgres pg_probackup-16 backup --threads= 3 -B /bg_bakup --instance backup -b FULL --stream --compress

    ИНФОРМАЦИЯ: Начало резервного копирования, версия pg_probackup: 2.5.13, экземпляр: backup, идентификатор резервной копии: S95GOE, режим резервного копирования: ПОЛНЫЙ, режим wal: ПОТОКОВЫЙ, удаленный: false, алгоритм сжатия: zlib, уровень сжатия: 1
    ПРЕДУПРЕЖДЕНИЕ: Этот экземпляр PostgreSQL был инициализирован без контрольных сумм блоков данных. у pg_probackup нет способа обнаружить повреждение блока данных без них. Повторно инициализируйте PGDATA с опцией '--data-контрольные суммы'.
    ПРЕДУПРЕЖДЕНИЕ: Текущая роль PostgreSQL - суперпользователь. Не рекомендуется запускать pg_probackup от имени суперпользователя.
    ИНФОРМАЦИЯ: Начало резервного копирования базы данных
    ИНФОРМАЦИЯ: подождите, пока pg_backup_start()
    ИНФОРМАЦИЯ: Дождитесь потоковой передачи сегмента WAL / bg_bakup / резервных копий / backup / S95GOE / базы данных / pg_wal / 000000010000000000000002
    ИНФОРМАЦИЯ: Размер PGDATA: 22 МБ
    ИНФОРМАЦИЯ: Текущий начальный LSN: 0/2000028, TLI: 1
    ИНФОРМАЦИЯ: Начать передачу файлов данных
    ИНФОРМАЦИЯ: Файлы данных загружены передано, истекло время: 0
    ИНФОРМАЦИЯ: дождитесь pg_stop_backup()
    ИНФОРМАЦИЯ: pg_stop backup() успешно выполнена
    ИНФОРМАЦИЯ: stop_lsn: 0 / 20001A0
    ИНФОРМАЦИЯ: Получение времени восстановления из WAL
    ИНФОРМАЦИЯ: Синхронизация файлов резервных копий на диск
    ИНФОРМАЦИЯ: Файлы резервных копий синхронизированы, истекло время: 0
    ИНФОРМАЦИЯ: Проверка резервной копии S95GOE
    ИНФОРМАЦИЯ: Файлы данных резервной копии S95GOE действительны
    ИНФОРМАЦИЯ: Размер резидентной копии S95GOE: 24 МБ
    ИНФОРМАЦИЯ: Резервное копирование S95GOE завершено
    root@bakupTest:/var/библиотека/pgpro/1c-16/данные#
    P/S
    Незабываем создать каталог и сменить владельца на postgres:postgres

    создаем
    mkdir /var/run/postgresql/
    меняем владельца
    chown postgres:postgres /var/run/postgresql/
    Ответ написан
    Комментировать
  • Ка создать oid для базы без создания базы?

    @dr753 Автор вопроса
    INSERT INTO
    pg_catalog.pg_database(
    oid, datname, datdba, encoding, datlocprovider, datistemplate, datallowconn, datconnlimit, datfrozenxid,
    datminmxid, dattablespace, datcollate, datctype, daticulocale, datcollversion, datacl)

    VALUES('204001', 'copy_copy1', 10, 6, 'c', false, true, -1, '536', '1' , 1663, 'Russian_Russia.1251', 'Russian_Russia.1251',
    null, null, null);

    select oid from pg_database a where a.datname = 'copy_copy1';
    Ответ написан
    Комментировать
  • Как передать пароль exe запускаемому из powershell?

    @dr753 Автор вопроса
    Спасибо всем за помощь
    Пока решил вопрос так (ибо нужно чтоб работало уже сейчас) , в дальнейшем попробую реализовать как советовал Роман и Max

    #Задаем пароль для postgree в переменную окружения
    $env:PGPASSWORD = 'DrC759123'
    #Указываем где лежит запускаемый exe
    Set-Location "C:\Program Files\PostgreSQL\14.2-3.1C\bin"
    #Запускаем его с нужными параметрами
    .\vacuumdb.exe --dbname postgres --host 127.0.0.1 --port 5432 --username postgres
    Ответ написан
    Комментировать