powered by simpleCommunicator - 2.0.40     © 2025 Programmizd 02
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Перенос данных из таблицы на другой сервер
6 сообщений из 6, страница 1 из 1
Перенос данных из таблицы на другой сервер
    #40077840
balykovdron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Проблема следующая. Есть сервер Postgres, на котором остаётся всё меньше и меньше места из-за интенсивного добавления новых данных. Нужно высвобождать место при этом сохраняя данные. Переносить например на другой сервер или как-то архивируя переносимые данные. Есть 2 таблицы с данными, данные которых можно переносить - на данный момент в них около 10млн записей в каждой. Они постоянно пополняются - но любая строка в таких таблицах - это готовые к переносу данные. База данных критична к простою - т.е. прстой сервера невозможен или может быть очень кратковременным. Собственно отюда вопрос - какие есть способы переноса данных - раз и второй (наверное даже более важный) - нужно уменьшать размер БД, после того как данные будут улетать с этого сервера?

Приветствуются все возможные способы.
...
Рейтинг: 0 / 0
Перенос данных из таблицы на другой сервер
    #40077842
gav21
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
balykovdron,
1. Подключить через FDW внешний архивный сервер.
2. Настроить еженочный\ежечасный перенос данных по условию delete from ... where ... returning * + insert into ...
3. Запускать pg_repack \ pgcompacttable
4. profit

p.s при выполнении шагов 2-3 следить за объемом WAL , чтобы не исчерпать всё оставшееся место
...
Рейтинг: 0 / 0
Перенос данных из таблицы на другой сервер
    #40077847
Фотография Maxim Boguk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gav21
balykovdron,
1. Подключить через FDW внешний архивный сервер.
2. Настроить еженочный\ежечасный перенос данных по условию delete from ... where ... returning * + insert into ...
3. Запускать pg_repack \ pgcompacttable
4. profit

p.s при выполнении шагов 2-3 следить за объемом WAL , чтобы не исчерпать всё оставшееся место


Да все 100% разумно написано...
если версия слишком старая для fdw то тоже самое можно через dblink сделать но сильно менее удобно будет конечно.

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

PS: 10 миллионов строк вроде как совсем небольшой размер занимать должны... вы уверены что проблема именно в этой таблице... вряд ли она больше чем 10-40GB занимает в самом плохом случае.

--
Maxim Boguk
лучшая поддержка PostgreSQL: dataegret.ru
...
Рейтинг: 0 / 0
Перенос данных из таблицы на другой сервер
    #40077852
balykovdron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Maxim Boguk

если версия слишком старая для fdw то тоже самое можно через dblink сделать но сильно менее удобно будет конечно.

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

PS: 10 миллионов строк вроде как совсем небольшой размер занимать должны... вы уверены что проблема именно в этой таблице... вряд ли она больше чем 10-40GB занимает в самом плохом случае.

--
Maxim Boguk
лучшая поддержка PostgreSQL: dataegret.ru

Версия исходного сервера 9.6.

По размерам возможно вы правы. На самом деле основное место съедено другими табличками с "грязными" исходными данными. У нас была идея почистить их таким способом: организовать "чистые" таблички (как раз те, что я описал выше) и перелить туда только те данные, которые нужны, при этом удалив соответствующие записи из "грязных" таблиц. И затем уже "чистые данные" безболезненно любым способом убирать на другой сервер.
Сейчас глядя на ваше предложение - мне кажется, что "чистые" таблицы не особо то и нужны - выигрыша от них не много, а перенести старые данные из "грязных" таблиц и освободить место можно и через описанное выше предложение с шагами 1,2,3.

Я не DBA и поэтому у меня только ряд вопросов.

> 1. Подключить через FDW внешний архивный сервер.
Не упадет ли исходный сервер, если подключенный сторонний постгрес будет недоступен? Как безопасно настроить пункт 2 - с транзакционностью, чтобы либо все перенеслось и удалилось, либо при ошибках не удалялось из исходных таблиц ?

> 3. Запускать pg_repack \ pgcompacttable
Если данный подход применять сразу к исходным таблицам с "грязными данными", то не будет ли длительной блокировки этих таблиц при выполнении указанных утилит?
...
Рейтинг: 0 / 0
Перенос данных из таблицы на другой сервер
    #40077854
Фотография Maxim Boguk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gav21,

Кстати напишите мне на mb@dataegret.com может найдется общая точка интересов.

--
Maxim Boguk
лучшая поддержка PostgreSQL: dataegret.ru
...
Рейтинг: 0 / 0
Перенос данных из таблицы на другой сервер
    #40077860
gav21
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
balykovdron

> 1. Подключить через FDW внешний архивный сервер.
Не упадет ли исходный сервер, если подключенный сторонний постгрес будет недоступен?
Как безопасно настроить пункт 2 - с транзакционностью, чтобы либо все перенеслось и удалилось, либо при ошибках не удалялось из исходных таблиц ?


> 3. Запускать pg_repack \ pgcompacttable
Если данный подход применять сразу к исходным таблицам с "грязными данными", то не будет ли длительной блокировки этих таблиц
при выполнении указанных утилит?

Не упадет, будет просто ошибка о недоступности внешней таблицы.
Если это произойдет во время выполнения транзакции, то как и любая другая транзакция - произойдет откат в исходное состояние.


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


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