Читать в оригинале

<< ПредыдущаяОглавлениеСледующая >>


3.9 Резервное копирование и восстановление

Операции резервного копирования и восстановления в Oracle можно разделить на три вида:

1. Логическое резервное копирование - производится при помощи входящей в состав Oracle утилиты ехр, которая позволяет экспортиро­вать всю базу, заданные схемы или таблицы. В случае экспорта всей базы выполняется так называемый полный экспорт (при этом экс­портируются все таблицы базы данных) или инкрементный (выгру­жаются таблицы, изменившиеся с момента последнего экспорта). Для Oracle 10g ХЕ, в котором объем базы не превышает 4 Гбайт, можно пользоваться полным экспортом.

2. Физическое резервное копирование - выполняется после установки базы и предполагает копирование файлов данных, управляющих фай­лов, оперативных журналов повтора и файла init.ora с настройками базы.

3. Оперативное резервное копирование - осуществляется в базе, функционирующей в режиме ARCHIVELOG. В этом режиме производит­ся архивация оперативных журналов повтора и ведется журнал всех транзакций.

Для небольших учебных баз данных наиболее простым и на­дежным является полное логическое резервное копирование и фи­зическое резервное копирование. Логическое резервное копирование выполняется при помощи утилиты ехр.ехе, размещенной в папке oraclexe\app\oracle\product\10.2.0\server\BIN\. Утилита является консольным приложением, получающим параметры через командную строку. Поскольку параметров обычно бывает много (5-10 штук), удоб­но создать профиль с параметрами и затем передать его утилите экспорта при помощи параметра parfile.

Рассмотрим пример типовых профилей. Для начала решим наиболее распространенную задачу — создание резервной копии одной или несколь­ких схем. В качестве примера рассмотрим копирование схемы STUDENT с учебным примером. Для этого создадим текстовый файл exp_stud.prm, содержащий следующие строки:

USERID = имя/пароль
LOG = oralOstud.log FILE = oralOstud.dmp 0WNER= STUDENT

Затем произведем экспорт, выполнив команду ехр parfile=exp_stud.prm, в результате чего будет создан файл ora10stud.dmp, содержащий резервную копию схемы STUDENT. Этот файл имеет бинар­ный формат и очень хорошо сжимается любым архиватором, поэтому для автоматизации процедуры резервного копирования удобно создать ВАТ- файл, содержащий команду экспорта и вызов архиватора для сжатия полученного дампа.

В нашем случае параметр USERID содержит имя и пароль для доступа к базе данных, параметр LOG задает имя файла, в который записывает­ся протокол работы, параметр FILE задает имя файла резервной копии, OWNER — одна или несколько экспортируемых схем (если указывается несколько схем, то они перечисляются через запятую).

Для выполнения полного экспорта профиль немного изменится:

USERID = имя/пароль
LOG = oralOfull.log FILE = oralOfull.dmp FULL = Y

Важным моментом является то, что экспорт конкретной схемы можно выполнять от имени ее владельца, но для полного экспорта необходимо обладать ролью DBA, в противном случае попытка полного экспорта за­вершится ошибкой ЕХР-00023 с сообщением «Must be a DBA to do Full Database or Tablespace export». Размер дампа в случае полного экспорта пустой базы Oracle 10g ХЕ составляет 43 Мбайт (9 Мбайт после сжатия WinRar). Настоятельно рекомендуется выполнять периодическое резерв­ное копирование даже на учебной базе — известны десятки и сотни случа­ев, когда в ходе изучения Oracle происходит повреждение базы, удаление пользователя или иная операция, приводящая к потере созданных объек­тов.

Логический импорт является зеркальной операцией по отношению к экспорту и выполняется при помощи утилиты IMP. В ходе импорта необя­зательно импортировать всю имеющуюся в дампе информацию — можно произвести импорт заданных схем или таблиц. Параметры утилиты IMP удобно размещать в профилях, например для импорта схемы STUDENT можно применить профиль следующего вида:

USERID = student/student LOG = oralOstudimp.log FILE = oralOstud.dmp
ROWS = Y
GRANTS = Y
INDEXES = Y
FR0MUSER= STUDENT
T0USER= STUDENT

Параметр FROMUSER указывает, из каких учетных записей в дампе берется информация, a TOUSER — в какие учетные записи она импор­тируется. Это очень удобная возможность утилиты импорта, так как она позволяет импортировать данные одной схемы в другую.

Параметры ROWS (строки таблиц), GRANTS (полномочия на объек­ты), INDEXES (индексы) указывают, какие типы объектов импортируют­ся.

Рассмотрим несколько типичных ситуаций, встречающихся на практи­ке:

необходимо импортировать объекты учетной записи STUDENT в учетную запись STUDENT1. В этом случае следует задать параметры FROMUSER=STUDENT и TOUSER= STUDENT1;

Перед импортом необходимо удалить все объекты из схемы, иначе в про­цессе импорта будут выдаваться ошибки IMP-00015 для каждой импор­тируемой таблицы (импорт данных в этом случае не производится). Если по каким-либо причинам необходимо загрузить данные в существующую таблицу, то можно применить параметр IGNORE=Y. что приведет к иг­норированию ошибок при создании объектов и к продолжению импорта данных. Однако в случае применения параметра IGNORE=Y необходимо учитывать, что в таблицах без первичного ключа может возникнуть удво­ение записей (так как каждая операция импорта загружает новые данные, а старые при этом не уничтожаются).

У IMP есть одна интересная функция — вместо выполнения команд в базе данных эта утилита выводит их в протокол, генерируя тем са­мым скрипты, содержащие DML-операторы. Для включения этой функ­ции необходимо указать параметр SHOW=Y.

 



<< ПредыдущаяОглавлениеСледующая >>