Как проверить целостность файла дампа Sybase, не пытаясь загрузить его? - PullRequest
2 голосов
/ 14 ноября 2008

Вот сценарий - клиент загружает файл дампа Sybase (gzipped) на наш локальный FTP-сервер. У нас есть автоматизированный процесс, который собирает их и затем перемещает на другой сервер в сети, где находится сервер базы данных. К сожалению, эта передача осуществляется через WAN, что для больших файлов занимает много времени, и иногда наши клиенты забывают FTP на двоичный режим, что приводит к 10 ГБ передачи по нашей WAN все даром, поскольку файл дампа не может быть загружен на другом конце. Что я хотел бы сделать, это проверить целостность файла дампа на локальном сервере, прежде чем отправлять его по глобальной сети, но я не могу просто попытаться «загрузить» файл дампа, так как у нас нет Sybase установлен (и не может установить его). Существуют ли какие-либо инструменты или фрагменты кода, которые я могу использовать для этого?

Ответы [ 2 ]

3 голосов
/ 17 февраля 2009

Есть несколько вещей, которые вы можете сделать из командной строки. Во-первых, на отправляющей стороне - генерирование md5sum файлов.

$ md5sum *.dmp
2bddf3cd8b04010183dd3295ce7594ff  pubs_1.dmp
7510e0250c8d68bae3e0e794c211e60b  pubs_2.dmp
091fe54fa5fd81d8c109cc7835d37f4a  pubs_3.dmp

На стороне клиента они могут работать одинаково. Во-вторых, обычно дампы Sybase выполняются с параметром сжатия. Если этот параметр используется, вы также можете проверить целостность файла, распаковав файлы через командную строку. Это не так полно, но будет проверять 8-байтовую контрольную сумму CRC-32, которая является частью алгоритма сжатия.

$ gunzip --test *.dmp
gunzip: pubs_3.dmp: unexpected end of file

Ни один из этих методов не подтверждает, что Sybase сможет загрузить файл, но это помогает убедиться, что файл не поврежден.

0 голосов
/ 16 февраля 2009

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

Но для решения вашей проблемы вы должны использовать SFTP или SCP, все передачи выполняются в двоичном формате, что облегчает вашу проблему.

Убедитесь, что они также используют сжатие в дампе, значение 1-3 более чем достаточно, это также должно снизить сетевой трафик.

...