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

Настройка DataGuard с помощью dgmgrl

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

1. Настройка Listner на обоих серверах. Нужна статическая регистрация.
listener.ora
LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = host1)(PORT = 1521))
    )
  )

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (GLOBAL_DBNAME = prd_DGMGRL) -- в 12c я обошелся без "_DGMGRL"
      (ORACLE_HOME = /u01/app/oracle/product/12.1.0/dbhome_1)
      (SID_NAME = prd)
    )
  )

tnsnames.ora
prd=
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = host1)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SID = prd)
    )
  )

std=
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = host2)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SID = prd)
    )
  )

2. init файл для второй базы
-- обязательно
*.db_unique_name=std
*.db_file_name_convert='prd','std'
*.log_file_name_convert='prd','std'
-- Также может потребоваться
*.control_files='...'
*.diagnostic_dest='...'

Copy pfile and the password file to the Standby host and go there into NOMOUNT before the duplicate command

sqlplus sys/oracle@physt as sysdba
startup nomount

Создать Standby Redo Logs.
It is most efficient to create the Standby Redo Logs (SRLs) at this point on the Primary, because (from 11g on) RMAN will duplicate them onto the Standby then. SRLs are recommended on either side and are required on the Standby for LGWR Transport

SQL> alter database add standby logfile '/home/oracle/prima/srl_g3.rdo' size 100m;
SQL> alter database add standby logfile '/home/oracle/prima/srl_g4.rdo' size 100m;
SQL> alter database add standby logfile '/home/oracle/prima/srl_g5.rdo' size 100m;

Дуплицировать базы на standby сервер.
rman target sys/oracle@prima auxiliary sys/oracle@physt
duplicate target database for standby from active database; --add more options if needed (so far - nofilenamecheck)

So far no DGMGRL involved. RMAN gave me a Physical Standby but did not configure Redo Transport from Primary to Standby nor did it start Redo Apply on the Standby. DGMGRL will now do that:

Создать конфигурацию standby с помощью data guard broker.
alter system set dg_broker_start=true;

dgmgrl sys/oracle@prima
CREATE CONFIGURATION config AS PRIMARY DATABASE IS prd CONNECT IDENTIFIER IS prd;
ADD DATABASE std AS CONNECT IDENTIFIER IS std MAINTAINED AS PHYSICAL;
enable configuration;

You should monitor the alert.log of the two databases while that enabling is in progress – the Broker does a lot here, especially it configures Redo Transport and Redo Apply.

2. Role Changes are much easier with the Broker

Without the Broker, Data Guard Role Changes require a complex sequence of steps (versions before 12c) on both sides that differ between Logical and Physical Standby. Not so with DGMGRL:

switchover to physt;
failover to physt;
convert database physt to snapshot standby;

3. The Data Guard Broker delivers basic monitoring of the Configuration
show configuration;
show database physt; 


4. Fast-Start Failover requires the Data Guard Broker

Комментарии

Отправить комментарий

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

Установка и настройка 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_94.service systemctl status pga

Включение логирования для 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.

Использование oraenv для установки окружения.

Для настройки окружения в Linux можно все параметры базы указать в .bash_profile: ORACLE_HOME=/app/oracle/product/11.2.0.4/dbhome_1 export ORACLE_HOME ORACLE_BASE=/app/oracle export ORACLE_BASE ORACLE_SID=orcl export ORACLE_SID PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin export PATH Но лучше использовать для этих целей утилиту oraenv. oraenv берет данные из файла /etc/oratab orcl:/app/oracle/product/12.1.0/dbhome_1:N И на ее основе задает параметры окружения: ORACLE_SID, ORACLE_BASE,ORACLE_HOME и PATH Использовать можно в интерактивном режиме: . oraenv ORACLE_SID = [orcl] ? orcl The Oracle base has been set to /app/oracle И в неинтерактивном режиме. Добавить в  .bash_profile: ORACLE_SID=orcl ORAENV_ASK=NO . oraenv Для ASM ситуация аналогичная. . oraenv ORACLE_SID = [orcl] ? +ASM1 The Oracle base has been set to /u01/app/oracle echo $ORACLE_HOME /app/11.2.0/grid