Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 8.1.7.4, RMAN и теоретический вопрос  [new]
YuriWhite
Member

Откуда: Chelyabinsk
Сообщений: 449
Прошу не пинать..
Имеем: полный бэкап, контрол файл, архив-логи, каталог восстановления в контроле.
Задача: восстановить БД на другом хосте без подключения к целевой.
Насколько я понял без какого-то промежуточного инстанса в который нужно залить целевой контрол-файл ( т.е по сути каталог восстановления ) восстановить бд на другом хосте не выйдет.

Всего один вопрос: правильно мыслю или нет.

Спасибо.
5 июн 07, 07:38    [4229394]     Ответить | Цитировать Сообщить модератору
 Re: 8.1.7.4, RMAN и теоретический вопрос  [new]
Вячеслав Любомудров
Member

Откуда: Владивосток
Сообщений: 18484
Просто в 8-ке после бэкапа БД и логов нужно делать бэкап контрола более другими средствами (SQL-оператором или через снапшот контролфайла).
И восстанавливать соответственно.
Тогда в нем будут отражены все сделанные перед этим бэкапы
5 июн 07, 07:48    [4229402]     Ответить | Цитировать Сообщить модератору
 Re: 8.1.7.4, RMAN и теоретический вопрос  [new]
SERG1257
Member

Откуда:
Сообщений: 2788
Что, не выходит каменный цветок Данила-мастер :-)

Рассказываю по шагам

бакап
run {allocate channel c type disk;
 # это старые логи они относятся к предыдущему бакапу поэтому имя начинается с ar
 backup archivelog all delete input format '/u01/app/backup/ar_%d_%s.rmn';
 backup database format '/u01/app/backup/db_%d_%s.rmn'; # это база
 # это логи во время бакапа, неотъемлимая часть бакапа поэтому имя начинается с db
 backup archivelog all delete input format '/u01/app/backup/db_%d_%s.rmn';
 # вместо backup current controlfile format '/u01/app/backup/cf_%d_%s.rmn' который даст нам бакап кф и с которым я не знаю что делать
 # делаем 
 copy current controlfile to '/u01/app/backup/cf.ctl'
 # или что тоже самое где нибудь в sql+ alter database backup controlfile to '/u01/app/backup/cf.ctl';
 # таким образом у нас есть КОПИЯ контролфайла

Восстановление

run {allocate channel c type disk;
 # стартуем базу, читаем pfile
 alter database startup nomount;
 # восстанавливаем контролфайл, копируя во все места указанные в pfile
 replicate controlfile from '/u01/app/backup/cf.ctl'
 # как видим путь до каталога бакапа на обоих машинах совпадают. иначе dbms_backup_restore
 alter database mount;
 # вуаля база смонтирована
 # если у тебя пути до файлов/редулогов совпадают пропусти этот раздел
 # можно переименовать файлы в sql+ alter database rename file 1 to '/u01/oradata/test/system.dbf'
 # теперь нам надо разобраться там ли будут лежать датафайлы
 # set newname for datafile 1 to '/u01/oradata/test/system.dbf';
 # set newname for datafile 2 to '/u01/oradata/test/users.dbf';
 .....
 restore database;
 switch datafile all; # запомним новые пути в контролфайле
 # время накатывать логи. Можно выйти отсюда и сделать все по старинке в sql+ alter database recover automatic 
 recover database; # вот тут она свалится с ошибкой когда попытается применить редулог
 alter database open resetlogs; # соответственно некому будет сказать open

 # если не хочешь ошибки и хочешь сделать все в одном rman скрипте 
 # (странное желание при восстановлении, где желательно все делать ручками контролируя процесс)
 # recover database noredo 
 # alter database open resetlogs
5 июн 07, 20:14    [4233838]     Ответить | Цитировать Сообщить модератору
 Re: 8.1.7.4, RMAN и теоретический вопрос  [new]
YuriWhite
Member

Откуда: Chelyabinsk
Сообщений: 449
2 SERG1257
Спасибо! Хоть и сам дошел до примерно такого сценария. Но повторяю - спасибо.

Остался вопрос: что делать с логами если на новом хосте они должны лежать не по тем путям.
Насколько я понял set newname распросторонятеся только на dat файлы...

В duplicate есть опция про логи, а тут как ? Или только пересозданием контрола ?
6 июн 07, 14:49    [4237074]     Ответить | Цитировать Сообщить модератору
 Re: 8.1.7.4, RMAN и теоретический вопрос  [new]
SERG1257
Member

Откуда:
Сообщений: 2788
автор
Или только пересозданием контрола ?

Зачем пересоздавать если можно переименовать.

Честно говоря всякий раз когда я восстанавливал, я брал sqlplus в руки и
alter database rename file 'log1' to 'log2'
Но наверное это можно как-то сделать не выходя из RMAN
Только в версию 8 лучше не забурятся. Здорово она улучшилась в 9 и 10.
6 июн 07, 19:11    [4239223]     Ответить | Цитировать Сообщить модератору
 Re: 8.1.7.4, RMAN и теоретический вопрос  [new]
YuriWhite
Member

Откуда: Chelyabinsk
Сообщений: 449
Всем спасибо!
Процесс отлажен.

Однако появился вопрос - пухнет контрол-файл. Как я понимаю от инфы о бэкапах.
Всю инфу о просроченых бэкапах удаляю - как и сами бэкапы.
Вопрос :
То что он пухнет - это нормально или есть средство его шринкануть ?
Сорри за MSSQL жаргон :)
13 июн 07, 08:31    [4259609]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить