У меня есть сервер Oracle 18c XE с повреждением файла system01.dbf основной базы данных XE.
Все пользовательские данные находятся в базе данных PDB, которая, к счастью, выглядит нормально (сейчас PDB работает в производстве).
Проблема в том, что я не могу сделать резервную копию PDB с помощью expdp
, так как expdp
терпит неудачу с этой ошибкой:
UDE-00604: операция вызвала ошибку ORACLE 604
ORA-00604: ошибка riscontrato в SQL ricorsivo livello 2
ORA-01578: блок данных ORACLE danneggiato (файл № 1, блок № 636)
ORA-01110: файл данных 1: '/opt/oracle/oradata/XE/system01.dbf'
Точно так же я не могу подключиться к RMAN из-за той же ошибки:
RMAN-00571: ============================================ ==============
RMAN-00569: =============== СТЕК СООБЩЕНИЙ ОБ ОШИБКАХ СЛЕДУЕТ ===============
RMAN-00571: ============================================ ==============
RMAN-00554: не удалось инициализировать пакет внутреннего менеджера восстановления
RMAN-04005: ошибка целевой базы данных:
ORA-00604: ошибка riscontrato в SQL ricorsivo livello 2
ORA-01578: блок данных ORACLE danneggiato (файл № 1, блок № 636)
ORA-01110: файл данных 1: '/opt/oracle/oradata/XE/system01.dbf'
RMAN-04015: ошибка установки набора символов целевой базы данных в US7ASCII
Для простоты я просто хотел бы сделать резервную копию PDB, затем удалить и переустановить всю базу данных 18c XE с нуля, а затем восстановить PDB (не нужно ничего восстанавливать, так как повреждение находится в основной базе данных XE, а PDB в порядке ).
Есть ли способ сделать это?
У меня нет предыдущих резервных копий RMAN, так как я всегда делал все резервные копии с помощью expdp
, но бэкапы уже старые, т.к. expdp
перестал работать несколько дней назад, когда, вероятно, произошло повреждение.
ОБНОВИТЬ
В конце концов единственным жизнеспособным решением было:
- Установите Oracle 18c XE на другой компьютер.
- Восстановите схему БД без строк на новой машине со старой
expdp
свалка
- Создайте ссылку базы данных с новой машины на исходный сервер с работающей PDB.
- вручную
ВСТАВИТЬ В... ВЫБРАТЬ
все таблицы с исходного связанного сервера на новую машину
- сделать
expdp
дамп с новой машины
- переустановите Oracle на исходном сервере и импортируйте вновь созданный дамп