Материал: Горбатов Аттестационные испытания автоматизированных систем от 2014

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

insert into scott.tab2 select * from scott.tab1; insert into scott.tab1 select * from scott.tab2; insert into scott.tab1 select * from scott.tab2; insert into scott.tab2 select * from scott.tab1; insert into scott.tab1 select * from scott.tab2;

Сделаем здесь первый commit и проверим, не появились ли к этому моменту в папке D:\oracle\product\10.2.0\flash_recovery_ area\ORCL\дата_архивации, первые архивные файлы. Следует обратить внимание на место папки архивации. Oracle создает ее в месте, которое по умолчанию (реализуемому при установке Oracle) предусмотрено для архивирования, причем название той папки, куда непосредственно ложатся архивные файлы, совпадает с текущей датой:

commit;

insert into scott.tab1 select * from scott.tab2; insert into scott.tab2 select * from scott.tab1; insert into scott.tab1 select * from scott.tab2; insert into scott.tab2 select * from scott.tab1; insert into scott.tab1 select * from scott.tab2;

Сделаем здесь второй commit и посмотрим в папке D:\oracle\ product\10.2.0\flash_recovery_area\ORCL\дата_архивации, возмож-

но, появившиеся архивные файлы: insert into scott.tab3 values(1); insert into scott.tab4 values(1);

insert into scott.tab3 select * from scott.tab4; insert into scott.tab4 select * from scott.tab3; insert into scott.tab3 select * from scott.tab4; insert into scott.tab4 select * from scott.tab3; insert into scott.tab3 select * from scott.tab4; insert into scott.tab4 select * from scott.tab3; insert into scott.tab3 select * from scott.tab4; insert into scott.tab4 select * from scott.tab3; insert into scott.tab3 select * from scott.tab4; insert into scott.tab4 select * from scott.tab3;

Сделаем здесь третий commit и посмотрим в папке

D:\oracle\product\10.2.0\flash_recovery_area\ORCL\дата_архивации,

возможно, появившиеся архивные файлы: commit;

476

insert into scott.tab3 select * from scott.tab4; insert into scott.tab4 select * from scott.tab3; insert into scott.tab3 select * from scott.tab4; insert into scott.tab4 select * from scott.tab3; insert into scott.tab3 select * from scott.tab4; insert into scott.tab4 select * from scott.tab3; insert into scott.tab3 select * from scott.tab4; insert into scott.tab4 select * from scott.tab3;

Сделаем здесь четвертый commit и посмотрим в папке

D:\oracle\product\10.2.0\flash_recovery_area\ORCL\дата_архивации,

возможно, появившиеся архивные файлы: commit;

insert into scott.tab3 select * from scott.tab4; insert into scott.tab4 select * from scott.tab3; insert into scott.tab3 select * from scott.tab4; insert into scott.tab4 select * from scott.tab3; insert into scott.tab3 select * from scott.tab4;

Сделаем здесь пятый commit и посмотрим в папке

D:\oracle\product\10.2.0\flash_recovery_area\ORCL\дата_архивации,

возможно, появившиеся архивные файлы: commit;

insert into scott.tab5 values(1); insert into scott.tab6 values(1);

insert into scott.tab5 select * from scott.tab6; insert into scott.tab6 select * from scott.tab5; insert into scott.tab5 select * from scott.tab6; insert into scott.tab6 select * from scott.tab5; insert into scott.tab5 select * from scott.tab6; insert into scott.tab6 select * from scott.tab5; insert into scott.tab5 select * from scott.tab6; insert into scott.tab6 select * from scott.tab5; insert into scott.tab5 select * from scott.tab6;

Сделаем здесь шестой commit и посмотрим в папке

D:\oracle\product\10.2.0\flash_recovery_area\ORCL\дата_архивации,

возможно, появившиеся архивные файлы: commit;

Выведем количество строк во всех таблицах после этого

«commit»:

477

select count (*) from scott.tab1; select count (*) from scott.tab2; select count (*) from scott.tab3; select count (*) from scott.tab4; select count (*) from scott.tab5; select count (*) from scott.tab6;

insert into scott.tab5 select * from scott.tab6; insert into scott.tab6 select * from scott.tab5; insert into scott.tab5 select * from scott.tab6; insert into scott.tab6 select * from scott.tab5; insert into scott.tab5 select * from scott.tab6; insert into scott.tab6 select * from scott.tab5; insert into scott.tab5 select * from scott.tab6; insert into scott.tab6 select * from scott.tab5; insert into scott.tab5 select * from scott.tab6;

Сделаем здесь седьмой commit и посмотрим в папке

D:\oracle\product\10.2.0\flash_recovery_area\ORCL\дата_архивации,

возможно, появившиеся архивные файлы. commit;

Выведем количество строк во всех таблицах после этого

«commit»:

select count (*) from scott.tab1; select count (*) from scott.tab2; select count (*) from scott.tab3; select count (*) from scott.tab4; select count (*) from scott.tab5; select count (*) from scott.tab6;

insert into scott.tab5 select * from scott.tab6; insert into scott.tab6 select * from scott.tab5; insert into scott.tab5 select * from scott.tab6; insert into scott.tab6 select * from scott.tab5; insert into scott.tab5 select * from scott.tab6;

Сделаем здесь восьмой commit и посмотрим в папке

D:\oracle\product\10.2.0\flash_recovery_area\ORCL\дата_архивации,

возможно, появившиеся архивные файлы. commit;

Выведем количество строк во всех таблицах после этого

«commit»:

478

select count (*) from scott.tab1; select count (*) from scott.tab2; select count (*) from scott.tab3; select count (*) from scott.tab4; select count (*) from scott.tab5; select count (*) from scott.tab6;

insert into scott.tab1 select * from scott.tab2; insert into scott.tab4 select * from scott.tab3; insert into scott.tab6 select * from scott.tab5;

Здесь commit не будем делать, чтобы лишний раз убедиться, что незавершенная транзакция не восстанавливается.

Выведем количество строк во всех таблицах после этой незавершенной транзакции:

select count (*) from scott.tab1; select count (*) from scott.tab2; select count (*) from scott.tab3; select count (*) from scott.tab4; select count (*) from scott.tab5; select count (*) from scott.tab6;

БД сильно отличается от «холодной» копии, так как добавились новые транзакции. Закроем командой shutdown abort базу данных без завершения (без commit) транзакции.

shutdown abort

Теперь имитируем потерю log файлов ‒ удалим их (Redo01.log, Redo02.log, Redo03.log) средствами ОС Windows из папки «D:\oracle\product\10.2.0\oradata\orcl».

Так как log файлы «потеряны», приступим к восстановлению (неполному, так как полное невозможно). Незавершенные транзакции, конечно, не будут восстановлены, так как повторного их выполнения не произойдет. Но, возможно, будут потеряны и некоторые из завершенных транзакций, так как эти завершенные транзакции могут находиться только в файлах журнализации (которые и «потеряны»), но еще не переместятся в архивные файлы.

Для восстановления перезапишем (поверх существующих) из папки «d:\h_copy» в папку «d:\oracle\product\10.2.0\oradata\orcl»

файлы «холодной» копии БД, в которых отсутствуют созданные и

479

заполненные после копирования файлов БД таблицы tab1 - tab6. Теперь эти таблицы и заполнившие их строки могут находяться только в архивных файлах.

Монтируем БД, так как открытия все равно не получится.

Connect sys/admin1 as sysdba startup mount

Oracle зарегистрировал расхождение в номере последней транзакции в файлах данных из «холодных» копий и в управляющем файле БД, зарегистрировавшем номер последней транзакции ‒ до-

бавление записей в scott.tab1 - scott.tab6.

Теперь «попросим» Oracle выполнить следующий шаг восстановления:

recover database until cancel;

При отработке этой команды Oracle предложит восстановить информацию из архивного файла с указанием адреса его расположения и номеров SCN (System Change Number) транзакций в этом архивном файле. Если такой архивный файл в папке D:\oracle \product\10.2.0\flash_recovery_area\ORCL\дата_архивации сущест-

вует, мы нажимаем клавишу «Enter» с тем, чтобы продолжить восстановление. Такое предложение (восстановить информацию из архивного файла) может повториться несколько раз ‒ по числу архивных файлов и еще один раз. «Enter» надо вводить до тех пор, пока Oracle не предложит нам вводить информацию из архивного файла, которого в вышеназванной папке уже нет. В этом случае и надо ввести «cansel». Именно «cansel», но не «cansel;».

cansel

Следующий шаг ‒ нижеприводимая команда, открывающая БД с созданием новых log файлов.

alter database open resetlogs;

Посмотрим, до какого состояния мы восстановили информацию в таблицах tab1 и tab2:

select count (*) from scott.tab1; select count (*) from scott.tab2; select count (*) from scott.tab3; select count (*) from scott.tab4; select count (*) from scott.tab5; select count (*) from scott.tab6;

480

Смотрите также:

1872
Анализ системы автоматического управления стабилизации напряжения генератора
Вольтер. Слепые судьи, рассуждающие о цвете предметов
ИздательствоЮжно-Уральский государственный аграрный университетISBNГод2006Страниц19Уровень образованияБакалавриат. Сельскохозяйственные рынки
Изучение «электротехнических» причин пожаров при расследовании и экспертизе. методические указания к выполнению лабораторных работ по дисциплине «Расследование и экспертиза пожаров». Скляров К.А., Сушко Е.А
Культурная среда города как фактор повышения инвестиционной привлекательности территории
Малый бизнес
Метрики и методы преобразования чертежа. методические указания для студентов направления Строительство. Иващенко Е.И
Особенности лексико-грамматической стороны речи у детей дошкольного возраста с ОНР
питание-у-пациентов-на-программном-гемодиализе»