StandBy

Материал из Cwms3000
Перейти к: навигация, поиск

Содержание

Разворачивание StandBy сервера oracle штатными средствами data guard broker.

Необходимые условия для разворачивания

Подготовка резервного сервера

hint: Для удобства навигации между RDP-подключениями основного и резервного серверов, рекомендуется установить в качестве "обоев" рабочего стола резервного сервера ярко-красный фон.

Установка СУБД oracle и создание резервной БД.

Запускаем инсталлятор, выбираем метод установки - advanced, нажимаем "next"
Standby1.JPG
тип установки - Enterprise, нажимаем "next"
Standby2.JPG
В следующем окне - Name оставляем по умолчанию, Path должен быть идентичен пути установки БД на основном сервере
Standby3.JPG
В пунктах, имеющих статус "error", проставляем галочки.
Standby4.JPG
Статус должен поменять на " user verified", нажимаем "next"
Standby5.JPG
В следующем окне выбираем "Create a Database", нажимаем "next".
Standby6.JPG
В следующем окне выбираем Advanced, жмем "next".
Standby7.JPG
В следующем окне оставляем значения по умолчанию, жмем "next".
Standby8.JPG
В следующем окне проверяем правильность введённых параметров и нажимаем "Install"
Standby9.JPG
После окончания установки автоматически откроется Database Configuration Assistant. В первом окне выбираем General Purpose, нажимаем "next".
Standby10.JPG
В следующем окне вводим Global Database и SID. Они должны быть ИДЕНТИЧНЫ основной базе.
Standby11.JPG
В следующем окне оставляем всё без изменения.
Standby12.JPG
В следующем окне вводим пароль для системных учётных записей oracle. Он должен быть ИДЕНТИЧЕН паролю на основной базе. Нажимаем "next".
Standby13.JPG
В следующем окне оставляем все данные без изменения, нажимаем "next".
Standby14.JPG
В следующем окне снимаем галочку "Specify Flash Recovery Area", ставим галочку "Enable Archiving, нажимаем кнопку Edit Archive Mode Parameters
Standby15.JPG
В открывшемся окне указываем ПОЛНЫЙ путь к папке с архивными логами. Путь должен быть идентичен пути к папке на основном сервере. Если папки для архивных логов на резервном сервере не существует - её необходимо создать. Имя папки и её местонахождение на локальном диске должны быть полностью идентичными имени и местонахождению на основном сервере. Нажимаем "ok" и "next".
Standby16.JPG
В следующем окне снимаем галочку "Sample Schemas", нажимаем "next"
Standby17.JPG
В следующем окне ставим флаги Custom и Manual.
Единицы измерения ВЕЗДЕ проставляем M Bytes. Рекомендуемые значения:
Shared Pool: 128 M Bytes
Buffer Cache: Указываем размер, исходя из оставшейся свободной оперативной памяти, за вычетом памяти, необходимой для корректной работы операционной системы. Для резервного сервера, имеющего 4 Гб оперативной памяти (как на скриншоте), оптимальным размером Buffer Cache будет 2 Гб, для сервера, имеющего, например, 32 Гб оперативной памяти, оптимальным будет 25 Гб.
Java Pool: 128 M Bytes
Large Pool: 512 M Bytes
PGA Size: 256 M Bytes
Standby18.JPG
Далее на вкладке Character Sets устанавливаем флаг "Choose from the list of character sets", Утанавливаем параметры, согласно скриншоту. Нажимаем кнопку "next".
Standby19.JPG
В следующем окне оставляем все значения по умолчанию и нажимаем next.
Standby20.JPG
В следующем окне оставляем все значения по умолчанию и нажимаем Готово.
Standby21.JPG
В процессе создания БД и применения настроек, может появиться ошибка старта БД. Не пугаемся, нажимаем ОК.
Standby22.JPG
По завершению установки, нажимаем next, в следующем окне - exit.
Standby23.JPG
Далее заходим в диспетчер служб, проверяем, чтобы службы oracle были созданы, и их состояние было как на скриншоте. Standby24.JPG
Запускаем командную строку, вводим команду sqlplus. Логин sys as sysdba, пароль - указанный при установке. Если все вышеописанные действия были проведены верно - мы увидим информацию о версии СУБД и строку ввода команд SQL.
Standby25.JPG
Прописываем уникальное имя базы, по которому data guard broker будет её идентифицировать, для резервного сервера это bwms. Для этого вводим команду:
alter system set db_unique_name='bwms' scope=spfile;
Включаем data guard broker. Для этого вводим команду:
alter system st dg_broker_start=true scope=both;
Standby26.JPG
Останавливаем БД. Для этого вводим команду
shutdown immediate
Standby27.JPG
Удаляем все файлы из каталога БД
Standby28.JPG
Останавливаем службу OracleOraDb10g_home1TNSListener
Редактируем файл E:\oracle\product\10.2.0\db_1\NETWORK\ADMIN\tnsnames.ora согласно тексту ниже, указываем реальные ip-адреса

WMS =
 (DESCRIPTION =
   (ADDRESS_LIST =
     (ADDRESS = (PROTOCOL = TCP)(HOST = ip-адрес основного сервера)(PORT = 1521))
   )
   (CONNECT_DATA =
     (SERVER = DEDICATED)
     (SERVICE_NAME = WMS)
   )
 )
BWMS =
 (DESCRIPTION =
   (ADDRESS_LIST =
     (ADDRESS = (PROTOCOL = TCP)(HOST = ip-адрес резервного сервера)(PORT = 1521))
   )
   (CONNECT_DATA =
     (SERVER = DEDICATED)
     (SERVICE_NAME = bwms)
   )
 )
wms_XPT = 
(DESCRIPTION =
   (ADDRESS_LIST =
     (ADDRESS = (PROTOCOL = TCP)(HOST = ip-адрес основного сервера)(PORT = 1521))
   )
   (CONNECT_DATA =
     (SERVER = DEDICATED)
     (SERVICE_NAME = wms)
   )
  )
wms_DGB = 
(DESCRIPTION =
   (ADDRESS_LIST =
     (ADDRESS = (PROTOCOL = TCP)(HOST = ip-адрес основного сервера)(PORT = 1521))
   )
   (CONNECT_DATA =
     (SERVER = DEDICATED)
     (SERVICE_NAME = wms)
   )
 )
wms_DGMGRL = 
(DESCRIPTION =
   (ADDRESS_LIST =
     (ADDRESS = (PROTOCOL = TCP)(HOST = ip-адрес основного сервера)(PORT = 1521))
   )
   (CONNECT_DATA =
     (SERVER = DEDICATED)
     (SERVICE_NAME = wms)
   )
 )
)


Редактируем файл E:\oracle\product\10.2.0\db_1\NETWORK\ADMIN\listener.ora
Значения, которые необходимо изменить выделены красным

SID_LIST_LISTENER =
  (SID_LIST =
   (SID_DESC =
     (GLOBAL_DBNAME = bwms_DGMGRL)
     (ORACLE_HOME = D:\oracle\product\10.2.0\db_1)
     (SID_NAME = bwms)
    )
   (SID_DESC =
    	(GLOBAL_DBNAME = bwms_XPT)
    	(ORACLE_HOME = D:\oracle\product\10.2.0\db_1)
     (SID_NAME = bwms)
    )	
    (SID_DESC =
    	(GLOBAL_DBNAME = bwms_DGB)
    	(ORACLE_HOME = D:\oracle\product\10.2.0\db_1)
     (SID_NAME = bwms)
    )
    (SID_DESC =
    	(GLOBAL_DBNAME = SID БД)
    	(ORACLE_HOME = D:\oracle\product\10.2.0\db_1)
     (SID_NAME = SID БД)
    )
    (SID_DESC =
    	(GLOBAL_DBNAME = bwms)
    	(ORACLE_HOME = D:\oracle\product\10.2.0\db_1)
     (SID_NAME = bwms)
    )
)
LISTENER =
 (DESCRIPTION =
   (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = ip-адрес резервного сервера)(PORT = 1521))
   )
 )


Стартуем службу OracleOraDb10g_home1TNSListener

Подготовка основного сервера

На основном сервере запускаем sqlplus, логин sys as sysdba
Вводим команду
ALTER DATABASE FORCE LOGGING;
Standby29.JPG
Создаём REDO логи, которые в последствии будет использовать резервный сервер. Для этого вводим команду, где указываем путь к папке с ораклом:

ALTER DATABASE ADD STANDBY LOGFILE GROUP 10 ('P:\oracle\product\10.2.0\oradata\VPI\log1c.rdo','P:\oracle\product\10.2.0\oradata\VPI\log2c.rdo','P:\oracle\product\10.2.0\oradata\VPI\log3c.rdo') SIZE 50M;
Прописываем уникальное имя базы, по которому data guard broker будет её идентифицировать, для основного сервера это wms. Для этого вводим команду:
alter system set db_unique_name='wms' scope=spfile;
Включаем data guard broker. Для этого вводим команду:
alter system st dg_broker_start=true scope=both;
Standby30.JPG
Останавливаем службу OracleOraDb10g_home1TNSListener

Редактируем файл E:\oracle\product\10.2.0\db_1\NETWORK\ADMIN\tnsnames.ora согласно тексту ниже, указываем реальные ip-адреса

WMS =
 (DESCRIPTION =
   (ADDRESS_LIST =
     (ADDRESS = (PROTOCOL = TCP)(HOST = ip-адрес основного сервера)(PORT = 1521))
   )
   (CONNECT_DATA =
     (SERVER = DEDICATED)
     (SERVICE_NAME = wms)
   )
   
 )
bwms = 
(DESCRIPTION =
   (ADDRESS_LIST =
     (ADDRESS = (PROTOCOL = TCP)(HOST = ip-адрес резервного сервера)(PORT = 1521))
   )
   (CONNECT_DATA =
     (SERVER = DEDICATED)
     (SERVICE_NAME = bwms)
   )
 )
bwms_XPT = 
(DESCRIPTION =
   (ADDRESS_LIST =
     (ADDRESS = (PROTOCOL = TCP)(HOST = ip-адрес резервного сервера)(PORT = 1521))
   )
   (CONNECT_DATA =
     (SERVER = DEDICATED)
     (SERVICE_NAME = bwms)
   )
 )
bwms_DGB = 
(DESCRIPTION =
   (ADDRESS_LIST =
     (ADDRESS = (PROTOCOL = TCP)(HOST = ip-адрес резервного сервера)(PORT = 1521))
   )
   (CONNECT_DATA =
     (SERVER = DEDICATED)
     (SERVICE_NAME = bwms)
   )
 )
bwms_DGMGRL = 
(DESCRIPTION =
   (ADDRESS_LIST =
     (ADDRESS = (PROTOCOL = TCP)(HOST = ip-адрес резервного сервера)(PORT = 1521))
   )
   (CONNECT_DATA =
     (SERVER = DEDICATED)
     (SERVICE_NAME = bwms)
   )
 )
   
)


Редактируем файл E:\oracle\product\10.2.0\db_1\NETWORK\ADMIN\listener.ora
Значения, которые необходимо изменить выделены красным

SID_LIST_LISTENER =
(SID_LIST =
   (SID_DESC =
     (GLOBAL_DBNAME = wms_DGMGRL)
     (ORACLE_HOME = D:\oracle\product\10.2.0\db_1)
     (SID_NAME = wms)
    )
   (SID_DESC =
    	(GLOBAL_DBNAME = wms_XPT)
    	(ORACLE_HOME = D:\oracle\product\10.2.0\db_1)
     (SID_NAME = wms)
    )	
    (SID_DESC =
    	(GLOBAL_DBNAME = wms_DGB)
    	(ORACLE_HOME = D:\oracle\product\10.2.0\db_1</span>)
     (SID_NAME = wms)
    )
    (SID_DESC =
    	(GLOBAL_DBNAME = SID БД)
    	(ORACLE_HOME = D:\oracle\product\10.2.0\db_1)
     (SID_NAME = SID БД)
    )
    (SID_DESC =
    	(GLOBAL_DBNAME = wms)
    	(ORACLE_HOME = D:\oracle\product\10.2.0\db_1)
     (SID_NAME = wms)
    )
)
LISTENER =
 (DESCRIPTION =
   (ADDRESS_LIST =
     (ADDRESS = (PROTOCOL = TCP)(HOST = ip-адрес основного сервера)(PORT = 1521))
   )	
 )


Стартуем службу OracleOraDb10g_home1TNSListener
Принудительно создаём логи, чтобы в них записались последние транзакции. Для этого вводим команду:
alter system switch logfile; Для надежности - три раза, и СРАЗУ ЖЕ останавливаем базу командой:
shutdown immediate
Standby31.JPG
Стартуем базу в режиме mount. Для этого вводим команду:
startup mount
Создаём контрол-файл для резервного сервера. Для этого вводим команду:
ALTER DATABASE CREATE STANDBY CONTROLFILE AS 'C:\boston.ctl'
Standby32.JPG
Дважды клонируем полученный файл и переименовываем его.
В результате из файла boston.ctl' должно получиться 3 идентичных файла: CONTROL01.CTL, CONTROL02.CTL, CONTROL01.CTL.
Они нам пригодятся чуть позже.
Останавливаем БД. Для этого вводим команду:
shutdown immediate
Останавливаем службу OracleService
Копируем всё содержимое папки E:\oracle\product\10.2.0\oradata\Имя_Инстанса КРОМЕ ФАЙЛОВ С РАСШИРЕНИЕМ .CTL в аналогичную папку резервного сервера.
Standby33.JPG
Далее в ту же папку РЕЗЕРВНОГО сервера копируем контрол-файлы, полученные в результате создания и клонирования файла boston.ctl (см. выше)
Запускаем службу OracleService
Подготовка основной БД закончена, можно продолжать работу в ней в штатном режиме.

Создание и настройка конфигурации data guard broker

Запускаем БД на РЕЗЕРВНОМ сервере. Для этого вводим команду:
startup
По результатам выполнения :

Далее нам необходимо проверить связь между серверами в рамках алиасов. Для этого на ОСНОВНОМ СЕРВЕРЕ открываем командную строку и вводим команду:
tnsping bwms
результатом команды должен быть отчет об успешном прохождении пинга.
Standby34.JPG
точно таким же образом пингуем остальные алиасы из tnsnames.ora:

Аналогичную операцию проводим на РЕЗЕРВНОМ СЕРВЕРЕ, пингуя поочередно все алиасы из tnsnames.ora:

Все пинги должны выдать результат "ОК".
На ОСНОВНОМ СЕРВЕРЕ создаём конфигурацию data guard. Для этого открываем командную строку, вводим команду:
dgmgrl
далее вводим команду:
connect
авторизуемся с учетными данными пользователя sys
Standby35.JPG
Создаём конфигурацию, добавляем в конфигурацию наши базы, устанавливаем свойства, благодаря которым при добавлении файлов в основную базу, они автоматически будут создаваться на резервной.
Для этого выполняем скрипт:
CREATE CONFIGURATION 'SID БД_BACKUP' AS
PRIMARY DATABASE IS 'wms'
CONNECT IDENTIFIER IS wms;
ADD DATABASE 'bwms' AS
CONNECT IDENTIFIER IS bwms
MAINTAINED AS PHYSICAL;
EDIT DATABASE 'bwms' SET PROPERTY 'StandbyFileManagement'='AUTO';
EDIT DATABASE 'wms' SET PROPERTY 'StandbyFileManagement'='AUTO';
Для того, чтобы убедиться в том, что конфигурация успешно создалась, вводим команду:
show configuration
Standby36.JPG
Далее включаем конфигурацию, вводим команду:
enable configuration
После этого начнется процесс копирования логов с основного сервера на резервный и их применение. Процесс может занимать различное время, в зависимости от того, насколько основная база "убежала вперед" от резервной, после её включения (окончание П.2).
Проверяем валидность конфигурации командой:
show configuration
При успешной синхронизации серверов команда должна возвратить "SUCCESS"
Standby37.JPG
Далее смотрим очередь на применение логов к резервной базе(она должна быть пустая), для этого вводим команду:
SHOW DATABASE 'bwms' 'RecvQEntries';
И очередь на передачу логов с основного сервера(должно быть одно значение):
SHOW DATABASE 'wms' 'SendQEntries'
Standby38.JPG

Личные инструменты
Пространства имён
Варианты
Действия
site
Складские процессы
Инструкции CWMS3000
Инструкции Oracle для CWMS3000
Интеграция с CWMS3000
Дополнительно
Инструменты