понедельник, 18 января 2010 г.

Копирование чанков

"В этом зале вы увидите картины руки великих мастеров.
И если они вам по душе, вы вполне можете приобрести копии,
практически не отличающиеся
от оригиналов. И конечно же по доступной цене."

Итак, задача. Есть тестовый сервер Informix с некоторыми тестовыми данными, необходимо перенести его на другую машину. Конечно раз сервер тестовый, никаких бэкапов не делается. Это раз. И на новой машине мы хотим использовать для чанков вместо raw device (которые на старом сервере) обычные файлы. Это два. Для такой задачи можно попробовать использовать утилиту dd. Перед реальным копированием чанков можно протестировать это на каком нибудь одном чанке на этой же машине. Перед копированием чанка надо остановить экземпляр. Для начала я указал исходный девайс, и файл в который будет скопировано все содержимое этого девайса. Например так:

dd if=/dev/roottestdbs of=/informix/data/filerootdbs

Как вы успели заметить, по названию исходного девайса, нетрудно предположить что копируется чанк из ROOTDBS. После копирования изменяю символическую ссылку (пути к чанкам я всегда указываю через символические ссылки) на новый файл, полученный с помощью dd. Запускаю тестовый экземпляр. Он запустился нормально! На всякий случай запускаю всевозможные проверки баз которые находятся в rootdbs (sysmaster, sysutils, sysuser) с помощью oncheck, они тоже показывают что данными все в порядке. Т.е. такой способ работает.

Upd. Для повышения скорости копирования необходимо установить размер блока с помощью параметра bs (man dd) и он должен быть кратен размеру страницы информикса. Размер блока следует подбирать экспериментально, т.к. скорость при выбранном размере блока зависит от многих факторов (например копирование осуществляется с диска на диск локально, или наоборот на другой сервер через NFS). Я делал копирование через NFS и выставлял размер блока 512к, дальнейшее увеличение прироста скорости не дало.

Комментариев нет: