К основному контенту

Полное восстановление БД Oracle на новую машину.

Предварительное замечание: если (вдруг) используется windows предварительно нужно создать новый экземпляр с помощью oradim.

Итак:
export ORACLE_SID=mysid

Создаём pfile с необходимыми параметрами
cat > initmysid.ora <<EOF
db_name=yourdbname
db_unique_name=instance

EOF

В большинстве случаев этого достаточно

startup nomount

Восстанавливаем controlfile из имеющейся резервной копии.

RMAN> restore controlfile from '/home/oracle/stage/o1_mf_s_819826669_8x7w7g70_.bkp';

shutdown immediate
startup mount;

Сообщаем базе, где лежат резервные копии:

RMAN> catalog start with '/home/oracle/stage';

Перед тем как восстанавливать БД неплохо было бы узнать последний хороший scn, дабы уберечься от ошибки на последней стадии (alter database open resetlogs).
Самый простой способ сделать это такой - после восстановления контрольного файла подключаемся as sysdba к mount базе и выполняем следующий запрос:

SQL> column scn format 999999999999999
select max(next_change#) scn
from v$archived_log
where archived = 'YES'
group by thread#;

Хорошая статья на эту тему.

Теперь можно использовать полученный scn в команде восстановления:

RMAN> run {
             set until scn=23138974759;
             restore database;
             recover database;
                }


За ходом процесса восстановления можно наблюдать с помощью запроса к v$session_longops:

select 
   SID, START_TIME "STARTED",
   TOTALWORK "TOTAL BLOCKS", 
   sofar "BLOCKS DONE", 
   round((sofar/totalwork),4) * 100 "%", 
   sysdate + TIME_REMAINING/3600/24 ETA 
from v$session_longops 
where totalwork > sofar 
AND opname NOT LIKE '%aggregate%' 
AND opname like 'RMAN%'

По окончанию процесса выполняем:

alter database open resetlogs;

Если восстанавливаемой базе был включен flashback on, а соответствующие журналы не были скопированы, перед открытием базы следует это самый flashback выключить.

Комментарии

Популярные сообщения из этого блога

Установка и настройка pgAgent(планировщика заданий PostgreSQL)

Установка pgAgent Последняя версия скрипта для установки агента  тут . Перенести инструкцию по агенту в отдельную тему. 1. Создать пользователя ОС, и сделать ему домашний каталог: useradd -s /bin/false -r -M pgagent mkdir /home/pgagent 2. Установить и настроить демон: yum install pgagent_94 При наличии ошибок вида (была на Oracle Linux 6.8) Error: Package: pgagent_94-3.4.0-1.rhel6.x86_64 (pgdg94)            Requires: libwx_baseu-2.8.so.0(WXU_2.8)(64bit) Нужно установить EPEL systemctl enable pgagent_94 chown pgagent:pgagent /var/log/pgagent_94.log 3. Установить схему агента в базе: sudo -u postgres psql -f /usr/share/pgagent_94-3.4.0/pgagent.sql postgres 4. Создать файл паролей для подключения агента к базе. vi /home/pgagent/.pgpass localhost:5432:*:postgres:postgres chown pgagent.pgagent /home/pgagent -R chmod 600 /home/pagent/.pgpass 5. Запустить и проверить работу агента systemctl start pgagent...

Включение логирования для Haproxy

Изначально логирование в syslog в HaProxy отключено. Ниже пример настройки логирования для ОС Centos 7. Настройка: Добавить строку  log 127.0.0.1 local2 в секцию global файла /etc/haproxy/haproxy.cfg Раскомментировать $ModLoad imudp и $UDPServerRun 514 в файле  /etc/rsyslog.conf Создать файл  /etc/rsyslog.d/haproxy.conf со следующим содержимым:  local2.* /var/log/haproxy.log Перезапустить rsyslog и haproxy.

Установка PL/Java для PostgreSQL 9.4

Предварительные требования:  1. Компилятор C. Как правило имеется в виду gcc и g++ gcc  --version на CENTOS 7 мне понадобился gcc_c++ (в дополнение к установленному ранее gcc) 2. JAVA. Убедиться, что  javac  -version работает  3. PostgreSQL установлен и  работает pg_config Файлы для разработки (.h файлы) для нашего PostgreSQL также должны быть установлены. Убедиться можно посмотрев что лежит в INCLUDEDIR-SERVER (вывод pg_config). Я раньше компилировал БД из исходников на этой машине, так что у меня эти файлы были. 4. компилятор Maven mvn --version Установка git clone https://github.com/tada/pljava.git или git clone ssh://git@github.com/tada/pljava.git Заходим в директорию pljava и выполняем mvn clean install В результате должны получить: [INFO] PostgreSQL PL/Java ................................ SUCCESS [INFO] PL/Java API ....................................... SUCCESS [INFO] PL/Java backend Java code...