GoldenGate
— настройка процесса
SourceDB
(Oracle 10.2) , хост - SourceHost
TargetDB
(Oracle 11.2) , хост — TargetHost
В
целом процесс настройки заключается в
следующем:
- установка GoldenGate (GG)
- создание пользователя в каждой базе и раздача прав
- создание и старт менеджера на каждом GG
- создание extract процессов на SourceHost (в данном сценарии используется классический режим)
- extract для захвата транзакций в локальный трэйл
- extract (data pump) для передачи захваченных транзакций на удаленный GG
- extract для первичной инициализации данных
- создание replicat процессов на TargetHost
- replicat для приема транзакций
- replicat для первичной инициализации данных
- запуск системы
На
каждом хосте:
создаем
каталог GoldenGate (можно любой)
скачиваем
туда ogg112101_fbo_ggs_Linux_x64_ora10g_64bit.zip
распаковываем
запускаем
./ggsci
GGSCI
> CREATE SUBDIRS
На каждой базе создаем пользователя (в данном сценарии я использую одного пользователя для всего, возможны варианты)
CREATE
USER DDLGG IDENTIFIED BY DDLGGPWD;
GRANT
CONNECT, RESOURCE, DBA TO DDLGG;
grant
select any dictionary, select any table to DDLGG;
grant
create table to DDLGG;
grant
flashback any table to DDLGG;
grant
execute on dbms_flashback to DDLGG;
grant
execute on utl_file to DDLGG;
и
сразу даем ему права для DDL синхронизации
GRANT
EXECUTE ON utl_file TO DDLGG;
создаем
выделенный тейблспейс для этой
схемы.
от
сиса запускаем скрипты
@marker_setup.sql
@ddl_setup.sql
@role_setup.sql
GRANT
GGS_GGSUSER_ROLE TO DDLGG
@ddl_enable.sql
Запускаем
скрипт для возможности синхронизации
последовательностей
sqlplus>@sequence.sql
На SourceHost
GGSCI
> EDIT PARAMS ./GLOBALS
GGSCHEMA
DDLGG
Настраиваем
менеджер
ggsci>
EDIT PARAM MGR
PORT 7809
USERID DDLGG, PASSWORD DDLGGPWD
AUTOSTART
EXTRACT
ext*
AUTORESTART
EXTRACT ext*, RETRIES 4, WAITMINUTES 4
STARTUPVALIDATIONDELAY
5
PURGEOLDEXTRACTS
/opt/oracle/GoldenGate/dirdat/tt*, USECHECKPOINTS, MINKEEPHOURS 2
ext*
— Наши
extract процессы,
которые
будет вытаскивать и
передавать транзакционные
изменения (ext1, extpump1)PURGEOLDEXTRACTS — опция очистки трэйл файлов, иначе будут расти
Добавляем extractor для захвата транзакций
добавляем extractor
ADD EXTRACT ext1, TRANLOG, BEGIN NOW
добавляем exttrail — лоакльный файл, куда будут складываться изменния
ADD EXTTRAIL /opt/oracle/GoldenGate/dirdat/lt, EXTRACT ext1
редактируем параметры
EDIT
PARAMS ext1
EXTRACT ext1
USERID
DDLGG, PASSWORD DDLGGPWD
EXTTRAIL
/opt/oracle/GoldenGate/dirdat/lt
TRANLOGOPTIONS
DBLOGREADER
//опция необходимая для чтения редо с
ASM, для версий оракла 10.2 и выше и 11.2. и
выше
TABLE
srcschm.*;
Настраиваем
data pump
добавляем
extractor, с указанием откуда забирать
изменения для перекачкиADD EXTRACT extpump1, , EXTTRAILSOURCE /opt/oracle/GoldenGate/dirdat/lt
добавляем rmttrail — удаленный файл, куда будут перекачиваться изменения
ADD RMTTRAIL /home/oracle/GoldenGate/dirdat/rt, EXTRACT extpump1
редактируем параметры
EDIT
PARAMS extpump1
EXTRACT
extpump1
USERID
DDLGG, PASSWORD DDLGGPWD
RMTHOST
TargetHost, MGRPORT 7809
RMTTRAIL
/home/oracle/GoldenGate/dirdat/rt
TABLE
srcschm.*;
Настраиваем
extractor для первичной загрузки
ADD EXTRACT load1, SOURCEITABLE
EDIT
PARAMS load1
EXTRACT load1
USERID
DDLGG, PASSWORD DDLGGPWD
RMTHOST
TargetHost, MGRPORT 7809
RMTTASK
replicat, GROUP load2
TABLE
srcschm.*;
На TargetHost
GGSCI
> EDIT PARAMS ./GLOBALS
GGSCHEMA
DDLGG
CHECKPOINTTABLE
DDLGG.CHKPTAB
GGSCI
> DBLOGIN USERID DDLGG, PASSWORD
DDLGGPWD
GGSCI > ADD
CHECKPOINTTABLE DDLGG.CHKPTAB
Настраиваем
менеджер
ggsci>
EDIT PARAMS MGR
PORT 7809
USERID DDLGG, PASSWORD DDLGGPWD
AUTOSTART
REPLICAT
rep1
AUTORESTART
REPLICAT
rep1,
RETRIES 4, WAITMINUTES 4
STARTUPVALIDATIONDELAY
5
PURGEOLDEXTRACTS
/home/oracle/GoldenGate/dirdat/rt*,
USECHECKPOINTS, MINKEEPHOURS 2
rep1
— Наш
replicat процесс, который будет реплицировать
транзакционные
изменения
Настраиваем
replicat для
транзакций
ggsci>
add
replicat rep1, EXTTRAIL /home/oracle/GoldenGate/dirdat/rt
ggsci>
EDIT PARAMS rep1
REPLICAT
rep1
USERID
DDLGG, PASSWORD DDLGGPWD
HANDLECOLLISIONS
//нужен в начальном этапе, когда транзакции
реплицируются вместе с инициализацией
ASSUMETARGETDEFS
//указывает
на соответствие исходных и конечных
таблиц
DBOPTIONS
SUPPRESSTRIGGERS
DISCARDFILE
/opt/oracle/GoldenGate/rep1.bad
MAP
srcschm.*,
TARGET targetschm.*;
Настраиваем
replicat
для первичной загрузки
ADD REPLICAT load2, SPECIALRUN
EDIT
PARAMS load2
REPLICAT load2
USERID
DDLGG, PASSWORD DDLGGPWD
DBOPTIONS
SUPPRESSTRIGGERS, DEFERREFCONST //подавляем
триггеры и ограничения
ASSUMETARGETDEFS
DISCARDFILE
/home/oracle/GoldenGate/load2.bad
MAP
srcschm.*,
TARGET targetschm.*;
Запуск
системы
START
MANAGER —
на обоих системах
на
SourceHost
START
EXTRACT ext1
START
EXTRACT extpump1
START
EXTRACT load1 - replicat load2 запустится автоматом
на
TargetHost
START
REPLICAT rep1
следим
за процессами load1, load2
STATUS
EXTARCT load1
STATUS
REPLICAT load2
как
они успешно завершатся
SEND
REPLICAT rep1, NOHANDLECOLLISIONS — отключаем контроль
коллизий
Полезные
команды для слежения
info
all
view
ggsevt
view
report <rep1/ext1/extpump1/load1/load2>
info
extract <extname>
info
replicat <repname>
Комментариев нет:
Отправить комментарий