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

Как восстановить дапм?

22.04.2013, 17:03. Показов 18420. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте

У меня такая проблема. Есть дамп БД PostgreSQL, размер 24,5 Мб. Нужно перевести все данные в MySQL. Я раньше такого не делал. Подумал напишу php скрипты которые будут брать данные из БД в PostgreSQL и вставлять их в MySQL (мы переделываем сайт, и поэтому у нас разные таблицы с разными атрибутами. Поэтому думаю надо писать скрипты).
Но для того чтобы написать эти скрипты мне нужно посмотреть структуру БД дампа.

пробовал через pgAdmin III но там ничего не понял, пункт "Импорт" у базы данных не активен. Короче забил на него.

Потом пробовал через psql с утилитой pg_restore. В документации ничего не понял, там все написано для тех кто уже имеет опыт работы с ним.

Потом пробовал через PhpPgAdmin. Здесь все более-менее понятно в интерфейсе. Выбираю БД -> перехожу в пункт SQL -> выбираю дамп -> нажимаю кнопку "execute". После он в пустом экране выводит "No server supplied! " и все.

Пожалуйста помогите загрузить дамп. Подойдет любой способ.

Искал на этом форуме ничего не нашел. Внизу есть одна тема но там кроме вопроса ничего нет
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
22.04.2013, 17:03
Ответы с готовыми решениями:

Нужен Дапм биоса на ноутбук Samsung np355v5c-a07ru
Никак не могу найти

Нужен Дапм биоса на ноутбук Samsung NP300E5C SCALA3-15/17CRV REV: 1.0 BA41-01978A HST bios PO1RAJ
Нужен Дапм биоса на ноутбук Samsung NP300E5C SCALA3-15/17CRV REV: 1.0 BA41-01978A HST. bios PO1RAJ

Как восстановить Id?
у пользователя стёрся лотус(клиент)... вместе со всеми папками и id файлом... как он этого добился, я не знаю... но id нет... помогите...

5
1264 / 978 / 384
Регистрация: 02.09.2012
Сообщений: 3,021
23.04.2013, 16:11
pg_restore самый-самый правильный способ восстановления базы.
Как вы его запускали? Что конкретно было непонятно? Какой формат бакапа? Текстовый? Бинарный?
0
0 / 0 / 0
Регистрация: 23.01.2012
Сообщений: 12
23.04.2013, 17:32  [ТС]
PosqtgreSQL скачал с офф сайта. Вместе с ним пришел и psql, pgAdmin III. Я делаю так "Пуск -> Все программы -> PostgreSQL 9.2 -> SQL Shell (psql)". Открывается окно консоли и просит ввести хост, ввожу localhost (он стоит по умолчанию). Точно также просит выбрать БД, Порт (5432), юзера(postgres) и пароль. Все входит.

И появляется строкаnurtau=# (nurtau - это мое пустое БД)

В pg_restore непонятно как указать путь к дампу. Пробовал полный и просто имя дампа. Выводит ошибку "Ошибка: ошибка синтаксиса, примерное положение "pg_restore -d nurtau.dmp" . Команду вводил так: pg_restore e:/nurtau.dmp и так pg_restore -d nurtau.dmp

Формат бакапа текстовой. Его можно просматривать через notepad++. расширение бакапа dmp (nurtau.dmp)

в документации pg_restore написано так

$ pg_restore -C -d postgres db.dump

что за знак $ впереди команды. Может это значить что нужно войти как суперпользователь как в линуксе? Хотя юзер postgres имеет все привелегии

В чем проблема?
0
1264 / 978 / 384
Регистрация: 02.09.2012
Сообщений: 3,021
24.04.2013, 14:59
Пойдем от простого к сложному:
1. Знак "$" это приглашение командной строки *nix-like-operating-systems (Linux, и т.п.). К PostgreSQL он не имеет отношение. Предполагается, что все что после доллара, пользователь должен вводить ручками в командной строке. У вас Windows, значит будет командная строка windows.
2. Для восстановления очень важно знать как делали бакап. Обычно команды pg_dump и pg_restore идут парами и часто достаточно всего лишь подменить имя утилиты чтобы сделать архивную копию или восстановиться из нее.
3. Если pg_dump неизевсетно как делалось, то нужно понять - что за бакап лежит в файле. Для этого нужно просмотреть первые, ну скажем 100 строк, и посмотреть какие команды CREATE там идут в начале.
4. Ищите что-нибудь из разряда CREATE DATABASE, CREATE SCHEMA и т.д.
5. Если внутри бакапа сказано как создавать DATABASE и SCHEMA, то поидее вам достаточно будет команды

Bash
1
psql -h localhost -U postgres -w < db.dump
-h имя сервера (или IP-адрес)
-U имя пользователя (postgres - администратор, по умолчанию обладающий ролью создавать базы данных в рамках сервера)
-w не спрашивать пароль. Полагаю он у вас установлен под windows по умолчанию.
6. Если внутри бакапа сразу начинается создание объектов базы данных (CREATE FUNCTION, CREATE TABLE, и т.д.), значит предварительно нужно создать базу данных и пользователя, от имени которого будет залит бакап.
7. Пользователя определяем из бакапа. Ищем строки со словом owner, смотрим от имени какого пользователя создаются объекты базы. Создаем пользователя через createuser (а вот под windows-то и не знаю есть такая или нет, думаю что должно быть)

Bash
1
createuser -h localhost -U postgres -w username
Параметры команды могут отличаться для вашего случая. Назначение ролей, пароля и т.д.
8. Базу данных создаем через createdb

Bash
1
createdb -h localhost -U username -w nurtau
9. Теперь можно залить бакап

Bash
1
psql -h localhost -U username -w nurtau < db.dump
Все, что здесь написано должно работать по умолчанию. Но возможны разночтения с вашей текущей установкой. Пробуйте, пишите об ошибках.
2
1 / 1 / 0
Регистрация: 08.06.2013
Сообщений: 11
10.10.2013, 21:56
Прошу помощи в похожей проблеме. Пришло файло с названием base_all.sql
Блокнот показал следующее:
SQL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
-- PostgreSQL database dump
-- Started on 2013-08-09 15:53:18
SET statement_timeout = 0;
SET client_encoding = 'WIN1251';
SET standard_conforming_strings = off;
SET check_function_bodies = FALSE;
SET client_min_messages = warning;
SET escape_string_warning = off;
--
-- TOC entry 833 (class 2612 OID 20372)
-- Name: plpgsql; Type: PROCEDURAL LANGUAGE; Schema: -; Owner: -
--
CREATE PROCEDURAL LANGUAGE plpgsql;
 
SET search_path = public, pg_catalog;
 
-- TOC entry 19 (class 1255 OID 20373)
-- Dependencies: 3 833
-- Name: blurbissue_edited(); Type: FUNCTION; Schema: public; Owner: -
Предположил, что это дамп БД типа PostgreSQL, который содержит не столько данные, но инструментарий для создания схемы БД, таблиц, функций и т.д.
Мои действия:
1. Установил PostgreSQL;
2. Установил EMS SQL Studio for PostgreSQL и SQL Manager for PostgreSQL;
3. Создал пустую БД;
4. Попробовал восстановить БД из дампа в пустую БД. НЕ ПОЛУЧАЕТСЯ.

Создалось впечатление, что дело в кодировке WIN1251, как будто при восстановлении некорректно выполняются некоторые команды (записанные внутри дампа). Кусочек из лога (шрифты не отображаются):
SQL
1
2
3
??????:  ???? "plpgsql" ??? ?????????? --(возможно - ERROR: language "plpgsql" does not exist)
??????:  ??????? "blurbissue_edited" ? ??????????? ????? ????? ??? ??????????
??????:  ??????? "comparemeaningful" ? ??????????? ????? ????? ??? ??????????
Не пойму: проблема в дампе или в инструментах/алгоритме. Буду рад любым советам.
0
1264 / 978 / 384
Регистрация: 02.09.2012
Сообщений: 3,021
11.10.2013, 02:48
Давайте сначала определимся... У Вас это все в Windows? правильно?

Честно говоря уже много лет не работаю в Windows и стал забывать как оно там. Но раньше была проблема кодировки консоли Windows. Точнее это не проблема, так сделано. Но доставляет неприятности при выводе текста в некоторых программах. Я вот нагуглил по теме "русские буквы в консоли windows"

Проблема эта возникает из-за того, что умолчальная кодировка Windows - windows-1251, а в консоли Windows используется кодировка Cp866. Возможно 4 разных пути решения данной проблемы.

Первый вариант, самый предпочтительный и не требует менять код, так что подходит для любой программы. Запускаем консоль, щелкаем на заголовке окна и выбираем свойства. В свойствах на закладке Шрифт ставим шрифт Lucida Console и жмем ОК. Далее набираем в консоли ChCp 1251, в ответ получаем Текущая кодовая страница: 1251.
Источник:

Пробуйте исправить вывод консоли, чтобы читать человеческие сообщения.

Теперь по дампу.

Предположу, что первая ошибка - это "язык 'pgplsql' уже существует". Это ничего страшного, сделайте рабочую копию файла-дампа, закоментируйте это строчку, и пробуйте еще раз.

Что пишется по поводу функций, здесь моей фантазии уже не хватает. Первое слово похоже на "функция", последнее подходит "уже существует". Надо исправлять кодировку. Менять параметр кодировки в самом дамне не надо - это может отразиться на неправильной трактовке самих данных в дампе (может программа какая-то заточена под эту БД и т.п.) и вопросики у вас вылезут уже потом при использовании базы данных.

И последнее. Вы наверно прочитали мой верхний пост по поводу пользователей и баз данных. У вас в дампе есть команды CREATE DATABASE? CREATE USER? От этого зависит восстановление. Возможно и ошибки про "уже существует" идут от того, что не соблюдены условия восстановления, которые предполагались при создании дампа.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
11.10.2013, 02:48
Помогаю со студенческими работами здесь

Как восстановить фото?
Скинул фото на флеху с ноута, вырезал их на стационар, при просмотре увидел что фото 206 шт. запороты, можно ли их восстановить? (при...

Как восстановить загрузчик
В общем дело было так: Я установил linux ubuntu 10.10 на WINDOWS ХР. Теперь у меня было 2 ОС. Поменялся загрузчик, теперь он был не...

Как восстановить Windows?
Пытался ставить Дебиан. Застопорился на разметке разделов. Вроде как &quot;форматирование&quot; и &quot;автораметку&quot; не применял. Т.е...

Как восстановить данные?
Стояла windows 7, переустановил на linux Ubuntu и потерял все файлы, как мне их восстановить, хотя бы фотографии?пожалуйста подскажите,...

Как восстановить корзину?
как восстановить корзину? случайно удалил корзину как вернуть... P/S глупостей по переустановке винды не говорите, спс...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru