postgres=# create database admin_medical;
CREATE DATABASE
postgres=# alter database admin_medical owner to admin_medical;
ALTER DATABASE
postgres=# grant all privileges on database admin_medical to admin_medical;
GRANT
но при восстановлении лезут какие то ошибки типа
pg_restore: [archiver (db)] Error from TOC entry 4376; 0 0 ACL SCHEMA public postgres
pg_restore: [archiver (db)] could not execute query: ERROR: role "amn_user_ext" does not exist
Command was: GRANT USAGE ON SCHEMA public TO amn_user_ext;
pg_restore: [archiver (db)] Error from TOC entry 3968; 1259 92976 INDEX pages_heade_created_cadfcf_brin amn_db
pg_restore: [archiver (db)] could not execute query: ERROR: access method "brin" does not exist
pg_restore: [archiver (db)] could not execute query: ERROR: relation "public.cart_cartitem" does not exist
Command was: CREATE INDEX cart_cartitem_content_type_id_b30c9927 ON public.cart_cartitem USING btree (content_type_id);
WARNING: errors ignored on restore: 573
гугление и чатгпт не помогло
как правильно сделать бекап и восстановить без ошибок?
Здравствуйте, Узумаки Первачев, Вы писали:
УП>гугление и чатгпт не помогло УП>как правильно сделать бекап и восстановить без ошибок?
Методом проб и ошибок удалось пакетные файлы запилить для этого.
У меня пара батников, один бэкапит с одного сервака, в формате директории с именем файла с текущей датой в составе названия. Второй накатывает базу на другой IP из папки с последней датой в названии.
Приведу самую главную часть в упрощённом виде, без использования дат.
Здравствуйте, Maniacal, Вы писали:
M>Здравствуйте, Узумаки Первачев, Вы писали:
УП>>гугление и чатгпт не помогло УП>>как правильно сделать бекап и восстановить без ошибок?
M>Методом проб и ошибок удалось пакетные файлы запилить для этого. M>У меня пара батников, один бэкапит с одного сервака, в формате директории с именем файла с текущей датой в составе названия. Второй накатывает базу на другой IP из папки с последней датой в названии. M>Приведу самую главную часть в упрощённом виде, без использования дат.
M>Backup: M>
Лично я бэкаплю с --no-owner и --no-privileges в обычный sql-скрипт и восстанавливаю с помощью psql. Но я не пользуюсь никаким функционалом, связанным с юзерами, ролями, доступами, у меня всегда один юзер, владеющий всей базой данных.
Здравствуйте, vsb, Вы писали:
vsb>Лично я бэкаплю с --no-owner и --no-privileges в обычный sql-скрипт и восстанавливаю с помощью psql. Но я не пользуюсь никаким функционалом, связанным с юзерами, ролями, доступами, у меня всегда один юзер, владеющий всей базой данных.
у меня много разных юзеров как в субд откуда беру базу так и в субд куда добавляю базу
я всегда пользовался mysql и там нету всех этих ньюансов с юзерами
Здравствуйте, Узумаки Первачев, Вы писали:
УП>как правильно сделать бекап и восстановить без ошибок?
Удивишься: выключить сервер где лежала база, скопировать каталог базы данных на новый сервер, запустить новый сервер.
Дефолтный дамп сохраняет по сути набор SQL команд для воспроизведения базы (а в некоторых режимах реально выдает огромный sql скрипт)
По умолчанию включаются команды назначения прав для юзеров и ролей, но сами юзеры и роли не хранятся в БД.
Кроме того у вас могут отличаться натсройки сервера и поведение команд будет слегка различное. В итоге pg_dump+pg_restore не создает точную копию базы, как бекап-рестор в sql server. Надежный способ сделать полную копию — см выше.
Здравствуйте, gandjustas, Вы писали:
g> Удивишься: выключить сервер где лежала база, скопировать каталог базы данных на новый сервер, запустить новый сервер.
По-моему, это не подходит конкретно для backup/restore, т.к. требует точной бинарной совместимости и идентичности конфигов субд на серверах. Такое скорее для однократной миграции, чем для бекапов. А то внезапно выяснится, что "бэкап" взятый пару месяцев назад в некоторых местах не работает и хз почему.
Здравствуйте, ·, Вы писали:
·>Здравствуйте, gandjustas, Вы писали:
g>> Удивишься: выключить сервер где лежала база, скопировать каталог базы данных на новый сервер, запустить новый сервер. ·>По-моему, это не подходит конкретно для backup/restore, т.к. требует точной бинарной совместимости и идентичности конфигов субд на серверах.
Такое скорее для однократной миграции, чем для бекапов. А то внезапно выяснится, что "бэкап" взятый пару месяцев назад в некоторых местах не работает и хз почему.
Увы postgres весь такой. Я почти год пытался найти нормальный способ бекапа-рестора, как в mssql, но увы.
Здравствуйте, gandjustas, Вы писали:
g> Увы postgres весь такой. Я почти год пытался найти нормальный способ бекапа-рестора, как в mssql, но увы.
А какие проблемы возникли с pgdump? Он вроде бы и запилен на то, чтобы генерить совместимый скрипт.
Ну с правами проблема как в этом топике в каком-то смысле ожидаема... а ещё что?
Кстати, там же вроде WAL есть, можно инкрементально бэкапить или просто реплицировать.
Здравствуйте, ·, Вы писали:
·>Здравствуйте, gandjustas, Вы писали:
g>> Увы postgres весь такой. Я почти год пытался найти нормальный способ бекапа-рестора, как в mssql, но увы. ·>А какие проблемы возникли с pgdump? Он вроде бы и запилен на то, чтобы генерить совместимый скрипт.
Дефолт вариант всегда ругается ошибками при переносе между средами. Он по умолчанию настроен на то, чтобы генерировать скрипт, который можно ресторнуть на том же сервере. надо прописывать много настроек дампа, чтобы получать переносимый дамп
·>Ну с правами проблема как в этом топике в каком-то смысле ожидаема... а ещё что?
Он же пипец медленный. 200гб база ресторится часами, тогда как SQL Server на том же объеме тех же данных делает бека-рестор 15 мин.
и самое главное ошибка может быть где-то в конце.
·>Кстати, там же вроде WAL есть, можно инкрементально бэкапить или просто реплицировать.
Это надо сначала настроить базу, а потом репликацию. А чтобы настроить надо бекап перенсти, а как раз с этим проблемы, которые написал выше.
Здравствуйте, gandjustas, Вы писали:
G>Здравствуйте, Узумаки Первачев, Вы писали:
УП>>как правильно сделать бекап и восстановить без ошибок?
G>Удивишься: выключить сервер где лежала база, скопировать каталог базы данных на новый сервер, запустить новый сервер.
G>Дефолтный дамп сохраняет по сути набор SQL команд для воспроизведения базы (а в некоторых режимах реально выдает огромный sql скрипт) G>По умолчанию включаются команды назначения прав для юзеров и ролей, но сами юзеры и роли не хранятся в БД. G>Кроме того у вас могут отличаться натсройки сервера и поведение команд будет слегка различное. В итоге pg_dump+pg_restore не создает точную копию базы, как бекап-рестор в sql server. Надежный способ сделать полную копию — см выше.
а как перенести файлы только одной базы? там хранятся только каталоги с именем в виде ид
я так понимаю что нужно все равно создавать такого же юзера как на исходной базе,ну и для верности базу с тем же именем?
Здравствуйте, Узумаки Первачев, Вы писали:
УП>а как перенести файлы только одной базы? там хранятся только каталоги с именем в виде ид
Ну вот каталог и перенеси
УП>я так понимаю что нужно все равно создавать такого же юзера как на исходной базе,ну и для верности базу с тем же именем?
Чтобы иметь доступ под тем же юзером, конечно надо создать тех же юзеров в тех же ролях