Как импортировать базу данных в postgresql

Перенос базы данных PostgreSQL с помощью экспорта и импорта

применимо к: Как импортировать базу данных в postgresql. yes. Как импортировать базу данных в postgresql фото. Как импортировать базу данных в postgresql-yes. картинка Как импортировать базу данных в postgresql. картинка yesБаза данных Azure для PostgreSQL — Как импортировать базу данных в postgresql. yes. Как импортировать базу данных в postgresql фото. Как импортировать базу данных в postgresql-yes. картинка Как импортировать базу данных в postgresql. картинка yesбаза данных Azure с одним сервером для PostgreSQL-гибкого сервера

Можно извлечь базу данных PostgreSQL в файл сценария с помощью pg_dump и импортировать данные из этого файла в целевую базу данных с помощью psql.

Предварительные требования

Прежде чем приступить к выполнению этого руководства, необходимы следующие компоненты:

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

Создание файла сценария, содержащего загружаемые данные, с помощью pg_dump

Чтобы экспортировать имеющуюся базу данных PostgreSQL в локальную среду или на виртуальную машину в виде файла сценария SQL, выполните следующую команду:

Например, если имеется локальный сервер с базой данных testdb.

Импорт данных в целевую базу данных Azure для PostrgeSQL

В этом примере используется программа psql и файл сценария testdb.sql из предыдущего шага, чтобы импортировать данные в базу данных mypgsqldb на целевом сервере mydemoserver.postgres.database.azure.com.

Для отдельного сервера используйте следующую команду.

Для гибкого сервера используйте следующую команду.

Источник

Как перенести базу данных PostgreSQL на другой сервер с помощью pgAdmin 4

Всем привет! Сегодня мы рассмотрим процесс переноса базы данных PostgreSQL с одного сервера на другой, например, с компьютера разработчика на production-сервер, при этом мы будем использовать графический инструмент pgAdmin 4.

Как импортировать базу данных в postgresql. Migrating PostgresSQL database to another server 1. Как импортировать базу данных в postgresql фото. Как импортировать базу данных в postgresql-Migrating PostgresSQL database to another server 1. картинка Как импортировать базу данных в postgresql. картинка Migrating PostgresSQL database to another server 1

Исходные данные. Задача

Допустим, мы разрабатываем базу данных в PostgreSQL, при этом мы используем обычный клиентский компьютер под управлением операционной системы Windows 10, где собственно локально и установлен PostgreSQL.

В качестве инструмента разработки мы используем стандартное графическое приложение pgAdmin 4.

pgAdmin 4 – это стандартный и бесплатный графический инструмент для разработки баз данных в PostgreSQL, который можно использовать для написания SQL запросов, разработки процедур, функций, а также для выполнения базовых задач администрирования баз данных.

В итоге базу данных мы разработали, протестировали ее, внесли в нее необходимые данные, заполнили справочники, в общем, база данных готова.

Теперь у нас возникла необходимость перенести эту базу данных на реальный сервер, который и будет выступать в качестве сервера баз данных. И так как мы используем PostgreSQL, в качестве такого сервера баз данных обычно выступает сервер под управлением операционной системы Linux.

Таким образом, нам необходимо перенести базу данных PostgreSQL, разработанную в Windows, в базу данных PostgreSQL на Linux. В моем случае в качестве операционной системы Linux будет выступать дистрибутив Debian.

Создание дампа базы данных PostgreSQL в pgAdmin 4

Весь процесс переноса базы данных PostgreSQL достаточно простой, суть в следующем.

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

Все это можно сделать с нашего клиентского компьютера, используя pgAdmin 4, если, конечно же, целевой сервер нам доступен, если недоступен, то придётся каким-то другим образом переносить дамп базы данных на нужный сервер и, используя стандартные консольные утилиты, восстановить базу данных из дампа.

Кстати, стоит отметить, что pgAdmin 4 для экспорта/импорта баз данных использует как раз эти стандартные консольные утилиты, в частности pg_dump, pg_dumpall и pg_restore, которые по умолчанию входят в состав PostgreSQL.

Таким образом, благодаря pgAdmin 4 нам не нужно писать и выполнять команды в командной строке, за нас все это делает pgAdmin 4, мы всего лишь будем пользоваться мышкой, настраивая все параметры в графическом интерфейсе.

Создать дамп базы данных PostgreSQL можно в нескольких форматах, в частности:

Специальный (Custom) – это пользовательский формат, который использует сжатие. Данный формат по умолчанию предлагается в pgAdmin 4 и рекомендован для средних и больших баз данных. Обычно архивные файлы в таком формате создают с расширением backup, однако можно использовать и другое расширение.

Tar (tar) – база данных выгружается в формат tar. Данный формат не поддерживает сжатие.

Простой (plain) – в данном случае база данных выгружается в обычный текстовый SQL-скрипт, в котором все объекты базы данных и непосредственно сами данные будут в виде соответствующих SQL инструкций. Данный скрипт можно легко отредактировать в любом текстовом редакторе и выполнить, используя Query Tool, как обычные SQL запросы. Данный формат рекомендован для небольших баз данных, а также для тех случаев, когда требуется внести изменения в дамп базы данных перед восстановлением.

Каталог (directory) – этот формат файла создает каталог, в котором для каждой таблицы и большого объекта будут созданы отдельные файлы, а также файл оглавления в машиночитаемом формате, понятном для утилиты pg_restore. Этот формат по умолчанию использует сжатие, а также поддерживает работу в несколько потоков.

В данном материале мы рассмотрим создание дампа в специальном формате, а также в формате обычного SQL скрипта, дело в том, что процесс восстановления базы данных из этих форматов в pgAdmin 4 немного отличается.

Создание дампа базы данных в сжатом формате

Чтобы создать дамп базы данных PostgreSQL в pgAdmin 4, необходимо в обозревателе выбрать нужную базу данных, я выбираю базу данных shop, далее необходимо вызвать контекстное меню правой кнопкой мыши и нажать на пункт «Резервная копия».

Затем всего лишь нужно указать имя архивного файла и путь к каталогу, где его сохранить, для этого можно использовать кнопку с тремя точками.

Формат «Специальный», как было отмечено ранее, предлагается по умолчанию, поэтому выбирать его не требуется.

Как я уже отмечал, обычно архив в таком формате создают с расширением backup, я так и поступаю, т.е. архив назову shop.backup и сохраню его в каталоге D:\PostgreSQL_Backup\.

В случае необходимости задать определенный уровень сжатия можно с помощью параметра «Коэффициент сжатия», поддерживаются значения от 0 до 9, где 0 – вообще не использовать сжатие, а 9 самый высокий уровень сжатия, по умолчанию используется умеренное сжатие.

В нашем случае база данных небольшая, поэтому мы можем оставить все по умолчанию.

Больше никаких настроек в нашем случае делать нет необходимости, и мы можем нажать на кнопку «Резервная копия», чтобы запустить процесс создания дампа базы данных.

Как импортировать базу данных в postgresql. Migrating PostgresSQL database to another server 2. Как импортировать базу данных в postgresql фото. Как импортировать базу данных в postgresql-Migrating PostgresSQL database to another server 2. картинка Как импортировать базу данных в postgresql. картинка Migrating PostgresSQL database to another server 2

Когда появится сообщение «Успешно завершено», значит, процесс создания дампа базы данных PostgreSQL завершен успешно, в противном случае Вы будете получать сообщения о неуспешном завершении.

Как импортировать базу данных в postgresql. Migrating PostgresSQL database to another server 3. Как импортировать базу данных в postgresql фото. Как импортировать базу данных в postgresql-Migrating PostgresSQL database to another server 3. картинка Как импортировать базу данных в postgresql. картинка Migrating PostgresSQL database to another server 3

Создание дампа базы данных в простом формате SQL

В данном случае нам необходимо сделать практически все то же самое, только нужно выбрать формат «Простой» и дополнительно включить пару параметров, чтобы добавление данных осуществлялось с помощью обычных инструкций INSERT, а не с помощью команды COPY, которая используется по умолчанию.

Для этого переходим на вкладку «Параметры выгрузки» и включаем два параметра «Использовать команды INSERT» и «INSERT с указанием столбцов», хотя данный параметр можно и не указывать.

Заметка! Начинающим программистам рекомендую почитать мою книгу «SQL код», которая поможет Вам изучить язык SQL как стандарт, в ней рассматриваются все базовые конструкции языка SQL, приводится много примеров и скриншотов.

Как импортировать базу данных в postgresql. Migrating PostgresSQL database to another server 4. Как импортировать базу данных в postgresql фото. Как импортировать базу данных в postgresql-Migrating PostgresSQL database to another server 4. картинка Как импортировать базу данных в postgresql. картинка Migrating PostgresSQL database to another server 4

Импорт дампа базы данных PostgreSQL в pgAdmin 4

Дамп готов, теперь можно переходить к восстановлению базы данных из этого дампа. Однако перед тем как приступать к импорту, необходимо создать пустую базу данных, в которую собственно и импортировать все данные, как это делается, я подробно рассказывал в отдельном материале.

Все действия по созданию базы данных и восстановлению данных этой базы из архивной копии мы будем делать все на том же компьютере с помощью того же pgAdmin 4, только для этого необходимо подключиться к нужному нам серверу (пункт контекстного меню «Создать сервер» и ввести настройки для подключения, подробнее, как это делается, я рассказывал в той же статье, которая посвящена установке PostgreSQL на Debian).

Импорт сжатого дампа базы данных

Чтобы импортировать базу данных, дамп который был создан в «специальном» формате, необходимо на целевом сервере выбрать базу данных, которую требуется восстановить из дампа (мы ее предварительно создали), в контекстном меню выбрать пункт «Восстановить», затем в пункте «Имя файла», используя кнопку с тремя точками, указать файл дампа, который мы создали чуть ранее с расширением backup.

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

Как импортировать базу данных в postgresql. Migrating PostgresSQL database to another server 5. Как импортировать базу данных в postgresql фото. Как импортировать базу данных в postgresql-Migrating PostgresSQL database to another server 5. картинка Как импортировать базу данных в postgresql. картинка Migrating PostgresSQL database to another server 5

Когда появится сообщение «Успешно завершено», процесс будет завершен.

Как импортировать базу данных в postgresql. Migrating PostgresSQL database to another server 6. Как импортировать базу данных в postgresql фото. Как импортировать базу данных в postgresql-Migrating PostgresSQL database to another server 6. картинка Как импортировать базу данных в postgresql. картинка Migrating PostgresSQL database to another server 6

В результате все данные будут восстановлены из дампа, и таким образом мы перенесли базу данных PostgreSQL на новый сервер.

Импорт дампа базы данных в формате SQL

В случае с простым форматом, т.е. с обычными SQL инструкциями, использовать отдельный функционал для восстановления не получится, поэтому мы можем просто выполнить SQL скрипт, который содержится в этом файле.

Для этого открываем Query Tool (запросник) в контексте нужной нам базы данных, затем используя кнопку «Открыть файл» выбираем наш дамп в формате SQL и нажимаем кнопку «Выполнить».

Если инструкция выполнится без ошибок, значит, все хорошо.

Как импортировать базу данных в postgresql. Migrating PostgresSQL database to another server 7. Как импортировать базу данных в postgresql фото. Как импортировать базу данных в postgresql-Migrating PostgresSQL database to another server 7. картинка Как импортировать базу данных в postgresql. картинка Migrating PostgresSQL database to another server 7

Примечание! Если Вы уже восстановили базу данных предыдущим способом, то, чтобы использовать этот способ, необходимо пересоздать базу данных, иначе возникнет конфликт и, соответственно, ошибка, так как все объекты в базе уже будут существовать.

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

Стоит отметить, что если требуется перенести базу данных, размер которой достаточно большой, например, несколько десятков или сотен гигабайт, то лучше напрямую использовать консольные утилиты pg_dump или pg_dumpall, т.е. без графического интерфейса pgAdmin 4.

Видео – Перенос базы данных PostgreSQL на другой сервер с помощью pgAdmin 4

На сегодня это все, надеюсь, материал был Вам полезен, пока!

Источник

Русские Блоги

Импорт и экспорт базы данных Postgresql с помощью pgAdmin

Вот шаги операции pgAdmin4:

1. Откройте интерфейс управления pgAdmin4.

Как импортировать базу данных в postgresql. 45609388d926c79d579ad5d4489faf00. Как импортировать базу данных в postgresql фото. Как импортировать базу данных в postgresql-45609388d926c79d579ad5d4489faf00. картинка Как импортировать базу данных в postgresql. картинка 45609388d926c79d579ad5d4489faf00

2. Щелкните правой кнопкой мыши, чтобы выбрать базу данных, которую вы хотите экспортировать, выберите mydatabase, а затем выберите резервную копию (backup).

Как импортировать базу данных в postgresql. 473a5c92d66e25d25a47c9691b04ce4f. Как импортировать базу данных в postgresql фото. Как импортировать базу данных в postgresql-473a5c92d66e25d25a47c9691b04ce4f. картинка Как импортировать базу данных в postgresql. картинка 473a5c92d66e25d25a47c9691b04ce4f

3. После выбора кнопки резервного копирования появляется следующее окно с запросом, в котором в окне запроса требуется ввести имя и формат файла и т. Д. После завершения ввода выберите кнопку резервного копирования для экспорта.

Как импортировать базу данных в postgresql. aef691666c472bf5402cc9660e4f4c20. Как импортировать базу данных в postgresql фото. Как импортировать базу данных в postgresql-aef691666c472bf5402cc9660e4f4c20. картинка Как импортировать базу данных в postgresql. картинка aef691666c472bf5402cc9660e4f4c20

Как импортировать базу данных в postgresql. d533e4619fcea20b3aa12dc02297a439. Как импортировать базу данных в postgresql фото. Как импортировать базу данных в postgresql-d533e4619fcea20b3aa12dc02297a439. картинка Как импортировать базу данных в postgresql. картинка d533e4619fcea20b3aa12dc02297a439

4. При нажатии кнопки экспорта в правом нижнем углу экрана отобразится индикатор выполнения экспорта.После завершения выполнения индикатора выполнения будет отображаться сообщение об успешном завершении экспорта и его завершении.

Как импортировать базу данных в postgresql. a5bb198cecb4851670c4bd9dc29841dd. Как импортировать базу данных в postgresql фото. Как импортировать базу данных в postgresql-a5bb198cecb4851670c4bd9dc29841dd. картинка Как импортировать базу данных в postgresql. картинка a5bb198cecb4851670c4bd9dc29841dd

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

1. Аналогичным образом, войдите в интерфейс pgAdmin4, где щелкните правой кнопкой мыши, чтобы выбрать кнопку базы данных, предложите создать базу данных, введите имя базы данных, которая будет создана, в поле приглашения и выберите пользователя (владельца).

Как импортировать базу данных в postgresql. 7b02472c562dc39776d569e823ebfc5a. Как импортировать базу данных в postgresql фото. Как импортировать базу данных в postgresql-7b02472c562dc39776d569e823ebfc5a. картинка Как импортировать базу данных в postgresql. картинка 7b02472c562dc39776d569e823ebfc5a

Как импортировать базу данных в postgresql. 5a43a11ab5b71459cde5a7880914ef5a. Как импортировать базу данных в postgresql фото. Как импортировать базу данных в postgresql-5a43a11ab5b71459cde5a7880914ef5a. картинка Как импортировать базу данных в postgresql. картинка 5a43a11ab5b71459cde5a7880914ef5a

2. После завершения создания щелкните правой кнопкой мыши вновь созданную базу данных и выберите кнопку восстановления.

Как импортировать базу данных в postgresql. be95347b17cc5e0a95e66fc0253d4639. Как импортировать базу данных в postgresql фото. Как импортировать базу данных в postgresql-be95347b17cc5e0a95e66fc0253d4639. картинка Как импортировать базу данных в postgresql. картинка be95347b17cc5e0a95e66fc0253d4639

3. После выбора пути и имени импортируемого файла нажмите кнопку восстановления.

Как импортировать базу данных в postgresql. bdbfd3531e7484a89defe67cab5b0edc. Как импортировать базу данных в postgresql фото. Как импортировать базу данных в postgresql-bdbfd3531e7484a89defe67cab5b0edc. картинка Как импортировать базу данных в postgresql. картинка bdbfd3531e7484a89defe67cab5b0edc

4. После завершения предыдущего шага будет предложено выполнить процесс импорта.

Как импортировать базу данных в postgresql. 75694df040c1595cbe6624fe773dd0a8. Как импортировать базу данных в postgresql фото. Как импортировать базу данных в postgresql-75694df040c1595cbe6624fe773dd0a8. картинка Как импортировать базу данных в postgresql. картинка 75694df040c1595cbe6624fe773dd0a8

5. Запрос на успешный импорт выглядит следующим образом: После запроса на успешный импорт вы можете проверить, существуют ли данные в только что импортированной базе данных.

Как импортировать базу данных в postgresql. fbb8f676059a776813ba53ebbc19ca4e. Как импортировать базу данных в postgresql фото. Как импортировать базу данных в postgresql-fbb8f676059a776813ba53ebbc19ca4e. картинка Как импортировать базу данных в postgresql. картинка fbb8f676059a776813ba53ebbc19ca4e

PS: Я не совсем понимаю, почему информация в подсказке искажена. Друзья, которые знают, могут сказать, я надеюсь, что вы можете исправить меня.

Источник

Загрузка базы данных PostgreSQL

Как импортировать базу данных в postgresql. SQL5. Как импортировать базу данных в postgresql фото. Как импортировать базу данных в postgresql-SQL5. картинка Как импортировать базу данных в postgresql. картинка SQL5

Данная статья относится к циклу статей, посвященных PostgreSQL. В предыдущей статье мы познакомили вас с примером базы данных PostgreSQL. Теперь мы покажем вам, как загрузить пример базы данных PostgreSQL.

Прежде чем приступить к уроку, у вас должны быть установлены:

Создание новой базы данных “DVD проката”#

Прежде чем загружать схему базы данных и заполнять её данными, вам необходимо создать новую базу данных на сервере PostgreSQL. Для этого выполните несколько простых пунктов.

Во-первых, запустите инструмент psql.

Как импортировать базу данных в postgresql. KKFIj6r. Как импортировать базу данных в postgresql фото. Как импортировать базу данных в postgresql-KKFIj6r. картинка Как импортировать базу данных в postgresql. картинка KKFIj6r

Во-вторых, введите данные учётной записи, чтобы войти на сервер баз данных PostgreSQL. Вы можете воспользоваться значениями, предлагаемыми psql по-умолчанию, просто нажав Enter на клавиатуре. Однако, вам понадобится пароль, который вы указали во время установки PostgreSQL.

В-третьих, введите следующий оператор CREATE DATABASE для создания новой базы данных dvdrental.

PostgreSQL создаст новую базу данных под названием dvdrental.

Загрузка базы данных “DVD проката” с помощью инструмента psql#

Первым делом разархивируйте и скопируйте файл базы данных “DVD проката” в папку, например, c:\dvdrental\dvdrental.tar

Затем запустите Command Prompt (Командную Строку). Зажмите сочетание клавиш Windows + R, введите cmd и нажмите Enter на клавиатуре:

Как импортировать базу данных в postgresql. I9beBpK. Как импортировать базу данных в postgresql фото. Как импортировать базу данных в postgresql-I9beBpK. картинка Как импортировать базу данных в postgresql. картинка I9beBpK

Командная строка будет выглядеть следующим образом:

Как импортировать базу данных в postgresql. oOgUsw5. Как импортировать базу данных в postgresql фото. Как импортировать базу данных в postgresql-oOgUsw5. картинка Как импортировать базу данных в postgresql. картинка oOgUsw5

Затем перейдите в папку bin корневого каталога PostgreSQL:

После чего используйте инструмент pg_restore, чтобы загрузить данные в базу данных dvdrental:

Как импортировать базу данных в postgresql. QFSoCGz. Как импортировать базу данных в postgresql фото. Как импортировать базу данных в postgresql-QFSoCGz. картинка Как импортировать базу данных в postgresql. картинка QFSoCGz

Наконец, введите пароль для пользователя postgres и нажмите Enter

Загрузка данных, хранящихся в файле dvdrental.tar, в базу данных dvdrental займет всего несколько секунд.

Загрузка базы данных “DVD проката” через pgAdmin#

Вы можете использовать инструмент pgAdmin для восстановления образца базы данных из загруженного файла базы данных, выполнив следующие шаги:

Первым делом запустите инструмент pgAdmin и подсоединитесь к серверу PostgreSQL.

Затем щёлкните правой кнопкой мыши по базе данных dvdrental и выберите пункт меню Restore…, как показано на картинке ниже:

Как импортировать базу данных в postgresql. 9B5IONq. Как импортировать базу данных в postgresql фото. Как импортировать базу данных в postgresql-9B5IONq. картинка Как импортировать базу данных в postgresql. картинка 9B5IONq

Затем укажите путь к файлу базы данных, например, c:\dvdrental\dvdrental.tar и нажмите кнопку Restore.

Как импортировать базу данных в postgresql. IS4oosn. Как импортировать базу данных в postgresql фото. Как импортировать базу данных в postgresql-IS4oosn. картинка Как импортировать базу данных в postgresql. картинка IS4oosn

После чего подождите несколько секунд, пока процесс восстановления не завершится.

Наконец, откройте базу данных dvdrental из панели браузера объектов, в ветке public вы увидите таблицы и другие объекты базы данных, как показано на картинке ниже:

Как импортировать базу данных в postgresql. 7IotZi8. Как импортировать базу данных в postgresql фото. Как импортировать базу данных в postgresql-7IotZi8. картинка Как импортировать базу данных в postgresql. картинка 7IotZi8

Мы показали вам как загрузить образец базы данных dvdrental на сервер PostgreSQL. Вы можете использовать это в своём дальнейшем ознакомлении с PostgreSQL. В следующий раз мы расскажем вам о серверных объектах и объектах базы данных.

Источник

Миграция данных из Oracle в PostgreSQL

«Ландшафт» СУБД в проектах нашей компании до недавнего времени выглядел так: большую часть составляла Oracle, существенно меньшие — MS SQL и MySQL.

Но, как известно, нет ничего вечного, и недавно к нам поступил запрос о применимости Postgres в одном из наших проектов. К этой СУБД мы присматривались в последние пару лет очень пристально — посещали конференции, meetup’ы, но вот попробовать ее в «боевых» условиях до недавнего времени не доводилось.

Итак, задача

50GB. Необходимо: перенести данные, индексы, первичные и ссылочные ключи из Oracle в Postgres.

Выбор инструмента миграции

Обзор инструментария для миграции показал наличие как коммерческих инструментов, таких как Enterprise DB Migration Toolkit и Oracle Golden Gate, так и свободного ПО. Перевод был запланирован однократный, поэтому требовалось зрелое средство, вместе с тем понятное и простое. Кроме того, конечно, учитывался и вопрос стоимости. Из свободного ПО наиболее зрелым на сегодняшний день является проект Ora2Pg Жиля Дарольда (Darold Gill), он же во многом превзошел по функционалу и коммерческие варианты. Преимущества, склонившие чашу весов в его сторону:

Установка и настройка окружения

В компании мы используем подход DevOps для создания виртуальных машин, установки необходимого софта, конфигурирования и развертывания ПО. Наш рабочий инструмент — Ansible. Но для того, чтобы облегчить восприятие и не вводить в статью новые сущности, к делу не относящиеся, далее мы будем показывать ручные действия из командной строки. Для тех, кому интересно, мы выкладываем Ansible playbook для всех шагов здесь.

Итак, на виртуальной машине с OS Centos 6.6 выполним следующие шаги.

Настройка доступа сводится к тому, что мы специально понижаем безопасность соединения Postgres для удобства тестирования. Конечно, в продакшн-среде мы не рекомендуем так делать.

Зарегистрируем Postgres как сервис и запустим его:

Для установки Oracle instant client необходимо загрузить с OTN следующие пакеты:

Создадим папку для tnsnames.ora :

И проверим работоспособность.

Если все ок — то получим примерно такой вывод:

Остался последний шаг настройки — установка Оra2pg. Скачиваем с сайта последнюю версию Ora2Pg (на момент написания статьи была версия 15.2). Установим необходимые пакеты:

Установим модуль CPan:

Установим дополнительные модули для Perl:

Распакуем Ora2pg в, скажем, /install:

Миграция

СУБД Postgres по «духу» наиболее близка к Oracle. В обеих хорошо соотносятся типы данных, и там, и там есть такое понятие, как схема. Воспользуемся этим и будем переносить данные «посхемно». Процесс миграции будет состоять из следующих шагов.

Создадим проект миграции. Проект состоит из набора папок tables/functions/views/packages, в которых будут находится sql-файлы с DDL соответствующих объектов, конфигурационного файла ora2pg.conf и скрипта запуска — export_schema.sh.

Конфигурирование

Файл конфигурации Ora2pg довольно объемен, и я остановлюсь только на тех параметрах, которые являются корневыми или потребовались во время миграции наших данных. Про остальные я рекомендую узнать из этой статьи.

Секция, описывающая параметры соединения c БД Oracle:

Секция, описывающая, какую схему выгружаем:

И указание, в какую схему загружаем:

Указываем тип экспорта. Параметр COPY говорит о том, что мы будем копировать данные напрямую из Oracle в Postgres, минуя текстовый файл.

Секция, описывающая параметры соединения c БД Postgres:

На этом конфигурационные шаги закончены, и мы готовы приступить к переносу. Выгрузим описания схемы в виде набора sql-файлов c DDL объектов:

Создадим базу данных qqq, пользователя test_owner и выдадим необходимые права.

Выполним импорт sql-файла c DDL таблиц:

Теперь все готово к копированию данных. Запускаем:

Остался последний шаг — создать индексы и constraints.

Если в процессе выполнения предыдущих команд вы не получили ошибок — поздравляю, миграция прошла успешно! Но, как известно из закона Мерфи: «Anything that can go wrong will go wrong».

Наши подводные камни

Подведем итоги

Утилита Ora2Pg, несмотря на сложность настройки, проста и надежна в использовании. Ее смело можно рекомендовать для миграции небольших и средних БД. Кстати, ее автор на PGConf Russia объявил о том, что начинает проект MS2Pg. Звучит многообещающе.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *