Как получить DDL запрос пакетом DBMS_METADATA без дополнительных деталей?
Можно ли получить DDL запрос без дополнительных деталей, например, STORAGE ? Свободный перевод вопроса Problem with getting an Oracle table ddl but with out the extra detail from the current schema от участника @Hoopoe
Отслеживать
задан 25 сен 2021 в 18:31
51.6k 200 200 золотых знаков 59 59 серебряных знаков 242 242 бронзовых знака
ассоциация:stackoverflow.com/q/69327505
25 сен 2021 в 18:33
1 ответ 1
Сортировка: Сброс на вариант по умолчанию
Это возможно, установив параметры процедурой SET_TRANSFORM_PARAM.
Так будет с параметрами по умолчанию:
create table t ( id int primary key, val varchar(16), flag char (1) check (flag in ('y','n'))) / set long 9999 select dbms_metadata.get_ddl ('TABLE', 'T', user) t_ddl from dual; T_DDL -------------------------------------------------------------------------------- CREATE TABLE "DB"."T" ( "ID" NUMBER(*,0), "VAL" VARCHAR2(16), "FLAG" CHAR(1), CHECK (flag in ('y','n')) ENABLE, PRIMARY KEY ("ID") USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 TABLESPACE "USERS" ENABLE ) SEGMENT CREATION DEFERRED PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING TABLESPACE "USERS"
Теперь установив параметры (подробнее см. по ссылке выше):
begin dbms_metadata.set_transform_param ( dbms_metadata.session_transform, 'SQLTERMINATOR', true); dbms_metadata.set_transform_param ( dbms_metadata.session_transform, 'PRETTY', true); dbms_metadata.set_transform_param ( dbms_metadata.session_transform, 'SEGMENT_ATTRIBUTES', false); dbms_metadata.set_transform_param ( dbms_metadata.session_transform, 'CONSTRAINTS_AS_ALTER', false); dbms_metadata.set_transform_param ( dbms_metadata.session_transform, 'STORAGE', false); end; / select dbms_metadata.get_ddl ('TABLE', 'T', user) t_ddl from dual; T_DDL -------------------------------------------------------------------------------- CREATE TABLE "DB"."T" ( "ID" NUMBER(*,0), "VAL" VARCHAR2(16), "FLAG" CHAR(1), CHECK (flag in ('y','n')) ENABLE, PRIMARY KEY ("ID") USING INDEX ENABLE ) ;
Свободный перевод ответа от участника @0xdb
Как получить DDL запрос на создание аналогичной таблице по таблице в postgres?
Есть таблица. Можно ли получить запрос DDL на создание точно такой-же?
- Вопрос задан более двух лет назад
- 874 просмотра
Комментировать
Решения вопроса 1

Миллиардер, филантроп, патологический лгун
pg_dump -t 'schema-name.table-name' --schema-only database-name
Ответ написан более двух лет назад
Комментировать
Нравится Комментировать
Ответы на вопрос 0
Ваш ответ на вопрос
Войдите, чтобы написать ответ

- PostgreSQL
Как задать значение для поля с foreign key которого нет во внешней таблице?
- 1 подписчик
- 10 часов назад
- 43 просмотра

- PostgreSQL
- +1 ещё
Почему возвращается ошибка realtion "table_name" does not exist?
- 1 подписчик
- 19 часов назад
- 65 просмотров

- Node.js
- +1 ещё
Как в предварительном запросе передать переменной $ значение полей?
- 1 подписчик
- вчера
- 46 просмотров

- Python
- +1 ещё
Как грамотно конвертировать Record-строку при работе с asyncpg в словарь для дальнейшей работы с данными?
- 1 подписчик
- 26 окт.
- 66 просмотров

- PostgreSQL
- +1 ещё
Как создать connection_pool асинхронно, но в отдельном модуле, чтобы затем использовать его в dp.message_handler для работы с БД асинхронно?
- 1 подписчик
- 25 окт.
- 56 просмотров

- PostgreSQL
Можно ли присвоить название колонки на русском в postgres при выборке данных?
- 1 подписчик
- 24 окт.
- 78 просмотров

- PostgreSQL
- +1 ещё
Почему при операциях с БД из под Docker-контейнера возникает ошибка?
- 2 подписчика
- 23 окт.
- 155 просмотров

- PostgreSQL
Где ошибка в запросе sql?
- 1 подписчик
- 21 окт.
- 120 просмотров

- PostgreSQL
Как удалить строки, полученные подзапросом с фильтрацией и сортировкой?
- 1 подписчик
- 20 окт.
- 67 просмотров

- PostgreSQL
- +1 ещё
Как партиционировать большую таблицу в PG 11?
- 1 подписчик
- 19 окт.
- 65 просмотров
До 200 000 ₽
от 300 000 ₽
30 окт. 2023, в 08:03
5000 руб./за проект
30 окт. 2023, в 07:35
10000 руб./за проект
30 окт. 2023, в 07:16
3000 руб./за проект
Минуточку внимания
Присоединяйтесь к сообществу, чтобы узнавать новое и делиться знаниями
- Как узнать какой регион самый ранний по получению обновлении на Samsung?
- 2 подписчика
- 0 ответов
- 2 подписчика
- 0 ответов
- 3 подписчика
- 1 ответ
- 2 подписчика
- 0 ответов
- 2 подписчика
- 2 ответа
- 2 подписчика
- 0 ответов
- 2 подписчика
- 3 ответа
- 2 подписчика
- 1 ответ
- 1 подписчик
- 2 ответа
- 2 подписчика
- 0 ответов
Резервное копирование и восстановление PostgreSQL: pg_dump, pg_restore, wal-g
В этой статье мы разберем возможности встроенных и внешних инструментов PostgreSQL для резервного копирования логической схемы и данных.
Эта инструкция — часть курса «PostgreSQL для новичков».
Смотреть весь курс

Задача резервного копирования — одна из основных при сопровождении и поддержке PostgreSQL. Для резервного копирования логической схемы и данных можно использовать как встроенные инструменты СУБД, так и внешние. В этой статье мы разберем оба варианта.
Для начала подготовим сервер. Для демо-стенда закажем виртуальный сервер в Облачной платформе. Для этого откроем панель управления my.selectel.ru, перейдем в меню Облачная платформа и нажмем на кнопку Создать сервер.

В статье будем использовать виртуальный сервер с конфигурацией 2 vCPU, 4 ГБ RAM и 10 ГБ HDD с операционной системой CentOS 8 Stream 64-bit.

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

После выбора операционной системы, конфигурации сервера и выполнения сетевых настроек переходим к завершению заказа и нажимаем на кнопку Создать. Через несколько минут сервер будет готов.
Перед началом демонстрации возможностей резервного копирования, мы подготовили PostgreSQL. Для целей наполнения базы данных и создания непрерывного потока записи, развернули там Zabbix (некоторое время назад публиковали о нем статью).
Облачные базы данных Selectel
Доверьте нам развертывание и администрирование баз данных в облаке.
Создание резервных копий и восстановление из командной строки
В этом разделе мы расскажем как сделать дамп базы данных PostgreSQL в консоли при подключении по SSH, разберем синтаксис и покажем примеры использования утилит pg_dump, pg_dumpall, pg_restore, pg_basebackup и wal-g.
Утилита pg_dump
В PostgreSQL есть встроенный инструмент для создания резервных копий — утилита pg_dump. Утилита имеет простой синтаксис:
# pg_dump >
В простейшем случае достаточно указать имя базы данных, которую в дальнейшем нужно будет восстановить. Резервная копия создается следующей командой:
# pg_dump zabbix > /tmp/zabbix.dumpЕсли требуется авторизация под определенным пользователем, можно воспользоваться ключом -U:
# pg_dump -U zabbix -W zabbix > /tmp/zabbix.dump # pg dump u postgresКлюч -U определяет пользователя, а -W обязывает ввести пароль.
Чтобы сэкономить место на диске, можно сразу же сжимать дамп:
# pg_dump -U zabbix -W zabbix | gzip > /tmp/zabbix.gzРезервное копирование обычно выполняется по расписанию, например, ежедневно в 3 часа ночи. Нижеприведенный пример скрипта не только выполняет бэкап, но и удаляет все файлы старше 61 дня (за исключением 15-го числа месяца).
#!/bin/sh PATH=/etc:/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin PGPASSWORD=some_password export PGPASSWORD pathB=/mnt/backup dbUser=dbadmin database=zabbix find $pathB \( -name "*-1[^5].*" -o -name "*-[023]?.*" \) -ctime +61 -delete pg_dump -U $dbUser $database | gzip > $pathB/pgsql_$(date "+%Y-%m-%d").sql.gz unset PGPASSWORDЧтобы настроить регулярное выполнение, выполним следующую команду в планировщике crontab:
# crontab -e 3 0 * * * /etc/scripts/pgsql_dump.sh # postgres pg dumpЧтобы выполнить аналогичную команду на удаленном сервере, достаточно добавить ключ -h:
# pg_dump -h 192.168.56.101 zabbix > /tmp/zabbix.dumpКлюч -t задает таблицу, для которой нужно создать резервную копию:
# pg_dump -t history zabbix > /tmp/zabbix.dump # postgres dump tableПри помощи специальных ключей можно создавать резервные копии структуры данных или непосредственно данных:
# pg_dump --schema-only zabbix > /tmp/zabbix.dump # pg_dump --data-only zabbix > /tmp/zabbix.dumpУ утилиты pg_dump также есть ключи для сохранения дампа в другие форматы. Чтобы сохранить копию в виде бинарного файла используются ключи -Fc:
# pg_dump -Fc zabbix > /tmp/zabbix.bakЧтобы создать архив — -Ft:
# pg_dump -Ft zabbix > /tmp/zabbix.tarЧтобы сохранить в directory-формате — -Fd:
# pg_dump -Fd zabbix > /tmp/zabbix.dirРезервное копирование в виде каталогов позволяет выполнять процесс в многопоточном режиме.
Ниже мы перечислим возможные параметры утилиты pg_dump.
-d , —dbname=имя_бд — база данных, к которой выполняется подключение.
-h , —host=сервер — имя сервера.
-p , —port=порт — порт для подключения.
-U , —username=пользователь) — учетная запись, используемое для подключения.
-w, —no-password — деактивация требования ввода пароля.
-W, —password — активация требования ввода пароля.
—role=имя роли — роль, от имени которой генерируется резервная копия.
-a, —data-only — вывод только данных, вместо схемы объектов (DDL).
-b, —blobs — параметр добавляет в выгрузку большие объекты.
-c, —clean — добавление команд DROP перед командами CREATE в файл резервной копии.
-C, —create — генерация реквизитов для подключения к базе данных в файле резервной копии.
-E , —encoding=кодировка — определение кодировки резервной копии.
-f , —file=файл — задает имя файла, в который будет сохраняться вывод утилиты.
-F , —format=формат — параметр определяет формат резервной копии. Доступные форматы:
- p, plain) — формирует текстовый SQL-скрипт;
- c, custom) — формирует резервную копию в архивном формате;
- d, directory) — формирует копию в directory-формате;
- t, tar) — формирует копию в формате tar.
-j , —jobs=число_заданий — параметр активирует параллельную выгрузку для одновременной обработки нескольких таблиц (равной числу заданий). Работает только при выгрузке копии в формате directory.
-n , —schema=схема — выгрузка в файл копии только определенной схемы.
-N , —exclude-schema=схема — исключение из выгрузки определенных схем.
-o, —oids — добавляет в выгрузку идентификаторы объектов (OIDs) вместе с данными таблиц.
-O, —no-owner — деактивация создания команд, определяющих владельцев объектов в базе данных.
-s, —schema-only —добавление в выгрузку только схемы данных, без самих данных.
-S , —superuser=пользователь — учетная запись привилегированного пользователя, которая должна использоваться для отключения триггеров.
-t , —table=таблица — активация выгрузки определенной таблицы.
-T , —exclude-table=таблица —исключение из выгрузки определенной таблицы.
-v, —verbose — режим подробного логирования.
-V, —version — вывод версии pg_dump.
-Z 0..9, —compress=0..9 — установка уровня сжатия данных. 0 — сжатие выключено.
Утилита pg_dumpall
Утилита pg_dumpall реализует резервное копирование всего экземпляра (кластера или инстанса) базы данных без указания конкретной базы данных на инстансе. По принципу схожа с pg_dump. Добавим, что только утилиты pg_dump и pg_dumpall предоставляют возможность создания логической копии данных, остальные утилиты, рассматриваемые в этой статье, позволяют создавать только бинарные копии.
# pg_dumpall > /tmp/instance.bakЧтобы сразу сжать резервную копию экземпляра базы данных, нужно передать вывод на архиватор gzip:
# pg_dumpall | gzip > /tmp/instance.tar.gzНиже приведены параметры, с которыми может вызываться утилита pg_dumpall.
-d , —dbname=имя_бд — имя базы данных.
-h , —host=сервер — имя сервера.
-p , —port=порт — TCP-порт, на который принимаются подключения.
-U , —username=пользователь — имя пользователя для подключения.
-w, —no-password — деактивация требования ввода пароля.
-W, —password — активация требования ввода пароля.
—role= — роль, от имени которой генерируется резервная копия.
-a, —data-only — создание резервной копии без схемы данных.
-c, —clean — добавление операторов DROP перед операторами CREATE.
-f , —file=имя_файла — активация направления вывода в указанный файл.
-g, —globals-only — выгрузка глобальных объектов без баз данных.
-o, —oids — выгрузка идентификаторов объектов (OIDs) вместе с данными таблиц.
-O, —no-owner — деактивация генерации команд, устанавливающих принадлежность объектов, как в исходной базе данных.
-r, —roles-only — выгрузка только ролей без баз данных и табличных пространств.
-s, —schema-only — выгрузка только схемы без самих данных.
-S , —superuser=имя_пользователя — привилегированный пользователь, используемый для отключения триггеров.
-t, —tablespaces-only — выгрузка табличных пространства без баз данных и ролей.
-v, —verbose — режим подробного логирования.
-V (—version — вывод версии утилиты pg_dumpall.
Утилита pg_restore
Утилита позволяет восстанавливать данные из резервных копий. Например, чтобы восстановить только определенную БД (в нашем примере zabbix), нужно запустить эту утилиту с параметром -d:
# pg_restore -d zabbix /tmp/zabbix.bakЧтобы этой же утилитой восстановить определенную таблицу, нужно использовать ее с параметром -t:
# pg_restore -a -t history /tmp/zabbix.bakТакже утилитой pg_restore можно восстановить данные из бинарного или архивного файла. Соответственно:
# pg_restore -Fc zabbix.bak # pg_restore -Ft zabbix.tarПри восстановлении можно одновременно создать новую базу:
# pg_restore -Ft -С zabbix.tarВосстановить данные из дампа также возможно при помощи psql:
# psql zabbix < /tmp/zabbix.dumpЕсли для подключения нужно авторизоваться, вводим следующую команду:
# psql -U zabbix -W zabbix < /tmp/zabbix.dumpНиже приведен синтаксис утилиты pg_restore.
-h , —host=сервер — имя сервера, на котором работает база данных.
-p , —port=порт — TCP-порт, через база данных принимает подключения.
-U , —username=пользователь — имя пользователя для подключения..
-w, —no-password — деактивация требования ввода пароля.
-W, —password — активация требования ввода пароля.
—role=имя роли — роль, от имени которой выполняется восстановление резервная копия.
— расположение восстанавливаемых данных.
-a, —data-only — восстановление данных без схемы.
-c, —clean — добавление операторов DROP перед операторами CREATE.
-C, —create — создание базы данных перед запуском процесса восстановления.
-d , —dbname=имя_бд — имя целевой базы данных.
-e, —exit-on-error — завершение работы в случае возникновения ошибки при выполнении SQL-команд.
-f , —file=имя_файла — файл для вывода сгенерированного скрипта.
-F , —format=формат — формат резервной копии. Допустимые форматы:
- p, plain — формирует текстовый SQL-скрипт;
- c, custom — формирует резервную копию в архивном формате;
- d, directory — формирует копию в directory-формате;
- t, tar — формирует копию в формате tar.
-I , —index=индекс — восстановление только заданного индекса.
-j , —jobs=число-заданий — запуск самых длительных операций в нескольких параллельных потоках.
-l, —list) — активация вывода содержимого архива.
-L , —use-list=файл-список — восстановление из архива элементов, перечисленных в файле-списке в соответствующем порядке.
-n , —schema=схема — восстановление объектов в указанной схеме.
-O, —no-owner — деактивация генерации команд, устанавливающих владение объектами по образцу исходной базы данных.
-P <имя-функции(тип-аргумента[, …])>, —function=имя-функции(тип-аргумента[, …]) — восстановление только указанной функции.
-s, —schema-only — восстановление только схемы без самих данных.
-S , —superuser=пользователь — учетная запись привилегированного пользователя, используемая для отключения триггеров.
-t , —table=таблица — восстановление определенной таблицы.
-T , —trigger=триггер — восстановление конкретного триггера.
-v, —verbose — режим подробного логирования.
-V, —version — вывод версии утилиты pg_restore.
Утилита pg_basebackup
Утилитой pg_basebackup можно выполнять резервное копирования работающего кластера баз данных PostgreSQL. Результирующий бинарный файл можно использовать для репликации или восстановления на определенный момент в прошлом. Утилита создает резервную копию всего экземпляра базы данных и не дает возможности создавать слепки данных отдельных сущностей. Подключение pg_basebackup к PostgreSQL выполняется при помощи протокола репликации с полномочиями суперпользователя или с правом REPLICATION.
Для выполнения резервного копирования локальной базы данных достаточно передать утилите pg_basebackup параметр -D, обозначающий директорию, в которой будет сохранена резервная копия:
# pg_basebackup -D /tmpЧтобы создать сжатые файлы из табличных пространств, добавим параметры -Ft и -z:
# pg_basebackup -D /tmp -Ft -zТо же самое, но со сжатием bzip2 и для экземпляра базы с общим табличным пространством:
# pg_basebackup -D /tmp -Ft | bzip2 > backup.tar.bz2Ниже приведен синтаксис утилиты pg_basebackup.
-d , —dbname=строка_подключения — определение базы данных в виде строки для подключения.
-h , —host=сервер — имя сервера с базой данных.
-p , —port=порт — TCP-порт, через база данных принимает подключения.
-s , —status-interval=интервал — количество секунд между отправками статусных пакетов.
-U , —username=пользователь — установка имени пользователя для подключения.
-w, —no-password — отключение запроса на ввод пароля.
-W, —password — принудительный запрос пароля.
-V, —version — вывод версии утилиты pg_basebackup.
-?, —help — вывод справки по утилите pg_basebackup.
-D каталог, —pgdata=каталог — директория записи данных.
-F , —format=формат — формат вывода. Допустимые варианты:
- p, plain — значение для записи выводимых данных в текстовые файлы;
- t, tar — значение, указывающее на необходимость записи в целевую директорию в формате tar.
-r , —max-rate=скорость_передачи — предельная скорость передачи данных в Кб/с.
-R, —write-recovery-conf — записать минимальный файл recovery.conf в директорию вывода.
-S , —slot=имя_слота — задание слота репликации при использовании WAL в режиме потоковой передачи.
-T , —tablespace-mapping=каталог_1=каталог_2 — активация миграции табличного пространства из одного каталога в другой каталог при копировании.
—xlogdir=каталог_xlog — директория хранения журналов транзакций.
-X , —xlog-method=метод — активация вывода файлов журналов транзакций WAL в резервную копию на основе следующих методов:
- f, fetch — включение режима сбора файлов журналов транзакций при окончании процесса копирования;
- s, stream — включение передачи журнала транзакций в процессе создания резервной копии.
-z, —gzip — активация gzip-сжатия результирующего tar-файла.
-Z , —compress=уровень — определение уровня сжатия механизмом gzip.
-c , —checkpoint=fast|spread — активация режима реперных точек.
-l , —label=метка — установка метки резервной копии.
-P, —progress — активация в вывод отчета о прогрессе.
-v, —verbose — режим подробного логирования.
Утилита wal-g
Wal-g — утилита для резервного копирования и восстановления базы данных PostgreSQL. При помощи wal-g можно выполнять сохранение резервных копий на хранилищах S3 или просто на файловой системе. Ниже мы разберем установку, настройку и работу с утилитой. Покажем как выполнить резервное копирование в Объектное хранилище S3 от Selectel.
Создадим пользователя для облачного хранилища, учетные данные которого будем потом использовать для сохранения резервной копии. Перейдем в меню Пользователи и нажмем кнопку Создать пользователя:

Дополнительную информацию можно получить в нашей Базе знаний. Первую часть логина изменить нельзя — это идентификатор пользователя в панели управления. Вторая часть логина задается произвольно. Например, 123456_wal-g:

Теперь перейдем к установке wal-g. Скачаем готовый установочный пакет из репозитория на github.com, распакуем и скопируем папку содержающую исполняемые файлы:
# cd /tmp # curl -L "https://github.com/wal-g/wal-g/releases/download/v0.2.19/wal-g.linux-amd64.tar.gz" -o "wal-g.linux-amd64.tar.gz # tar -xzf wal-g.linux-amd64.tar.gz # mv wal-g /usr/local/bin/Заполним конфигурационный файл wal-g и изменим его владельца на учетную запись postgres:
# cat > /var/lib/pgsql/.walg.json EOF # chown postgres: /var/lib/pgsql/.walg.jsonДалее настроим автоматизированное создание резервных копий в PostgreSQL и перезагрузим процессы базы данных:
# echo "wal_level=replica" >> /var/lib/pgsql/data/postgresql.conf # echo "archive_mode=on" >> /var/lib/pgsql/data/postgresql.conf # echo "archive_command='/usr/local/bin/wal-g wal-push \"%p\" >> /var/log/postgresql/archive_command.log 2>&1' " >> /var/lib/pgsql/data/postgresql.conf # echo “archive_timeout=60” >> /var/lib/pgsql/data/postgresql.conf # echo "restore_command='/usr/local/bin/wal-g wal-fetch \"%f\" \"%p\" >> /var/log/postgresql/restore_command.log 2>&1' " >> /var/lib/pgsql/data/postgresql.conf # killall -s HUP postgresТеперь проверим корректность проведения настроек и загрузим резервную копию в хранилище:
# su - postgres -c '/usr/local/bin/wal-g backup-push /var/lib/pgsql/data'После выполнения процесса резервного копирования, в созданном контейнере появится директория с резервными копиями баз данных:

Такой процесс в продакшене может выполняться при помощи планировщика заданий на регулярной основе.
Утилита pgAdmin
Управлять созданием резервных копий возможно также и в графическом интерфейсе. Для этого мы будем использовать утилиту pgAdmin (в примере — работа с утилитой на локальном устройстве, но то же самое можно сделать на сервере). Актуальную версию для Windows или другой поддерживаемой ОС можно свободно скачать с официального сайта.

После скачивания утилиту нужно установить и запустить. Она работает в виде веб-приложения через браузер.

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

После выполнения команды Backup резервная копия сохраняется в заранее определенную директорию.

Работа с облачной базой данных в панели управления Selectel
В облачной платформе Selectel есть возможность создавать управляемые базы данных (Managed Databases). Такие БД разворачиваются в несколько кликов мыши, однако, их основные преимущества — автоматическое резервное копирование, отказоустойчивость, быстрое масштабирование и управление различными характеристиками из графического интерфейса. Ниже мы создадим экземпляр управляемой базы данных, создадим резервную копию базы данных на виртуальном сервере и восстановим ее в управляемую базу данных.
Чтобы создать управляемую базу данных, перейдем в меню Базы данных и нажмем кнопку Создать кластер:

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

Обращаем внимание на блок Резервные копии, в котором указаны частота резервного копирования, время и срок хранения выгрузок. Под капотом используется механизм wal-g, о котором мы писали выше.

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

После этого появится приглашение ввести имя пользователя и пароль. После ввода этих данных нажимаем Сохранить.

Пользователь создан и отображается в списке пользователей.

Теперь создадим базу данных. Для этого перейдем на вкладку Базы данных и нажмем на кнопку Создать базу данных.

Заполняем необходимые поля и нажимаем кнопку Сохранить.

База данных создана и отображается в списке баз данных.

Теперь проверим возможность подключения. Для этого откроем консоль и вводим реквизиты:
# psql "host=192.168.0.3 \ port=6432 \ user=rosella \ dbname=zabbix \ sslmode=disable"В консоли должно появиться приглашение к вводу SQL-запроса или других управляющих команд.

Выполним резервное копирование при помощи команды pg_dump:
# pg_dump zabbix > /tmp/zabbix.dumpИ следом резервное восстановление в созданную управляемую базу данных:
# psql -h 192.168.0.3 -U rosella -d zabbix < /tmp/zabbix.dumpВ результате выполнения команды выше мы восстановили резервную копию в управляемую базу данных.
Чтобы воспользоваться восстановлением из резервной копии, которая автоматически создается на платформе Selectel, необходимо нажать на символ с тремя точками. В открывшемся меню нужно нажать на опцию Восстановить. После этого появится модальное окно, в котором можно выбрать резервную копию, а также дату и время, на которое нужно восстановить базу данных. Это так называемый Point-in-Time Recovery из WAL-файлов.

Услуга «Управляемые базы данных в облаке» позволяет перенести существующий кластер PostgreSQL на сервис управляемых баз данных бесшовно и без простоя, обратившись в техническую поддержку. Инженеры Selectel готовы помочь с переносом, а также проконсультировать по всем связанным с этим процессом вопросам.
Заключение
Мы рассмотрели возможности выполнения резервного копирования и показали отличия утилит pg_dump, pg_dumpall, pg_restore, pg_basebackup и wal-g. Вы увидели как можно создать управляемую базу данных, чтобы переложить часть административных задач на облачного провайдера.
Узнать подробнее об управляемых базах данных можно в документации Selectel.
Как настроить репликацию в PostgreSQL
PostgreSQL online editor
Write, Run & Share PostgreSQL queries online using OneCompiler's PostgreSQL online editor and compiler for free. It's one of the robust, feature-rich online editor and compiler for PostgreSQL. Getting started with the OneCompiler's PostgreSQL editor is really simple and pretty fast. The editor shows sample boilerplate code when you choose database as 'PostgreSQL' and start writing queries to learn and test online without worrying about tedious process of installation.
About PostgreSQL
PostgreSQL is a open source relational database system and is also knows as Postgres.
Key Features:
- Postgres is not only free and open-source but also it is highly extensible.
- Custom Data types and funtions from various programming languaues can be introduced and the good part is compiling entire database is not required.
- ACID(Atomicity, Consistency, Isolation, Durability) compliant.
- First DBMS which implemented Multi-version concurrency control (MVCC) feature.
- It's the default database server for MacOS.
- It supports all major operating systems like Linux, Windows, OpenBSD,FreeBSD etc.
Syntax help
1. CREATE
CREATE command is used to create a table, schema or an index.
Syntax:
CREATE TABLE table_name ( column1 datatype, column2 datatype, . );2. ALTER
ALTER command is used to add, modify or delete columns or constraints from the database table.
Syntax
ALTER TABLE Table_name ADD column_name datatype;3. TRUNCATE:
TRUNCATE command is used to delete the data present in the table but this will not delete the table.
Syntax
TRUNCATE table table_name;4. DROP
DROP command is used to delete the table along with its data.
Syntax
DROP TABLE table_name;5. RENAME
RENAME command is used to rename the table name.
Syntax
ALTER TABLE table_name1 RENAME to new_table_name1;6. INSERT
INSERT Statement is used to insert new records into the database table.
Syntax
INSERT INTO table_name (column1, column2, column3, . ) VALUES (value1, value2, value3, . );7. SELECT
Select statement is used to select data from database tables.
Syntax:
SELECT column1, column2, . FROM table_name;8. UPDATE
UPDATE statement is used to modify the existing values of records present in the database table.
Syntax
UPDATE table_name SET column1 = value1, column2 = value2, . WHERE condition;9. DELETE
DELETE statement is used to delete the existing records present in the database table.
Syntax
DELETE FROM table_name where condition;