Гость
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Перенос крупной БД / 12 сообщений из 12, страница 1 из 1
29.10.2020, 14:06
    #40013033
kliff
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перенос крупной БД
Други, есть ли такой опыт. Есть PG9 с базой данных 2ТБ + реплика

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

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

Кто то сталкивался? Или каким бы путем потенциально пошли бы? Заранее спасибо.
...
Рейтинг: 0 / 0
29.10.2020, 14:27
    #40013042
mefman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перенос крупной БД
kliff
Други, есть ли такой опыт. Есть PG9 с базой данных 2ТБ + реплика

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

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

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

Если сервера рядом и с хорошей сетью - то 2 ТБ не так уж и много.
Какие требования по доступности/непрерывности?
Хороший вариант - сделать апгрейд на 11 версию на старом сервере, подцепить новый сервер как слейв и switchover на него.
...
Рейтинг: 0 / 0
29.10.2020, 14:40
    #40013053
mefman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перенос крупной БД
Извини, не обратил внимания на
авторБыло создано новое приложение с новой архитектурой БД, связи, таблицы, все новое.
это только совместно с разработчиками бд.
...
Рейтинг: 0 / 0
29.10.2020, 15:59
    #40013097
Guzya
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перенос крупной БД
Просто размышления.

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

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

Но наверное все равно нужна какая-то утилита, способная из старой схемы в новую "конвертировать" данные.
...
Рейтинг: 0 / 0
29.10.2020, 16:17
    #40013102
mefman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перенос крупной БД
Guzya
Просто размышления.

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

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

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

а на 9ке уже есть логическая репликация?
...
Рейтинг: 0 / 0
29.10.2020, 18:45
    #40013176
vyegorov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перенос крупной БД
mefman,

Через расширение pglogical от 2Q.
...
Рейтинг: 0 / 0
29.10.2020, 18:51
    #40013179
mefman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перенос крупной БД
vyegorov
mefman,

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

тут имхо главная засада - изменение структуры БД у ТСа. в лоб не получится. чем реплицировать - детали
...
Рейтинг: 0 / 0
30.10.2020, 09:45
    #40013349
Guzya
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перенос крупной БД
Еще нужно продумать методику проверки корректности полученного результата.
Тут простой сверкой количества записей вряд ли обойдетесь.
...
Рейтинг: 0 / 0
30.10.2020, 11:39
    #40013386
kliff
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перенос крупной БД
mefman
kliff
Други, есть ли такой опыт. Есть PG9 с базой данных 2ТБ + реплика

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

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

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

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


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

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

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

Далее рядом развернуть новую БД на мастере и лить в нее данные. Но это все в теории. Неизвестно сколько может времени занять мапинг данных и вставка в новую структуру.
...
Рейтинг: 0 / 0
30.10.2020, 11:44
    #40013388
Maxim Boguk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перенос крупной БД
kliff

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


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


--
Maxim Boguk
лучшая поддержка PostgreSQL: dataegret.ru
...
Рейтинг: 0 / 0
30.10.2020, 12:53
    #40013410
kliff
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перенос крупной БД
спасибо всем, будем подумать.

само тестирование мапинга данных и перкладки их в новую структуру, отсадим на отдельный сервер копию системы и 5% данных возьмем от всего объема. В итоге ошибок при переносе данных на бою скорее всего получится избежать, в идеале.
...
Рейтинг: 0 / 0
30.10.2020, 13:01
    #40013413
Maxim Boguk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перенос крупной БД
kliff
спасибо всем, будем подумать.

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


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

--
Maxim Boguk
лучшая поддержка PostgreSQL: dataegret.ru
...
Рейтинг: 0 / 0
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Перенос крупной БД / 12 сообщений из 12, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]