Форум OlegON > Компьютеры и Программное обеспечение > Операционные системы и программное обеспечение > Oracle

RMAN: ORA-27038: created file already exists (при восстановлении) : Oracle

29.03.2024 18:19


07.03.2017 10:11
OlegON
 
Oracle 11.2.0.4, Solaris SPARC, еженочный скрипт переливки базы
SQL код:
DUPLICATE DATABASE TO ИМЯ_БАЗЫ BACKUP LOCATION '/fra/БЕКАП' nofilenamecheck
периодически стал заваливаться
Цитата:
Errors in memory script
RMAN-03015: error occurred in stored script Memory Script
RMAN-06136: ORACLE error from auxiliary database: ORA-01507: database not mounted
ORA-06512: at "SYS.X$DBMS_RCVMAN", line 13658
ORA-06512: at line 1
RMAN-05556: not all datafiles have backups that can be recovered to SCN 2537276729
RMAN-03015: error occurred in stored script Memory Script
RMAN-06026: some targets not found - aborting restore
RMAN-06023: no backup or copy of datafile 25 found to restore
RMAN-06023: no backup or copy of datafile 24 found to restore
RMAN-06023: no backup or copy of datafile 22 found to restore
RMAN-06023: no backup or copy of datafile 21 found to restore
RMAN-06023: no backup or copy of datafile 19 found to restore
RMAN-06023: no backup or copy of datafile 15 found to restore
RMAN-06023: no backup or copy of datafile 14 found to restore
RMAN-06023: no backup or copy of datafile 6 found to restore
RMAN-06023: no backup or copy of datafile 3 found to restore
Calling krmmpem from krmmexe
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of Duplicate Db command at 03/03/2017 23:12:47
RMAN-05501: aborting duplication of target database

Recovery Manager complete.
самое загадочное, что заваливался скрипт исключительно в ночное время, без проблем отрабатывая днем. Причин этому я так и не нашел, думая сначала, что плохо синхронизировался бекап. Но, потратив значительную часть выходных, вышел на еще одну ошибку этого скрипта, встретившуюся очень сильно выше по логу
Цитата:
channel ORA_AUX_DISK_3: ORA-19870: error while restoring backup piece /db1/fra/DB/backupset/2017_03_02/o1_mf_nnndf_TAG20170302T211344_dcjr6zcn_.bkp
ORA-19504: failed to create file "/db1/oradata/DBSUP/datafile/o1_mf_t_usr_%u_.dbf"
ORA-27038: created file already exists
SVR4 Error: 17: File exists
Additional information: 2
Воспользовался самым тормозным сайтом в мире (Металинком), я не получил ровным счетом никакой информации. Т.е. "задница есть, а слова нету" в чистом виде. Иными словами, недокументированный баг, как я это оцениваю. При некотором усердии со стороны сервера, уникальность создаваемых в 32 потока файлов базы данных начинает хромать и двум файлам выдается одинаковый идентификатор, который
Цитата:
%u is an eight-character string that guarantees uniqueness
почему - не знаю. Но факт налицо. Файлов в базе уже около 200, поэтому руками было переименовывать не вариант, тем более, что они автоматически создаются.

Обратил внимание, что предыдущий администратор для изменения местоположения файлов дублированной базы пользуется моим нелюбимым OMF (db_create_file_dest), уж сколько граблей я собрал на этой дряни - не передать. Поэтому db_create_file_dest я убрал вообще, но добавил db_file_name_convert и log_file_name_convert. Судя по всему - помогло, т.е. еще одни грабли OMF.
07.03.2017 11:21
bob
 
Я каждую ночь делаю полный горячий бэкап и потом просто скриптами автоматом восстанавливаю на другом серваке.
07.03.2017 12:06
OlegON
 
Это ты к чему? :)

Выше описана одна из частностей, которая тебе может помешать это сделать. Именно, что снимался полный горячий бекап и восстанавливался на другом серваке. До поры, до времени. Правда, да, не чистое восстановление, а дублирование, поскольку на этой же машине и standby работает.
10.04.2017 14:47
bayan
 
В случаях с OMF я в скрипт прописывал
SQL код:
set newname for datafile n to 'X'
сгенерить не проблема, работает нормально.
10.04.2017 15:44
OlegON
 
Сгенерить не проблема, но придется автогенератор собирать, чтобы подхватывало новые файлы.
Лучше использовать *_convert, пока не придумаешь новый путь для файлов, будет работать без проблем. Суть опуса-то была в том, что OMF в данном случае облажался сам и ему нужны костыли.
Часовой пояс GMT +3, время: 18:19.

Форум на базе vBulletin®
Copyright © Jelsoft Enterprises Ltd.
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.