Страница 4 из 38
Как это всё можно задать При создании базы - опциями оператора create database. Синтаксис примерно следующий: create database "имя" ... всякие опции ... file "имя" ... опции для файла ... file ... Среди опций нас в данный момент интересуют: - page_size=nnn
- Указывается только для базы в целом и задаёт размер страницы. Он должен быть кратным двойке, начиная с 1024. Изменять можно только в большую сторону, и обычно для этого есть основания, так как 1024 - не самый эффективный вариант.
- length=nnn
- Задаёт длинну в страницах главного или вторичного файла БД в зависимости от того, где указана опция.
- starting at nnn
- Задаёт начальную страницу базы, с которой начинается данный файл. Страницы считаются с 1. Таким образом, если первый файл в базе имел размер 10000 страниц, то второй должен быть starting at 10001. Наложения и разрывы в последовательности страниц в файлах не допускаются. Если в данном случае написать starting at 15000, то файл всё равно начнётся с 10001.
Теневые файлы создаются после того, как создан основной набор файлов и, в принципе не обязаны покрывать его весь. Каждой тени присваивается номер (целое положительное число) и все теневые файлы приписываются к определённому номеру тени. Внутри тени с одним номером правила создания файлов примерно такие же, как и в главной последовательности файлов - задаются размеры или (и) начальные позиции в страницах. Операторы называются create shadow/drop shadow. Кроме всего прочего, в этих операторах предусмотрена реакция на ситуацию, когда один из теневых наборов портится или становится недоступным (продолжать в этом случае работу на сохранившися наборах, или нет). Как это всё можно изменить в существующей базе данных Совсем коротко: снять с базы резервную копию и восстановить с новыми параметрами. При создании резервной копии никаких особенностей практически нет. Достаточно указать ссылку на начальный файл главной (не теневой) копии, остальное InterBase найдёт сам. При восстановлении с помощью программы Server Manager (или командной строки gbak) можно изменить размер страницы и состав файлов в главной копии базы. Первое делается вводом нужного значения в поле редактирования Page Size (-P nnnn), второе - нажатием кнопки Multi-File и добавлением вторичных файлов в список. Суть параметров та же, что и при создании базы данных. Gbak по идее должен делать многофайловую базу, если вместо одного имени выходного файла написать "имя1 размер1 имя2 размер2 ... имяN". Размеры, как обычно, в страницах. Размер для последнего файла не указывается. Только вот в interbase 4.X приходилось наблюдать глюк, когда файлы создавались, но вся база восстанавливалась в последний, независимо от размеров остальных. В общем, будьте осторожны. Снимать резервные копии с базы данных с тенями, я, честно говоря, не пробовал, но некоторые вещи в документации на этот счёт меня смутили. Во-первых, имеется опция игнорирования теней при восстановлении. Это значит, что состав теневых файлов, запоминается в резервной копии и восстанавливается по умолчанию. Если так, то почему этого не делается с последовательностью основных файлов? |