簡單理解什么是數據庫CDC?(以mysql為例)


一、數據庫CDC是什么

CDC 是change data capture,即變化數據捕捉。是數據庫進行備份的一種方式,常用於大量數據的備份工作。分為入侵式的和非入侵式的備份方法,入侵式的有基於觸發器備份、基於時間戳備份、基於快照備份,非入侵式的備份方法是基於日志的備份。mysql 基於日志的CDC就是要開啟mysql binary log。

二、Mysql基於日志的CDC配置

1、查看mysql是否開啟Binlog

show variables like 'log_bin';

若變量log_bin的值為“OFF”,則說明Binlog未開啟,繼續執行下一步。

若變量log_bin的值為“ON”,則說明Binlog已開啟,繼續執行以下SQL命令,檢查相關參數的配置是否符合要求。

show variables like '%binlog_format%';
show variables like '%binlog_row_image%';

變量binlog_format的值應該為“ROW”,變量binlog_row_image的值應該為“FULL”。

2、執行以下命令編輯MySQL配置文件,然后按“i”進入輸入模式。

vi /etc/my.cnf

在配置文件中增加如下配置,開啟Binlog。

server-id = 123
log_bin = mysql-bin
binlog_format = row
binlog_row_image = full
expire_logs_days = 10
gtid_mode = on
enforce_gtid_consistency = on

 

其中:

server-id的值應為大於1的整數,請根據實際規划設置,並且在創建數據集成任務時設置的“Server Id”值需要此處設置的值不同。
expire_logs_days為Binlog日志文件保留時間,超過保留時間的Binlog日志會被自動刪除,應保留至少2天的日志文件。
“gtid_mode = on”和“enforce_gtid_consistency = on”僅當MySQL的版本大於等於5.6.5時才需要添加,否則刪除這兩行內容。

 

按“Esc”退出輸入模式,然后輸入“:wq”並回車,保存退出。
執行以下命令重啟MySQL數據庫。

service mysqld restart

以root用戶登錄數據庫,執行以下命令,查詢變量log_bin的值是否為“ON”,即是否已開啟Binlog。

show variables like 'log_bin';

3、在數據庫中執行以下命令創建ROMA連接數據庫的用戶並配置權限。

CREATE USER 'roma'@'%' IDENTIFIED BY 'password';
GRANT SELECT, RELOAD, SHOW DATABASES, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'roma'@'%';

 

其中:

roma為ROMA連接用戶名,請根據實際規划設置。
password為ROMA連接用戶密碼,請根據實際規划設置。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM