Просмотр полной версии : [Вопрос] Как правильно делать бэкап для оракла
Marat Timergaliev
16.04.2010, 13:43
пытаюсь сделать бэкап через рман, вроде говорит после восстановления базы что все успешно закончилось, но таблички которые я удалил не восстановил
вот мой код восстановления
создание бэкапа
connect target/;
shutdown immediate;
startup mount;
backup database format 'e:\oracle\backup\rman-backup_%d_%U.bus';
alter database open;
восстановления после удаления табличек
connect target/;
shutdown immediate;
startup mount;
restore database;
recover database;
alter database open;
пытаюсь сделать бэкап через рман, вроде говорит после восстановления базы что все успешно закончилось, но таблички которые я удалил не восстановил
вот мой код восстановления
создание бэкапа
connect target/;
shutdown immediate;
startup mount;
backup database format 'e:\oracle\backup\rman-backup_%d_%U.bus';
alter database open;
восстановления после удаления табличек
connect target/;
shutdown immediate;
startup mount;
restore database;
recover database;
alter database open;
база в архивлоге?
Marat Timergaliev
16.04.2010, 14:36
нет,холодный бэкап для него не нужно архивлог
в принципе не важно,
в редулог записался ДДЛ твоего удалеиня таблицы и когда та сделал рековер то оракл накатил этот DDL на базу
поищи как делается incompete recovery
Marat Timergaliev
16.04.2010, 14:46
ну, а почему мои таблички не восстановились, я просто в администрировании ноль, просто попросили сделать, а я не пойму, вроде делаю по инструкции
Alexander Kuznetsov
16.04.2010, 14:48
stbd прав.У меня тож такая проблема была.
ну, а почему мои таблички не восстановились, я просто в администрировании ноль, просто попросили сделать, а я не пойму, вроде делаю по инструкции
команда рестор просто восстанавливает из бэкапа базу, но после этого делается рековер, а он берет данные из редулогов и накатывает их на базу, т.е. база у тебя будет на самый последний момент времени который доступен в редулоге, так что у тебя все работает нормально
а чтоб восстановить базу до момента удаления таблиц, надо делать incomplete recovery
а вообще, так делать нехорошо,
скажем если холодный бэкап делается раз в сутки ночью, то все транзакции, проведенные после бэкапа, в случае падения оракла потеряются
stbd прав.У меня тож такая проблема была.
это не проблема :)
это так и задумано
Если все равно делаешь холодный бэкап, и не очень дружишь с рманом, попроси сисадминов делать холодный бэкап средствами ОС. Для этого достаточно погасить сервис оракла и сбэкапить папку с данными.
Marat Timergaliev
17.04.2010, 09:07
incomplete recoveryrman говорит что нет такой команды как incomplete, я вот сделал
shutdown immediate;
startup mount;
restore database;
incomplete recovery database;
тут он дал ошибку говорит что нету такой команды incomplete
это самая ИТ тема форума!!!
incomplete recoveryrman говорит что нет такой команды как incomplete, я вот сделал
shutdown immediate;
startup mount;
restore database;
incomplete recovery database;
тут он дал ошибку говорит что нету такой команды incomplete
:) incomplete recovery - это не команда, это, скажем так, техника восстановления или термин, означающий неполное восстновление.
Почитай гайды, какие конкретные команды использовать, там вроде опция была until cancel..
если гайдов под рукой нет, в сети поищи...
а вообще лучше опиши что ты собственно хочешь сделать, и версию оракла укажи
если речь о холодном бэкапе оракла то, как я уже писал, делай средствами ОС
если надо восстановить удаленные таблицы, то в оракле есть корзина (recycle bin)
если нужно восстановить удаленные данные то есть flashback (правда если древняя версия, то там нет)
если горячий бэкап, то только рман, но надо конкретно посидеть и почитать гайды
Marat Timergaliev
17.04.2010, 12:03
сеть есть только на уз сайты, читал книжку Oracle Database Backup and Recovery Advanced User's Guide 10g - Antonio Romero, делал until cancel и даже делал until time 'Apr 16 2010 09:41:00' и не пашет
вообще мне нужно делать бэкап на случаи если грохнется таблички,данные в них, короче говоря на все случае в жизни
на все случаи жизни не бывает
в каждой конкретной ситуации применяется конкретное средство.
Например, если кто то из дибиэев грохнул таблицу, а кроме них никто не должен иметь такой возможности в принципе, то лучше всего достать из корзины или через flashback table, т.к. за тот промежуток времени который прошел с момента удаления таблицы и до момента обнаружения, другие юзеры могли напроводить кучу транзакций в других таблицах. И что ты получишь? Ты потеряешь все эти транзакции, если будешь делать восстановление до момента удаления таблицы.
В оракле много способов как восстановить данные, так и не допустить такие потери. Кроме того можно озаботиться сохранностью данных используя внешние для оракла средства, например, бэкап средствами ОС или RAID массивы. Если нет времени разбираться с рманом, используй эти средства.
ну что, юноша, получилось сделать восстановление?
надеюсь, ты на тестовой базе экспериментируешь :)
а то потеряешь данные в продуктивной базе, за это по головке не погладят
по поводу этого могу дать пару советов
и даже делал until time 'Apr 16 2010 09:41:00' и не пашет
1.когда делаешь until time лучше явно указать формат даты
2.и базу надо открывать c resetlogs
в общем должно быть примерно так
connect target/;
shutdown immediate;
startup mount;
restore database;
recover database until time "to_date('20100904 09:50:00','yyyymmdd hh:mi:ss')";
alter database open resetlogs;
Ну и опять же, неполное восстановление - это плохой способ.
И перед тем как запускать в продуктиве обязательно проверяй на тестовой базе. :)
Marat Timergaliev
27.04.2010, 08:55
ну что, юноша, получилось сделать восстановление?
надеюсь, ты на тестовой базе экспериментируешь :)
а то потеряешь данные в продуктивной базе, за это по головке не погладят
по поводу этого могу дать пару советов
и даже делал until time 'Apr 16 2010 09:41:00' и не пашет
1.когда делаешь until time лучше явно указать формат даты
2.и базу надо открывать c resetlogs
в общем должно быть примерно так
connect target/;
shutdown immediate;
startup mount;
restore database;
recover database until time "to_date('20100904 09:50:00','yyyymmdd hh:mi:ss')";
alter database open resetlogs;
Ну и опять же, неполное восстановление - это плохой способ.
И перед тем как запускать в продуктиве обязательно проверяй на тестовой базе. :)
спасибо, я сделал бэкап горячий, как оказалось что архивлог надо включать в sqlplus, вообщем бэкап работает хорошо, но сейчас проблема в другом, у меня не получается указать директорию для бэкапа файлов и архивлога, так чтобы один раз дал configure для директорий и следующие разы не нужно было указывать куда кидать архивы
как оказалось что архивлог надо включать в sqlplus,
эту фразу я вообще не понял...
ну да ладно - главное работает :)
у меня не получается указать директорию для бэкапа файлов и архивлога, так чтобы один раз дал configure для директорий и следующие разы не нужно было указывать куда кидать архивы
Почитай про flash recovery area (FRA)
примерно так
1 Создать FRA
1.1 alter system set DB_RECOVERY_FILE_DEST_SIZE = 18G scope=both;
1.2 alter system set DB_RECOVERY_FILE_DEST = 'D:\flasharea' scope=both;
2 Сконфигурировать RMAN
1.3 Задать Retention Policy
SHOW RETENTION POLICY;
CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 7 DAYS;
CONFIGURE RETENTION POLICY TO REDUNDANCY 1;
1.4 Задать Optimization
CONFIGURE BACKUP OPTIMIZATION ON;
1.5 задать CONTROLFILE AUTOBACKUP
CONFIGURE CONTROLFILE AUTOBACKUP ON;
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '%F'; # default
но НЕ советую тупо в лоб прогонять эти команды
сначала почитай доку
у тебя эти команды могут не прокатить, или могут сделать не то, что ты хочешь
Marat Timergaliev
27.04.2010, 11:18
примерно так
1 Создать FRA
1.1 alter system set DB_RECOVERY_FILE_DEST_SIZE = 18G scope=both;
1.2 alter system set DB_RECOVERY_FILE_DEST = 'D:\flasharea' scope=both;
2 Сконфигурировать RMAN
1.3 Задать Retention Policy
SHOW RETENTION POLICY;
CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 7 DAYS;
CONFIGURE RETENTION POLICY TO REDUNDANCY 1;
1.4 Задать Optimization
CONFIGURE BACKUP OPTIMIZATION ON;
1.5 задать CONTROLFILE AUTOBACKUP
CONFIGURE CONTROLFILE AUTOBACKUP ON;
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '%F'; # default
но НЕ советую тупо в лоб прогонять эти команды
сначала почитай доку
у тебя эти команды могут не прокатить, или могут сделать не то, что ты хочешь
Спасибо большое, незнаю кто Вы, но даете хорошие советы и без стёба. Почитаю про то что Вы сказали.
Andrey Tey
17.01.2011, 10:42
Ищу oracle dba
Может тут есть желающие?
Нужно: разбираться в standby, оптимизация производительности БД, оптимизация SQL запросов, rman backups
shumbola
17.01.2011, 20:48
Ищу oracle dba
Может тут есть желающие?
Нужно: разбираться в standby, оптимизация производительности БД, оптимизация SQL запросов, rman backups
За копейки не найдете. :biggrin:
Нужно: разбираться в standby, оптимизация производительности БД, оптимизация SQL запросов, rman backups
оптимизация производительности БД: это зависит не только от дба. если у программисты руки кривые дба ничем не поможет :)
оптимизация SQL запросов: это не имеет прямое отношение к дба.
standby, rman backups: вот это интересно...
Сколько хотите платить?
оптимизация производительности БД: это зависит не только от дба. если у программисты руки кривые дба ничем не поможет оптимизация SQL запросов: это не имеет прямое отношение к дба. standby, rman backups: вот это интересно... Сколько хотите платить?
1. НИЧЕМ - неправильно, поможет, иногда и очень сильно.
2. "- Профессор, вы меня спрашиваете про ухо, а я хочу стать специалистом носа. - Да ? И какой ноздрей вы хотите заниматься, правой или левой ?"
3. Для этого можно иметь "ДБА по вызову".
Ищу oracle dba Может тут есть желающие?
Вы лучше гденибуть на спец. сайтах объявление разместите и не забуьте указать предпологаемую ЗП дабы не тратить зря время не своё ни других.
1. НИЧЕМ - неправильно, поможет, иногда и очень сильно. 2. "- Профессор, вы меня спрашиваете про ухо, а я хочу стать специалистом носа. - Да ? И какой ноздрей вы хотите заниматься, правой или левой ?" 3. Для этого можно иметь "ДБА по вызову".
1. Эта его помощь будет как мартышкин труд без оптимизации кода
2. Оптимизация SQL не является прямой функцией ДБА он может и должен уметь это делать но не обязан. Он должен указать где что не так и что можно предпринять.
3. у ДБА и без оптимизации SQL достаточно много работы ну если это не XE какойнить для сайтика висит.
vBulletin® v3.8.5, Copyright ©2000-2025, Jelsoft Enterprises Ltd. Перевод: zCarot