FirebirdSQL logo

Теневая копия (shadow — дословно тень) является точной страничной копией базы данных.После создания теневой копии все изменения, сделанные в базе данных, сразу же отражаются и в теневой копии.Если по каким либо причинам первичный файл базы данных станет недоступным, то СУБД переключится на теневую копию.

В данном разделе рассматриваются вопросы создания и удаления теневых копий.

Note

Это относится только к текущим операциям с базой данных, но не к новым подключениям.В случае поломки исходной базы данных администратор БД должен восстановить изначальные файлы базы данных, в том числе и с помощью файлов теневых копий.Только после этого будет возможно подключение новых клиентов.

CREATE SHADOW

Назначение

Создание теневой копии.

Синтаксис
CREATE SHADOW sh_num [AUTO | MANUAL] [CONDITIONAL]
  'filepath' [LENGTH [=] num [PAGE[S]]]
  [<secondary_file>];

<secondary_file> ::=
  FILE 'filepath'
  LENGTH [=] num [PAGE[S]] | STARTING [AT [PAGE]] pagenum
Table 1. Параметры оператора CREATE SHADOW
Параметр Описание

sh_num

Номер теневой копии – положительное число, идентифицирующее набор файлов теневой копии.

filepath

Имя файла и путь к нему в соответствии с требованиями ОС.

num

Максимальный размер теневой копии в страницах.

secondary_file

Спецификация вторичного файла.

page_num

Номер страницы, с которой должен начинаться вторичный файл копии.

Оператор CREATE SHADOW создаёт новую теневую копию.Теневая копия начинает дублировать базу данных сразу в момент создания этой копии.

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

Для файлов теневой копии размер страницы устанавливается равным размеру страницы базы данных и не может быть изменён.

Если по каким либо причинам файл базы данных становится недоступным, то система преобразует тень в копию базы данных и переключается на неё.Теневая копия становится недоступной.Что будет дальше зависит от выбранного режима.

docnext count = 7

Режимы AUTO и MANUAL

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

  • Если выбран режим AUTO (значение по умолчанию), то в случае, когда теневая копия становится недоступной, автоматически прекращается использование этой копии и из базы данных удаляются все ссылки на нее. Работа с базой данных продолжается обычным образом без осуществления копирования в данную теневую копию.

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

  • Если выбран режим MANUAL, то в случае, когда теневая копия становится недоступной, все попытки соединения с базой данных и обращения к ней будут вызывать сообщение об ошибке до тех пор, пока теневая копия не станет доступной или пока не будет удалена администратором БД с помощью оператора DROP SHADOW.

Необязательные параметры CREATE SHADOW

LENGTH

Необязательное предложение LENGTH задаёт максимальный размер первичного или вторичного файла теневой копии в страницах.Для единственного или последнего файла теневой копии значение LENGTH никак не влияет на его размер.Файл будет автоматически увеличивать свой размер по мере необходимости.

STARTING AT

Предложение STARTING AT задаёт номер страницы теневой копии, с которой должен начинаться следующий файл теневой копии.Когда предыдущий файл будет полностью заполнен данными в соответствии с заданным номером страницы, система начнёт помещать вновь добавляемые данные в следующий файл теневой копии.

Кто может создать теневую копию?

Выполнить оператор CREATE SHADOW могут:

Примеры

Example 1. Создание теневую копию базы данных с номером 1
CREATE SHADOW 1 'g:\data\test.shd';
Example 2. Создание многофайловой теневой копии
CREATE SHADOW 2 'g:\data\test.sh1'
LENGTH 8000 PAGES
FILE 'g:\data\test.sh2';

DROP SHADOW

Назначение

Удаление теневой копии.

Доступно в

DSQL, ESQL

Синтаксис
DROP SHADOW sh_num
  [{PRESERVE | DELETE} FILE]
Table 1. Параметры оператора DROP SHADOW
Параметр Описание

sh_num

Номер теневой копии — положительное число, идентифицирующее набор файлов теневой копии.

Оператор DROP SHADOW удаляет указанную теневую копию из базы данных, с которой установлено текущее соединение.При удалении теневой копии прекращается процесс дублирования данных в эту копию.Если указана опция DELETE FILE, то будут также удалены и все связанные файлы с этой теневой копией.Если указана опция PRESERVE FILE, то файлы останутся не тронутыми.Это может быть полезно, если вы делаете резервную копию с теневого файла.По умолчанию используется опция DELETE FILE.

Кто может удалить теневую копию?

Выполнить оператор DROP SHADOW могут:

Примеры

Example 1. Удаление теневой копии с номером 1
DROP SHADOW 1;
См. также:

CREATE SHADOW.