12c多租戶架構下部署GoldenGate 12c
OS:Oracle Linux 6.6 x64和Windows Server 2008 R2 x64
DB:Oracle 12.1.2.0
GoldenGate:12.2.0.1.1
注意:先參考
https://blog.csdn.net/rgb_rgb/article/details/77346017
不然會掉坑!!
環境簡單描述:
源端和目的端都是CDB/PDB架構,源端主庫prod,目的端主庫east;兩端都含有名為pdb1的PDB。源端pdb1中含有名為sh的schema。
一、安裝
1.1 Linux安裝
環境變數:
點選( 此處 )摺疊或開啟
- export GGS_HOME = / u01/ggs_1
LD_LIBRARY_PATH和PATH都要加上$GGS_HOME。如果使用的是oracle使用者以外的使用者,需加上ORACLE_HOME和ORACLE_SID變數。
1.2 Windows安裝
在系統變數中加上ORACLE_HOME和ORACLE_SID變數。
1.3 安裝完成後
在命令列中進入$GGS_HOME目錄,執行ggsci,建立相關subdirs
點選( 此處 )摺疊或開啟
- > create subdirs
二、資料庫準備
源端和目的端:
先在mount下執行:
點選( 此處 )摺疊或開啟
-
ALTER
DATABASE
ADD
SUPPLEMENTAL
LOG
DATA
;
-
ALTER
DATABASE
FORCE
LOGGING
;
-
alter
database
flashback
on
;
-
SELECT
supplemental_log_data_min
,
force_logging
,
flashback_on
FROM
v$
database
;
-
SUPPLEME FORCE_LOGGING FLASHBACK_ON
-
-------- --------------------------------------- ------------------
- YES YES YES
開啟資料庫:
點選( 此處 )摺疊或開啟
-
alter
database
open
;
- ALTER SYSTEM SWITCH LOGFILE ;
修改引數:
點選( 此處 )摺疊或開啟
-
alter
system
set
ENABLE_GOLDENGATE_REPLICATION
=
TRUE
scope
=
both
;
-
-
/
/
UNDO引數修改到合適大小
-
show
parameter undo
-
-
NAME
TYPE
VALUE
-
------------------------------------ ----------- ------------------------------
-
temp_undo_enabled boolean
FALSE
-
undo_management string AUTO
-
undo_retention
integer
86400
- undo_tablespace string UNDOTBS1
使用者與許可權:
在源端只需要有一個Extract程式來捕獲所有的PDB資料;而在目的端需要為每個PDB準備一個Replicat程式。因此在源端只需要在CDB建一個針對所有容器的DBA賬戶,目的端則在每個PDB建一個DBA賬戶。
點選( 此處 )摺疊或開啟
-
/
/
源端
-
create
user
c##ggadm
identified
by
ggadm
;
-
grant
dba
to
c##ggadm container
=
all
;
-
-
/
/
目的端,分別connect到每個PDB
-
create
user
ggadm
identified
by
ggadm
;
-
grant
dba
to
ggadm
;
-
-
/
/
以下兩條摘自文件,但不完全包含所需的許可權,比如CREATE SESSION就沒有
-
exec dbms_goldengate_auth
.
grant_admin_privilege
(
'c##ggadm'
)
;
- exec dbms_goldengate_auth . grant_admin_privilege ( 'c##ggadm' , container = > 'all' ) ;
三、使用者認證
為了不在引數檔案中顯示密碼,可以配置Credential Store。首先為其建立目錄(比如/u01/ggs_1/credentialstore),然後進入ggsci:
點選( 此處 )摺疊或開啟
-
edit
params
.
/
GLOBALS
-
/
/
編輯以下文字
- CREDENTIALSTORELOCATION / u01 / ggs_1 / credentialstore
退出ggsci,再重新進入,使以上引數生效,繼續。
點選( 此處 )摺疊或開啟
-
ADD
CREDENTIALSTORE
-
-
/
/
源端為CDB和每個PDB都建立一個ALIAS
-
ALTER
CREDENTIALSTORE
ADD
USER
c##ggadm
PASSWORD
ggadm ALIAS ggadm DOMAIN ext
-
ALTER
CREDENTIALSTORE
ADD
USER
c##ggadm
@
pdb1
PASSWORD
ggadm ALIAS ggadm1 DOMAIN ext
-
-
/
/
目的端為每個PDB建立一個ALIAS
- ALTER CREDENTIALSTORE ADD USER ggadm @ pdb1 PASSWORD ggadm ALIAS ggadm1 DOMAIN rpl
- //檢視配置
- info credentialstore
- //刪除使用者
-
ALTER CREDENTIALSTORE DELETE USER ...
四、引數檔案配置
4.1 源端Manager
點選( 此處 )摺疊或開啟
-
view params mgr
-
-
PORT 7809
-
DYNAMICPORTLIST 7810
-
7820
,
7830
-
AUTOSTART ER
*
-
AUTORESTART ER
*
,
RETRIES 4
,
WAITMINUTES 4
-
STARTUPVALIDATIONDELAY 5
-
USERIDALIAS ggadm DOMAIN ext
- PURGEOLDEXTRACTS /u01/ggs_1/dirdat/ lt * , USECHECKPOINTS , MINKEEPHOURS 2
啟動Manager,start mgr
4.2 源端Extract程式
點選( 此處 )摺疊或開啟
-
view params ext
-
-
EXTRACT ext
-
USERIDALIAS ggadm DOMAIN ext
-
LOGALLSUPCOLS
-
UPDATERECORDFORMAT COMPACT
-
EXTTRAIL /u01/ggs_1/dirdat/
lt
-
SOURCECATALOG pdb1
- TABLE sh . *;
4.3 源端Pump程式
點選( 此處 )摺疊或開啟
-
view params ext_pump
-
-
EXTRACT ext_pump
-
USERIDALIAS ggadm DOMAIN ext
-
RMTHOST
WINEAST
,
MGRPORT 7809
-
RMTTRAIL
E
:
\
ggs_1\dirdat\rt
-
SOURCECATALOG pdb1
- TABLE sh . *;
以上示例中,WINEAST是目的端主機名,在本地的/etc/hosts檔案中需事先寫入;
E
:
\
ggs_1\dirdat\rt
是目的端的路徑。
4.4 目的端Manager程式
點選( 此處 )摺疊或開啟
-
view params mgr
-
-
PORT 7809
-
DYNAMICPORTLIST 7810
-
7820
,
7830
-
STARTUPVALIDATIONDELAY 5
- USERIDALIAS ggadm1 DOMAIN rpl
目的端的Manager程式,可以用其中一個PDB的user來作為USERIDALIAS,只要許可權足夠即可。
然後即可啟動Manager程式。
4.5 目的端Replicat程式
點選( 此處 )摺疊或開啟
-
view params repl1
-
REPLICAT repl1
-
DBOPTIONS INTEGRATEDPARAMS
(
parallelism 6
)
-
USERIDALIAS ggadm1 DOMAIN rpl
-
ASSUMETARGETDEFS
-
SOURCECATALOG pdb1
- MAP sh . * , TARGET sh2 . *;
此時可以啟動兩端的manager程式,但目的端的replicat程式先不要啟動。
五、建立程式組
5.1 源端操作
5.1.1 源端分別通過先前配置的ALIAS登入到
每個PDB
,新增每個schema的補充日誌:
點選( 此處 )摺疊或開啟
-
DBLOGIN USERIDALIAS
ggadm1
DOMAIN ext
-
add
schematrandata
SH
allcols
-
-
2016
-
07
-
05 17
:
50
:
48 INFO OGG
-
01788 SCHEMATRANDATA has been added on schema SH
.
-
-
2016
-
07
-
05 17
:
50
:
49 INFO OGG
-
01976 SCHEMATRANDATA
for
scheduling columns has been added on schema SH
.
-
- 2016 - 07 - 05 17 : 50 : 49 INFO OGG - 01977 SCHEMATRANDATA for all columns has been added on schema SH .
5.1.2 註冊Extract到每個PDB
登入到CDB
點選( 此處 )摺疊或開啟
-
DBLOGIN USERIDALIAS ggadm DOMAIN ext
-
Successfully logged
into
database CDB$ROOT
.
-
-
REGISTER EXTRACT ext DATABASE CONTAINER
(
pdb1,pdb2
)
- 2016 - 06 - 21 18 : 48 : 39 INFO OGG - 02003 Extract SHGRP successfully registered with database at SCN 1905154 .
PDB需是已經存在,註冊後Extract程式只會捕獲列表中的PDB資料。如果以後又新增或刪除了PDB,可以用命令REGISTER EXTRACT {ADD | DROP} CONTAINER。。。
5.1.3 新增Extract程式和本地Trail
登入到CDB
點選( 此處 )摺疊或開啟
-
DBLOGIN USERIDALIAS ggadm DOMAIN ext
-
-
>
ADD
EXTRACT ext
,
INTEGRATED TRANLOG
,
BEGIN NOW
-
EXTRACT
(
Integrated
)
added
.
-
-
>
ADD
EXTTRAIL
/u01/ggs_1
/
dirdat/
lt
,
EXTRACT ext
- EXTTRAIL added .
5.1.4 新增Pump程式和遠端Trail
點選( 此處 )摺疊或開啟
-
>
ADD
EXTRACT ext_pump
,
EXTTRAILSOURCE /u01/ggs_1
/
dirdat/
lt
-
EXTRACT added
.
-
-
#
add
remote trail(source)
-
>
ADD
RMTTRAIL E
:
\
ggs_1\dirdat\rt
,
EXTRACT ext_pump
- RMTTRAIL added .
5.2 目的端
5.2.1 新增Replicat程式
點選( 此處 )摺疊或開啟
-
DBLOGIN USERIDALIAS ggadm1 DOMAIN rpl
-
-
>
ADD
REPLICAT repl1
,
INTEGRATED
,
EXTTRAIL E
:
\
ggs_1\dirdat\rt
- REPLICAT ( Integrated ) added .
6. 同步初始化
有條件的話可以在停止源端的情況下實現同步,這個最簡單。如果不能停止源端,可按如下方式實現初始化同步。
6.1 準備Directory
兩端各自在PDB中建立Directory,並在檔案系統確認準備就緒:
點選( 此處 )摺疊或開啟
- create directory dumpdir as '/u01/pump' ;
6.2 源端確認當前SCN
點選( 此處 )摺疊或開啟
-
select
current_scn
from
v$
database
;
-
CURRENT_SCN
-
-----------
- 1816569
6.3 源端PDB匯出schema
點選( 此處 )摺疊或開啟
- expdp system/oracle@pdb1 directory = dumpdir SCHEMAS = sh parallel = 2 dumpfile = sh_%u . dmp flashback_scn = 1816569
將匯出檔案傳送到目的端的Directory對應路徑下。
6.4 目的端PDB匯入schema
這裡需要先行在PDB中建立需要的表空間,否則匯入會失敗。使用者可以不用先行建立,匯入時會自動建立,但事後要grant相關許可權。
另外這裡使用了map。
點選( 此處 )摺疊或開啟
- impdp system/oracle@pdb1 directory = dumpdir REMAP_SCHEMA = sh : sh2 dumpfile = sh_01 . dmp , sh_02 . dmp logfile = sh_imp . log
6.5 鍵和約束
確保schema中的約束(constraint)處於Validated的狀態,可以通過以下查詢確認。
點選( 此處 )摺疊或開啟
- select CONSTRAINT_NAME , TABLE_NAME , VALIDATED from user_constraints ;
根據MOS ID 2048907.1,如果不是VALIDATED,當發生update語句時,將導致類似如下錯誤,導致Replicat程式中止:
點選( 此處 )摺疊或開啟
- ERROR OGG - 01169 Encountered an update where all key columns for target table ODSMGR . YFS_INVENTORY_SUPPLY are not present .
如果發現不是VALIDATED,按以下方式修改:
點選( 此處 )摺疊或開啟
- ALTER TABLE dept MODIFY CONSTRAINT dname_key VALIDATE ;
6.6 從指定SCN開始Replicat
點選( 此處 )摺疊或開啟
- start replicat repl1 , aftercsn 1816569
以上方法,可參考MOS ID:1276058.1
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/22621861/viewspace-2121593/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- oracle 12c 多租戶體系結構概念Oracle
- 12C多租戶rman備份文件
- Oracle 12c系列(一)|多租戶容器資料庫Oracle資料庫
- 如何理解多租戶架構?架構
- 12C多租戶關於CDB、PDB的常用SQL語句SQL
- Oracle 12c 多租戶專題|CDB後設資料內幕Oracle
- SaaS架構:多租戶系統架構設計架構
- 什麼是多租戶架構? - Codonomics架構
- Oracle多租戶架構優勢分析Oracle架構
- 多租戶軟體開發架構架構
- Oracle Goldengate 12c打pus補丁OracleGo
- 多租戶系統的應用架構應用架構
- Oracle Goldengate(ogg) 12c認證考試流程OracleGo
- 新零售SaaS架構:多租戶系統架構設計架構
- oracle 12c 多租戶體系結構概念之資料字典、服務、使用者、角色與許可權Oracle
- 1.2.1. 非多租戶架構帶來的挑戰架構
- 多租戶
- 【解決方案】多租戶技術架構設計入門(一)架構
- Part I Multitenant Architecture (多租戶結構)NaN
- 2 多租戶體系結構概述
- Oracle 12C Sharding部署和測試Oracle
- Spring Cloud Alibaba 多租戶 saas 設計的企業開發架構SpringCloud架構
- GoldenGate 12c 在原有同步程式中新增同步表的操作步驟Go
- 1.1.2. 關於多租戶結構下的使用者介面
- Oracle 12C RAC CDB資料庫部署Oracle資料庫
- oracle 12c rac 詳細部署教程(二)Oracle
- oracle 12c rac 詳細部署教程(一)Oracle
- ASP.NET Core + SaasKit + PostgreSQL + Citus 的多租戶應用程式架構示例ASP.NETSQL架構
- Spring Cloud Alibaba 分散式微服務+多租戶saas企業開發架構SpringCloud分散式微服務架構
- Spring Cloud Alibaba 分散式微服務+多租戶saas企業開發架構SpringCloud分散式微服務架構
- 1.1. 關於多租戶體系結構
- ORACLE 12C RAC 部署應用包準備Oracle
- OGG 12c mysql複製到oracle部署方案MySqlOracle
- 基於 Ionic 2 多主題、多租戶構建方案探索
- 多租戶解析與Demo
- 1.2. 多租戶體系結構的優點
- 大資料體系下的多租戶管理方案大資料
- Part II 配置和管理多租戶環境概述-Oracle多租戶管理員指南Oracle
- Uber在微服務架構中如何利用多租戶玩轉生產現場測試?微服務架構