Страница 1 из 1
Перенос данных c MySQL на PostgreSQL
Добавлено: 05 окт 2010, 20:33
Raven
Одна из обычных админских задач - работа с базами данных, даже иногда отдельными серверами баз, и ни для кого не секрет что на некоторых ресурсах базы растут как снежный ком - не успеваешь оптимизировать. Самая распространенная СУБД - MySQL, кокой бы хорошей не была, все же довольно ограничена в перспективах роста, да и с увеличением размера базы начинает довольно тяжело поворачиваться. Ну и случилось у меня так, что размер базы превысил 30 Гб, муська начала понемногу тормозить... Снимать устаревшие таблицы в дамп и удалять их из базы мне не позволило руководство по ряду обьективных причин. Пришлось искать решение иного характера - а именно перенос данных на другую СУБД. MSSQL-сервер отбросил сразу же по причине его несостоятельности, неопенсорсности, в общем по причине кровной его связи с мелкомягкими, а то что ими порождено надежным быть не может в принципе. Oracle... Ну тут даже ежу понятно - не дорос я еще до нее, ибо "Админ имеющий сертификат Oracle способен уьивать пользователей простым пингом". Я до такого еще не дорос, да и достать Oracle у нас нереально. Вот тут то и дошли руки до PgSQL. Давно ее хотел опробовать, вот и случай подвернулся. Процесс установки и первичной настройки описывать не буду, процесс потабличного создания дампов тоже, ибо долго это. Опишу лишь сам процесс переноса, главное - дампы с базы надо снимать с флагом совместимости с PgSQL.
Код: Выделить всё
mysqldump --compatible=postgresql databasename > dump.sql
Итак, по сценарию ниже создаем в PostgreSQL пользователя и базу, права на которую присваиваем пользователю.
Код: Выделить всё
su - postgres
createdb test
psql test
create user username password ' password ';
alter role username password ' password ';
create database databasename with encoding 'utf8';
grant all privileges on database databasename to username;
\l
\c databasename
\q
Далее правим конф
Разрешаем парольный доступ с любых хостов (не забудьте потом прикрыться иптраблами)
И перезапускаемся
Приводим дампы к подобающему виду:
И загоняем в PgSQL
psql -h server -d databasename -U username -W < dump.sql
Теперь осталось немного разобраться с сценариями работающими с базой. Но это уже другая история...
Re: Перенос данных c MySQL на PostgreSQL
Добавлено: 07 окт 2010, 23:27
Gen1us2k
опаньке... попробую поковырять посгес
Re: Перенос данных c MySQL на PostgreSQL
Добавлено: 08 окт 2010, 09:13
Raven
Ну кагбЭ стоит добавить, что особо заметного прироста в скорости я так и не добился, хотя шушуть есть.