Я столкнулся с проблемой, при которой у меня есть база данных, которая управляется с помощью Data Guard с использованием Redo Apply, поэтому журналы повторного выполнения копируются в целевую базу данных, применяются и синхронизируются, готовые к отказоустойчивости.
Целевая база данных (DR) некоторое время находилась в автономном режиме, и после проверки выяснилось, что она отключена и не может быть запущена из-за отсутствия управляющего файла.
Исходная база данных была точной копией, поэтому относительные пути к файлам и имена соответствовали первичной базе данных.
У меня есть несколько идей по решению этой проблемы, и я хотел бы узнать, может ли кто-нибудь поделиться своим опытом.
1) Скопируйте отсутствующий файл управления с основного на сервер DR и попробуйте запустить. Я предполагаю, что со временем на основной сервер могли быть добавлены дополнительные файлы, которых может не быть в DR. Я также обеспокоен тем, что могу испортить то, что в настоящее время может быть восстановлено?
2) Экспортируйте текущий первичный файл управления в trace > sql и измените его так, чтобы он соответствовал целевой базе данных, а затем создайте файл управления с помощью sql.
3) Начните снова, создайте новую цель DR. Поскольку я не создал первоначальную настройку DR (защиты данных), я не совсем уверен, насколько это просто, но я знаю, что это, по крайней мере, будет работать.
Любые советы приветствуются TIA
решение1
У вас должно быть более одной копии контрольного файла на каждой стороне. При первичном использовании:
ALTER DATABASE CREATE STANDBY CONTROLFILE as '/path../control01.ctl';
Это создаст копию в файле управления, где установлен специальный флаг. Это позволит базе данных применять redologs, которые являются как более новыми, так и более старыми, чем SCN файла управления.