Ad Widget

Collapse

Создание бекапа Pgsql-12+timescaledb-2.3x

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • exesition
    Senior Member
    • Nov 2019
    • 121

    #1

    Создание бекапа Pgsql-12+timescaledb-2.3x

    Всем привет!
    Уже не первый день бьюсь с проблемой создания нормального бекапа в связке Postgresq+timescaledb.

    пробовал по такой схеме:
    Code:
    su - postgres
    pg_dump -Fc -f zabbix.bak zabbix
    
    
    Для восстановления 
    CREATE DATABASE zabbix2;
    \c zabbix2 
    CREATE EXTENSION IF NOT EXISTS timescaledb;
    SELECT timescaledb_pre_restore();
    
    pg_restore -Fc -d zabbix2 zabbix.bak
    Далее пробовал по такому сценарию https://github.com/timescale/timescaledb-backup

    По итогу вес восстановленной БД все равно меньше, чем исходная.
    Начал проверять hypertables обнаружил, что в некоторых чанках есть различия по количеству строк и соответственно общему весу таблицы, что вероятно и является причиной

    У кого то есть рабочие варианты или сможет подсказать куда копать дальше?

  • wins
    Senior Member
    • Sep 2014
    • 307

    #2
    таки, все верно: вес бд развернутой из дампа будет меньше, чем вес оригинальной бд
    Ну а вообще да, лучше юзать ts-backup & ts-restore. Да, долго, но вариант рабочий. Обычный pg_dump не пойдет.

    Comment

    • exesition
      Senior Member
      • Nov 2019
      • 121

      #3
      Originally posted by wins
      таки, все верно: вес бд развернутой из дампа будет меньше, чем вес оригинальной бд
      Ну а вообще да, лучше юзать ts-backup & ts-restore. Да, долго, но вариант рабочий. Обычный pg_dump не пойдет.
      Меня крайне смущает что часть чанков по "весу" меньше, чем оригинал.

      You are now connected to database "zabbix" as user "postgres".
      zabbix=# SELECT pg_size_pretty( pg_total_relation_size( '_timescaledb_internal._hyper_1_20_chunk' ) );
      pg_size_pretty
      ----------------
      23 MB

      аналогичный восстановленный чанк
      You are now connected to database "zabbix3" as user "postgres".
      zabbix=# SELECT pg_size_pretty( pg_total_relation_size( '_timescaledb_internal._hyper_1_20_chunk' ) );
      pg_size_pretty
      ----------------
      6436 KB

      Comment

      • wins
        Senior Member
        • Sep 2014
        • 307

        #4
        Хоть и сам пользуюсь tsdb, но не уверен в своей правоте. Думаю что на чанки также распространяется действие postgres mvcc.
        Сам делал миграцию с tsdb 1.7 -> 2.0 с одновременным переходом postgres 12 - > 13. никакие данные не потерялись

        Comment

        • rwx
          Junior Member
          • Nov 2018
          • 7

          #5
          Бэкапим БД без таблиц timescale: т.е. с --exclude-table-data 'history*|trends*' -N '_timescaledb*' --exclude-table '_timescaledb_*'
          Потом отдельно делаем бэкап таблиц trends через \copy.
          Таблицы history* не бэкапим(нам не нужно). Если бы было нужно - бэкапили бы таблицы через \copy в цикле.

          Comment

          • exesition
            Senior Member
            • Nov 2019
            • 121

            #6
            Contribute to timescale/timescaledb-backup development by creating an account on GitHub.

            Эта штука решает все проблемы.

            Comment

            • Toad_Rash
              Junior Member
              • Apr 2023
              • 4

              #7
              На страничке https://github.com/timescale/timescaledb-backup​​ пишут:
              "Effective February 18, 2022. This project is no longer maintained. We recommend using the PostgreSQL tools pg_dump and pg_restore instead​"
              Вот так вот.

              Comment

              Working...