Есть ли какой-нибудь способ уменьшить размер файла дампа базы данных Sybase?
Вопрос
Когда я создаю дамп базы данных 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, как описано выше {заработанное очко}.Если бы это был производственный хост, я бы отправил файл на другой хост и сделал это.Ущерб от использования ресурсов может быть значительным.