Миграция с PostgreSQL на MariaDB
Существует множество способов миграции с PostgreSQL на MariaDB. В этой статье будут рассмотрены некоторые из этих вариантов.
Двигатель CONNECT в MariaDB
Двигатель CONNECT MariaDB можно использовать для миграции с PostgreSQL на MariaDB. Существует два основных способа.
См. Загрузка двигателя CONNECT для получения информации о том, как установить двигатель CONNECT.
Таблицы с типом таблицы ODBC
Двигатель CONNECT позволяет создавать таблицы, которые ссылаются на таблицы на внешнем сервере, и он может извлекать данные с помощью совместимого драйвера ODBC. PostgreSQL имеет свободно доступный драйвер ODBC, который называется psqlODBC. Следовательно, если вы установите psqlODBC на сервере MariaDB, а затем настройте фреймворк ODBC системы (например, unixODBC), то сервер MariaDB сможет подключиться к удаленному серверу PostgreSQL. В этот момент вы можете создать таблицы с опциями таблицы ENGINE=CONNECT и table_type=ODBC, чтобы получить доступ к таблицам PostgreSQL из MariaDB.
См. Тип таблицы CONNECT ODBC: доступ к таблицам из другой СУБД для получения более подробной информации.
После настройки удаленной таблицы вы можете очень просто перенести данные в локальные таблицы. Например:
CREATE TABLE psql_tab ( id int, str varchar(50) ) ENGINE = CONNECT table_type=ODBC tabname='tab' connection='DSN=psql_server'; CREATE TABLE tab ( id int, str varchar(50) ) ENGINE = InnoDB; INSERT INTO tab SELECT * FROM psql_tab;
Таблицы с типом таблицы JDBC
Двигатель CONNECT позволяет создавать таблицы, которые ссылаются на таблицы на внешнем сервере, и он может извлекать данные с помощью совместимого драйвера JDBC. PostgreSQL имеет свободно доступный JDBC-драйвер. Если вы установите этот JDBC-драйвер на сервере MariaDB, то сервер MariaDB сможет подключиться к удаленному серверу PostgreSQL через JDBC. В этот момент вы можете создать таблицы с опциями таблицы ENGINE=CONNECT и table_type=JDBC, чтобы получить доступ к таблицам PostgreSQL из MariaDB.
См. Тип таблицы CONNECT JDBC: Доступ к таблицам из другой СУБД для получения более подробной информации.
После настройки удаленной таблицы вы можете очень просто перенести данные в локальные таблицы. Например:
CREATE TABLE psql_tab ( id int, str varchar(50) ) ENGINE = CONNECT table_type=JDBC tabname='tab' connection='jdbc:postgresql://psql_server/db1'; CREATE TABLE tab ( id int, str varchar(50) ) ENGINE = InnoDB; INSERT INTO tab SELECT * FROM psql_tab;
Вспомогательные компоненты внешних данных PostgreSQL
Также для миграции с PostgreSQL на MariaDB можно использовать вспомогательные компоненты внешних данных PostgreSQL.
mysql_fdw
mysql_fdw позволяет создавать таблицу в PostgreSQL, которая фактически ссылается на удаленный сервер MySQL или MariaDB. Поскольку MySQL и MariaDB совместимы на уровне протокола, это также должно поддерживать MariaDB.
Вспомогательный компонент внешних данных также поддерживает записи, поэтому вы должны иметь возможность записывать в удаленную таблицу MariaDB для миграции данных PostgreSQL. Например:
CREATE TABLE tab ( id int, str text ); INSERT INTO tab VALUES (1, 'str1'); CREATE SERVER mariadb_server FOREIGN DATA WRAPPER mysql_fdw OPTIONS (host '10.1.1.101', port '3306'); CREATE USER MAPPING FOR postgres SERVER mariadb_server OPTIONS (username 'foo', password 'bar'); CREATE FOREIGN TABLE mariadb_tab ( id int, str text ) SERVER mariadb_server OPTIONS (dbname 'db1', table_name 'tab'); INSERT INTO mariadb_tab SELECT * FROM tab;
Команда COPY TO PostgreSQL
Команда COPY TO PostgreSQL позволяет скопировать данные из таблицы PostgreSQL в текстовый файл. Эти данные затем можно загрузить в MariaDB с помощью LOAD DATA INFILE.
MySQL Workbench
MySQL Workbench имеет функцию миграции, которая требует драйвер ODBC. PostgreSQL имеет свободно доступный драйвер ODBC под названием psqlODBC.
См. Настройка и настройка драйверов PostgreSQL ODBC для мастера миграции MySQL Workbench для получения дополнительной информации.
Известные проблемы
Миграция функций и процедур
Функции и процедуры PostgreSQL с помощью языка PL/pgSQL, который отличается от языка по умолчанию SQL/PSM для хранимых процедур MariaDB. PL/pgSQL более похож на PL/PSQL из Oracle, поэтому вы можете найти полезным попробовать миграцию с установленным параметром SQL_MODE=ORACLE.
См. также
© 2023 MariaDB
Licensed under the Creative Commons Attribution 3.0 Unported License and the GNU Free Documentation License.
https://mariadb.com/kb/en/migrating-to-mariadb-from-postgresql/