У меня есть база данных в PostgreSQL 8.3.1, которую я хотел бы перенести на MS SQL Server 2005 (или, возможно, 2008), включая схему таблицы и данные. База данных имеет размер около 50 ГБ и около 400 000 000 строк, поэтому я думаю, что простые операторы INSERT исключены. Кто-нибудь может порекомендовать лучший инструмент для выполнения этой миграции? Очевидно, что он должен быть надежным, поэтому данные в целевой БД точно такие же, как и в исходной, и должны иметь возможность копировать этот объем данных в течение разумного времени.
8
Ответы:
Я закончил тем, что не использовал какой-либо сторонний инструмент для данных, поскольку ни один из тех, которые я пробовал, не работал для больших таблиц. Даже SSIS не удалось. Я использовал коммерческий инструмент для схемы, хотя. Итак, мой процесс преобразования был следующим:
Шаг преобразования учитывал некоторые различия в форматах, используемых pg_dump и bcp, таких как:
Я также обнаружил, что некоторые уникальные ограничения в Postgres были нарушены в MSSQL, поэтому мне пришлось их отбросить. Это произошло потому, что NULL = NULL в MSSQL (т. Е. NULL рассматривается как уникальное значение), но не в Postgres.
источник
Если у вас установлены соответствующие драйверы поддержки Postgres на вашем сервере SQL 2005 (или вы хотите использовать Postgres через ODBC, или хотите выгрузить данные из Postgres в файл и импортировать из него), вы можете использовать мастер импорта / экспорта в SQL Server в Для того, чтобы скопировать данные. Это задаст вам множество вопросов, а затем выполнит импорт как задание пакета служб SQL Server Integration Services (SSIS), используя соответствующие операции пакетной вставки.
Однако, если этот мастер не подходит, стоит учесть, что, хотя у вас есть большое количество строк, индивидуальный размер строк составляет в среднем <135 байт, и при этом достаточно места в журнале транзакций, чтобы обеспечить выполнение транзакции 50 ГБ ' утверждения о простой вставке сами по себе не исключены.
источник
http://www.easyfrom.net/
Вот и все :) К сожалению, это немного дороже.
источник
Прошло почти 10 лет, и это все еще непростая задача. В итоге я получил гибридное решение, я свернул свой собственный сопоставитель схем, экспортировав комментарии к схеме и таблице / столбцу с помощью следующей команды:
Затем я написал PHP-скрипт, который переводил схему в T-SQL. Впоследствии я использовал следующее стороннее программное обеспечение для фактического импорта строк (без привязки):
http://www.convert-in.com/pgs2mss.htm
Это было немного медленно, но пока все хорошо. Наша база данных была меньше вашей, всего 15 ГБ, но этот инструмент, похоже, хорошо с ней справлялся. Это был также самый дешевый, который я мог найти приблизительно в 50 $. Пока это стоило вложений.
источник