Oracle 12g - Как восстановить перезаписанный файл табличного пространства? - PullRequest
0 голосов
/ 20 марта 2019

Я случайно изменил табличное пространство, чтобы добавить новый файл в текущее табличное пространство, но я случайно использовал то же имя, что и существующий файл. Другими словами, я перезаписываю существующий.

Мои вопросы:

  1. Как узнать, какая строка моих таблиц, отсутствующих в этом табличном пространстве, была перезаписана?
  2. Как мне восстановить это перезаписанное табличное пространство? Учтите, что это произошло 2 дня назад.

Если это поможет, запрос, который я использовал: ALTER TABLESPACE [ИМЯ ТАБЛИЦЫ] ДОБАВИТЬ ДАННЫЙ ФАЙЛ '[СУЩЕСТВУЮЩИЙ ФАЙЛ DBF]' РАЗМЕР 2000М АВТОЗАПИСЬ НА СЛЕДУЮЩИЙ 10М МАКС. РАЗМЕР 20000М;

1 Ответ

0 голосов
/ 20 марта 2019

База данных не позволит вам добавить файл, который уже является частью базы данных

SQL> create tablespace demo datafile 'X:\ORADATA\DB18\PDB1\DEMO.DBF' size 10m;

Tablespace created.

SQL> alter tablespace demo add datafile 'X:\ORADATA\DB18\PDB1\DEMO.DBF' size 10m;
alter tablespace demo add datafile 'X:\ORADATA\DB18\PDB1\DEMO.DBF' size 10m
*
ERROR at line 1:
ORA-01537: cannot add file 'X:\ORADATA\DB18\PDB1\DEMO.DBF' - file already part of database

Таким образом, должно произойти что-то еще.

Но это, если не считать, еслинекоторые внешние операции скомпилировали этот файл данных, и единственное, что можно сделать, - это восстановить этот файл из резервной копии и выполнить восстановление вперед.То, как вы будете действовать дальше, зависит от того, какие у вас есть резервные копии, какой инструмент вы используете для резервного копирования и т. Д.

Но если вы используете RMAN, то в стандартных документах есть набор сценариев, которые проведут вас через то, что необходимо.

https://docs.oracle.com/en/database/oracle/oracle-database/19/bradv/index.html

...