Oracle GoldenGate 之 SqlServer資料同步到Mysql資料庫
專案描述:
將SqlSever 2008 R2中的資料實時或定時的同步到Mysql 5.6資料庫中。OS | DATABASE | |
來源資料庫 | Window 2008 | MS SQL 2008 R2 |
目標資料庫 | Linux | MySQL 5.6 |
實施方案:
如何初始化資料?
Navicat Premium--可以很方便的將MSSQL SERVER中的資料結構和資料初始化到Mysql資料庫中。如何實現實時同步?
方案1:SyncNavigator--實現MSSQL SERVER和Mysql資料庫之間的資料同步(可選在排程時間和機制)。 方案2:Oracle Goldengate--靈活的實現MSSQL SERVER和Mysql資料庫之間的資料同步。兩種方案的利弊?
使用OGG來實現MSSQL SERVER和MYSQL之間的資料同步
OGG 軟體:
V34020-01Oracle GoldenGate V11.2.1.0.2 for SQL Server on Windows (64bit)
V32399-01
Oracle GoldenGate V11.2.1.0.1 for MySQL 5.x on Linux x86-64)
源端MSSQL SERVER配置
安裝OGG
退出後,切換到OGG目錄下C:\OGG>ggsci Oracle GoldenGate Command Interpreter for SQL Server Version 11.2.1.0.2 OGGCORE_11.2.1.0.2T3_PLATFORMS_120724.2205 Windows x64 (optimized), Microsoft SQL Server on Jul 25 2012 03:04:52 Copyright (C) 1995, 2012, Oracle and/or its affiliates. All rights reserved. GGSCI (WIN-UGCMTTOTKE7) 1> create subdirs Creating subdirectories under current directory C:\OGG Parameter files C:\OGG\dirprm: already exists Report files C:\OGG\dirrpt: created Checkpoint files C:\OGG\dirchk: created Process status files C:\OGG\dirpcs: created SQL script files C:\OGG\dirsql: created Database definitions files C:\OGG\dirdef: created Extract data files C:\OGG\dirdat: created Temporary files C:\OGG\dirtmp: created Stdout files C:\OGG\dirout: created GGSCI (WIN-UGCMTTOTKE7) 2>exit
C:\OGG>INSTALL ADDSERVICE
Service 'GGSMGR' created.
Install program terminated normally.
C:\OGG>
配置ODBC資料來源
Microsoft SQL Server ODBC 驅動程式版本 06.01.7601 資料來源名稱: oa_test 資料來源描述: 伺服器: WIN-UGCMTTOTKE7 資料庫: (Default) 語言: (Default) 翻譯字元資料: Yes 日誌長執行查詢: No 日誌驅動程式統計: No 使用區域設定: No 預定義的語句選項: 在斷開時刪除臨時儲存過程 使用故障轉移伺服器: No 使用 ANSI 引用的識別符號: Yes 使用 ANSI 的空值,填充和警告: Yes 資料加密: No
配置OGG抽取程序
GGSCI (WIN-UGCMTTOTKE7) 8> dblogin sourcedb oa_test,userid yunwei,password "********"
2014-07-21 14:39:28 INFO OGG-03036 Database character set identified as windows-936. Locale: zh_Hans_CN
2014-07-21 14:39:28 INFO OGG-03037 Session character set identified as GBK.
Successfully logged into database.
GGSCI (WIN-UGCMTTOTKE7) 12> add trandata dbo.TEmployees
2014-07-21 14:43:51 WARNING OGG-01483 The key for table [oa_test.dbo.TEmployees] contains one or more variable length
columns. These columns may not have their pre-images written to the transaction log during updates. <span style="color:#ffff99;"> Please use KEYCOLS</span>
to specify a key for Oracle GoldenGate to use on this table.
Logging of supplemental log data is enabled for table dbo.TEmployees
GGSCI (WIN-UGCMTTOTKE7) 13> add trandata dbo.TRecords
2014-07-21 14:46:04 WARNING OGG-01483 The key for table [oa_test.dbo.TRecords] contains one or more variable length co
lumns. These columns may not have their pre-images written to the transaction log during updates. Please use KEYCOLS to specify a key for Oracle GoldenGate to use on this table.
Logging of supplemental log data is enabled for table dbo.TRecords
GGSCI (WIN-UGCMTTOTKE7) 14> edit params oa
編輯如下內容:
defsfile c:\ogg\dirdef\oa.def
sourcedb oa_test,userid yunwei,password "******"
table dbo.TEmployees;
table dbo.TRecords;
執行生成表結構定義檔案
C:\OGG>defgen paramfile c:\ogg\dirprm\oa.prm
將新生成的def檔案拷貝到目標端!
檢視mssql資料庫處於完全恢復模式。
GGSCI (WIN-UGCMTTOTKE7) 3> edit param mgr
填寫如下內容:port 7809
GGSCI (WIN-UGCMTTOTKE7) 5> start mgr
Starting Manager as service ('GGSMGR')...
Service started.
GGSCI (WIN-UGCMTTOTKE7) 8> info all
Program Status Group Lag at Chkpt Time Since C
MANAGER RUNNING
GGSCI (WIN-UGCMTTOTKE7) 9> add extract emssql,tranlog,begin now
EXTRACT added.
GGSCI (WIN-UGCMTTOTKE7) 10> add rmttrail ./dirdat/ms,extract emssql
RMTTRAIL added.
GGSCI (WIN-UGCMTTOTKE7) 11> edit params emssql
編輯內容如下:
EXTRACT EMSSQLSOURCEDB oa_test,userid yunwei,password "******"
TRANLOGOPTIONS MANAGESECONDARYTRUNCATIONPOINT
RMTHOST 192.168.2.34, MGRPORT 7809
RMTTRAIL ./dirdat/ms
TABLE dbo.TEmployees;
TABLE dbo.TRecords; 執行全庫備份。然後啟動程序。並且 trunc. log on chkpt要設定為false
目標端MYSQL配置:
安裝:
可參考mysql版本的OGG安裝步驟,大同小異
配置複製程序:
GGSCI (localhost.localdomain) 2> dblogin sourcedb [email protected]:3306,userid root,password xxxx
Successfully logged into database.
GGSCI (localhost.localdomain) 3> add replicat rmysql,exttrail ./dirdat/ms,nodbcheckpoint
REPLICAT added.
GGSCI (localhost.localdomain) 4> edit params rmysql
填寫如下內容:
replicat rmysqlTARGETDB [email protected]:3306,userid root,password xxx
assumetargetdefs
sourcedefs ./dirdef/oa.def
reperror default,discard
discardfile ./dirrpt/rmysql.dsc,append,megabytes 100
MAP dbo.TEmployees,TARGET oa.temployees,keycols(Employee_ID);
MAP dbo.TRecords,TARGET oa.trecords,keycols(Record_ID),colmap(usedefaults,RinOut=inOut);
至此!配置完成。 接下來就是進行insert update delete測試。
小插曲:
Sql server表中的bit資料型別在抓換到mysql中時為bool(tinyint)型別,這時候ogg會報錯,提示型別不匹配。需要手動將mysql中的相關型別設定為char(1)就OK了。相關推薦
Oracle GoldenGate 之 SqlServer資料同步到Mysql資料庫
專案描述: 將SqlSever 2008 R2中的資料實時或定時的同步到Mysql 5.6資料庫中。 OS DATABASE 來源資料庫 Window 2008 MS SQL 2008 R2 目標資料庫 Linux MySQL 5.6 實施方案: 如何初始化資料?
Oracle GoldenGate 之--異構平臺同步(Mysql到Oracle)
Oracle GoldenGate 異構平臺同步(Mysql到Oracle) 如圖所示:源端採用Mysql庫,目標端採用Oracle庫 一、OGG安裝配置(源端) 1、OGG下載 [[email protected] ogg_ms]$ u
SODBASE實時大資料基礎(一):實時同步Mysql資料庫到Kafka
在實際大資料工作中,常常有實時監測資料庫變化或實時同步資料到大資料儲存,解決大資料實時分析的需求。同時,增量同步資料庫資料相比全量查詢也減少了網路頻寬消耗。本文以Mysql的bin-log到Kafka為例,使用Canal Server,通過SODBASE引擎不用寫程式就可以
[jjzhu學java]之solr4.9同步mysql資料
Solr是一個高效能,採用Java5開發,基於Lucene的全文搜尋伺服器。同時對其進行了擴充套件,提供了比Lucene更為豐富的查詢語言,同時實現了可配置、可擴充套件並對查詢效能進行了優化,並且提供了一個完善的功能管理介面,是一款非常優秀的全文搜尋引擎。
oracle資料庫表結構和資料遷移mysql資料庫
採用的是Navicat 11.2.7版本客戶端工具自帶的資料傳輸功能 1、首先在Navicat中配置有關oracle資料庫的規則檔案,也就是配置oracle 的oci.dll檔案,配置路徑截圖如下: 2、在Navicat中配置oracle資料庫連結,也就是資料來源. 3
用盡洪荒之力整理的Mysql資料庫32條軍規(轉)
用盡洪荒之力整理的Mysql資料庫32條軍規(轉) 今天上午吐血整理了Oracle SQL效能優化的40條軍規,其中很多規則也是適用於Mysql的,結果今晚發現這一篇文章——用盡洪荒之力整理的Mysql資料庫32條軍規,和我的竟有異曲同工之妙,當然不同的是這是由具有12年Java開發經驗的老
利用Python將Excel表中的資料匯入Mysql資料庫
python操作Excel 需要匯入xlrd包,可以通過pip install xlrd 一鍵安裝。 #coding=utf-8 ''' python 將指定目錄下的excel檔案匯入到資料庫中 ''' # 引入資料庫包 import pymysql # 引入操作excel包
Shell_mysql命令以及將資料匯入Mysql資料庫
連線MYSQL資料庫 mysql -h${db_ip} -u${db_user} -p${db_pawd} -P${db_port} -D${db_name} -s -e "${sql}" db_ip:主機地址 db_user :資料庫使用者名稱 db_pwd:密碼 db
利用pandas的to_sql將資料插入MySQL資料庫和所踩過的坑
前言 最近做一個Django web的專案要把爬取的一些資料存入MySQL中,資料儲存為csv格式,想到pandas中有to_sql這個方法,就採用它了 準備:連線MySQL資料庫所需的第三方包pymysql、sqlalchemy(pip安裝即可) 實現 from sql
如何將datagridview中修改的資料同步到資料庫中
C#WINFORM問題DATAGRIDVIEW中COMBOBOX選項改變觸發事件用哪個方法C#WINFORM問題DATAGRIDVIEW中COMBOBOX選項改變觸發事件用哪個方法C#WINFORM問題DATAGRIDVIEW中COMBOBOX選項改變觸發事件用哪個方法C#W
將scrapy爬蟲框架爬取到的資料存入mysql資料庫
使用scrapy爬取網站資料,是一個目前來說比較主流的一個爬蟲框架,也非常簡單。 1、建立好專案之後現在settings.py裡面把ROBOTSTXT_OBEY的值改為False,不然的話會預設遵循robots協議,你將爬取不到任何資料。 2、在爬蟲檔案裡開始寫
python中CSV檔案資料存入mysql資料庫
使用pandas讀取檔案 自定義函式新增資料 #!/usr/bin/env python # -*- coding: utf-8 -*- # @Time : 2018/10/20 10:32 # @Author : deli Guo # @Site :
如何使用SQLyog將大量資料匯入mysql資料庫
之前是通過SQLyog將excel檔案儲存為csv檔案,然後匯入mysql資料庫,不過由於資料量大,建表語句寫的很麻煩(先copy Excel橫表的第一行(屬性那一行),然後轉置,到txt檔案,寫建表語句,加逗號),昨天用一天的時間琢磨這個問題,在前輩的指點下,發現這個能匯
MySQL之—— 使用Hibernate連線MySQL資料庫,MySQL連線超時斷開的問題
最近讓人頭疼的一個問題,就是伺服器在不確定的時間點會出現關於資料庫連線的Exception,大致的Exception如下: org.hibernate.util.JDBCExceptionReporter - SQL Error:0, SQLState: 08S01 o
kettle之mongodb資料同步
需求: 1.源資料庫新增一條記錄,目標庫同時新增一條記錄; 2.源資料庫修改一條記錄,目標庫同時修改該條記錄; 示例用到三個Kettle元件 下面詳細說下每個元件的配置 Source: 本示例連線的是Mongodb資料庫,四個欄位,ID預設為主鍵,_
導資料入mysql資料庫
Ctrl + C excel資料來源 Ctrl + V 貼上到資料庫表中 1、新建一個臨時表 2、貼上資料到臨時表中 注意:複製貼上方法,必須保證貼上的excel裡面資料列和資料庫表中的欄位個數相同,否則報錯 編寫sql,使兩個表的資料同步 INSE
Python3將excel中的資料匯入mysql資料庫
import pymysql # xlrd 為 python 中讀取 excel 的庫,支援.xls 和 .xlsx 檔案 # import xlrd # openpyxl 庫支援 .xlsx 檔案的讀寫 from openpyxl.reader.excel import
python3中將資料存入Mysql資料庫
近期自己練習爬取知乎評論資料,本來打算將資料存入ES,但是因為ES我之前也從來沒有接觸過,所以決定現將資料存入到Mysql資料庫中,網上有很多帖子,但是很多都是適用於python2.x版本,python3中沒有mysqldb,需要使用pymysql,使用如下語句來連結資料
網頁資料儲存mysql資料庫過程問題及解決
#coding:utf-8 from bs4 import BeautifulSoup import pymysql import sqlite3 import sys import importlib importlib.reload(sys) html = """ &l
Nodejs指令碼實現從mongo資料庫遷移資料至mysql資料庫
weibo.jsvar mongoose = require('mongoose'); var connection = mongoose.createConnection('mongodb://12