Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 Помогите со стендбаем плз!  [new]
Tol2000
Member

Откуда:
Сообщений: 256
Досадная ошибка/упущение... Может кто вдруг ответит, пока я не ушел с работы... )
Делаю стендбай сервер, dataguard.

CONNECT target sys/psw@DEVA;
CONNECT auxiliary /;
RUN {
DUPLICATE TARGET DATABASE
FOR STANDBY
DORECOVER
SPFILE
SET "db_unique_name"="STB1_DEVA" COMMENT "Is a duplicate"
SET LOG_ARCHIVE_CONFIG = "DG_CONFIG=(DEVA,STB1_DEVA)"
SET LOG_ARCHIVE_DEST_3 = "SERVICE=DEVA ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=DEVA"
SET FAL_CLIENT="STB1_DEVA" COMMENT "Is standby"
SET FAL_SERVER="DEVA" COMMENT "Is primary"
NOFILENAMECHECK;
}

Скопировал весь каталог бэкапа, как положено, с основного сервера на стендбай в то же самое место.
НО не было в скрипте бэкапа команды для создания стендбай контролфайла.
Поэтому рман вылетает с ошибкой
ORA-01665: control file is not a standby control file

Новый бэкап создавать и потом копировать по сети оч долго.
Поэтому решил досоздать, т.е. из рмана на осн. сервере:
connect target /
run {
allocate channel Channel1 type disk format 'e:\Backup\OnLineBackup\b_%u_%p_%c';
backup current controlfile for standby;
}

Потом докопировал с каталога бэкапа осн. сервера в каталог бэкапа стендбая то, что создалось, т.е. что-то, похожее на B_DTM33MG4_1_1, а также создался автобэкап контролфайла для стендбая, в соответствии с настройками рмана: C-1443107759-20110126-02.
Теперь, как я понимаю, на будущем стендбае есть бэкап контролфайла для стендбая.

Но... Когда я заново запустил DUPLICATE, то рман упорно желает восстанавливать обычный контрол-файл, а не тот, что забэкапился для стендбая. Почему же он не восстанавливает тот контрол-файл, что я забэкапил для стендбая, и как мне заставить его это сделать?

---------------------------

Starting restore at 26.01.2011
allocated channel: ORA_AUX_DISK_1
channel ORA_AUX_DISK_1: SID=488 device type=DISK

channel ORA_AUX_DISK_1: restoring control file
channel ORA_AUX_DISK_1: copied control file copy
input file name=E:\BACKUP\CONTROL01.CTL
output file name=D:\ORACLE\ORADATA\WORK\CONTROL01.CTL
output file name=E:\ORACLE\FLASH_RECOVERY_AREA\WORK\CONTROL02.CTL
output file name=F:\ORACLE\ORADATA\WORK\CONTROL03.CTL
Finished restore at 26.01.2011

contents of Memory Script:
{
sql clone 'alter database mount standby database';
}
executing Memory Script

sql statement: alter database mount standby database
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of Duplicate Db command at 01/26/2011 18:26:17
RMAN-03015: error occurred in stored script Memory Script
RMAN-03009: failure of sql command on clone_default channel at 01/26/2011 18:26:17
RMAN-11003: failure during parse/execution of SQL statement: alter database mount standby database
ORA-01665: control file is not a standby control file

Recovery Manager complete.
26 янв 11, 20:00    [10136864]     Ответить | Цитировать Сообщить модератору
 Re: Помогите со стендбаем плз!  [new]
Tol2000
Member

Откуда:
Сообщений: 256
Tol2000,

Быть может, не берет бэкап контролфайла для стендбая, потому что он делался на полдня позже, чем сам бэкап?..
Но после этого бэкапа других бэкапов не делалось... Контрол-файл, как мне кажется, должен подходить...
Может, попробовать удалить из бэкапа бэкап обычного контрол-файла и оставить только бэкап контрола для стендбая?
Сорри, если глупости пишу :)
26 янв 11, 20:14    [10136902]     Ответить | Цитировать Сообщить модератору
 Re: Помогите со стендбаем плз!  [new]
Tol2000
Member

Откуда:
Сообщений: 256
Удалить бэкап обычного контрол-файла не получается, т.к. в этом файле еще и spfile присутствует.
Что-то можно сделать?

Или пересоздать бэкап? Если пересоздать, то как именно, Примерно так?
---------
connect target /
configure controlfile autobackup format for device type disk to 'e:\Backup\OnLineBackup\%F';
configure controlfile autobackup on;
CONFIGURE RETENTION POLICY TO REDUNDANCY 1;
run {
allocate channel Channel1 type disk format 'e:\Backup\OnLineBackup\b_%u_%p_%c';
backup database plus archivelog delete all input;
backup current controlfile for standby; -- Это я добавил для последующего duplicate for standby
}
crosscheck backup;
delete noprompt expired backup;
delete noprompt obsolete;
list backup;
exit;
26 янв 11, 20:28    [10136946]     Ответить | Цитировать Сообщить модератору
 Re: Помогите со стендбаем плз!  [new]
recovery manager
Guest
Tol2000,

Сделай standby-контрольник руками и разоложи его на стэндбай-сервер, делов то.

(alter database create standby controlfile as '/путь/файл')

Бэкап у тебя уже там лежит, контрольник подсунешь - а больше ничего и не надо собсно.
26 янв 11, 20:54    [10137024]     Ответить | Цитировать Сообщить модератору
 Re: Помогите со стендбаем плз!  [new]
Tol2000
Member

Откуда:
Сообщений: 256
Спасибо, я попробовал так сделать, но все дело в том, что рман все равно восстанавливает контрольники из бэкапа, затирая те, что я подсовываю.
Как заставить рман при выполнении команды duplicate for standby не восстанавливать контрольники?..
27 янв 11, 00:20    [10137523]     Ответить | Цитировать Сообщить модератору
 Re: Помогите со стендбаем плз!  [new]
denix1
Member

Откуда: Киев
Сообщений: 4656
Tol2000
Но... Когда я заново запустил DUPLICATE, то рман упорно желает восстанавливать обычный контрол-файл, а не тот, что забэкапился для стендбая. Почему же он не восстанавливает тот контрол-файл, что я забэкапил для стендбая, и как мне заставить его это сделать?
так ДУПЛИКЕЙТУ вроде и не нужен бекап стендбай контрол-файла,
на то он и ДУПЛИКЕЙТ

если уже есть созданный и перекинутый ручками стендбай контроль-файл + полный бекап
то почему бы уже не отказаться от ДУПЛИКЕЙТ и не выполнить рестор ручками ?
27 янв 11, 00:37    [10137555]     Ответить | Цитировать Сообщить модератору
 Re: Помогите со стендбаем плз!  [new]
Tol2000
Member

Откуда:
Сообщений: 256
Дело в том, что у нас уже отработана данная схема, только ранее использовалось "from active database", а теперь, чтобы не нагружать сервер в процессе дублирования, решили обойтись бэкапом и убрали эту фразу. Может, дело в этом...
Просто, честно говоря, я не сталкивался с восстановлением руками БД для стендбая. Конечно, в самом крайнем случае сделаем руками (надеюсь, подскажете как именно -) ).
НО хотелось бы узнать, почему в нашем случае не работает duplicate for standby.
27 янв 11, 00:52    [10137587]     Ответить | Цитировать Сообщить модератору
 Re: Помогите со стендбаем плз!  [new]
denix1
Member

Откуда: Киев
Сообщений: 4656
Tol2000
Дело в том, что у нас уже отработана данная схема, только ранее использовалось "from active database", а теперь, чтобы не нагружать сервер в процессе дублирования, решили обойтись бэкапом и убрали эту фразу. Может, дело в этом...
Просто, честно говоря, я не сталкивался с восстановлением руками БД для стендбая. Конечно, в самом крайнем случае сделаем руками (надеюсь, подскажете как именно -) ).
НО хотелось бы узнать, почему в нашем случае не работает duplicate for standby.
ответить сходу на последний вопрос не могу

может ручками ?
- СПФАЙЛ у вас уже должен быть восстановлен с предыдущих попыток
- RMAN> RESTORE CONTROL FILE FROM 'путь с переписанному стендбай контоль-файлу';
- RMAN> RESTORE DATABASE;
если логи с момента создания бекапа все еще имеются на праймари, можете запускать менеджед рековери
27 янв 11, 01:10    [10137606]     Ответить | Цитировать Сообщить модератору
 Re: Помогите со стендбаем плз!  [new]
Вячеслав Любомудров
Member

Откуда: Владивосток
Сообщений: 18486
denix1
Tol2000
Но... Когда я заново запустил DUPLICATE, то рман упорно желает восстанавливать обычный контрол-файл, а не тот, что забэкапился для стендбая. Почему же он не восстанавливает тот контрол-файл, что я забэкапил для стендбая, и как мне заставить его это сделать?
так ДУПЛИКЕЙТУ вроде и не нужен бекап стендбай контрол-файла,
на то он и ДУПЛИКЕЙТ
Нужен - нужен

2Аффтар
Фишка в том, что после бэкапа контрольника для стендбая надо переключить и заархивировать логи
connect target /
run {
        allocate channel c1 device type sbt;

        backup current controlfile for standby format '%d-cf-%T-%s-%p';
        sql 'alter system archive log current';
        backup archivelog all not backed up 1 times format '%d-a-%T-%s-%p';

        release channel c1;
}
27 янв 11, 01:32    [10137626]     Ответить | Цитировать Сообщить модератору
 Re: Помогите со стендбаем плз!  [new]
Tol2000
Member

Откуда:
Сообщений: 256
denix1,

Спасибо. Если не разберусь с дупликейтом, то останется ручками ;)

У меня тут есть составленная мной же инструкция по созданию стендбая, привожу ниже... Так про рековери менеджер после рестор датабейз, это Вы имеете в виду последний пункт этой инструкции?
ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE DISCONNECT FROM SESSION;

---
- Выполняем скрипт для генерирования команд создания стендбай реду логов.
create_stb_logfiles.pdc
Запускаем выведенные им команды.
- Убехжаемся, что не сбросился после duplicate параметр LOG_ARCHIVE_CONFIG
SQL>ALTER SYSTEM SET LOG_ARCHIVE_CONFIG = 'DG_CONFIG=(FORA,STB1_FORA)' scope=both;
- Устанавливаем параметр для автоматического создания датафайлов и ТП на стендбае, когда создаются на главной.
SQL>alter system set standby_file_management=AUTO scope=both;
- Подготавливаем стендбай, чтобы мог стать главным.
SQL>ALTER DATABASE FORCE LOGGING;
SQL>show parameter LOG_ARCHIVE_DEST_3
Как на главной, только сервис и уник. имя не стендбая, а главной.
- Для того, чтобы к стендбай БД можно было обращаться с запросами в режиме только чтения, открываем БД
перед включением режима накатки архивлогов с главной. Или убеждаемся, что она уже открыта.
- SQL>shutdown immediate;
SQL>startup mount;
SQL>alter database open read only;
- Включаем отдельный процесс для перевода в режим стендбай.
SQL>ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE DISCONNECT FROM SESSION;
27 янв 11, 01:43    [10137634]     Ответить | Цитировать Сообщить модератору
 Re: Помогите со стендбаем плз!  [new]
Tol2000
Member

Откуда:
Сообщений: 256
Вячеслав Любомудров,

Спасибо, Слава!
Буду пробовать.
А забэкапленные архивлоги (бэкаппис), конечно же, тоже скопировать на стендбай в каталог для бэкапа?
И тогда рман должен восстановить уже правильный контролфайл?
Но почему же нужен такой хитрый ход? Я вроде составлял свою инструкцию по примеру в документации Оракла. Там ничего про это не было сказано в описании команды рмана duplicate for standby...
У меня по-прежнему остается вопрос: что же я сделал не так, что у меня не заработал с первого раза duplicate for standby? Вроде делал все по инструкции в доке... Там, если не ошибаюсь, написано, что для duplicate for standby годится обычный бэкап... Или не совсем обычный?..
27 янв 11, 01:53    [10137642]     Ответить | Цитировать Сообщить модератору
 Re: Помогите со стендбаем плз!  [new]
Вячеслав Любомудров
Member

Откуда: Владивосток
Сообщений: 18486
Тащить, конечно, все бэкапы
Просто бэкап [стендбай]контрольника без архивлогов оракл не считает восстановимым и не использует его как кандидата к восстановлению

PS. Здесь это уже обсуждалось -- можно поискать по ошибке, например
27 янв 11, 02:00    [10137646]     Ответить | Цитировать Сообщить модератору
 Re: Помогите со стендбаем плз!  [new]
Tol2000
Member

Откуда:
Сообщений: 256
Вячеслав Любомудров,

Спасибо огромное! Буду знать)
Все получилось с дублированием.

All,

Теперь прошу еще трошки помощи зала )
Запутался с пассворд файлами... Или проблема в другом...
На праймари и на стендбае есть пассворд файл. На праймари remote_login_passwordfile='exclusive'.
Имеем
ORA-01031: insufficient privileges
PING[ARC2]: Heartbeat failed to connect to standby 'STB1_DEVA'. Error is 1031.

Фишка в том, что на праймари использовалась утилита dbnewid, была замена имени БД и dbid.
Звали БД work, а теперь зовут deva. Получилось, что инстанс в сервисах виндовых остался зваться OracleServiceWORK и пассворд файл тоже остался PWDWORK.ora. А на стендбае, как и положено, он зовется Pwddeva.ora.
Пароль сиса и там и там 100% одинаков. Пробовал на стендбай копировать с праймари PWDWORK.ora, но без перезапуска БД. Не помогло.

Видел ноут на металинке про db_allowed_logon_version и аналогичное в sqlnet.ora. Первое не нашел в параметрах инстанса, второе пытался ставить в sqlnet.ora на стендбае, опять же без перезапуска БД. Не помогло. На металинке, кстати, про отношение этого всего к 11 Ораклу ничего не написано...

Как поступить?
27 янв 11, 18:07    [10142937]     Ответить | Цитировать Сообщить модератору
 Re: Помогите со стендбаем плз!  [new]
Tol2000
Member

Откуда:
Сообщений: 256
Огромное Спасибо всем за поддержку! Славе Любомудрову, оправдывающему оба корня своей фамилии ;), в особенности!

Разобрался. Остановил стендбай, выполнил
copy \\Primary\%oracle_home%\database\PWDWORK.ora \\Primary\%oracle_home%\database\Pwddeva.ora.
Еще на всякий случай выполнил
copy \\Primary\%oracle_home%\database\PWDWORK.ora \\Primary\%oracle_home%\database\PWDWORK.ora
Запустил стендбай, включил накатку, все работает! Ура! :)
27 янв 11, 19:08    [10143272]     Ответить | Цитировать Сообщить модератору
 Re: Помогите со стендбаем плз!  [new]
Tol2000
Member

Откуда:
Сообщений: 256
Прошу прощения, конечно же не с праймари на праймари, а на стендбай :)

copy \\Primary\%oracle_home%\database\PWDWORK.ora \\STANDBY\%oracle_home%\database\Pwddeva.ora.
copy \\Primary\%oracle_home%\database\PWDWORK.ora \\STANDBY\%oracle_home%\database\PWDWORK.ora

На этом форуме не нашел редактирования своих тем...
27 янв 11, 19:11    [10143291]     Ответить | Цитировать Сообщить модератору
 Re: Помогите со стендбаем плз!  [new]
SerSan300
Member

Откуда:
Сообщений: 67
Всех привествую.
Создавать новую тему не стал, абы не плодить... пишу тут.

Oracle 11.1.0.7.
Поднял PRIMARY и STANDBY. Всё штатно.
Делаю Switchover тоже всё работает: обмен файлов идёт, в базу они покатываются.

Пытаюсь коннектиться Toadom к STANDBY (он сейчас является Primary) и наблюдаются два глюка:
1. Не даёт изменять ничего - Toad просто валится с ошибкой (не оракловой),
2. Постоянно при выходе возникает Toad -окно с просьбой сделать Commit or Rollback.

Если перевожу Primary (сейчас он является Standby) в режим read only. Там всё штатно при изменении - Toad пишет - база в режиме read only.

Если менять в STANDBY (он сейчас является Primary) через SQLplus всё замечательно меняется. (создаются таблицы и т.д.)

Комрады, подскажите, куда копать.

Спасибо.
26 мар 11, 07:55    [10426705]     Ответить | Цитировать Сообщить модератору
 Re: Помогите со стендбаем плз!  [new]
SerSan300
Member

Откуда:
Сообщений: 67
Товарищи, скажите что-нибудь :)
Желательно, хорошего.

Спасибо.
28 мар 11, 09:59    [10431706]     Ответить | Цитировать Сообщить модератору
 Re: Помогите со стендбаем плз!  [new]
Вячеслав Любомудров
Member

Откуда: Владивосток
Сообщений: 18486
А что тут сказать?
Явно проблема в дескрипшене к БД
Проверь все tnsmanes.ora
28 мар 11, 11:14    [10432158]     Ответить | Цитировать Сообщить модератору
 Re: Помогите со стендбаем плз!  [new]
SerSan300
Member

Откуда:
Сообщений: 67
Вячеслав,


А причём tnsnames.ora?
TOAD коннектится же к базе. В режиме чтения всё открывается.

Вот пример файла: ABVTESTP - Primary, ABVTESTS - Standby

ABVTESTS =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = FLY)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = ABVTESTS)
)
)

ABVTESTP =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = Dafnia)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = ABVTESTP)
)
)

TESTDB =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = FLY)(PORT = 15211))
)
(CONNECT_DATA =
(SERVICE_NAME = TESTDB)
)
)

Что тут можно проверить?
30 мар 11, 13:09    [10444931]     Ответить | Цитировать Сообщить модератору
 Re: Помогите со стендбаем плз!  [new]
Aliona
Member

Откуда: Питер
Сообщений: 4023
SerSan300,
а вы изобразите нам как у вас всё штатно работает без TOAD, а то ваша постановка не совсем понятна тем, кто на танке.
30 мар 11, 17:27    [10447516]     Ответить | Цитировать Сообщить модератору
 Re: Помогите со стендбаем плз!  [new]
SerSan300
Member

Откуда:
Сообщений: 67
Нуу, я даже не знаю, как это изобразить :): ну, я подключаюсь к базе SQLPLUSом, могу в ней удалить таблицу, создать таблицу... В общем, режим изменения через SqlPlus работает, а через Toad нет.
31 мар 11, 09:41    [10449393]     Ответить | Цитировать Сообщить модератору
 Re: Помогите со стендбаем плз!  [new]
разве?
Guest
Вячеслав Любомудров
Фишка в том, что после бэкапа контрольника для стендбая надо переключить и заархивировать логи
connect target /
run {
        allocate channel c1 device type sbt;

        backup current controlfile for standby format '%d-cf-%T-%s-%p';
        sql 'alter system archive log current';
        backup archivelog all not backed up 1 times format '%d-a-%T-%s-%p';

        release channel c1;
}

Именно после, а не до ?
31 мар 11, 11:01    [10449923]     Ответить | Цитировать Сообщить модератору
 Re: Помогите со стендбаем плз!  [new]
Вячеслав Любомудров
Member

Откуда: Владивосток
Сообщений: 18486
А зачем до?
Какой в этом глубинный смысл?
31 мар 11, 11:04    [10449950]     Ответить | Цитировать Сообщить модератору
 Re: Помогите со стендбаем плз!  [new]
разве?
Guest
Вячеслав Любомудров
А зачем до?
Какой в этом глубинный смысл?

неясно, зачем делать переключение после backup-а control-ника - в нем же уже такое переключение не отразится
31 мар 11, 11:07    [10449971]     Ответить | Цитировать Сообщить модератору
 Re: Помогите со стендбаем плз!  [new]
Вячеслав Любомудров
Member

Откуда: Владивосток
Сообщений: 18486
А вот это, похоже, просто данность
Ну и как бы во всех руководствах по созданию стендбая -- сделай контрольник, а затем переключи журнал и отправь его в накат
31 мар 11, 11:13    [10450010]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Oracle Ответить