Форум программистов, компьютерный форум, киберфорум
PostgreSQL
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.65/126: Рейтинг темы: голосов - 126, средняя оценка - 4.65
0 / 0 / 0
Регистрация: 15.11.2010
Сообщений: 55

Импорт БД psql

11.03.2013, 22:53. Показов 25320. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Доброго времени суток.

Есть дамп БД, сохраненный на сервере сделанный с помощью pg_dump. Нужно развернуть БД из дампа с помощью psql. Сам я чайник, никогда ничем подобным не занимался. С помощью putty подключился к серваку по SSH, нашел папку, где лежит дамп, что дальше? Как должна правильно выглядеть команда для восстановления БД? И нужно ли сначала предварительно создать пустую БД и в неё восстановить дамп или это делается автоматически? Как указать имя юзера, имя БД, имя дампа?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
11.03.2013, 22:53
Ответы с готовыми решениями:

QProcess psql
Хочу очень большую таблицу с одной базы данных скопировать в базу данных на постгресе. Вроде бы самый быстрый вариант это COPY FROM stdin....

QT, PSQL, insert
Здравствуйте. Разбираюсь с PostgreSQL и QT. Нужно записать данные в базу. Данные три массива типа float. Делала несколькими способами:...

Начало работы с PSQL
Здравствуйте, имею Ubuntu 12.04, установил туда PSQL 9.1. В системе есть только одна учётная запись alexander. Не могу создать базу данных:...

3
1258 / 973 / 383
Регистрация: 02.09.2012
Сообщений: 3,001
12.03.2013, 15:11
Применение команды восстановления очень сильно зависит от того, с какими параметрами была запущена команда pg_dump.

Основные варианты восстановления:
1. psql dbname < backup-file
2. pg_restore backup-file

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

Читать здесь
0
0 / 0 / 0
Регистрация: 15.11.2010
Сообщений: 55
13.03.2013, 21:56  [ТС]
Дамп делался примерно так:
pg_dump --username postgres --format c --file "/home/username/arh/dpbase20100517.backup" --schema "dpbase" serv
(это я просто взял пример из сети, по которому делал).

Пока подивились новые вопросы.

Файл (созданный пг_дампом) оказался бинарным, о чем я узнал случайно. Кстати, не нашел, как определить его тип (бинарный/текстовый) в файловом менеджере.

Теперь сами вопросы по восстановлению БД (импорту):

1.Я создал БД командой
createdb -U postgres -T template0 example
При этом без -U postgres появлялось предупреждение, что роль "root" не существует. В интрефейсе pgadmin пользователь для этой БД указан как "postgres". Но к этому пользователю я не знаю пароль, поэтому не могу никак редактировать БД. Как теперь поступить? В связи с этим также отмечу, что я не понял разницы между username и owner. Овнера я вообще не указывал, а в -U ничего кроме postgres указать не получилось, появлялось (при указании user_one вместо postgres):

"не удалось подключиться к базе postgres: ВАЖНО: пользователь "user_one" не прошёл проверку подлинности (Peer)"

Как сейчас правильно сменить пользователя на "user_one"? ("user_one" - это логин при входе в интерфейс пгадмин)

2.Пытался, но не получилось удалить БД. Допустим мне надо удалить всю ту же БД example. Происходило во что:

Bash Скопировано
1
2
3
root@we:/share/Temp# psql drop database example
psql: предупреждение: лишний аргумент "example" проигнорирован
psql: ВАЖНО:  пользователь "database" не прошёл проверку подлинности (Peer)
Или вот:

Bash Скопировано
1
2
3
root@we:/share/Temp# psql -U "postgres" dropdb example
psql: предупреждение: лишний аргумент "example" проигнорирован
psql: ВАЖНО:  база данных "dropdb" не существует
Что я не так сделал?
0
1258 / 973 / 383
Регистрация: 02.09.2012
Сообщений: 3,001
14.03.2013, 20:30
Цитата Сообщение от ListOFF Посмотреть сообщение
Кстати, не нашел, как определить его тип (бинарный/текстовый) в файловом менеджере.
Кроме как просмотреть содержимое, думаю никак. То есть в этой ситуации предполагается, что тот, кто делает pg_dump, знает, что получится на выходе: бинарный или текстовый формат. В вашем случае "--format c" будет бинарный. См. man pg_dump
Цитата Сообщение от ListOFF Посмотреть сообщение
Теперь сами вопросы по восстановлению БД (импорту):
Прежде всего рассмотрите вариант восстановления через pg_restore.
Bash Скопировано
1
pg_restore --username user_one --format c -d example dpbase20100517.backup
Для этой команды необходимо:
1. Иметь/создать пользователя user_one
2. Иметь/создать базу данных example
Цитата Сообщение от ListOFF Посмотреть сообщение
При этом без -U postgres появлялось предупреждение, что роль "root" не существует.
Если не указывать параметр -U, используется текущий пользователь в системе. Видимо в этот момент вы работали под root'ом.
Цитата Сообщение от ListOFF Посмотреть сообщение
Но к этому пользователю я не знаю пароль, поэтому не могу никак редактировать БД. Как теперь поступить?
Узнавать пароль, либо восстанавливать (менять) пароль, либо менять метод аутентификации клиентов в файле настроек pg_hba.conf. Попробуйте к createdb добавить ключ -w (не запрашивать пароль). Здесь много зависит от ваших настроек сервера.
Цитата Сообщение от ListOFF Посмотреть сообщение
я не понял разницы между username и owner.
В параметре -U указывается пользователь, с правами которого коннектимся к СУБД! А owner - пользователь, который будет назначен владельцем создаваемых объектов в процессе выполнения createdb. Это могут быть разные пользователи. Например коннектимся под пользователем postgres, а базу данных создаем для user_one.
Цитата Сообщение от ListOFF Посмотреть сообщение
Как сейчас правильно сменить пользователя на "user_one"?
Попытаться для начала создать такого пользователя на новом сервере, но для этого нужен какой-то пользователь для которого вы знаете пароль и он имеет права на создание других пользователей. По умолчанию на пустом сервере имеется только postgres. Если вы не знаете его пароль, начните с его восстановления. Команда в консоли:
createuser -U postgres user_one
Цитата Сообщение от ListOFF Посмотреть сообщение
Пытался, но не получилось удалить БД. Допустим мне надо удалить всю ту же БД example.
Нужен параметр -c. См. man psql. Должно быть что-то типа psql -c "drop database example". Опять же нужно указывать пользователя, которым вы будете коннектится к СУБД (параметр -U).
Цитата Сообщение от ListOFF Посмотреть сообщение
Или вот:
Код Bash
root@we:/share/Temp# psql -U "postgres" dropdb example
Используйте команду dropdb, а не psql. То есть dropdb -U postgres example. См. man dropdb
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
14.03.2013, 20:30
Помогаю со студенческими работами здесь

SQL Shell (psql)
Здравствуйте, установил postgresql, запускаю и не знаю, что вписывать. Час уже гуглю, ( P.S. Пароль я знаю, но он не вводится.

Неудачная сборка psql.pro
Собираю драйвер qpsql для проекта. Установил Qt 5.2.1 Отдельно скачал исходники qt-everywhere-opensource-src-5.8.0.zip, т.к. не нашёл...

PSQL, несколько различных заданий
Добрый день! Имеем две таблицы books(книги) и publishers(издательства) books содержит колонки book_name и publisher_id ...

Ошибка psql при закрытии периодов
при выполнении закрытия периода pgsql вылетает с ошибкой ERROR: each UNION query must have the same number of columns at character 2032 ...

Отсутствие Create table в PSQL - FireBird
Господа! Профессионалы! Пользователи наконец! К создателям не обращаюсь, они вряд ли снизойдут. Неужели Вы никогда не испытывали неудобства...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Мульти-тенантные БД с PostgreSQL Row Security
Codd 23.04.2025
Современные облачные сервисы и бизнес-приложения всё чаще обслуживают множество клиентов в рамках единой программной инфраструктуры. Эта архитектурная модель, известная как мульти-тенантность, стала. . .
Реализация конвейеров машинного обучения с Python и Scikit-learn
AI_Generated 23.04.2025
Мир данных вокруг нас растёт с каждым днём, и умение эффективно обрабатывать информацию стало необходимым навыком. Специалисты по машинному обучению ежедневно сталкиваются с задачами предобработки. . .
Контроллеры Kubernetes Ingress: Сравнительный анализ
Mr. Docker 23.04.2025
В Kubernetes управление входящим трафиком представляет собой одну из ключевых задач при построении масштабируемых и отказоустойчивых приложений. Ingress — это API-объект, который служит вратами. . .
Оптимизация кода Python с Cython и Numba
py-thonny 23.04.2025
Python прочно обосновался в топе языков программирования благодаря своей простоте и гибкости. Разработчики любят его за читабельность кода и богатую экосистему библиотек. Но у этой медали есть и. . .
Микросервис на Python с FastAPI и Docker
ArchitectMsa 23.04.2025
В эпоху облачных вычислений и растущей сложности программных продуктов классическая монолитная архитектура всё чаще уступает место новым подходам. Микросервисная архитектура становится фаворитом. . .
Создаем веб-приложение на Vue.js и Laravel
Reangularity 23.04.2025
Выбор правильного технологического стека определяет успех веб-проекта. Laravel и Vue. js формируют отличную комбинацию для создания современных приложений. Laravel — это PHP-фреймворк с элегантным. . .
Максимальная производительность C#: Span<T> и Memory<T>
stackOverflow 22.04.2025
Мир высоконагруженных приложений безжалостен к неэффективному коду. Каждая миллисекунда на счету, каждый выделенный байт памяти может стать причиной падения производительности. Разработчики на C#. . .
JWT аутентификация в Java
Javaican 21.04.2025
JWT (JSON Web Token) представляет собой открытый стандарт (RFC 7519), который определяет компактный и самодостаточный способ передачи информации между сторонами в виде JSON-объекта. Эта информация. . .
Спринты Agile: Планирование, выполнение, ревью и ретроспектива
EggHead 21.04.2025
Спринты — сердцевина Agile-методологии, позволяющая командам создавать работающий продукт итерационно, с постоянной проверкой гипотез и адаптацией к изменениям. В основе концепции спринтов лежит. . .
Очередные открытия мега простых чисел, сделанные добровольцами с помощью домашних компьютеров
Programma_Boinc 21.04.2025
Очередные открытия мега простых чисел, сделанные добровольцами с помощью домашних компьютеров. 3 марта 2025 года, в результате обобщенного поиска простых чисел Ферма в PrimeGrid был найден. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru
Выделить код Копировать код Сохранить код Нормальный размер Увеличенный размер