オリジナル 1.1. MySQL binlog を有効にする1. # binlog ログ保存パス log-bin=D:\env\mysql-5.7.28-winx64\binlog # ログは各データ行が変更された形式を記録します binlog-format=ROW # 現在のマシンのサービス ID。クラスターの場合は繰り返すことはできません。server_id=1 2. MySQL サービスを再起動した後、設定変数が有効かどうかを確認します。 mysql> '%log_bin%' のような変数を表示します。 +---------------------------------+----------------------+ | 変数名 | 値 | +---------------------------------+----------------------+ | log_bin | オン | | log_bin_basename | D:\env\mysql-5 | | log_bin_index | D:\env\mysql-5.index | | log_bin_trust_function_creators | オフ | | log_bin_use_v1_row_events | オフ | | sql_log_bin | オン | +---------------------------------+----------------------+ セットに 6 行あり、警告 1 件 (0.00 秒) mysqlデータベースの
'canal' によって識別されるユーザー canal を作成します。 *.* に対して 'canal'@'%' に SELECT、REPLICATION SLAVE、REPLICATION CLIENT 権限を付与します。 権限のフラッシュ; 1.2. RabbitMQ の交換とキューを構成する1. 新しい 2. 新しい 3. キューにバインドを設定し、 1.3. 独立型水路の設置1.3.1. ダウンロードとインストールダウンロードして解凍します。 sudo wget https://github.com/alibaba/canal/releases/download/canal-1.1.4/canal.deployer-1.1.4.tar.gz sudo tar -zxvf canal.deployer-1.1.4.tar.gz 最新バージョン sudo wget https://github.com/alibaba/canal/releases/download/canal-1.1.5-alpha-1/canal.deployer-1.1.5-SNAPSHOT.tar.gz sudo tar -zxvf canal.deployer-1.1.5-SNAPSHOT.tar.gz 設定ファイル1.3.2.1. ノード構成ファイル canal.properties # tcp bind ip、現在のノードのIPアドレス canal.ip = 192.168.2.108 # 図 1 に示すように、IP を Zookeeper に登録し、ZK の IP アドレスに登録します。 運河レジスタIP = 192.168.2.108 canal.zkServers = zk クラスター # tcp、kafka、RocketMQ、最新バージョン 1.1.5 は rabbitmq に直接接続できます canal.serverMode = rabbitmq # destinations、現在のサーバーにデプロイされたインスタンスリスト。各インスタンスフォルダの名前に対応します (../conf/<instance_name>) canal.destinations = example2 # MQ サーバーのアドレスを設定します。ここに rabbitmq サーバーのアドレスがあります #!! ここでダウンロードした後のデフォルト設定は、IP: ポートを設定することです # rabbitmq ではここでポートを設定する必要はありません canal.mq.servers = 192.168.208.100 # 以下の項目はすべて、rabbitmq 構成をサポートする新しいバージョン 1.1.5 です canal.mq.vhost=/ canal.mq.exchange=example2-ex # rabbitmq の exchange 名を指定します。これは、「Exchange の作成」手順で作成した名前です。 canal.mq.username=admin # rabbitmq に接続するためのユーザー名 canal.mq.password=**** # rabbitmq に接続するためのパスワード canal.mq.aliyunuid= 1.3.2.2. インスタンス設定ファイルinstance.properties # 位置情報、データベース接続情報 canal.instance.master.address=192.168.2.108:3306 # 次の 2 つの設定では、上記で設定したアドレスのデータベースで `SHOW MASTER STATUS` を実行して取得したフィールド `File` と `Position` の値が必要です canal.instance.master.journal.name=mysql-5.7 キャナルインスタンスマスターポジション=674996 # テーブル メタ tsdb 情報、テーブル メタの時系列バージョンを記録するために tsdb を無効にする canal.instance.tsdb.enable=false # ユーザー名/パスワード、インスタンス接続データのユーザー名とパスワード canal.instance.dbUsername=canal canal.instance.dbPassword=運河 # テーブル正規表現、監視対象の通常のデータベーステーブルに一致する canal.instance.filter.regex=ysb\\.useropcosttimes_prod # mq config では、rabbitmq がバインドされるルーティングを指定します。詳細については、「rabbitmq の構成」の 3 番目の手順を参照してください。 canal.mq.topic=example2-ルーティングキー 1.3.3. 運河サービスを開始するLinux の起動スクリプト λ .\startup.bat CMDを開始:Java -xms128m -xmx512m -xx:permsize = 128m -djava.awt.headless = true -djava.net.preferipv4stack = true -dapplication.codeset = utf -8 -dfile.encod = utf -8 -server -xdebug UNJDWP:Transport = DT_Socket、Address = 9099、server = y、suspend = n -dappname = otter -canal -dlogback.configurationfile = "d:\ env \ green -1.5 \ bin \\ .. \ conf \ conf \ env \ \ .. \ conf \ canal.properties "-classpath" d:\ env \ green \ canal -1.5 \ bin \\ .. \ conf \ .. \ lib \*; d:\ env \ env \ awt.headless = true -djava.net.preferipv4stack = true -dapplication.codeset = utf -8 -dfile.encoding = utf -8 -server -xnoagent -djava.compiler = none -xrunjdwp:dt_socte = ned = n al -dlogback.configurationfile = "d:\ env \ green \ canal -1.5 \ bin \\ .. \ conf \ logback.xml" -dcanal.conf = \ env \ in \\ .. \ conf \ .. \ lib \*; d:\ env \ green \ canal-1.5 \ bin \\ .. \ conf "com.alibaba.otter.canal.deployer.canallauncher Java HotSpot(TM) Server VM 警告: オプション PermSize=128m を無視します。8.0 でサポートが削除されました。 アドレス 9099 でトランスポート dt_socket をリッスンしています 最後に、データベース データを手動で変更するか、他の変更を待ってから、rabbitmq の監視をチェックしてプロセスが成功したかどうかを確認します。 1.4. クラスター チャネルのインストール1.4.1. canal-admin をインストールする1.4.1.1. ダウンロードとインストール ダウンロードして解凍する sudo wget https://github.com/alibaba/canal/releases/download/canal-1.1.5-alpha-1/canal.admin-1.1.5-SNAPSHOT.tar.gz sudo tar -zxvf canal.admin-1.1.5-SNAPSHOT.tar.gz 設定ファイル
サーバ: ポート: 8089 春: ジャクソン: 日付形式: yyyy-MM-dd HH:mm:ss タイムゾーン: GMT+8 spring.データソース: アドレス: 192.168.2.108:3306 データベース: canal_manager ユーザー名: canal パスワード: 運河 ドライバークラス名: com.mysql.jdbc.Driver # `serverTimezone=UTC` をデータベース接続文字列の末尾に追加する必要があります。そうしないと、起動時にタイムゾーン例外が報告されます。 URL: jdbc:mysql://${spring.datasource.address}/${spring.datasource.database}?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=UTC ひかり: 最大プールサイズ: 30 最小アイドル: 1 運河: # canal-adminUser の管理者アカウントとパスワードを設定します: admin 管理者パスワード: 123456 1.4.1.3. canal-admin サービスを開始する Linux の起動スクリプト λ .\startup.bat 開始コマンド: java -Xms128m -Xmx512m -Djava.awt.headless=true -Djava.net.preferIPv4Stack=true -Dapplication.codeset=UTF-8 -Dfile.encoding=UTF-8 -DappName=canal-admin -classpath "D:\env\green\canal-1.1.5-admin\bin\\..\conf\..\lib\*;D:\env\green\canal-1.1.5-admin\bin\\..\conf" com.alibaba.otter.canal.admin.CanalAdminApplication 2020-04-13 20:01:39.495 [main] INFO com.alibaba.otter.canal.admin.CanalAdminApplication - PID 50696 の Memento-PC で CanalAdminApplication を起動しています (D:\env\green\canal-1.1.5-admin\lib\canal-admin-server-1.1.5-SNAPSHOT.jar が Memento によって D:\env\green\canal-1.1.5-admin\bin で起動されました) 2020-04-13 20:01:39.527 [main] INFO com.alibaba.otter.canal.admin.CanalAdminApplication - アクティブなプロファイルが設定されていません。デフォルトのプロファイルにフォールバックします: default 2020-04-13 20:01:39.566 [main] INFO osbwscAnnotationConfigServletWebServerApplicationContext - org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@13a5bf6 を更新しています: 起動日 [Mon Apr 13 20:01:39 CST 2020]; コンテキスト階層のルート 2020-04-13 20:01:41.149 [main] INFO osboot.web.embedded.tomcat.TomcatWebServer - Tomcat がポート 8089 (http) で初期化されました 2020-04-13 20:01:41.166 [main] INFO org.apache.coyote.http11.Http11NioProtocol - ProtocolHandler を初期化しています ["http-nio-8089"] 2020-04-13 20:01:41.176 [main] INFO org.apache.catalina.core.StandardService - サービスを開始しています [Tomcat] 2020-04-13 20:01:41.177 [main] INFO org.apache.catalina.core.StandardEngine - サーブレット エンジンを起動しています: Apache Tomcat/8.5.29 ... 2020-04-13 20:01:42.996 [main] INFO org.apache.coyote.http11.Http11NioProtocol - ProtocolHandler ["http-nio-8089"] を開始しています 2020-04-13 20:01:43.007 [main] INFO org.apache.tomcat.util.net.NioSelectorPool - サーブレットの書き込み/読み取りに共有セレクターを使用しています 2020-04-13 20:01:43.019 [main] INFO osboot.web.embedded.tomcat.TomcatWebServer - Tomcat がポート 8089 (http) でコンテキスト パス '' で起動しました 2020-04-13 20:01:43.024 [main] INFO com.alibaba.otter.canal.admin.CanalAdminApplication - CanalAdminApplication を 3.919 秒で起動しました (JVM は 5.241 秒実行中) 1.4.1.4. 注記 データベースに接続する *.* のすべての権限を 'canal'@'%' に付与します。 1.4.2. スタンドアロンのcanal-serverノードを追加する1.4.2.1. キャナルサーバーノードサービスを開始する スタンドアロンの canal-server は通常どおり起動します。このとき、canal-server によってデフォルトでロードされる 1.4.2.2. 新しいスタンドアロンサーバーを作成する
1.4.2.3. 新しいインスタンスを作成する 単一マシンの !! 1.4.3. クラスターcanal-serverノードの追加1.4.3.1. 新しいクラスターを作成する クラスター名を指定し、クラスターにバインドされた 作成が成功したら、右端の 以前に設定した # チャンネル管理者設定 運河管理者マネージャー = 192.168.2.108:8089 canal.instance.global.mode = マネージャー 1.4.3.2. 新しいサーバーを作成する
ここで特に注意する必要があることが 1 つあります。 注意深い人は、 Windows 上で @rem canal_conf=... を設定します。 canal_conf=%conf_dir%\canal_local.properties を設定します 起動時に 1.4.3.3. 新しいインスタンスを作成する ここでの構成は、スタンドアロン サーバーのインスタンスの # 2. 位置情報、MySQL が同期を開始する binlog 位置情報を指定します canal.instance.master.address=192.168.0.25:63306 canal.instance.master.journal.name=mysql-bin.001349 キャナルインスタンスマスターポジション=198213313 # 3. ユーザー名/パスワード、MySQL を同期するためのデータベースのユーザー名とパスワードを設定します canal.instance.dbUsername=xxxx canal.instance.dbパスワード=xxx # 4. テーブル正規表現、同期するデータテーブルに一致する正規表現 canal.instance.filter.regex=xxxx # 5. mq config、mysql のルーティングバインディングを指定します。`1.2.3` を参照してください。 canal.mq.topic=example2-ルーティングキー 保存後、操作でインスタンスを開始できます ここでインスタンスを起動できない場合は、次の手順で確認・操作を行ってください。 クラスターの 1.5. 運河構成手順1.5.1. 運河のプロパティ
canal.instance.tsdb.enable = true canal.instance.tsdb.dir = ${canal.file.data.dir:../conf}/${canal.instance.destination:} canal.instance.tsdb.url = jdbc:h2:${canal.instance.tsdb.dir}/h2;CACHE_SIZE=1000;MODE=MYSQL; canal.instance.tsdb.dbユーザー名 = canal canal.instance.tsdb.dbPassword = 運河 5.canal.destinations、現在のクラスターにデプロイされているインスタンスのリスト 6.canal.mq.servers、Rabbitmqクラスタアドレスを設定します。ここでポートを追加することはできません 1.5.2. インスタンスプロパティ
1.5.3. プロパティ設定ファイル
canal.properties (システム ルート構成ファイル) 1.運河のプロパティ canal.destinations # 現在のサーバーにデプロイされているインスタンスのリスト canal.conf.dir # conf ディレクトリへのパス canal.auto.scan # 自動インスタンス スキャンを有効にする # true に設定すると、canal.conf.dir ディレクトリの下のインスタンス構成の変更が自動的にトリガーされます # 1. 追加されたインスタンス ディレクトリ: インスタンス構成の読み込みをトリガーし、lazy が true の場合は自動的に開始します。 # 2. インスタンス ディレクトリの削除: 対応するインスタンス構成をアンインストールし、起動している場合はシャットダウンします。 # 3. instance.properties ファイルの変更: インスタンス構成を再読み込みし、起動されている場合は自動的に再起動します。 canal.auto.scan.interval # インスタンスの自動スキャン間隔、単位は s canal.instance.global.mode # グローバル構成読み込みモードcanal.instance.global.lazy # グローバル遅延モードcanal.instance.global.manager.address # グローバル マネージャー構成モードのリンク情報canal.instance.global.spring.xml # グローバル Spring 構成モードのコンポーネント ファイルcanal.instance.example.mode 運河インスタンス例遅延 canal.instance.example.spring.xml # インスタンスレベルの構成定義。設定されている場合、グローバル構成定義が自動的に上書きされます。モードcanal.instance.tsdb.enable # テーブルの時系列バージョン記録機能を有効にするかどうか。metacanal.instance.tsdb.dir # 時系列バージョンのローカル ストレージ パス。デフォルトはインスタンス ディレクトリです。canal.instance.tsdb.url # 時系列バージョンのデータベース接続アドレス。デフォルトはローカルの組み込みデータベースです。canal.instance.tsdb.dbUsername # 時系列バージョンのデータベース接続アカウントcanal.instance.tsdb.dbPassword # 時系列バージョンのデータベース接続パスワード 2.インスタンスプロパティ canal.id # 各 Canal サーバー インスタンスの一意の識別子canal.ip # Canal サーバーにバインドされたローカル IP 情報。設定されていない場合は、サービスを開始するためにデフォルトでローカル IP が選択されますcanal.port # Canal サーバーがソケット サービスを提供するポートcanal.zkServers # Zookeeper クラスターに接続するための Canal サーバーの接続アドレス。例: 10.20.144.22:2181,10.20.144.23:2181 canal.zookeeper.flush.period # zookeeper への canal 永続データの更新頻度 (ミリ秒単位) canal.instance.memory.batch.mode # キャナル メモリ ストアのデータ キャッシュ モード# 1. ITEMSIZE: buffer.size に従って制限し、レコードの数のみを制限します# 2. MEMSIZE: buffer.size * buffer.memunit のサイズに従って、キャッシュされたレコードのサイズを制限します。 canal.instance.memory.buffer.size # キャナル メモリ ストアにキャッシュできるバッファ レコードの数。2 の指数である必要があります。canal.instance.memory.buffer.memunit # メモリ レコードの単位サイズ。デフォルトは 1 KB で、buffer.size と組み合わせて最終的なメモリ使用量のサイズを決定します。canal.instance.transactions.size # サポートされているトランザクションの完全な解決の最大長。この長さを超えると、トランザクションはキャナル ストアへの複数の送信に分割される可能性があり、トランザクションの完全な可視性は保証されません。canal.instance.fallbackIntervalInSeconds # キャナルが MySQL に切り替わるときに、新しい MySQL データベースで binlog を探すときに前方参照する必要がある時間。単位は s # 説明: MySQL マスターおよびスレーブ データベースで解析の遅延またはクロックの不一致が発生する可能性があります。データが失われないようにするには、一定期間ロールバックする必要があります canal.instance.detecting.enable # ハートビート チェックを有効にするかどうか canal.instance.detecting.sql # ハートビート チェック sql、重複キー更新 x=now() で retl.xdual values(1,now()) に挿入 canal.instance.detecting.interval.time # ハートビートチェック頻度、単位は秒 canal.instance.detecting.retry.threshold # ハートビート チェック失敗の再試行回数canal.instance.detecting.heatbeatHaEnable # ハートビート チェックが失敗した後、MySQL 自動切り替えを有効にするかどうか# 注: たとえば、ハートビート チェックがしきい値を超えて失敗した場合、この構成が true であれば、canal は自動的に MySQL スタンバイ データベースに接続して binlog データを取得しますcanal.instance.network.receiveBufferSize # ネットワーク接続パラメータ、SocketOptions.SO_RCVBUF canal.instance.network.sendBufferSize # ネットワーク接続パラメータ、SocketOptions.SO_SNDBUF canal.instance.network.soTimeout # ネットワーク接続パラメータ、SocketOptions.SO_TIMEOUT 1.5.4. canal.mq.dynamicTopic 参考: https://github.com/alibaba/canal/wiki/Canal-Kafka-RocketMQ-QuickStart?tdsourcetag=s_pctim_aiomsg 1.6. 問題解決1. Windowsでcanalを起動するために
解決: 注意: この問題は新しいバージョン
回避策
回避策
1.7. 参考文献キャナル (MySQL データベース binlog に基づく増分サブスクリプションと消費) Canal AdminはCanalクラスターを構築し、 Canal が RabbitMQ と統合 運河シリーズ - 設定ファイルの紹介 mysql-canal-rabbitmq のインストールとデプロイメントに関する非常に詳細なチュートリアルに関するこの記事はこれで終わりです。mysql-canal-rabbitmq のインストールとデプロイメントの詳細については、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
<<: CSS を使用して画像の色を変更する 100 の方法 (収集する価値あり)
>>: VMware インストール後に仮想ネットワーク カードが表示されない問題について
1. 機能: xargs は、stdin 内のスペースまたは改行で区切られたデータをスペースで区切ら...
ナビゲーションバーのサブメニューを再帰的に生成すると、メニューは正常に生成できるが、マウスをホバーす...
腹筋コマンドの原則Apache の ab コマンドは、マルチスレッドの同時リクエストをシミュレートし...
毎日jQueryプラグイン - カルーセルチャートを実装するためのjQueryプラグイン。参考までに...
目次1. 使用方法2. 出力結果1.id 2.選択タイプ3.表4.パーティション5.タイプ6.可能な...
目次すべてのストレージエンジンを表示InnoDB ストレージ エンジンMyISAM ストレージエンジ...
この記事では、centos7 システムの nginx サーバーの下に phalcon 環境を構築する...
1. Web ページをデザインするときに、幅を決定するのは非常に面倒な作業です。 jb51.net ...
目次Tomcat ダウンロードチュートリアルTomcat インストールチュートリアルTomcat の...
最近、プロジェクトをアップグレードするために Docker を使用しました。これまで使用したことがな...
正規表現を使用してIEブラウザのバージョンを判別するIEブラウザかどうか確認するif (docume...
目次まず、値の一部と一致させるために使用される特殊文字であるワイルドカードについて簡単に紹介します。...
効果コード内の画像は自分で変更できますドロップダウンメニューのHTMLコード <ヘッダークラ...
目次シナリオ: サーバーデータベースを毎日定期的にバックアップする必要がある1. まずバックアップス...
この記事では、ウェブ計算機のマインスイーパゲームを実装するためのJavaScriptの具体的なコード...