Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / PostgreSQL Новый топик    Ответить
 Перенос крупной БД  [new]
kliff
Member

Откуда:
Сообщений: 311
Други, есть ли такой опыт. Есть PG9 с базой данных 2ТБ + реплика

Было создано новое приложение с новой архитектурой БД, связи, таблицы, все новое.

Задача обновить ОС сервера, установить PG11 с новой БД и переложить в нее все данные из старой БД, в новую структуру таблиц.

Кто то сталкивался? Или каким бы путем потенциально пошли бы? Заранее спасибо.
29 окт 20, 14:06    [22222910]     Ответить | Цитировать Сообщить модератору
 Re: Перенос крупной БД  [new]
mefman
Member

Откуда:
Сообщений: 3164
kliff
Други, есть ли такой опыт. Есть PG9 с базой данных 2ТБ + реплика

Было создано новое приложение с новой архитектурой БД, связи, таблицы, все новое.

Задача обновить ОС сервера, установить PG11 с новой БД и переложить в нее все данные из старой БД, в новую структуру таблиц.

Кто то сталкивался? Или каким бы путем потенциально пошли бы? Заранее спасибо.

Если сервера рядом и с хорошей сетью - то 2 ТБ не так уж и много.
Какие требования по доступности/непрерывности?
Хороший вариант - сделать апгрейд на 11 версию на старом сервере, подцепить новый сервер как слейв и switchover на него.

Сообщение было отредактировано: 29 окт 20, 14:26
29 окт 20, 14:27    [22222931]     Ответить | Цитировать Сообщить модератору
 Re: Перенос крупной БД  [new]
mefman
Member

Откуда:
Сообщений: 3164
Извини, не обратил внимания на
автор
Было создано новое приложение с новой архитектурой БД, связи, таблицы, все новое.

это только совместно с разработчиками бд.
29 окт 20, 14:40    [22222952]     Ответить | Цитировать Сообщить модератору
 Re: Перенос крупной БД  [new]
Guzya
Member

Откуда:
Сообщений: 622
Просто размышления.

Ставите отдельно пустой сервер со старой структурой, делаете подписку на все изменения с текущего(логическая репликация).
После каким-нибудь образом (хоть pgdump) переливаете основной сервер на новый.
Потом доливаете изменения, возможно в несколько заходов.

В какой-то момент останавливаете старый мастер, доливаете на новый последние изменения с "логической реплики" и переключаетесь на новый мастер.

Но наверное все равно нужна какая-то утилита, способная из старой схемы в новую "конвертировать" данные.
29 окт 20, 15:59    [22223020]     Ответить | Цитировать Сообщить модератору
 Re: Перенос крупной БД  [new]
mefman
Member

Откуда:
Сообщений: 3164
Guzya
Просто размышления.

Ставите отдельно пустой сервер со старой структурой, делаете подписку на все изменения с текущего(логическая репликация).
После каким-нибудь образом (хоть pgdump) переливаете основной сервер на новый.
Потом доливаете изменения, возможно в несколько заходов.

В какой-то момент останавливаете старый мастер, доливаете на новый последние изменения с "логической реплики" и переключаетесь на новый мастер.

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

а на 9ке уже есть логическая репликация?
29 окт 20, 16:17    [22223030]     Ответить | Цитировать Сообщить модератору
 Re: Перенос крупной БД  [new]
vyegorov
Member

Откуда: Рига
Сообщений: 1212
mefman,

Через расширение pglogical от 2Q.
29 окт 20, 18:45    [22223136]     Ответить | Цитировать Сообщить модератору
 Re: Перенос крупной БД  [new]
mefman
Member

Откуда:
Сообщений: 3164
vyegorov
mefman,

Через расширение pglogical от 2Q.

тут имхо главная засада - изменение структуры БД у ТСа. в лоб не получится. чем реплицировать - детали
29 окт 20, 18:51    [22223139]     Ответить | Цитировать Сообщить модератору
 Re: Перенос крупной БД  [new]
Guzya
Member

Откуда:
Сообщений: 622
Еще нужно продумать методику проверки корректности полученного результата.
Тут простой сверкой количества записей вряд ли обойдетесь.
30 окт 20, 09:45    [22223384]     Ответить | Цитировать Сообщить модератору
 Re: Перенос крупной БД  [new]
kliff
Member

Откуда:
Сообщений: 311
mefman
kliff
Други, есть ли такой опыт. Есть PG9 с базой данных 2ТБ + реплика

Было создано новое приложение с новой архитектурой БД, связи, таблицы, все новое.

Задача обновить ОС сервера, установить PG11 с новой БД и переложить в нее все данные из старой БД, в новую структуру таблиц.

Кто то сталкивался? Или каким бы путем потенциально пошли бы? Заранее спасибо.

Если сервера рядом и с хорошей сетью - то 2 ТБ не так уж и много.
Какие требования по доступности/непрерывности?
Хороший вариант - сделать апгрейд на 11 версию на старом сервере, подцепить новый сервер как слейв и switchover на него.


в принципе возможна остановка сервиса на сутки.

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

Возможно еще вариант все запросы с реплики перекинуть на мастер, остановить реплику, полностью очистить, установить новую ОС, установить ПГ 9 и заново запустить реплику. Остановить сервис и выполнить апгрейд ПГ на 11ю версию на реплике. Сделать реплику мастером и дальше апгрейдить бывший мастер.

Далее рядом развернуть новую БД на мастере и лить в нее данные. Но это все в теории. Неизвестно сколько может времени занять мапинг данных и вставка в новую структуру.
30 окт 20, 11:39    [22223453]     Ответить | Цитировать Сообщить модератору
 Re: Перенос крупной БД  [new]
Maxim Boguk
Member

Откуда: Melbourne, Австралия
Сообщений: 4395
kliff

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


Такие переносы тестируются раз 3-4 на копии production данных и на копии production оборудования.
После чего будет известно и сколько перенос занимает и можно проверить работоспособность того что получается после.
Из моей практики ни 1го ни со 2го раза без серьезных проблем такие переносы не проходят.
Так что тестирование и еще раз тестирование.
И да наверное лучше сначала на заведомо рабочей структуре данных обновиться до 11-12-13 версии пожить на ней недельку-месяц и уже потом обновляться на новую структуру данных.


--
Maxim Boguk
лучшая поддержка PostgreSQL: dataegret.ru
30 окт 20, 11:44    [22223456]     Ответить | Цитировать Сообщить модератору
 Re: Перенос крупной БД  [new]
kliff
Member

Откуда:
Сообщений: 311
спасибо всем, будем подумать.

само тестирование мапинга данных и перкладки их в новую структуру, отсадим на отдельный сервер копию системы и 5% данных возьмем от всего объема. В итоге ошибок при переносе данных на бою скорее всего получится избежать, в идеале.
30 окт 20, 12:53    [22223501]     Ответить | Цитировать Сообщить модератору
 Re: Перенос крупной БД  [new]
Maxim Boguk
Member

Откуда: Melbourne, Австралия
Сообщений: 4395
kliff
спасибо всем, будем подумать.

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


5% от всего объема - очень опасная идея... я бы не советовал. Там на переносе легко могут быть куски с нелинейной зависимостью скорости от объема (а один квадратичный кусок при 20 кратной разницы в объеме вам даст сюрприз при реальном переносе).
Но если других вариантов нет - лучше так чем вообще никак не тестировать.

--
Maxim Boguk
лучшая поддержка PostgreSQL: dataegret.ru
30 окт 20, 13:01    [22223507]     Ответить | Цитировать Сообщить модератору
Все форумы / PostgreSQL Ответить