несоответствие версии pg_dump на Debian

После резервного копирования (шага 1) и размонтирования (между 2 и 3), выполненный fsck чтобы гарантировать, что файловая система здорова:

e2fsck -f /dev/mapper/ExistingExt4

Кроме этого, шаги в порядке.

что я должен выбрать за $SECTORS? Этот шаг даже необходим?

Этот шаг необходим, иначе раздел все еще обнаружился бы в старой стороне. Это подтверждено с Наутилусом, даже после изменения размеров с resize2fs, раздел LUKS обнаружился как старый размер. После выполнения cryptsetup resize, корректное число показывают. Этот шаг не необходим. Это только влияет на текущее состояние размера как показано в файловом браузере. После изменения размера и закрытия/открытия раздела снова, восстанавливается число. Так, когда закрытие раздела LUKS как показано позже сделает это устаревшим.

$SECTORS может быть определен путем рассмотрения вывода cryptsetup status ExistingExt4:

    /dev/mapper/ExistingExt4 is active.
      type:    LUKS1
      cipher:  aes-cbc-essiv:sha256
      keysize: 256 bits
      device:  /dev/sda2
      offset:  2056 sectors
      size:    156049348 sectors
      mode:    read/write

Один сектор всегда - 512 байтов (упомянутый в cryptsetup страница руководства). Таким образом, для вычитания 15 гибибайт используйте размер сектора 156049348 - 15 * 1024 * 1024 * 2 = 124592068:

cryptsetup resize ExistingExt4 -b 124592068

Что касается изменения размеров раздела, parted хорошо работает с разделами GPT. resize команда не работает однако, как обходное решение (или решение), удаляет информацию о разделе и создает новый раздел, как вдохновлено http://ubuntuforums.org/showthread.php?p=8721017#post8721017:

# cryptsetup luksClose ExistingExt4
# parted /dev/sda2
GNU Parted 2.3
Using /dev/sda
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) unit s
(parted) p
Model: ATA INTEL SSDSA2CW08 (scsi)
Disk /dev/sda: 156301488s
Sector size (logical/physical): 512B/512B
Partition Table: gpt

Number  Start    End         Size        File system  Name    Flags
 1      34s      2082s       2049s                    Boot    bios_grub
 3      2083s    250034s     247952s     ext2         RootBoot
 2      250035s  156301438s  156051404s               Everything

Как 15 гибибайт должен быть сбрит, новый конец становится 156301438 - 15 * 1024 * 1024 * 2 = 124844158. Так как я хочу изменить раздел 2, я сначала должен удалить его и затем воссоздать его с маркировать "Everything" (это могло быть изменено, если Вам нравится).Примечание: этот диск имеет расположение GPT. Для MBR необходимо заменить Everything primary или extended (непротестированный, изменяя размер раздела на MBR не был протестирован и не рекомендуется, потому что он не тестируется).

ПРЕДУПРЕЖДЕНИЕ: следующие команды разрушили данные. Не копируйте его, не понимая то, что происходит. Размеры сектора должны быть изменены, иначе Вы уничтожите свой раздел (разделы). Я никоим образом не ответственен за Вашу глупость, РЕЗЕРВНОЕ РЕЗЕРВНОЕ КОПИРОВАНИЕ КОПИРУЮТ Ваши данные к второму носителю прежде, чем рискнуть Вашими данными.

(parted) rm 2
(parted) mkpart Everything 250035s 124844158s
Warning: The resulting partition is not properly aligned for best performance.
Ignore/Cancel? ignore
(parted) p
Model: ATA INTEL SSDSA2CW08 (scsi)
Disk /dev/sda: 156301488s
Sector size (logical/physical): 512B/512B
Partition Table: gpt

Number  Start    End         Size        File system  Name    Flags
 1      34s      2082s       2049s                    Boot    bios_grub
 3      2083s    250034s     247952s     ext2         RootBoot
 2      250035s  124844158s  124594124s               Everything
(parted) quit

В вышеупомянутом parted пример, мои секторы не выровненные, который является ошибкой от более ранней установки, не обращайте слишком много внимания на него.

Это - это! Можно использовать cryptsetup status и file -Ls /dev/... проверить, что все в порядке и затем перезагрузка.

8
25.05.2013, 21:34
5 ответов

Несколько опций.

Загрузите .deb 9.1 с сайта Пост-ГРЭС

Смотрите на эту названную страницу: загрузки Linux (Debian) - PostgreSQL. Можно или загрузить обновленный .deb с сайта непосредственно, или повторно указать на их репозиторий и сделать команду как это:

apt-get install postgresql-9.1

Бэкпорты Debian

Вы можете находить определенные версии здесь, http://backports.debian.org/.

Используйте универсальную версию

Можно загрузить двоичную сборку PostgreSQL и поместить, устанавливают его в корневом каталоге или /opt например.

Загрузите одну из предварительных сборок для использования предприятия

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

Перекрестные пакеты распределения

Можно загрузить пакеты, которые были созданы так, чтобы они были агностиком распределения. Я просто загрузил 9.1.9 версии, и они действительно включают pg_dump инструмент.

Программное обеспечение предоставлено или как .rpm или как .deb и устанавливает на /opt/postgres/9.1. Конкретно pg_dump инструмент обеспечивается здесь: /opt/postgres/9.1/bin/pg_dump.

3
27.01.2020, 20:10
  • 1
    Версия PostgreSQL не является действительно проблемой. Это - версия pg_dump это является старым и несовместимым. Есть ли где-нибудь, я могу найти конкретно это? –  supercheetah 25.05.2013, 22:11
  • 2
    я думаю, что он связывается в с этими пакетами. Я просто загрузил бы одну из предварительных сборок для определенной версии и использовал бы pg_dump команда из там. Их не придется установить, просто непросмоленные в каталог. Вам, возможно, придется установить переменную среды для указания на каталог библиотеки, но это должно быть довольно прямым. –  slm♦ 25.05.2013, 22:12

В моем случае у меня было два набора баз данных некоторая работа старой версии Postgresql 8.4 и другой работы версии 9.1. То, что я сделал, должно было расположиться pg_dump в машине Linux с помощью locate команда ниже

$ locate pg_dump

/usr/bin/pg_dump
/usr/bin/pg_dumpall
/usr/lib/postgresql/8.4/bin/pg_dump
/usr/lib/postgresql/8.4/bin/pg_dumpall
/usr/lib/postgresql/9.1/bin/pg_dump
/usr/lib/postgresql/9.1/bin/pg_dumpall

Начиная со значения по умолчанию /usr/bin/pg_dump для версии 8.4 Postgresql, я просто указал /usr/lib/postgresql/9.1/bin/pg_dump из командной строки при дампе от 9,1 баз данных, который работает на другом порте и он работал.

$ /usr/lib/postgresql/9.1/bin/pg_dump -p 5434
4
27.01.2020, 20:10
[1120590] В дополнение к ответам, приведенным выше, вы также можете указать [1120945]pg_dump[1120946] и другие команды, которые можно использовать с помощью опции [1120947]cluster[1120948]. Например,

будет нацелена на версию 9.1.

Обратите внимание, что при этом используется [1120949]pg_wrapper[1120950], которая поставляется с

postgresql-common

и работает с [1120953]Ubuntu[1120954] (Debian). Также обратите внимание, что кластер ([1120955]main[1120956] в примере) может отличаться в вашей установке.[1281]Больше информации о [1120957]pg_wrapper[1120958] можно найти в этом [1120959]ответе DBA[1120960].[1120597].

2
27.01.2020, 20:10

Сегодня я столкнулся с той же проблемой, и ответ Эрика кажется наиболее точным. Вероятно, проблема в том, что у вас разные версии postgresql-client, а pg_dump просто использует самый старый клиент.

Вы можете решить эту проблему, используя полный путь, как он описал, но я нашел более простое решение - удалить пакет postgresql-client-common (который удаляет всех клиентов), а затем переустановить postgresql-client-9.3. Это оставляет вам только последние версии pg_dump, которые, вероятно, вам нужны.

0
27.01.2020, 20:10

Другой вариант, который может вам подойти, это удалить старую параллельную версию:

на debian/ubuntu:

sudo apt-get remove postgresql-8.4
sudo apt-get remove postgresql-client-8.4

которая сохраняет более позднюю версию (например, 9.1), удаляя только старые версии 8.4 клиентских и серверных libs.

.
4
27.01.2020, 20:10

Теги

Похожие вопросы