中的字符集
不支持以下字符集:
l armscii8
l keybcs2
l utf16le
l geostd8
中的数据类型
支持以下数据类型:
l CHAR
l VARCHAR
l INT
l TINYINT
l SMALL INT
l MEDIUM INT
l BIG INT
l DECIMAL
l FLOAT
l DOUBLE
l DATE
l TIME
l YEAR
l DATETIME
l TIMESTAMP
l BINARY
l VARBINARY
l TEXT
l TINYTEXT
l MEDIUMTEXT
l LONGTEXT
l BLOB
l TINYBLOB
l MEDIUMBLOB
l LONGBLOB
l ENUM
l BIT(M)
不支持以下数据类型:
l XML
l SET
l all spatial types (Geometry and so on).
中的对象与操作
l 支持对源和目标数据库的事务表进行以下DML 操作:
Ø Insert
Ø Update( 包含压缩)
Ø Delete( 包含压缩)
Ø Truncate
l 支持DDL 操作的提取和复制。
l 支持事务表最大行大小和所使用的数据库存储引擎所支持的最大列数。InnoDB 引擎最多支持1017 列。
l 支持AUTO_INCREMENT 列属性,增量值由Extract 进程从二进制日志中捕获,并在Replicat 进程插入应用到目标表。
l 可以与MySQL 本地复制并行操作。
l 支持MySQL 的DYNSQL 特性。
中的系统Schema
OGG 不会复制以下Schema ,除非他们被明确指定( 没有使用通配符)
l 'information_schema'
l 'performance_schema'
l 'mysql'
限制与说明
运行OGG for MySQL 时,需要注意以下事项:
l 不支持功能索引。
l 不支持BLOB 或者TEXT 作为主键的表。
l 支持的TIME 类型范围从00:00:00 到23:59:59 。
l 支持的时间戳类型范围从0001/01/03:00:00:00 到9999:12:31:23:59:59 。
l 不支持负日期。
l 浮点数的范围和精度支持取决于主机,通常精度精确到16 位有效数字。
l 不支持视图提取和复制到视图。
准备数据库用户
创建一个专用于OGG 的数据库用户( 用于提取、复制、DEFGEN) 。
要使用DDL 的话,MySQL 用户必须具有安装数据库插件的权限。
OGG 用户需要对INFORMATION_SCHEMA 数据库进行读访问。
|
权限 |
Extract |
Replicat |
|
INSERT,UPDATE,DELETE on target tables |
√ |
√ |
|
CREATE TABLE |
√ |
使用检查点表 |
|
EXECUTE |
√ |
执行存储过程 |
|
SELECT ANY TABLE or SELECT ON database.table |
√ |
√ |
创建用户以及赋权语句( 源端和目标端均创建)
CREATE DATABASE ogg;
CREATE USER 'odc'@'%' IDENTIFIED BY 'odc';
GRANT INSERT,UPDATE,DELETE ON testdb.* TO 'odc'@'%';
GRANT CREATE ON testdb.* TO 'odc'@'%';
GRANT EXECUTE ON testdb.* TO 'odc'@'%';
GRANT SELECT ON testdb.* TO 'odc'@'%';
GRANT ALL PRIVILEGES ON ogg.* to 'odc'@'%';
flush privileges;
准备系统用户
想要捕获二进制日志,OGG 软件安装用户必须具有以下权限:
l MySQL 配置文件(my.cnf) 所在目录的读取和执行权限。
l MySQL 配置文件(my.cnf) 的读取权限。
l 二进制日志所在目录的读取和执行权限。
l tmp 目录的读取和执行权限。
系统用户使用root 即可。
设置二进制日志参数
MySQL 的binlog_row_image 参数必须设置为full ,才能使所有表的列都在二进制日志中。其他所有值都是不支持的。
注意 :binlog_row_image 的值默认是 full ,只需要检查用户是否有设置为其他值。未设置即是 full 。
参数
Extract 使用TRANLOGOPTIONS 参数获取日志索引文件路径。如果MySQL 配置文件(my.cnf) 没有指定完整的日志索引文件路径名、指定一个不正确的位置、或者在同一台服务器上安装了多个MySQL ,则应该使用ALTLOGDEST 选项指定日志索引文件位置。使用ALTLOGDEST 选项时,二进制日志索引文件必须存放在指定路径中。
注意: 从OGG 21C 开始,ALTLOGDEST 参数是可选的,未指定ALTLOGDEST 参数,则二进制日志索引和二进制日志文件路径将从数据库中直接获取。
Windows 下:
TRANLOGOPTIONS ALTLOGDEST "C:\MySQL\logs\binlog.index"
Linux 下:
TRANLOGOPTIONS ALTLOGDEST "/mysql/product/data/logs/binlog.index"
远程捕获时:
TRANLOGOPTIONS ALTLOGDEST REMOTE
使用以下命令查看二进制日志和二进制日志索引文件路径:
show variables like '%log_bin%';
参数
MySQL 配置文件: 配置文件储存MySQL 服务器和客户端的默认选项。在Windows 中,配置文件的名称是my.ini 。在其他平台上是my.cnf 。在缺少TRANLOGOPTIONS ALTLOGDEST 参数时,Extract 从MySQL 配置文件中获取日志文件位置的信息。此外,以下参数必须正确设置:
l binlog_ignore_db=oggddl: 这防止binlog 中记录历史表条目。
l log-bin: 此参数用于启动二进制日志记录。此参数还指定二进制日志索引文件的位置。如果未指定log-bin 参数,二进制日志记录将被禁用,并且Extract 返回错误。
l log_bin_index: 此参数指定二进制日志索引的位置。如果不使用,Extract 将会假定二进制索引文件与日志文件处于同一位置。
l binlog_format: 此参数设置日志的格式。它必须被设置为ROW ,用于指定数据库以二进制格式记录DML 语句。从OGG 19C 开始,Extract 会静默忽略非ROW 格式的binlog 事件,而不是在检测到非ROW 格式的binlog 格式时退出。
l mysql.rds_set_configuration: 当从MySQL Amazon RDS 实例中捕获时,需要在MySQL 命令行中调用mysql.rds_set_configuration 存储过程,以保留一段时间的二进制日志。MySQL Amazon RDS 的binlog_retention_hours 默认值是NULL ,即不保留二进制日志。
mysql > call mysql.rds_set_configuration('binlog retention hours', 24);
my.cnf 参数检查:
[client]
socket=/var/lib/mysql/mysql.sock
[mysqld]
binlog_ignore_db=oggddl 设置参数需要重启数据库 ,需要忽略多个数据库就设置多个该参数。
log-bin=mysql-bin --- 设置参数需要重启数据库
binlog_format=ROW --- 设置参数需要重启数据库
binlog_row_image=full --- 或者未设置
环境变量
环境变量中MYSQL_HOME:Extract 进程会检查MYSQL_HOME 参数来找到MySQL 配置文件,如果MYSQL_HOME 未设置。会查询information_schema.global_variables 表来确定MySQL 的安装目录。
注意事项
对于MariaDB 10.2 及更高版本,OGG 的大体设置于MySQL 相同,但是需要在my.cnf 或my.ini 中设置额外的变量"binlog_annotate_row_events=OFF" ,之后重启MariaDB 。
添加主机名
/etc/hosts 中的localhost 需正确配置,如果配置不当,会导致Extract 无法正常连接数据库。或者可以使用以下格式避免:
SOURCEDB dbname@hostname:port, USERID mysqluser, PASSWORD mysqlpassword
三、 源端安装软件
上传软件并解压
将软件上传至/tmp/mysql_ogg_medias ,并解压
# unzip Oracle_GoldenGate_19.1.0.0.3_for_MySQL_on_Linux\ x86-64.zip
解压得到以下三个文件:
ggs_Linux_x64_MySQL_64bit.tar
OGG-19.1.0.0-README.txt
OGG_WinUnix_Rel_Notes_19.1.0.0.3.pdf
解压其中的ggs_Linux_x64_MySQL_64bit.tar 文件到指定目录
# tar -xvf ggs_Linux_x64_MySQL_64bit.tar -C /mysql/ogg/
创建默认目录
创建OGG 存放文件的默认目录
|
目录 |
作用 |
|
dirprm |
存放进程参数文件 |
|
dirrpt |
存放进程报告文件 |
|
dirchk |
存放检查点文件 |
|
dirpcs |
|
|
dirsql |
|
|
dirdef |
存放定义文件 |
|
dirdat |
存放队列文件 |
|
dirtmp |
|
|
dircrd |
|
|
dirwlt |
|
|
dirdmp |
|
使用以下命令创建默认目录:
# ./ggsci
GGSCI > create subdirs
创建并启动MGR 进程
# ./ggsci
GGSCI > edit param mgr
port 7809
dynamicportlist 7810-7820
PURGEOLDEXTRACTS ./dirdat/*, USECHECKPOINTS, MINKEEPDAYS 1
AUTORESTART ER *, RETRIES 6,WAITMINUTES 20
创建checkpoint_table 以及./GLOBALS
创建检查点表,用于存放检查点信息
# mysql -uodc -podc
use ogg;
source /mysql/ogg/chkpt_mysql_create.sql
# ./ggsci
GGSCI > edit param ./GLOBALS
CHECKPOINTTABLE ogg.ggs_checkpoint
GGSCI > start mgr
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/29956245/viewspace-2932705/ ,如需转载,请注明出处,否则将追究法律责任。