单向OGG配置
将源端scott用户下的emp表和dept表同步到目标端scott用户的emp表和dept表
目标端需有emp表和dept表的表结构
1. 准备测试环境
两个系统上需安装oracle软件,需dbca建库
本次搭建OGG源端数据库ORACLE_SID为cuug,目标端数据库ORACLE_SID为orcl
源端数据库IP:192.168.10.10
目标端数据库IP:192.168.10.30
1.1修改主机名,添加映射关系
1.1.1源端:[root@localhost~]# vim /etc/sysconfig/network
添加:HOSTNAME=bjcuug
[root@localhost~]# vim /etc/hosts
添加:
192.168.10.10 bjcuug
192.168.10.30 bjorcl
1.1.2目标端:[root@localhost~]# vim /etc/sysconfig/network
添加:HOSTNAME=bjorcl
[root@localhost~]# vim /etc/hosts
添加:
192.168.10.30 bjorcl
192.168.10.10 bjcuug
1.2修改源端和目标端oracle用户的环境变量(源端和目标端都修改)
[oracle@bjcuug ~]$ vim .bash_profile
添加:export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$ORACLE_HOME/network/li
[oracle@bjcuug ~]$ source .bash_profile
2. OGG目录创建(源端和目标端都执行)
[root@bjcuug ~]# su - oracle
[oracle@bjcuug ~]$ cd /u01/app
[oracle@bjcuug app]$ mkdir ogg/
[oracle@bjcuug app]$ chmod 775 ogg -R
3. 安装OGG文件(源端和目标端都执行)
[oracle@bjcuug ogg]$ tar -xvf fbo_ggs_Linux_x64_ora11g_64bit.tar
为Goldengate创建子工作目录(源端和目标端都创建)
[oracle@bjcuug ogg]$ ./ggsci
GGSCI (bjcuug) 1> create subdirs
4. 创建goldengate用户
4.1源端:
创建表空间:
SYS@cuug>create tablespace tbs_ogg datafile '/u01/app/oracle/oradata/cuug/tbs_ogg01.dbf' size 500m autoextend on;
创建用户:
SYS@cuug>create user aa identified by oracle default tablespace tbs_ogg temporary tablespace temp quota unlimited on tbs_ogg;
授予权限:
SYS@cuug>grant CONNECT, RESOURCE to aa;
SYS@cuug>grant CREATE SESSION, ALTER SESSION to aa;
SYS@cuug>grant SELECT ANY DICTIONARY, SELECT ANY TABLE to aa;
SYS@cuug>grant ALTER ANY TABLE to aa;
SYS@cuug>grant FLASHBACK ANY TABLE to aa;
SYS@cuug>grant EXECUTE on DBMS_FLASHBACK to aa;
SYS@cuug>grant CREATE TABLE to aa;
SYS@cuug>grant INSERT, UPDATE, DELETE on scott.emp to aa;
SYS@cuug>grant INSERT, UPDATE, DELETE on scott.dept to aa;
4.2目标端:
创建表空间:
SYS@orcl>create tablespace tbs_ogg datafile '/u01/app/oracle/oradata/orcl/tbs_ogg01.dbf' size 500m autoextend on;
创建用户:
SYS@orcl>create user bb identified by oracle default tablespace tbs_ogg temporary tablespace temp quota unlimited on tbs_ogg;
授予权限:
SYS@orcl>grant CONNECT, RESOURCE to bb;
SYS@orcl>grant CREATE SESSION, ALTER SESSION to bb;
SYS@orcl>grant SELECT ANY DICTIONARY, SELECT ANY TABLE to bb;
SYS@orcl>grant ALTER ANY TABLE to bb;
SYS@orcl>grant FLASHBACK ANY TABLE to bb;
SYS@orcl>grant EXECUTE on DBMS_FLASHBACK to bb;
SYS@orcl>grant CREATE TABLE to bb;
SYS@orcl>grant INSERT, UPDATE, DELETE on scott.emp to bb;
SYS@orcl>grant INSERT, UPDATE, DELETE on scott.dept to bb;
5. 在源端开启日志
开启补充日志:
SYS@cuug>alter database add supplemental log data;
SYS@cuug>select SUPPLEMENTAL_LOG_DATA_MIN from v$database;
开启归档:
SYS@cuug>alter system set log_archive_dest_1='location=/arch1' scope=spfile;
SYS@cuug>alter system set log_archive_format='arch_%t_%r_%s.log' scope=spfile;
SYS@cuug> shutdown immediate
SYS@cuug> startup mount
SYS@cuug> alter database archivelog;
SYS@cuug> alter database open;
SYS@cuug> alter system archive log current;
SYS@cuug>archive log list;
SYS@cuug>show parameter log_archive_dest_1
开启强制日志:
SYS@cuug>alter database force logging;
SYS@cuug>SELECT force_logging FROM v$database;
在源端中为这两个表启用事务数据更改捕获
GGSCI (bjcuug) 3> DBLOGIN USERID aa,PASSWORD oracle
GGSCI (bjcuug) 4> ADD TRANDATA scott.EMP
GGSCI (bjcuug) 5> ADD TRANDATA scott.dept
验证是否为这些表启用了补充日志记录:
GGSCI (bjcuug) 6> INFO TRANDATA scott.*
6. 配置Goldengate Manager进程
6.1 源端:
创建manager参数文件:
GGSCI (bjcuug) 7> EDIT PARAMS MGR
添加:
PORT 7809
PURGEOLDEXTRACTS /u01/app/ogg/dirdat, USECHECKPOINTS
启用manager:
GGSCI (bjcuug) 8> START MGR
查看manager是否启动:
GGSCI (bjcuug) 9> INFO MGR
6.2 目标端:
GGSCI (bjorcl) 2> EDIT PARAMS MGR
添加:
PORT 7809
PURGEOLDEXTRACTS /u01/app/ogg/dirdat, USECHECKPOINTS
启用manager:
GGSCI (bjorcl) 3> START MGR
查看manager是否启动:
GGSCI (bjorcl) 5> INFO MGR
7. 通过直接加载方式加载原始数据
7.1 在源端配置提取进程
添加一个名为EINI_1的提取进程:
GGSCI (bjcuug) 10> ADD EXTRACT EINI_1, SOURCEISTABLE
查看提取进程:
GGSCI (bjcuug) 11> INFO EXTRACT EINI_1, TASKS
编辑EINI_1:
GGSCI (bjcuug) 12> EDIT PARAMS EINI_1
添加:
-- GoldenGate Initial Data Capture
-- for EMP and dept
EXTRACT EINI_1
SETENV (NLS_LANG=AMERICAN_AMERICA.AL32UTF8)
USERID aa, PASSWORD oracle
RMTHOST bjorcl, MGRPORT 7809
RMTTASK REPLICAT, GROUP RINI_1
TABLE scott.EMP;
TABLE scott.dept;
7.2在备库配置复制进程
添加初始负载交付过程:
GGSCI (bjorcl) 7> ADD REPLICAT RINI_1, SPECIALRUN
查看结果:
GGSCI (bjorcl) 9> INFO REPLICAT RINI_1, TASKS*
编辑初始加载交付流程RINI_1:
GGSCI (bjorcl) 10> EDIT PARAMS RINI_1
添加:
-- GoldenGate Initial Load Delivery
REPLICAT RINI_1
SETENV (NLS_LANG=AMERICAN_AMERICA.AL32UTF8)
ASSUMETARGETDEFS
USERID bb, PASSWORD oracle
DISCARDFILE /u01/app/ogg/dirrpt/RINIaa.dsc, PURGE
MAP scott.EMP, TARGET scott.DEPT;
7.3完成初始负载
启动主库的初始加载进程EINI_1,则备库的RINI_1进程将自动启动:
GGSCI (bjcuug) 13> START EXTRACT EINI_1
查看初始负载结果和进程状态
源端:
GGSCI (bjcuug) 14> VIEW REPORT EINI_1
目标端:
GGSCI (bjorcl) 17> VIEW REPORT RINI_1
检查初始数据是否已传送到备库:
SCOTT@orcl>select * from emp;
SCOTT@orcl>select * from dept;
初始负载完成后,提取进程EINI_1,复制进程RINI_1自动停止。
源端:
GGSCI (bjcuug) 4> INFO EXTRACT EINI_1
目标端:
GGSCI (bjorcl) 3> INFO REPLICAT RINI_1
8. 在主库配置提取进程
8.1编辑提取进程参数
GGSCI (bjcuug) 5> EDIT PARAMS EORA_1
添加:
-- Change Capture parameter file to capture
-- EMP and dept changes
EXTRACT EORA_1
SETENV (NLS_LANG=AMERICAN_AMERICA.AL32UTF8)
USERID aa, PASSWORD oracle
EXTTRAIL /u01/app/ogg/dirdat/aa
TABLE scott.EMP;
TABLE scott.dept;
在主库上执行以下命令,添加主提取组:
GGSCI (bjcuug) 6> ADD EXTRACT EORA_1, TRANLOG, BEGIN NOW
8.2配置本地队列文件
GGSCI (bjcuug) 8> ADD EXTTRAIL /u01/app/ogg/dirdat/aa, EXTRACT EORA_1, MEGABYTES 5
开启主提取进行:
GGSCI (bjcuug) 9> START EXTRACT EORA_1
验证提取进程是否运行:
现在,Goldengate将在源系统的目录下生成本地尾文件“aa000000”:
[oracle@bjcuug ~]$ cd /u01/app/ogg/dirdat
[oracle@bjcuug dirdat]$ ll
9. 在主库配置泵进程
9.1 编辑数据泵进程参数
GGSCI (bjcuug) 11> EDIT PARAMS PORA_1
添加:
-- Data Pump parameter file to read the local
-- trail of EMP and dept changes
EXTRACT PORA_1
SETENV (NLS_LANG=AMERICAN_AMERICA.AL32UTF8)
PASSTHRU
RMTHOST bjorcl, MGRPORT 7809
RMTTRAIL /u01/app/ogg/dirdat/pa
TABLE scott.EMP;
TABLE scott.dept;
添加数据泵提取组:
GGSCI (bjcuug) 13> ADD EXTRACT PORA_1, EXTTRAILSOURCE /u01/app/ogg/dirdat/aa
GGSCI (bjcuug) 14> INFO EXTRACT PORA_1
9.2在主库添加Glodengate远程跟踪
GGSCI (bjcuug) 15> ADD RMTTRAIL /u01/app/ogg/dirdat/pa, EXTRACT PORA_1,MEGABYTES 5
启动数据泵程序:
GGSCI (bjcuug) 16> START EXTRACT PORA_1
查看结果:
GGSCI (bjcuug) 17> INFO EXTRACT PORA_1
现在,Goldengate将在备库的目录下生成远程尾文件“pa000000”:
[oracle@bjorcl ~]$ cd /u01/app/ogg/dirdat
[oracle@bjorcl dirdat]$ ll
10. 目标端配置复制进程
10.1在备库中创建GLOBALS参数
编辑GLOBALS(大写)参数文件以指示检查点表:
GGSCI (bjorcl) 5> EDIT PARAMS ./GLOBALS
添加:
CHECKPOINTTABLE bb.ggschkpt
查看:
[oracle@bjorcl ogg]$ ll GLOBALS
为使全局配置生效,我们必须退出GGSCI会话:
GGSCI (bjorcl) 6> exit
在备库中添加复制检查点表
GGSCI (bjorcl) 1> DBLOGIN USERID bb, PASSWORD oracle
GGSCI (bjorcl) 2> ADD CHECKPOINTTABLE
10.2编辑交付流程参数
添加复制组:
GGSCI (bjorcl) 3> ADD REPLICAT RORA_1, EXTTRAIL /u01/app/ogg/dirdat/pa
编辑复制流程RORA_1的参数:
GGSCI (bjorcl) 4> EDIT PARAM RORA_1
添加:
-- Change Delivery parameter file to apply
-- EMP and dept Changes
REPLICAT RORA_1
SETENV (NLS_LANG=AMERICAN_AMERICA.AL32UTF8)
USERID bb, PASSWORD oracle
HANDLECOLLISIONS
ASSUMETARGETDEFS
DISCARDFILE /u01/app/ogg/dirrpt/RORA_aa.DSC, PURGE
MAP scott.emp, TARGET scott.emp;
MAP scott.dept, TARGET scott.dept;
启动复制进程:
GGSCI (bjorcl) 5> START REPLICAT RORA_1
查看结果:
GGSCI (bjorcl) 6> INFO REPLICAT RORA_1
11. 验证DML是否可以正确复制
在源端scott用户下的emp表中插入一条数据
SCOTT@cuug>insert into emp values(8000,'Kim','clerk',7839,'2020-07-10 00:00:00',8000,1000,10);
SCOTT@cuug>commit;
到目标端scott用户下的emp表中是否同步了新插入的数据
如果可以查到表名单向OGG搭建成功。
~~~~ ~~~~ ~~~~ ~~~~ ~~~~ ~~~~ ~~~~ ~~~~~~~~ ~~~~ ~~~~ ~~~~ ~~~~ ~~~~ ~~~~ ~~~~ ~~~~ ~~~~ ~~~~ ~~~~ ~~~~
带尺寸的图片:
居中的图片:
居中并且带尺寸的图片:
当然,我们为了让用户更加便捷,我们增加了图片拖拽功能。
如何插入一段漂亮的代码片
去博客设置页面,选择一款你喜欢的代码片高亮样式,下面展示同样高亮的 代码片
.
// An highlighted block
var foo = 'bar';
生成一个适合你的列表
- 项目
- 项目
- 项目
- 项目
- 项目1
- 项目2
- 项目3
- 计划任务
- 完成任务
创建一个表格
一个简单的表格是这么创建的:
项目 | Value |
---|---|
电脑 | $1600 |
手机 | $12 |
导管 | $1 |
设定内容居中、居左、居右
使用:---------:
居中
使用:----------
居左
使用----------:
居右
第一列 | 第二列 | 第三列 |
---|---|---|
第一列文本居中 | 第二列文本居右 | 第三列文本居左 |
SmartyPants
SmartyPants将ASCII标点字符转换为“智能”印刷标点HTML实体。例如:
TYPE | ASCII | HTML |
---|---|---|
Single backticks | 'Isn't this fun?' | ‘Isn’t this fun?’ |
Quotes | "Isn't this fun?" | “Isn’t this fun?” |
Dashes | -- is en-dash, --- is em-dash | – is en-dash, — is em-dash |
创建一个自定义列表
-
Markdown
- Text-to- HTML conversion tool Authors
- John
- Luke
如何创建一个注脚
一个具有注脚的文本。1
注释也是必不可少的
Markdown将文本转换为 HTML。
KaTeX数学公式
您可以使用渲染LaTeX数学表达式 KaTeX:
Gamma公式展示 Γ ( n ) = ( n − 1 ) ! ∀ n ∈ N \Gamma(n) = (n-1)!\quad\forall n\in\mathbb N Γ(n)=(n−1)!∀n∈N 是通过欧拉积分
Γ ( z ) = ∫ 0 ∞ t z − 1 e − t d t . \Gamma(z) = \int_0^\infty t^{z-1}e^{-t}dt\,. Γ(z)=∫0∞tz−1e−tdt.
你可以找到更多关于的信息 LaTeX 数学表达式here.
新的甘特图功能,丰富你的文章
- 关于 甘特图 语法,参考 这儿,
UML 图表
可以使用UML图表进行渲染。 Mermaid. 例如下面产生的一个序列图:
这将产生一个流程图。:
- 关于 Mermaid 语法,参考 这儿,
FLowchart流程图
我们依旧会支持flowchart的流程图:
- 关于 Flowchart流程图 语法,参考 这儿.
导出与导入
导出
如果你想尝试使用此编辑器, 你可以在此篇文章任意编辑。当你完成了一篇文章的写作, 在上方工具栏找到 文章导出 ,生成一个.md文件或者.html文件进行本地保存。
导入
如果你想加载一篇你写过的.md文件,在上方工具栏可以选择导入功能进行对应扩展名的文件导入,
继续你的创作。
注脚的解释 ↩︎