Есть ли какой-нибудь способ уменьшить размер файла дампа базы данных Sybase?

StackOverflow https://stackoverflow.com/questions/206787

  •  03-07-2019
  •  | 
  •  

Вопрос

Когда я создаю дамп базы данных Sybase, кажется, не имеет значения, есть ли данные в таблицах или нет, размер файла тот же.Мне сказали, что это связано с тем фактом, что мой файл дампа является двоичным, а не логическим, поэтому размер файла дампа зависит от выделенного размера базы данных.Я знаю, что Oracle может использовать файлы логического дампа, но могу ли я заставить Sybase сделать что-то подобное, или есть какие-то другие хитрые способы уменьшить размер файла дампа?

Это было полезно?

Решение

Начиная где-то с версии 12, вы смогли выполнять сжатые дампы в ASE.

Синтаксис таков: дамп базы данных database_name в file_name [со сжатием=compress_level]

уровень сжатия равен 0-9.0 - это отсутствие сжатия, а 9 - наибольшее.Чем больше вы сжимаете, тем выше загрузка процессора во время выполнения дампа.Вам просто нужно провести небольшое тестирование, чтобы найти подходящее соотношение размера и производительности.

Для загрузки дампа не требуется никаких специальных команд.

Другие советы

Если вы уже используете compress_level 9 и все еще хотите большего сжатия, можно повторно сжать файл с помощью bzip2.

Если вы просто загрузите сжатый файл в zip2, вы получите улучшение на ~ 10%.Если вы распакуете и повторно сожмете файл, вы можете увидеть улучшения в диапазоне 30%.Однако имейте в виду, что вам придется снова разархивировать и / или gzip файл, чтобы Sybase смог его загрузить.

gunzip -c pubs_1.dmp | bzip2 > pubs.dmp.bz2

Хотя приведенная выше ссылка (синтаксис is), очевидно, правильна, поскольку указывает на документацию sybase, комментарии вводят в заблуждение.

Синтаксис в простом формате таков:

дамп базы данных {имя_базы данных} в "compress::{#compression_level}::{stripe_device}" перейдите

например:дамп базы данных mydb для "сжатия::1::/sybase_dumps/mydb_17022009"

Что касается загрузки дампа базы данных, то необходимо снова задать параметр ::compress;.

например.загрузить базу данных mydb из "compresss::/sybase_dumps/mydb_17022009"

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

Тестирование для определения вашего баланса - хороший момент, помните, что чем выше вы поднимаетесь, тем ожидаемее, что сброс займет значительно больше времени.Я нахожу, что 1-3 - это более чем достаточно, я никогда не поднимался выше 6, уменьшающаяся отдача того не стоит.

Если бы я был в отчаянии, я бы загрузил файл bzip2, как описано выше {заработанное очко}.Если бы это был производственный хост, я бы отправил файл на другой хост и сделал это.Ущерб от использования ресурсов может быть значительным.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top