เชนเซเช PostgreSQL เช เชจเซ MySQL เชตเชเซเชเซ เชเซเชฐเซเชธ-เชฐเชฟเชชเซเชฒเชฟเชเซเชถเชจ เชคเซเชฎเช เชฌเซ เชกเซเชเชพเชฌเซเช เชธเชฐเซเชตเชฐเซเชธ เชตเชเซเชเซ เชเซเชฐเซเชธ-เชฐเชฟเชชเซเชฒเชฟเชเซเชถเชจ เชธเซเช เชเชฐเชตเชพ เชฎเชพเชเซเชจเซ เชชเชฆเซเชงเชคเชฟเชเชจเซ เชฐเซเชชเชฐเซเชเชพ เชเชชเซเชถ. เชธเชพเชฎเชพเชจเซเชฏ เชฐเซเชคเซ, เชเซเชฐเซเชธ-เชฐเชฟเชชเซเชฒเชฟเชเซเชเซเชก เชกเซเชเชพเชฌเซเชธเซเชธเชจเซ เชธเชเชพเชคเซเชฏ เชเชนเซเชตเชพเชฎเชพเช เชเชตเซ เชเซ, เช เชจเซ เชคเซ เชเช RDBMS เชธเชฐเซเชตเชฐเชฅเซ เชฌเซเชเชพเชฎเชพเช เชเชธเซเชกเชตเชพเชจเซ เช เชจเซเชเซเชณ เชชเชฆเซเชงเชคเชฟ เชเซ.
PostgreSQL เช เชจเซ MySQL เชกเซเชเชพเชฌเซเชเชจเซ เชธเชพเชฎเชพเชจเซเชฏ เชฐเซเชคเซ เชฐเชฟเชฒเซเชถเชจเชฒ เชเชฃเชตเชพเชฎเชพเช เชเชตเซ เชเซ, เชชเชฐเชเชคเซ เชตเชงเชพเชฐเชพเชจเชพ เชเชเซเชธเซเชเซเชจเซเชถเชจเซเชธ เชธเชพเชฅเซ เชคเซเช NoSQL เชเซเชทเชฎเชคเชพเช เชชเซเชฐเชฆเชพเชจ เชเชฐเซ เชเซ. เช เชนเซ เชเชชเชฃเซ เชชเซเชธเซเชเชเซเชฐเซเชเชธเชเซเชฏเซเชเชฒ เช เชจเซ เชฎเชพเชฏเชเชธเชเซเชฏเซเชเชฒ เชตเชเซเชเซ เชฐเซเชฒเซเชถเชจเชฒ เชกเซเชฌเซเชเชฎเชเชธ เชชเชฐเชฟเชชเซเชฐเซเชเซเชทเซเชฏเชฎเชพเช เชชเซเชฐเชคเชฟเชเซเชคเชฟเชจเซ เชเชฐเซเชเชพ เชเชฐเซเชถเซเช.
เช เชฎเซ เชธเชฎเชเซเชฐ เชเชเชคเชฐเชฟเช เชเชพเชฐเซเชฏเชจเซเช เชตเชฐเซเชฃเชจ เชเชฐเซเชถเซเช เชจเชนเซเช, เชซเชเซเชค เชฎเซเชณเชญเซเชค เชธเชฟเชฆเซเชงเชพเชเชคเซเชจเซเช เชตเชฐเซเชฃเชจ เชเชฐเซเชถเซเช เชเซเชฅเซ เชเชฐเซเชจเซ เชคเชฎเชจเซ เชกเซเชเชพเชฌเซเช เชธเชฐเซเชตเชฐเซเชธ, เชซเชพเชฏเชฆเชพ, เชฎเชฐเซเชฏเชพเชฆเชพเช เช เชจเซ เชเชชเชฏเซเชเชจเชพ เชเชฟเชธเซเชธเชพเช เชตเชเซเชเซ เชชเซเชฐเชคเชฟเชเซเชคเชฟ เชเซเช เชตเชตเชพเชจเซ เชเซเชฏเชพเชฒ เชเชตเซ.
เชธเชพเชฎเชพเชจเซเชฏ เชฐเซเชคเซ, เชฌเซ เชธเชฐเชเชพ เชกเซเชเชพเชฌเซเช เชธเชฐเซเชตเชฐ เชตเชเซเชเซเชจเซ เชชเซเชฐเชคเชฟเชเซเชคเชฟ เชเชพเช เชคเซ เชฌเชพเชเชจเชฐเซ เชฎเซเชกเชฎเชพเช เช เชฅเชตเชพ เชฎเชพเชธเซเชเชฐ (เชเชฐเซเชซเซ เชชเซเชฐเชเชพเชถเช, เชฎเชพเชธเซเชเชฐ เช เชฅเชตเชพ เชธเชเซเชฐเชฟเชฏ) เช เชจเซ เชเซเชฒเชพเชฎ (เชธเชฌเซเชธเซเชเซเชฐเชพเชเชฌเชฐ, เชธเซเชเซเชจเซเชกเชฌเชพเชฏ เช เชฅเชตเชพ เชจเชฟเชทเซเชเซเชฐเชฟเชฏ) เชตเชเซเชเซเชจเซ เชเซเชตเซเชฐเซเชจเซ เชเชชเชฏเซเช เชเชฐเซเชจเซ เชเชฐเชตเชพเชฎเชพเช เชเชตเซ เชเซ. เชชเซเชฐเชคเชฟเชเซเชคเชฟเชจเซ เชนเซเชคเซ เชธเซเชฒเซเชต เชฌเชพเชเซ เชชเชฐ เชฎเชพเชธเซเชเชฐ เชกเซเชเชพเชฌเซเชเชจเซ เชฐเซเช เชฒ-เชเชพเชเชฎ เชจเชเชฒ เชชเซเชฐเชฆเชพเชจ เชเชฐเชตเชพเชจเซ เชเซ. เช เชเชฟเชธเซเชธเชพเชฎเชพเช, เชกเซเชเชพ เชฎเชพเชธเซเชเชฐเชฅเซ เชธเซเชฒเซเชตเชฎเชพเช เชธเซเชฅเชพเชจเชพเชเชคเชฐเชฟเชค เชฅเชพเชฏ เชเซ, เชเชเชฒเซ เชเซ, เชธเชเซเชฐเชฟเชฏเชฅเซ เชจเชฟเชทเซเชเซเชฐเชฟเชฏเชฎเชพเช, เชเชพเชฐเชฃ เชเซ เชชเซเชฐเชคเชฟเชเซเชคเชฟ เชซเชเซเชค เชเช เช เชฆเชฟเชถเชพเชฎเชพเช เชเชฐเชตเชพเชฎเชพเช เชเชตเซ เชเซ. เชชเชฐเชเชคเซ เชคเชฎเซ เชฌเชเชจเซ เชฆเชฟเชถเชพเชฎเชพเช เชฌเซ เชกเซเชเชพเชฌเซเช เชตเชเซเชเซ เชชเซเชฐเชคเชฟเชเซเชคเชฟ เชธเซเช เชเชฐเซ เชถเชเซ เชเซ, เชเซเชฅเซ เชกเซเชเชพ เชธเชเซเชฐเชฟเชฏ-เชธเชเซเชฐเชฟเชฏ เชเซเช เชตเชฃเซเชฎเชพเช เชธเซเชฒเซเชตเชฎเชพเชเชฅเซ เชฎเชพเชธเซเชเชฐเชฎเชพเช เชเซเชฐเชพเชจเซเชธเชซเชฐ เชฅเชพเชฏ. เช เชฌเชงเซเช, เชเซเชธเซเชเซเชกเซเชเช เชชเซเชฐเชคเชฟเชเซเชคเชฟ เชธเชนเชฟเชค, เชฌเซ เช เชฅเชตเชพ เชตเชงเซ เชธเชฎเชพเชจ เชกเซเชเชพเชฌเซเช เชธเชฐเซเชตเชฐเซเชธ เชตเชเซเชเซ เชถเชเซเชฏ เชเซ. เชธเชเซเชฐเชฟเชฏ-เชธเชเซเชฐเชฟเชฏ เช เชฅเชตเชพ เชธเชเซเชฐเชฟเชฏ-เชจเชฟเชทเซเชเซเชฐเชฟเชฏ เชเซเช เชตเชฃเซ เชเชฐเซเชฐเชฟเชฏเชพเชค, เชชเซเชฐเชพเชฐเชเชญเชฟเช เชเซเช เชตเชฃเซเชฎเชพเช เชเชตเซ เชเซเชทเชฎเชคเชพเชเชจเซ เชเชชเชฒเชฌเซเชงเชคเชพ เช เชฅเชตเชพ เชฌเชพเชนเซเชฏ เชฐเซเชชเชฐเซเชเชพเชเชเชจ เชธเซเชฒเซเชฏเซเชถเชจเซเชธ เช เชจเซ เชนเชพเชฒเชจเชพ เชเซเชฐเซเชก-เชเชซเชจเชพ เชเชชเชฏเซเช เชชเชฐ เชเชงเชพเชฐเชฟเชค เชเซ.
เชตเชฐเซเชฃเชตเซเชฒ เชฐเซเชชเชฐเซเชเชพเชเชเชจ เชตเชฟเชตเชฟเชง เชกเซเชเชพเชฌเซเช เชธเชฐเซเชตเชฐเซเชธ เชตเชเซเชเซ เชถเชเซเชฏ เชเซ. เชธเชฐเซเชตเชฐเชจเซ เชฌเซเชเชพ เชกเซเชเชพเชฌเซเช เชธเชฐเซเชตเชฐเชฎเชพเชเชฅเซ เชจเชเชฒ เชเชฐเชพเชฏเซเชฒ เชกเซเชเชพ เชธเซเชตเซเชเชพเชฐเชตเชพ เชฎเชพเชเซ เชเซเช เชตเซ เชถเชเชพเชฏ เชเซ เช เชจเซ เชนเชเซ เชชเชฃ เชจเชเชฒ เชเชฐเชพเชฏเซเชฒ เชกเซเชเชพเชจเชพ เชฐเซเช เชฒ-เชเชพเชเชฎ เชธเซเชจเซเชชเชถเซเช เชเชพเชณเชตเซ เชถเชเซ เชเซ. MySQL เช เชจเซ PostgreSQL เชเชฎเชพเชเชจเซ เชฎเซเชเชพเชญเชพเชเชจเซ เชฐเซเชชเชฐเซเชเชพเชเชเชจเซ เชเชจ-เชนเชพเชเชธ เช เชฅเชตเชพ เชคเซเชคเซเชฏ-เชชเชเซเชท เชเชเซเชธเซเชเซเชเชถเชจ เชฆเซเชตเชพเชฐเชพ เชเชซเชฐ เชเชฐเซ เชเซ, เชเซเชฎเชพเช เชฌเชพเชเชจเชฐเซ เชฒเซเช เชชเชฆเซเชงเชคเชฟเช, เชกเชฟเชธเซเช เชฒเซเชเซเชเช เช เชจเซ เชธเซเชเซเชเชฎเซเชจเซเช- เช เชจเซ เชฐเซ-เชเชงเชพเชฐเชฟเชค เชชเชฆเซเชงเชคเชฟเชเชจเซ เชธเชฎเชพเชตเซเชถ เชฅเชพเชฏ เชเซ.
MySQL เช เชจเซ PostgreSQL เชตเชเซเชเซเชจเซ เชเซเชฐเซเชธ เชชเซเชฐเชคเชฟเชเซเชคเชฟ เชเช เชกเซเชเชพเชฌเซเช เชธเชฐเซเชตเชฐเชฅเซ เชฌเซเชเชพเชฎเชพเช เชเช เชตเชเชคเชจเชพ เชธเซเชฅเชณเชพเชเชคเชฐ เชฎเชพเชเซ เชเชฐเซเชฐเซ เชเซ. เช เชกเซเชเชพเชฌเซเช เชตเชฟเชตเชฟเชง เชชเซเชฐเซเชเซเชเซเชฒเชจเซ เชเชชเชฏเซเช เชเชฐเซ เชเซ, เชคเซเชฅเซ เชคเซเชฎเชจเซ เชธเซเชงเซเช เชฒเชฟเชเช เชเชฐเชตเซเช เชถเชเซเชฏ เชจเชฅเซ. เชกเซเชเชพ เชเชเซเชธเชเซเชจเซเช เชธเซเชฅเชพเชชเชฟเชค เชเชฐเชตเชพ เชฎเชพเชเซ, เชคเชฎเซ เชฌเชพเชนเซเชฏ เชเชชเชจ เชธเซเชฐเซเชธ เชเซเชฒเชจเซ เชเชชเชฏเซเช เชเชฐเซ เชถเชเซ เชเซ, เชเชฆเชพเชนเชฐเชฃ เชคเชฐเซเชเซ pg_chameleon.
pg_chameleon เชถเซเช เชเซ
pg_chameleon เช เชชเชพเชฏเชฅเซเชจ 3 เชฎเชพเช MySQL เชฅเซ PostgreSQL เชธเซเชงเซเชจเซ เชชเซเชฐเชคเชฟเชเซเชคเชฟ เชธเชฟเชธเซเชเชฎ เชเซ. เชคเซ เชเชชเชจ เชธเซเชฐเซเชธ mysql-เชฐเชฟเชชเซเชฒเชฟเชเซเชถเชจ เชฒเชพเชเชฌเซเชฐเซเชฐเซเชจเซ เชเชชเชฏเซเช เชเชฐเซ เชเซ, เชชเชพเชฏเชฅเซเชจเชฎเชพเช เชชเชฃ. เชชเชเชเซเชคเชฟเชจเซ เชเชฌเซเช MySQL เชเซเชทเซเชเชเซเชฎเชพเชเชฅเซ เชเชพเชขเชตเชพเชฎเชพเช เชเชตเซ เชเซ เช เชจเซ PostgreSQL เชกเซเชเชพเชฌเซเชเชฎเชพเช JSONB เชเชฌเซเชเซเชเซเช เชคเชฐเซเชเซ เชธเชเชเซเชฐเชนเชฟเชค เชฅเชพเชฏ เชเซ, เช เชจเซ เชชเชเซ pl/pgsql เชซเชเชเซเชถเชจ เชฆเซเชตเชพเชฐเชพ เชกเชฟเชเซเชฐเชฟเชชเซเช เชเชฐเชตเชพเชฎเชพเช เชเชตเซ เชเซ เช เชจเซ PostgreSQL เชกเซเชเชพเชฌเซเชเชฎเชพเช เชชเซเชจเชเชเชคเซเชชเชพเชฆเชฟเชค เชฅเชพเชฏ เชเซ.
pg_chameleon เชจเซ เชตเชฟเชถเซเชทเชคเชพเช
เชเช เช เชเซเชฒเชธเซเชเชฐเชฎเชพเชเชฅเซ เชฌเชนเซเชตเชฟเชง MySQL เชธเซเชเซเชฎเชพ เชเช-เชฅเซ-เชเชฃเซ เชฐเซเชชเชฐเซเชเชพเชเชเชจเชฎเชพเช เชเช เชฒเชเซเชทเซเชฏ เชชเซเชธเซเชเชเซเชฐเซเชเชธเชเซเชฏเซเชเชฒ เชกเซเชเชพเชฌเซเชเชฎเชพเช เชจเชเชฒ เชเชฐเซ เชถเชเชพเชฏ เชเซ.
เชธเซเชคเซเชฐเซเชค เช
เชจเซ เชฒเชเซเชทเซเชฏ เชธเซเชเซเชฎเชพ เชจเชพเชฎเซ เชธเชฎเชพเชจ เชนเซเช เชถเชเชคเชพ เชจเชฅเซ.
เชชเซเชฐเชคเชฟเชเซเชคเชฟ เชกเซเชเชพ เชเชพเชธเซเชเซเชกเซเชก MySQL เชชเซเชฐเชคเชฟเชเซเชคเชฟเชฎเชพเชเชฅเซ เชฎเซเชณเชตเซ เชถเชเชพเชฏ เชเซ.
เชเซเชทเซเชเชเซ เชเซ เชเซ เชจเชเชฒ เชเชฐเซ เชถเชเชคเชพ เชจเชฅเซ เช
เชฅเชตเชพ เชญเซเชฒเซ เชเชคเซเชชเชจเซเชจ เชเชฐเซ เชถเชเชคเชพ เชจเชฅเซ เชคเซ เชฌเชพเชเชพเชค เชเซ.
เชฆเชฐเซเช เชชเซเชฐเชคเชฟเชเซเชคเชฟ เชเชพเชฐเซเชฏ เชกเชฟเชฎเชจ เชฆเซเชตเชพเชฐเชพ เชจเชฟเชฏเชเชคเซเชฐเชฟเชค เชฅเชพเชฏ เชเซ.
YAML-เชเชงเชพเชฐเชฟเชค เชชเชฐเชฟเชฎเชพเชฃเซ เช
เชจเซ เชฐเซเชชเชฐเซเชเชพเชเชเชจ เชซเชพเชเชฒเซ เชฆเซเชตเชพเชฐเชพ เชจเชฟเชฏเชเชคเซเชฐเชฃ.
เชเชฆเชพเชนเชฐเชฃ:
เชนเซเชธเซเช
เชตเซเชเชฎ 1
เชตเซเชเชฎ 2
OS เชธเชเชธเซเชเชฐเชฃ
CentOS Linux 7.6 x86_64
CentOS Linux 7.5 x86_64
เชกเซเชฌเซ เชธเชฐเซเชตเชฐ เชธเชเชธเซเชเชฐเชฃ
เชฎเชพเชฏเชเชธเชเซเชฏเซเชเชฒ 5.7.26
PostgreSQL 10.5
เชกเซเชฌเซ เชชเซเชฐเซเช
3306
5433
เชเชเชชเซ เชธเชฐเชจเชพเชฎเซเช
192.168.56.102
192.168.56.106
เชถเชฐเซ เชเชฐเชตเชพ เชฎเชพเชเซ, pg_chameleon เชเชจเซเชธเซเชเซเชฒ เชเชฐเชตเชพ เชฎเชพเชเซ เชคเชฎเชพเชฎ เชเชฐเซเชฐเซ เชเชเชเซ เชคเซเชฏเชพเชฐ เชเชฐเซ. เช เชเชฆเชพเชนเชฐเชฃ เชชเชพเชฏเชฅเซเชจ 3.6.8 เชเชจเซเชธเซเชเซเชฒ เชเชฐเซ เชเซ, เชเซ เชตเชฐเซเชเซเชฏเซเช เชฒ เชชเชฐเซเชฏเชพเชตเชฐเชฃ เชฌเชจเชพเชตเซ เชเซ เช เชจเซ เชธเชเซเชฐเชฟเชฏ เชเชฐเซ เชเซ.
$> wget https://www.python.org/ftp/python/3.6.8/Python-3.6.8.tar.xz
$> tar -xJf Python-3.6.8.tar.xz
$> cd Python-3.6.8
$> ./configure --enable-optimizations
$> make altinstall
Python3.6 เชธเชซเชณเชคเชพเชชเซเชฐเซเชตเช เชเชจเซเชธเซเชเซเชฒ เชเชฐเซเชฏเชพ เชชเชเซ, เชคเชฎเชพเชฐเซ เชฌเชพเชเซเชจเซ เชเชตเชถเซเชฏเชเชคเชพเชเชจเซ เชชเซเชฐเซเชฃ เชเชฐเชตเชพเชจเซ เชเชฐเซเชฐ เชเซ, เชเซเชฎ เชเซ เชตเชฐเซเชเซเชฏเซเช เชฒ เชชเชฐเซเชฏเชพเชตเชฐเชฃ เชฌเชจเชพเชตเชตเซเช เช เชจเซ เชธเชเซเชฐเชฟเชฏ เชเชฐเชตเซเช. เชตเชงเซเชฎเชพเช, เชชเซเชช เชฎเซเชกเซเชฏเซเชฒเชจเซ เชจเชตเซเชจเชคเชฎ เชธเชเชธเซเชเชฐเชฃ เชชเชฐ เช เชชเชกเซเช เชเชฐเชตเชพเชฎเชพเช เชเชตเซ เชเซ เช เชจเซ pg_chameleon เชเชจเซเชธเซเชเซเชฒ เชเชฐเชตเชพ เชฎเชพเชเซ เชตเชชเชฐเชพเชฏ เชเซ. เชจเซเชเซเชจเชพ เชเชฆเซเชถเซ เชเชฐเชพเชฆเชพเชชเซเชฐเซเชตเช pg_chameleon 2.0.9 เชเชจเซเชธเซเชเซเชฒ เชเชฐเซ เชเซ, เชเซ เชเซ เชจเชตเซเชจเชคเชฎ เชธเชเชธเซเชเชฐเชฃ 2.0.10 เชเซ. เช เชชเชกเซเช เชเชฐเซเชฒ เชธเชเชธเซเชเชฐเชฃเชฎเชพเช เชจเชตเซ เชญเซเชฒเซเชจเซ เชเชพเชณเชตเชพ เชฎเชพเชเซ เช เชเชฐเซเชฐเซ เชเซ.
$> python3.6 -m venv venv
$> source venv/bin/activate
(venv) $> pip install pip --upgrade
(venv) $> pip install pg_chameleon==2.0.9
เช เชฎเซ เชชเชเซ pg_chameleon เชจเซ เชธเชเซเชทเชฎ เชเชฐเชตเชพ เช เชจเซ เชกเชฟเชซเซเชฒเซเช เชกเชฟเชฐเซเชเซเชเชฐเซเช เช เชจเซ เชฐเซเชชเชฐเซเชเชพเชเชเชจ เชซเชพเชเชฒเซ เชฌเชจเชพเชตเชตเชพ เชฎเชพเชเซ set_configuration_files เชฆเชฒเซเชฒ เชธเชพเชฅเซ pg_chameleon (เชเชพเชเชเชกเซ เชเช เชเชฆเซเชถ เชเซ) เชเซเชฒ เชเชฐเซเช เชเซเช.
(venv) $> chameleon set_configuration_files
creating directory /root/.pg_chameleon
creating directory /root/.pg_chameleon/configuration/
creating directory /root/.pg_chameleon/logs/
creating directory /root/.pg_chameleon/pid/
copying configuration example in /root/.pg_chameleon/configuration//config-example.yml
เชนเชตเซ เชเชชเชฃเซ config-example.yml เชจเซ เชจเชเชฒ default.yml เชคเชฐเซเชเซ เชฌเชจเชพเชตเซเช เชเซเช เชเซเชฅเซ เชคเซ เชกเชฟเชซเซเชฒเซเช เชฐเซเชชเชฐเซเชเชพเชเชเชจ เชซเชพเชเชฒ เชฌเชจเซ เชเชพเชฏ. เช เชเชฆเชพเชนเชฐเชฃ เชฎเชพเชเซ เชจเชฎเซเชจเชพ เชฐเซเชชเชฐเซเชเชพเชเชเชจ เชซเชพเชเชฒ เชจเซเชเซ เชเชชเซเชฒ เชเซ.
$> cat default.yml
---
#global settings
pid_dir: '~/.pg_chameleon/pid/'
log_dir: '~/.pg_chameleon/logs/'
log_dest: file
log_level: info
log_days_keep: 10
rollbar_key: ''
rollbar_env: ''
# type_override allows the user to override the default type conversion into a different one.
type_override:
"tinyint(1)":
override_to: boolean
override_tables:
- "*"
#postgres destination connection
pg_conn:
host: "192.168.56.106"
port: "5433"
user: "usr_replica"
password: "pass123"
database: "db_replica"
charset: "utf8"
sources:
mysql:
db_conn:
host: "192.168.56.102"
port: "3306"
user: "usr_replica"
password: "pass123"
charset: 'utf8'
connect_timeout: 10
schema_mappings:
world_x: pgworld_x
limit_tables:
# - delphis_mediterranea.foo
skip_tables:
# - delphis_mediterranea.bar
grant_select_to:
- usr_readonly
lock_timeout: "120s"
my_server_id: 100
replica_batch_size: 10000
replay_max_rows: 10000
batch_retention: '1 day'
copy_max_memory: "300M"
copy_mode: 'file'
out_dir: /tmp
sleep_loop: 1
on_error_replay: continue
on_error_read: continue
auto_maintenance: "disabled"
gtid_enable: No
type: mysql
skip_events:
insert:
- delphis_mediterranea.foo #skips inserts on the table delphis_mediterranea.foo
delete:
- delphis_mediterranea #skips deletes on schema delphis_mediterranea
update:
เช เชเชฆเชพเชนเชฐเชฃเชฎเชพเช เชฐเซเชชเชฐเซเชเชพเชเชเชจ เชซเชพเชเชฒ เช เชจเชฎเซเชจเชพ pg_chameleon เชซเชพเชเชฒ เชเซ เชเซเชฎเชพเช เชธเซเชคเซเชฐเซเชค เช เชจเซ เชฒเชเซเชทเซเชฏ เชตเชพเชคเชพเชตเชฐเชฃเชจเซ เช เชจเซเชฐเซเชช เชจเชเซเชตเชพ เชซเซเชฐเชซเชพเชฐเซ เชธเชพเชฅเซ, เช เชจเซ เชจเซเชเซ เชฐเซเชชเชฐเซเชเชพเชเชเชจ เชซเชพเชเชฒเชจเชพ เชตเชฟเชตเชฟเชง เชตเชฟเชญเชพเชเซเชจเซ เชเชพเชเชเซ เชเซ.
default.yml เชฐเซเชชเชฐเซเชเชพเชเชเชจ เชซเชพเชเชฒเชฎเชพเช เชตเซเชถเซเชตเชฟเช เชธเซเชเชฟเชเชเซเชธเชจเซ เชเช เชตเชฟเชญเชพเช เชเซ, เชเซเชฏเชพเช เชคเชฎเซ เชธเซเชเชฟเชเชเซเชธเชจเซ เชฎเซเชจเซเช เชเชฐเซ เชถเชเซ เชเซ เชเซเชฎ เชเซ เชฒเซเช เชซเชพเชเชฒเชจเซเช เชธเซเชฅเชพเชจ, เชฒเซเชเชจเซเช เชธเซเชฅเชพเชจ, เชฒเซเชเซเชธ เชฎเชพเชเซเชจเซ เชธเชเชเซเชฐเชน เชธเชฎเชฏเชเชพเชณเซ เชตเชเซเชฐเซ. เชเชเชณ เชเชพเชเชช เชเชตเชฐเชฐเชพเชเชก เชตเชฟเชญเชพเช เชเชตเซ เชเซ, เชเซเชฏเชพเช เชชเซเชฐเชคเชฟเชเซเชคเชฟ เชฆเชฐเชฎเชฟเชฏเชพเชจ เชเชตเชฐเชฐเชพเชเชกเชฟเชเช เชชเซเชฐเชเชพเชฐเซ เชฎเชพเชเซ เชจเชฟเชฏเชฎเซเชจเซ เชธเชฎเซเชน. เชเชฆเชพเชนเชฐเชฃ เชเช เชชเซเชฐเชเชพเชฐ เชเชตเชฐเชฐเชพเชเชกเชฟเชเช เชจเชฟเชฏเชฎ เชฎเชพเชเซ เชกเชฟเชซเซเชฒเซเช เชเซ เชเซ tinyint(1) เชจเซ เชฌเซเชฒเชฟเชฏเชจ เชฎเซเชฒเซเชฏเชฎเชพเช เชฐเซเชชเชพเชเชคเชฐเชฟเชค เชเชฐเซ เชเซ. เชเชเชณเชจเชพ เชตเชฟเชญเชพเชเชฎเชพเช, เช เชฎเซ เชฒเชเซเชทเซเชฏ เชกเซเชเชพเชฌเซเช เชธเชพเชฅเซ เชเซเชกเชพเชฃ เชตเชฟเชเชคเซเชจเซ เชเชฒเซเชฒเซเช เชเชฐเซเช เชเซเช. เช เชฎเชพเชฐเชพ เชเชฟเชธเซเชธเชพเชฎเชพเช, เช เชชเซเชธเซเชเชเซเชฐเซเชเชธเชเซเชฏเซเชเชฒ เชกเซเชเชพเชฌเซเช เชเซ, เชจเชฟเชฏเซเชเซเชค pg_conn. เชเซเชฒเซเชฒเชพ เชตเชฟเชญเชพเชเชฎเชพเช, เช เชฎเซ เชธเซเชฐเซเชค เชกเซเชเชพ เชธเซเชเชตเซเช เชเซเช, เชเชเชฒเซ เชเซ, เชธเซเชฐเซเชค เชกเซเชเชพเชฌเซเชเชจเชพ เชเชจเซเชเซเชถเชจ เชชเชฐเชฟเชฎเชพเชฃเซ, เชธเซเชฐเซเชค เช เชจเซ เชฒเชเซเชทเซเชฏ เชกเซเชเชพเชฌเซเชธเซเชธ เชตเชเซเชเซเชจเซ เชฎเซเชชเชฟเชเช เชฏเซเชเชจเชพ, เชเซเชทเซเชเชเซ เชเซ เชเซเชจเซ เชเซเชกเชตเชพเชจเซ เชเชฐเซเชฐ เชเซ, เชฐเชพเชน เชเซเชตเชพเชจเซ เชธเชฎเชฏ, เชฎเซเชฎเชฐเซ, เชชเซเชเซเช เชเชฆ. เชจเซเชเชง เชเชฐเซ เชเซ "เชธเซเชฐเซเชคเซ" เชฌเชนเซเชตเชเชจ เชเซ, เชเซเชจเซ เช เชฐเซเชฅ เชฅเชพเชฏ เชเซ เชเซ เชเชชเชฃเซ เชเช เชฅเซ เชตเชงเซ เชฐเซเชชเชฐเซเชเชพเชเชเชจ เชธเซเช เชเชฐเชตเชพ เชฎเชพเชเซ เชเช เชฒเชเซเชทเซเชฏ เชกเซเชเชพเชฌเซเชเชฎเชพเช เชฌเชนเซเชตเชฟเชง เชธเซเชคเซเชฐเซเชค เชกเซเชเชพเชฌเซเชธเซเชธ เชเชฎเซเชฐเซ เชถเชเซเช เชเซเช.
เชเชฆเชพเชนเชฐเชฃ เชกเซเชเชพเชฌเซเช world_x เชฎเชพเช เชชเชเชเซเชคเชฟเช เชธเชพเชฅเซ 4 เชเซเชทเซเชเชเซ เชเซ เชเซ MySQL เชธเชฎเซเชฆเชพเชฏ เชเชฆเชพเชนเชฐเชฃเซ เชคเชฐเซเชเซ เชชเซเชฐเชฆเชพเชจ เชเชฐเซ เชเซ. เชคเซ เชกเชพเชเชจเชฒเซเชก เชเชฐเซ เชถเชเชพเชฏ เชเซ
MySQL เช เชจเซ PostgreSQL เชกเซเชเชพเชฌเซเชธเซเชธเชฎเชพเช, usr_replica เชจเชพเชฎเชจเชพ เช เชจเชพเชฎ เชธเชพเชฅเซ เชตเชฟเชถเชฟเชทเซเช เชตเชชเชฐเชพเชถเชเชฐเซเชคเชพ เชฌเชจเชพเชตเชตเชพเชฎเชพเช เชเชตเซ เชเซ. MySQL เชฎเชพเช, เชคเซเชจเซ เชคเชฎเชพเชฎ เชจเชเชฒ เชเชฐเซเชฒ เชเซเชทเซเชเชเซเชจเชพ เชตเชงเชพเชฐเชพเชจเชพ เชตเชพเชเชเชตเชพเชจเชพ เช เชงเชฟเชเชพเชฐเซ เชเชชเชตเชพเชฎเชพเช เชเชตเซ เชเซ.
mysql> CREATE USER usr_replica ;
mysql> SET PASSWORD FOR usr_replica='pass123';
mysql> GRANT ALL ON world_x.* TO 'usr_replica';
mysql> GRANT RELOAD ON *.* to 'usr_replica';
mysql> GRANT REPLICATION CLIENT ON *.* to 'usr_replica';
mysql> GRANT REPLICATION SLAVE ON *.* to 'usr_replica';
mysql> FLUSH PRIVILEGES;
PostgreSQL เชฌเชพเชเซ เชชเชฐ, เชเช db_replica เชกเซเชเชพเชฌเซเช เชฌเชจเชพเชตเชตเชพเชฎเชพเช เชเชตเซ เชเซ เชเซ MySQL เชกเซเชเชพเชฌเซเชเชฎเชพเชเชฅเซ เชซเซเชฐเชซเชพเชฐเซ เชธเซเชตเซเชเชพเชฐเชถเซ. PostgreSQL เชฎเชพเช เชตเชชเชฐเชพเชถเชเชฐเซเชคเชพ usr_replica เช เชฌเซ เชธเซเชเซเชฎเชพ, pgworld_x เช เชจเซ sch_chameleon เชจเชพ เชฎเชพเชฒเชฟเช เชคเชฐเซเชเซ เชเชชเชฎเซเชณเซ เชเซเช เชตเซเชฒ เชเซ, เชเซ เช เชจเซเชเซเชฐเชฎเซ เชตเชพเชธเซเชคเชตเชฟเช เชจเชเชฒ เชเซเชทเซเชเชเซ เช เชจเซ เชชเซเชฐเชคเชฟเชเซเชคเชฟ เชจเชฟเชฐเซเชฆเซเชถเชฟเชเชพ เชเซเชทเซเชเชเซ เชงเชฐเชพเชตเซ เชเซ. create_replica_schema เชฆเชฒเซเชฒ เชเชชเซเชเชช เชเซเช เชตเชฃเซ เชฎเชพเชเซ เชเชตเชพเชฌเชฆเชพเชฐ เชเซ, เชเซเชฎ เชคเชฎเซ เชจเซเชเซ เชเซเชถเซ.
postgres=# CREATE USER usr_replica WITH PASSWORD 'pass123';
CREATE ROLE
postgres=# CREATE DATABASE db_replica WITH OWNER usr_replica;
CREATE DATABASE
MySQL เชกเซเชเชพเชฌเซเชเชจเซ เชจเซเชเซ เชฌเชคเชพเชตเซเชฏเชพ เชชเซเชฐเชฎเชพเชฃเซ เชชเซเชฐเชคเชฟเชเซเชคเชฟ เชฎเชพเชเซ เชคเซเชฏเชพเชฐ เชเชฐเชตเชพ เชฎเชพเชเซ เชเซเชเชฒเชพเช เชชเชฐเชฟเชฎเชพเชฃ เชซเซเชฐเชซเชพเชฐเซ เชธเชพเชฅเซ เชเซเช เชตเซเชฒ เชเซ. เชซเซเชฐเชซเชพเชฐเซเชจเซ เชชเซเชฐเชญเชพเชตเชฟเชค เชเชฐเชตเชพ เชฎเชพเชเซ เชคเชฎเชพเชฐเซ เชกเซเชเชพเชฌเซเช เชธเชฐเซเชตเชฐเชจเซ เชชเซเชจเชเชชเซเชฐเชพเชฐเชเชญ เชเชฐเชตเชพเชจเซ เชเชฐเซเชฐ เชชเชกเชถเซ.
$> vi /etc/my.cnf
binlog_format= ROW
binlog_row_image=FULL
log-bin = mysql-bin
server-id = 1
เชนเชตเซ เชฌเชเชจเซ เชกเซเชเชพเชฌเซเช เชธเชฐเซเชตเชฐ เชธเชพเชฅเซ เชเซเชกเชพเชฃ เชคเชชเชพเชธเชตเซเช เชฎเชนเชคเซเชตเชชเซเชฐเซเชฃ เชเซ เชเซเชฅเซ pg_chameleon เชเชฆเซเชถเซ เชเชฒเชพเชตเชคเซ เชตเชเชคเซ เชเซเช เชธเชฎเชธเซเชฏเชพ เชจ เชเชตเซ.
PostgreSQL เชจเซเชก เชชเชฐ:
$> mysql -u usr_replica -Ap'admin123' -h 192.168.56.102 -D world_x
MySQL เชจเซเชก เชชเชฐ:
$> psql -p 5433 -U usr_replica -h 192.168.56.106 db_replica
เชเชเชณเชจเชพ เชคเซเชฐเชฃ pg_chameleon (เชเชพเชเชเชกเซ) เชเชฆเซเชถเซ เชชเชฐเซเชฏเชพเชตเชฐเชฃ เชคเซเชฏเชพเชฐ เชเชฐเซ เชเซ, เชธเซเชคเซเชฐเซเชค เชเชฎเซเชฐเซ เชเซ เช เชจเซ เชชเซเชฐเชคเชฟเชเซเชคเชฟ เชถเชฐเซ เชเชฐเซ เชเซ. pg_chameleon เชฎเชพเชเซ create_replica_schema เชฆเชฒเซเชฒ เชชเซเชธเซเชเชเซเชฐเซเชเชธเชเซเชฏเซเชเชฒ เชกเซเชเชพเชฌเซเชเชฎเชพเช เชกเชฟเชซเซเชฒเซเช เชธเซเชเซเชฎเชพ (sch_chameleon) เช เชจเซ เชชเซเชฐเชคเชฟเชเซเชคเชฟ เชธเซเชเซเชฎเชพ (pgworld_x) เชฌเชจเชพเชตเซ เชเซ, เชเซเชฎ เชเซ เชเชชเชฃเซ เชชเชนเซเชฒเชพเชฅเซ เช เชเชฐเซเชเชพ เชเชฐเซ เชเซ. เชเชก_เชธเซเชฐเซเชธ เชฆเชฒเซเชฒ เชฐเซเชชเชฐเซเชเชพเชเชเชจ เชซเชพเชเชฒ (default.yml) เชตเชพเชเชเซเชจเซ เชฐเซเชชเชฐเซเชเชพเชเชเชจเชฎเชพเช เชธเซเชคเซเชฐเซเชค เชกเซเชเชพเชฌเซเช เชเชฎเซเชฐเซ เชเซ, เช เชจเซ เช เชฎเชพเชฐเชพ เชเชฟเชธเซเชธเชพเชฎเชพเช เชคเซ mysql เชเซ, เช เชจเซ init_replica เชฐเซเชชเชฐเซเชเชพเชเชเชจ เชซเชพเชเชฒเชฎเชพเช เชชเชฐเชฟเชฎเชพเชฃเซเชจเชพ เชเชงเชพเชฐเซ เชฐเซเชชเชฐเซเชเชพเชเชเชจ เชถเชฐเซ เชเชฐเซ เชเซ.
$> chameleon create_replica_schema --debug
$> chameleon add_source --config default --source mysql --debug
$> chameleon init_replica --config default --source mysql --debug
เช เชคเซเชฐเชฃ เชเชฆเซเชถเซเชจเซเช เชเชเชเชชเซเช เชธเซเชชเชทเซเชเชชเชฃเซ เชธเซเชเชตเซ เชเซ เชเซ เชคเซเช เชธเชซเชณเชคเชพเชชเซเชฐเซเชตเช เชเชฒเชพเชตเชตเชพเชฎเชพเช เชเชตเซเชฏเชพ เชนเชคเชพ. เชเซเชเชชเชฃ เชเซเชฐเซเชถ เช เชฅเชตเชพ เชตเชพเชเซเชฏเชฐเชเชจเชพ เชญเซเชฒเซ เชธเชฎเชธเซเชฏเชพเชจเซ เชเซเชตเซ เชฐเซเชคเซ เช เซเช เชเชฐเชตเซ เชคเซเชจเชพ เชธเชเชเซเชคเซ เชธเชพเชฅเซ เชธเชฐเชณ, เชธเซเชชเชทเซเช เชธเชเชฆเซเชถเชพเชเชฎเชพเช เชเชพเชฃ เชเชฐเชตเชพเชฎเชพเช เชเชตเซ เชเซ.
เชเซเชฒเซเชฒเซ, เช เชฎเซ start_replica เชจเซ เชเชชเชฏเซเช เชเชฐเซเชจเซ เชชเซเชฐเชคเชฟเชเซเชคเชฟ เชถเชฐเซ เชเชฐเซเช เชเซเช เช เชจเซ เชธเชซเชณเชคเชพเชจเซ เชธเชเชฆเซเชถ เชชเซเชฐเชพเชชเซเชค เชเชฐเซเช เชเซเช.
$> chameleon start_replica --config default --source mysql
output: Starting the replica process for source mysql
เชชเซเชฐเชคเชฟเชเซเชคเชฟเชจเซ เชธเซเชฅเชฟเชคเชฟ show_status เชฆเชฒเซเชฒเชจเซ เชเชชเชฏเซเช เชเชฐเซเชจเซ เชชเซเชเซ เชถเชเชพเชฏ เชเซ, เช เชจเซ เชญเซเชฒเซ show_errors เชฆเชฒเซเชฒเชจเซ เชเชชเชฏเซเช เชเชฐเซเชจเซ เชเซเช เชถเชเชพเชฏ เชเซ.
เชเชชเชฃเซ เชชเชนเซเชฒเซเชฅเซ เช เชเชนเซเชฏเซเช เชเซ เชคเซเชฎ, เชฆเชฐเซเช เชชเซเชฐเชคเชฟเชเซเชคเชฟ เชเชพเชฐเซเชฏ เชกเชฟเชฎเชจ เชฆเซเชตเชพเชฐเชพ เชจเชฟเชฏเชเชคเซเชฐเชฟเชค เชฅเชพเชฏ เชเซ. เชคเซเชฎเชจเซ เชเซเชตเชพ เชฎเชพเชเซ, เช เชฎเซ เชจเซเชเซ เชฌเชคเชพเชตเซเชฏเชพ เชชเซเชฐเชฎเชพเชฃเซ, Linux ps เชเชฎเชพเชจเซเชก เชตเชกเซ เชชเซเชฐเชเซเชฐเชฟเชฏเชพ เชเซเชทเซเชเชเชจเซ เชเซเชตเซเชฐเซ เชเชฐเซเช เชเซเช.
เชจเซเชเซ เชฌเชคเชพเชตเซเชฏเชพ เชชเซเชฐเชฎเชพเชฃเซ เชเซเชฏเชพเช เชธเซเชงเซ เช เชฎเซ เชคเซเชจเซ เชฐเซเช เชฒ เชเชพเชเชฎเชฎเชพเช เชเชเชพเชธเซเช เชจเชนเซเช เชคเซเชฏเชพเช เชธเซเชงเซ เชชเซเชฐเชคเชฟเชเซเชคเชฟเชจเซ เชเซเช เชตเซเชฒเซ เชเชฃเชตเชพเชฎเชพเช เชเชตเชคเซ เชจเชฅเซ. เช เชฎเซ เชเช เชเซเชฌเชฒ เชฌเชจเชพเชตเซเช เชเซเช, MySQL เชกเซเชเชพเชฌเซเชเชฎเชพเช เชเซเชเชฒเชพเช เชฐเซเชเซเชฐเซเชก เชฆเชพเชเชฒ เชเชฐเซเช เชเซเช, เช เชจเซ เชกเชฟเชฎเชจเชจเซ เช เชชเชกเซเช เชเชฐเชตเชพ เชฎเชพเชเซ pg_chameleon เชฎเชพเช sync_tables เชฆเชฒเซเชฒเชจเซ เชเซเชฒ เชเชฐเซเช เชเซเช เช เชจเซ PostgreSQL เชกเซเชเชพเชฌเซเชเชฎเชพเช เชฐเซเชเซเชฐเซเชกเซเชธ เชธเชพเชฅเซ เชเซเชทเซเชเชเชจเซ เชจเชเชฒ เชเชฐเซเช เชเซเช.
mysql> create table t1 (n1 int primary key, n2 varchar(10));
Query OK, 0 rows affected (0.01 sec)
mysql> insert into t1 values (1,'one');
Query OK, 1 row affected (0.00 sec)
mysql> insert into t1 values (2,'two');
Query OK, 1 row affected (0.00 sec)
$> chameleon sync_tables --tables world_x.t1 --config default --source mysql
Sync tables process for source mysql started.
เชชเชฐเซเชเซเชทเชฃ เชชเชฐเชฟเชฃเชพเชฎเซเชจเซ เชชเซเชทเซเชเชฟ เชเชฐเชตเชพ เชฎเชพเชเซ, เช เชฎเซ PostgreSQL เชกเซเชเชพเชฌเซเชเชฎเชพเชเชฅเซ เชเซเชทเซเชเชเชจเซ เชเซเชตเซเชฐเซ เชเชฐเซเช เชเซเช เช เชจเซ เชชเชเชเซเชคเชฟเชเชจเซเช เชเชเชเชชเซเช เชเชฐเซเช เชเซเช.
$> psql -p 5433 -U usr_replica -d db_replica -c "select * from pgworld_x.t1";
n1 | n2
----+-------
1 | one
2 | two
เชเซ เชเชชเชฃเซ เชธเซเชฅเชณเชพเชเชคเชฐ เชเชฐเซ เชฐเชนเซเชฏเชพ เชเซเช, เชคเซ เชจเซเชเซเชจเชพ pg_chameleon เชเชฆเซเชถเซ เชคเซเชจเซ เช เชเชค เชนเชถเซ. เชฌเชงเชพ เชฒเชเซเชทเซเชฏ เชเซเชทเซเชเชเซเชจเซ เชชเชเชเซเชคเชฟเช เชจเชเชฒ เชเชฐเชตเชพเชฎเชพเช เชเชตเซ เชเซ เชคเซเชจเซ เชเชพเชคเชฐเซ เชเชฐเซเชฏเชพ เชชเชเซ เชเชฆเซเชถเซเชจเซ เช เชฎเชฒเชฎเชพเช เชฎเซเชเชตเชพเชจเซ เชเชฐเซเชฐ เชเซ, เช เชจเซ เชชเชฐเชฟเชฃเชพเชฎ เชธเซเชคเซเชฐเซเชค เชกเซเชเชพเชฌเซเช เช เชฅเชตเชพ เชชเซเชฐเชคเชฟเชเซเชคเชฟ เชฏเซเชเชจเชพ (sch_chameleon) เชจเชพ เชธเชเชฆเชฐเซเชญเซ เชตเชฟเชจเชพ เชธเชฐเชธ เชฐเซเชคเซ เชธเซเชฅเชพเชจเชพเชเชคเชฐเชฟเชค PostgreSQL เชกเซเชเชพเชฌเซเช เชนเชถเซ.
$> chameleon stop_replica --config default --source mysql
$> chameleon detach_replica --config default --source mysql --debug
เชเซ เชเชเซเชเชฟเชค เชนเซเชฏ, เชคเซ เชคเชฎเซ เชฎเซเชณ เชฐเซเชชเชฐเซเชเชพเชเชเชจ เช เชจเซ เชชเซเชฐเชคเชฟเชเซเชคเชฟ เชฏเซเชเชจเชพเชจเซ เชเชพเชขเซ เชจเชพเชเชตเชพ เชฎเชพเชเซ เชจเซเชเซเชจเชพ เชเชฆเซเชถเซเชจเซ เชเชชเชฏเซเช เชเชฐเซ เชถเชเซ เชเซ.
$> chameleon drop_source --config default --source mysql --debug
$> chameleon drop_replica_schema --config default --source mysql --debug
pg_chameleon เชจเชพ เชซเชพเชฏเชฆเชพ
เชธเชฐเชณ เชธเซเชเช
เชช เช
เชจเซ เชฐเซเชชเชฐเซเชเชพเชเชเชจ.
เชธเซเชชเชทเซเช เชญเซเชฒ เชธเชเชฆเซเชถเชพเช เชธเชพเชฅเซ เชธเชฐเชณเชคเชพเชฅเซ เชธเชฎเชธเซเชฏเชพเชจเชฟเชตเชพเชฐเชฃ เช
เชจเซ เชตเชฟเชธเชเชเชคเชคเชพเชเชจเซ เชเชณเชเซ.
เชฌเชพเชเซเชจเชพ เชฐเซเชชเชฐเซเชเชพเชเชเชจเชจเซ เชฌเชฆเชฒเซเชฏเชพ เชตเชฟเชจเชพ เชชเซเชฐเชพเชฐเชเชญ เชชเชเซ เชชเซเชฐเชคเชฟเชเซเชคเชฟเชฎเชพเช เชตเชงเชพเชฐเชพเชจเชพ เชตเชฟเชถเซเชท เชเซเชทเซเชเชเซ เชเชฎเซเชฐเซ เชถเชเชพเชฏ เชเซ.
เชเช เชฒเชเซเชทเซเชฏ เชกเซเชเชพเชฌเซเช เชฎเชพเชเซ เชฌเชนเซเชตเชฟเชง เชธเซเชฐเซเชค เชกเซเชเชพเชฌเซเชเชจเซ เชเซเช เชตเชตเชพเชจเซเช เชถเชเซเชฏ เชเซ, เช
เชจเซ เชเซ เชคเชฎเซ เชเช เช
เชฅเชตเชพ เชตเชงเซ MySQL เชกเซเชเชพเชฌเซเชเชฎเชพเชเชฅเซ เชกเซเชเชพเชจเซ เชเช เชชเซเชธเซเชเชเซเชฐเซเชเชธเชเซเชฏเซเชเชฒ เชกเซเชเชพเชฌเซเชเชฎเชพเช เชเซเชกเซ เชฐเชนเซเชฏเชพเช เชนเซเชต เชคเซ เช เชเซเชฌ เช เชเชชเชฏเซเชเซ เชเซ.
เชคเชฎเชพเชฐเซ เชชเชธเชเชฆ เชเชฐเซเชฒเชพ เชเซเชทเซเชเชเซเชจเซ เชจเชเชฒ เชเชฐเชตเชพเชจเซ เชเชฐเซเชฐ เชจเชฅเซ.
pg_chameleon เชจเชพ เชเซเชฐเชซเชพเชฏเชฆเชพ
เชฎเชพเชคเซเชฐ MySQL 5.5 เช
เชจเซ เชคเซเชจเชพเชฅเซ เชเชชเชฐเชจเชพ เชธเซเชคเซเชฐเซเชค เชคเชฐเซเชเซ เช
เชจเซ PostgreSQL 9.5 เช
เชจเซ เชคเซเชจเชพเชฅเซ เชเชชเชฐเชจเชพ เชฒเชเซเชทเซเชฏ เชกเซเชเชพเชฌเซเช เชคเชฐเซเชเซ เชธเชชเซเชฐเซเชเซเชก เชเซ.
เชฆเชฐเซเช เชเซเชทเซเชเชเชฎเชพเช เชชเซเชฐเชพเชฅเชฎเชฟเช เช
เชฅเชตเชพ เช
เชจเชจเซเชฏ เชเซ เชนเซเชตเซ เชเชตเชถเซเชฏเช เชเซ, เช
เชจเซเชฏเชฅเชพ เชเซเชทเซเชเชเซ init_replica เชชเซเชฐเชเซเชฐเชฟเชฏเชพ เชฆเชฐเชฎเชฟเชฏเชพเชจ เชเชฐเชเชญ เชเชฐเชตเชพเชฎเชพเช เชเชตเซ เชเซ เชชเชฐเชเชคเซ เชคเซเชจเซ เชจเชเชฒ เชเชฐเชตเชพเชฎเชพเช เชเชตเชคเซ เชจเชฅเซ.
เชตเชจ-เชตเซ เชชเซเชฐเชคเชฟเชเซเชคเชฟ - เชฎเชพเชคเซเชฐ MySQL เชฅเซ PostgreSQL เชธเซเชงเซ. เชคเซเชฅเซ, เชคเซ เชซเชเซเชค "เชธเชเซเชฐเชฟเชฏ-เชจเชฟเชทเซเชเซเชฐเชฟเชฏ" เชธเชฐเซเชเชฟเช เชฎเชพเชเซ เชฏเซเชเซเชฏ เชเซ.
เชธเซเชคเซเชฐเซเชค เชฎเชพเชคเซเชฐ MySQL เชกเซเชเชพเชฌเซเช เชนเซเช เชถเชเซ เชเซ, เช
เชจเซ เชธเซเชคเซเชฐเซเชค เชคเชฐเซเชเซ PostgreSQL เชกเซเชเชพเชฌเซเช เชฎเชพเชเซ เชธเชฎเชฐเซเชฅเชจ เชฎเชพเชคเซเชฐ เชชเซเชฐเชพเชฏเซเชเชฟเช เช
เชจเซ เชฎเชฐเซเชฏเชพเชฆเชพเช เชธเชพเชฅเซ เชเซ (เชตเชงเซ เชเชพเชฃเซ
pg_chameleon เชฎเชพเชเซ เชชเชฐเชฟเชฃเชพเชฎเซ
เชกเซเชเชพเชฌเซเชเชจเซ MySQL เชฅเซ PostgreSQL เชฎเชพเช เชธเซเชฅเชพเชจเชพเชเชคเชฐเชฟเชค เชเชฐเชตเชพ เชฎเชพเชเซ pg_chameleon เชฎเชพเช เชชเซเชฐเชคเชฟเชเซเชคเชฟ เชชเชฆเซเชงเชคเชฟ เชเชคเซเชคเชฎ เชเซ. เชจเซเชเชงเชชเชพเชคเซเชฐ เชจเซเชเชธเชพเชจ เช เชเซ เชเซ เชชเซเชฐเชคเชฟเชเซเชคเชฟ เชซเชเซเชค เชเช-เชฎเชพเชฐเซเชเซ เชเซ, เชคเซเชฅเซ เชกเซเชเชพเชฌเซเช เชตเซเชฏเชพเชตเชธเชพเชฏเชฟเชเซ เชธเซเชฅเชณเชพเชเชคเชฐ เชธเชฟเชตเชพเชฏ เช เชจเซเชฏ เชเซเชเชชเชฃ เชตเชธเซเชคเซ เชฎเชพเชเซ เชคเซเชจเซ เชเชชเชฏเซเช เชเชฐเชตเชพ เชฎเชพเชเชเชคเชพ เชนเซเชฏ เชคเซเชตเซ เชถเชเซเชฏเชคเชพ เชจเชฅเซ. เชชเชฐเชเชคเซ เชตเชจ-เชตเซ เชชเซเชฐเชคเชฟเชเซเชคเชฟเชจเซ เชธเชฎเชธเซเชฏเชพ เช เชจเซเชฏ เชเชชเชจ เชธเซเชฐเซเชธ เชเซเชฒ - SymmetricDS เชธเชพเชฅเซ เชเชเซเชฒเซ เชถเชเชพเชฏ เชเซ.
เชธเชคเซเชคเชพเชตเชพเชฐ เชฆเชธเซเชคเชพเชตเซเชเซเชฎเชพเช เชตเชงเซ เชตเชพเชเชเซ
SymmetricDS เชจเซ เชเชพเชเชเซ
SymmetricDS เช เชเช เชเชชเชจ เชธเซเชฐเซเชธ เชเซเชฒ เชเซ เชเซ เชเซเชเชชเชฃ เชกเซเชเชพเชฌเซเชเชจเซ เชเซเชเชชเชฃ เช เชจเซเชฏ เชธเชพเชฎเชพเชจเซเชฏ เชกเซเชเชพเชฌเซเชเชฎเชพเช เชจเชเชฒ เชเชฐเซ เชเซ: Oracle, MongoDB, PostgreSQL, MySQL, SQL เชธเชฐเซเชตเชฐ, MariaDB, DB2, Sybase, Greenplum, Informix, H2, Firebird เช เชจเซ เช เชจเซเชฏ เชเซเชฒเชพเชเชก เชกเซเชเชพเชฌเซเช เชเชฆเชพเชนเชฐเชฃเซ, เชฆเชพ.เชค. เช เชจเซ Redshift, เชเชเซเชฏเซเชฐ, เชตเชเซเชฐเซ เชเชชเชฒเชฌเซเชง เชธเซเชตเชฟเชงเชพเช: เชกเซเชเชพเชฌเซเช เช เชจเซ เชซเชพเชเชฒ เชธเชฟเชเชเซเชฐเซเชจเชพเชเชเซเชถเชจ, เชฎเชฒเซเชเชฟ-เชฎเชพเชธเซเชเชฐ เชกเซเชเชพเชฌเซเช เชชเซเชฐเชคเชฟเชเซเชคเชฟ, เชซเชฟเชฒเซเชเชฐ เชธเชฟเชเชเซเชฐเซเชจเชพเชเชเซเชถเชจ, เชเซเชฐเชพเชจเซเชธเชซเซเชฐเซเชฎเซเชถเชจ เช เชจเซ เช เชจเซเชฏ. เช เชเชพเชตเชพ เชเซเชฒ เชเซ เช เชจเซ เชคเซเชจเซ JRE เช เชฅเชตเชพ JDK (เชธเชเชธเซเชเชฐเชฃ 8.0 เช เชฅเชตเชพ เชเชเซเชเชคเชฐ) เชจเซเช เชชเซเชฐเชฎเชพเชฃเชญเซเชค เชชเซเชฐเชเชพเชถเชจ เชเชฐเซเชฐเซ เชเซ. เช เชนเซเช, เชธเซเชฐเซเชค เชกเซเชเชพเชฌเซเชเชฎเชพเช เชเซเชฐเชฟเชเชฐเซเชธเชฎเชพเช เชกเซเชเชพ เชซเซเชฐเชซเชพเชฐเซ เชฐเซเชเซเชฐเซเชก เชเชฐเซ เชถเชเชพเชฏ เชเซ เช เชจเซ เชฌเซเชเชจเชพ เชฐเซเชชเชฎเชพเช เชฏเซเชเซเชฏ เชฒเชเซเชทเซเชฏ เชกเซเชเชพเชฌเซเชเชจเซ เชฎเซเชเชฒเซ เชถเชเชพเชฏ เชเซ.
SymmetricDS เชฒเชเซเชทเชฃเซ
เชเซเชฒ เชชเซเชฒเซเชเชซเซเชฐเซเชฎ เชธเซเชตเชคเชเชคเซเชฐ เชเซ, เชเชเชฒเซ เชเซ เชฌเซ เชเซ เชคเซเชฅเซ เชตเชงเซ เช
เชฒเช เช
เชฒเช เชกเซเชเชพเชฌเซเช เชกเซเชเชพเชจเซเช เชตเชฟเชจเชฟเชฎเชฏ เชเชฐเซ เชถเชเซ เชเซ.
เชฐเชฟเชฒเซเชถเชจเชฒ เชกเซเชเชพเชฌเซเช เชกเซเชเชพ เชเซเชจเซเช เชฐเซเชเซเชฐเซเชกเชจเซ เชเชชเชฏเซเช เชเชฐเซเชจเซ เชธเชฟเชเชเซเชฐเชจเชพเชเช เชฅเชพเชฏ เชเซ, เชเซเชฏเชพเชฐเซ เชซเชพเชเชฒ เชธเชฟเชธเซเชเชฎ-เชเชงเชพเชฐเชฟเชค เชกเซเชเชพเชฌเซเช เชซเชพเชเชฒ เชธเชฟเชเชเซเชฐเซเชจเชพเชเชเซเชถเชจเชจเซ เชเชชเชฏเซเช เชเชฐเซ เชเซ.
เชจเชฟเชฏเชฎเซเชจเชพ เชธเชฎเซเชนเชจเชพ เชเชงเชพเชฐเซ เชชเซเชถ เช
เชจเซ เชชเซเชฒ เชชเชฆเซเชงเชคเชฟเชเชจเซ เชเชชเชฏเซเช เชเชฐเซเชจเซ เชฆเซเชตเชฟ-เชฎเชพเชฐเซเชเซ เชชเซเชฐเชคเชฟเชเซเชคเชฟ.
เชธเซเชฐเชเซเชทเชฟเชค เช
เชจเซ เชเชเซ เชฌเซเชจเซเชกเชตเชฟเชกเซเชฅ เชจเซเชเชตเชฐเซเชเซเชธ เชชเชฐ เชกเซเชเชพ เชเซเชฐเชพเชจเซเชธเชซเชฐ เชถเชเซเชฏ เชเซ.
เชเซเชฏเชพเชฐเซ เชจเซเชกเซเชธ เชจเชฟเชทเซเชซเชณเชคเชพ เช
เชจเซ เชธเซเชตเชเชพเชฒเชฟเชค เชธเชเชเชฐเซเชท เชฐเชฟเชเซเชฒเซเชฏเซเชถเชจ เชชเชเซ เชซเชฐเซเชฅเซ เชเชพเชฎเชเซเชฐเซ เชถเชฐเซ เชเชฐเซ เชเซ เชคเซเชฏเชพเชฐเซ เชธเซเชตเชเชพเชฒเชฟเชค เชชเซเชจเชเชชเซเชฐเชพเชชเซเชคเชฟ.
เชเซเชฒเชพเชเชก เชธเซเชธเชเชเชค เช
เชจเซ เชถเชเซเชคเชฟเชถเชพเชณเซ เชเชเซเชธเซเชเซเชเชถเชจ API.
เชเชฆเชพเชนเชฐเชฃ:
SymmetricDS เชฌเซเชฎเชพเชเชฅเซ เชเช เชฐเซเชคเซ เชเซเช เชตเซ เชถเชเชพเชฏ เชเซ:
เชเช เชฎเซเชเซเชฏ (เชชเชฟเชคเซ) เชจเซเชก เชเซ เชเซ เชฌเซ เชธเซเชฒเซเชต (เชฌเชพเชณเช) เชจเซเชกเซเชธ เชตเชเซเชเซ เชกเซเชเชพ เชชเซเชฐเชคเชฟเชเซเชคเชฟเชจเซเช เชเซเชจเซเชฆเซเชฐเชฟเชฏ เชฐเซเชคเซ เชธเชเชเชฒเชจ เชเชฐเซ เชเซ เช
เชจเซ เชฌเชพเชณ เชเชพเชเช เซ เชตเชเซเชเซ เชธเชเชเชพเชฐ เชซเชเซเชค เชฎเชพเชคเชพเชชเชฟเชคเชพ เชฆเซเชตเชพเชฐเชพ เช เชฅเชพเชฏ เชเซ.
เชธเชเซเชฐเชฟเชฏ เชจเซเชก (เชจเซเชก 1) เชฎเชงเซเชฏเชธเซเชฅเซ เชตเชฟเชจเชพ เชฌเซเชเชพ เชธเชเซเชฐเชฟเชฏ เชจเซเชก (เชจเซเชก 2) เชธเชพเชฅเซ เชจเชเชฒ เชฎเชพเชเซ เชตเชพเชคเชเซเชค เชเชฐเซ เชถเชเซ เชเซ.
เชฌเชเชจเซ เชตเชฟเชเชฒเซเชชเซเชฎเชพเช, เชชเซเชถ เช
เชจเซ เชชเซเชฒเชจเซ เชเชชเชฏเซเช เชเชฐเซเชจเซ เชกเซเชเชพ เชตเชฟเชจเชฟเชฎเชฏ เชฅเชพเชฏ เชเซ. เช เชเชฆเชพเชนเชฐเชฃเชฎเชพเช เชเชชเชฃเซ เชธเชเซเชฐเชฟเชฏ-เชธเชเซเชฐเชฟเชฏ เชเซเช เชตเชฃเซเชจเซ เชงเซเชฏเชพเชจเชฎเชพเช เชฒเชเชถเซเช. เชธเชฎเชเซเชฐ เชเชฐเซเชเชฟเชเซเชเซเชเชฐเชจเซเช เชตเชฐเซเชฃเชจ เชเชฐเชตเชพเชฎเชพเช เชเชฃเซ เชธเชฎเชฏ เชฒเชพเชเชถเซ, เชคเซเชฅเซ เชคเชฎเชพเชฐเซเช เชธเชเชถเซเชงเชจ เชเชฐเซ.
SymmetricDS เชเชจเซเชธเซเชเซเชฒ เชเชฐเชตเซเช เชเซเชฌ เช เชธเชฐเชณ เชเซ: zip เชซเชพเชเชฒเชจเซเช เชเชชเชจ เชธเซเชฐเซเชธ เชตเชฐเซเชเชจ เชกเชพเชเชจเชฒเซเชก เชเชฐเซ
เชนเซเชธเซเช
เชตเซเชเชฎ 1
เชตเซเชเชฎ 2
OS เชธเชเชธเซเชเชฐเชฃ
CentOS Linux 7.6 x86_64
CentOS Linux 7.6 x86_64
เชกเซเชฌเซ เชธเชฐเซเชตเชฐ เชธเชเชธเซเชเชฐเชฃ
เชฎเชพเชฏเชเชธเชเซเชฏเซเชเชฒ 5.7.26
PostgreSQL 10.5
เชกเซเชฌเซ เชชเซเชฐเซเช
3306
5832
เชเชเชชเซ เชธเชฐเชจเชพเชฎเซเช
192.168.1.107
192.168.1.112
เชธเชชเซเชฐเชฎเชพเชฃ เชกเซเชเชธ เชธเชเชธเซเชเชฐเชฃ
เชธเชชเซเชฐเชฎเชพเชฃ เชกเซเชเชธ 3.9
เชธเชชเซเชฐเชฎเชพเชฃ เชกเซเชเชธ 3.9
SymmetricDS เชธเซเชฅเชพเชชเชจ เชชเชพเชฅ
/usr/local/symmetric-server-3.9.20
/usr/local/symmetric-server-3.9.20
SymmetricDS เชจเซเชก เชจเชพเชฎ
เชเซเชฐเซเชช-000
เชธเซเชเซเชฐ-001
เช เชนเซเช เชเชชเชฃเซ /usr/local/symmetric-server-3.9.20 เชฎเชพเช SymmetricDS เชเชจเซเชธเซเชเซเชฒ เชเชฐเซเช เชเซเช, เช เชจเซ เชตเชฟเชตเชฟเชง เชธเชฌเชกเชฟเชฐเซเชเซเชเชฐเซเช เช เชจเซ เชซเชพเชเชฒเซ เชคเซเชฏเชพเช เชธเชเชเซเชฐเชนเชฟเชค เชฅเชถเซ. เช เชฎเชจเซ เชธเซเชฎเซเชชเชฒ เช เชจเซ เชเชจเซเชเชฟเชจ เชธเชฌเชกเชฟเชฐเซเชเซเชเชฐเซเชเชฎเชพเช เชฐเชธ เชเซ. เชธเซเชฎเซเชชเชฒ เชกเชฟเชฐเซเชเซเชเชฐเซเชฎเชพเช เชจเซเชก เชชเซเชฐเซเชชเชฐเซเชเซเช เชธเชพเชฅเซเชจเซ เชฐเซเชชเชฐเซเชเชพเชเชเชจ เชซเชพเชเชฒเซเชจเซ เชธเชฎเชพเชตเซเชถ เชฅเชพเชฏ เชเซ, เชคเซเชฎเช เชคเชฎเซ เชเชกเชชเชฅเซ เชชเซเชฐเชพเชฐเชเชญ เชเชฐเซ เชถเชเซ เชคเซ เชฎเชพเชเซ SQL เชธเซเชเซเชฐเชฟเชชเซเชเชจเซเช เชเชฆเชพเชนเชฐเชฃ เชเซ.
เชธเซเชฎเซเชชเชฒ เชกเชฟเชฐเซเชเซเชเชฐเซเชฎเชพเช เชเชชเชฃเซ เชจเซเชก เชชเซเชฐเซเชชเชฐเซเชเซเช เชธเชพเชฅเซ เชคเซเชฐเชฃ เชฐเซเชชเชฐเซเชเชพเชเชเชจ เชซเชพเชเชฒเซ เชเซเชเช เชเซเช - เชจเชพเชฎ เชเซเชเซเชเชธ เชธเซเชเซเชฎเชฎเชพเช เชจเซเชกเชจเซ เชชเซเชฐเชเซเชคเชฟ เชฆเชฐเซเชถเชพเชตเซ เชเซ.
corp-000.properties
store-001.properties
store-002.properties
SymmetricDS เชชเชพเชธเซ เชฎเซเชณเชญเซเชค 3-เชจเซเชก เชกเชฟเชเชพเชเชจ (เชตเชฟเชเชฒเซเชช 1) เชฎเชพเชเซ เชคเชฎเชพเชฎ เชเชฐเซเชฐเซ เชฐเซเชชเชฐเซเชเชพเชเชเชจ เชซเชพเชเชฒเซ เชเซ, เช เชจเซ เชคเซ เช เชซเชพเชเชฒเซเชจเซ เชเชชเชฏเซเช 2-เชจเซเชก เชกเชฟเชเชพเชเชจ (เชตเชฟเชเชฒเซเชช 2) เชฎเชพเชเซ เชเชฐเซ เชถเชเชพเชฏ เชเซ. เชเชฐเซเชฐเซ เชฐเซเชชเชฐเซเชเชพเชเชเชจ เชซเชพเชเชฒเชจเซ เชจเชฎเซเชจเชพเช เชกเชฟเชฐเซเชเซเชเชฐเซเชฎเชพเชเชฅเซ vm1 เชนเซเชธเซเช เชชเชฐเชจเชพ เชเชจเซเชเชฟเชจเชฎเชพเช เชจเชเชฒ เชเชฐเซ. เชคเซ เชเชจเซ เชเซเชฎ เชฌเชนเชพเชฐ เชเชตเซ เชเซ:
$> cat engines/corp-000.properties
engine.name=corp-000
db.driver=com.mysql.jdbc.Driver
db.url=jdbc:mysql://192.168.1.107:3306/replica_db?autoReconnect=true&useSSL=false
db.user=root
db.password=admin123
registration.url=
sync.url=http://192.168.1.107:31415/sync/corp-000
group.id=corp
external.id=000
SymmetricDS เชฐเซเชชเชฐเซเชเชพเชเชเชจเชฎเชพเช เช เชจเซเชกเชจเซ corp-000 เชเชนเซเชตเชพเชฎเชพเช เชเชตเซ เชเซ, เช เชจเซ เชกเซเชเชพเชฌเซเช เชเชจเซเชเซเชถเชจ mysql jdbc เชกเซเชฐเชพเชเชตเชฐ เชฆเซเชตเชพเชฐเชพ เชจเชฟเชฏเชเชคเซเชฐเชฟเชค เชฅเชพเชฏ เชเซ, เชเซ เชเชชเชฐเซเชเซเชค เชเชจเซเชเซเชถเชจ เชธเซเชเซเชฐเชฟเชเช เช เชจเซ เชฒเซเชเชฟเชจ เชเชณเชเชชเชคเซเชฐเซเชจเซ เชเชชเชฏเซเช เชเชฐเซ เชเซ. เช เชฎเซ replica_db เชกเซเชเชพเชฌเซเช เชธเชพเชฅเซ เชเชจเซเชเซเช เชเชฐเซเช เชเซเช เช เชจเซ เชธเซเชเซเชฎเชพ เชฌเชจเชพเชตเช เชฆเชฐเชฎเชฟเชฏเชพเชจ เชเซเชทเซเชเชเซ เชฌเชจเชพเชตเชตเชพเชฎเชพเช เชเชตเชถเซ. sync.url เชฆเชฐเซเชถเชพเชตเซ เชเซ เชเซ เชธเชฟเชเชเซเชฐเชจเชพเชเชเซเชถเชจ เชฎเชพเชเซ เชจเซเชกเชจเซ เชเซเชฏเชพเช เชธเชเชชเชฐเซเช เชเชฐเชตเซ.
เชนเซเชธเซเช vm2 เชชเชฐ เชจเซเชก 2 เชธเซเชเซเชฐ-001 เชคเชฐเซเชเซ เชเซเช เชตเซเชฒ เชเซ เช เชจเซ เชฌเชพเชเซเชจเซ เชจเซเชเซ node.properties เชซเชพเชเชฒเชฎเชพเช เชเชฒเซเชฒเซเชเชฟเชค เชเซ. เชจเซเชก เชธเซเชเซเชฐ-001 เชชเซเชธเซเชเชเซเชฐเซเชเชธเชเซเชฏเซเชเชฒ เชกเซเชเชพเชฌเซเช เชเชฒเชพเชตเซ เชเซ เช เชจเซ pgdb_replica เช เชชเซเชฐเชคเชฟเชเซเชคเชฟ เชกเซเชเชพเชฌเซเช เชเซ. registration.url เชนเซเชธเซเช vm2 เชจเซ เชนเซเชธเซเช vm1 เชจเซ เชธเชเชชเชฐเซเช เชเชฐเชตเชพ เช เชจเซ เชคเซเชจเซ เชชเชพเชธเซเชฅเซ เชฐเซเชชเชฐเซเชเชพเชเชเชจ เชตเชฟเชเชคเซ เชชเซเชฐเชพเชชเซเชค เชเชฐเชตเชพเชจเซ เชฎเชเชเซเชฐเซ เชเชชเซ เชเซ.
$> cat engines/store-001.properties
engine.name=store-001
db.driver=org.postgresql.Driver
db.url=jdbc:postgresql://192.168.1.112:5832/pgdb_replica
db.user=postgres
db.password=admin123
registration.url=http://192.168.1.107:31415/sync/corp-000
group.id=store
external.id=001
เชชเซเชฐเซเชฃ เชฅเชฏเซเชฒ SymmetricDS เชเชฆเชพเชนเชฐเชฃเชฎเชพเช เชฌเซ เชกเซเชเชพเชฌเซเช เชธเชฐเซเชตเชฐเซเชธ (เชฌเซ เชจเซเชกเซเชธ) เชตเชเซเชเซ เชฆเซเชตเชฟ-เชฎเชพเชฐเซเชเซ เชชเซเชฐเชคเชฟเชเซเชคเชฟ เชธเซเช เชเชฐเชตเชพ เชฎเชพเชเซเชจเชพ เชชเชฐเชฟเชฎเชพเชฃเซ เชเซ. เชจเซเชเซเชจเชพ เชชเชเชฒเชพเช เชนเซเชธเซเช vm1 (corp-000) เชชเชฐ เชเชฐเชตเชพเชฎเชพเช เชเชตเซ เชเซ, เชเซ 4 เชเซเชทเซเชเชเซ เชธเชพเชฅเซ เชเช เชเชฆเชพเชนเชฐเชฃ เชธเซเชเซเชฎเชพ เชฌเชจเชพเชตเชถเซ. เชชเชเซ symadmin เชเชฆเซเชถ เชธเชพเชฅเซ create-sym-tables เชเชฒเชพเชตเชตเชพเชฅเซ เชกเชฟเชฐเซเชเซเชเชฐเซ เชเซเชทเซเชเชเซ เชฌเชจเซ เชเซ เชเซเชฏเชพเช เชจเซเชกเซเชธ เชตเชเซเชเซเชจเซ เชชเซเชฐเชคเชฟเชเซเชคเชฟเชจเชพ เชจเชฟเชฏเชฎเซ เช เชจเซ เชฆเชฟเชถเชพ เชธเชเชเซเชฐเชนเชฟเชค เชฅเชถเซ. เชเซเชฒเซเชฒเซ, เชจเชฎเซเชจเชพเชจเซ เชกเซเชเชพ เชเซเชทเซเชเชเซเชฎเชพเช เชฒเซเชก เชฅเชพเชฏ เชเซ.
vm1$> cd /usr/local/symmetric-server-3.9.20/bin
vm1$> ./dbimport --engine corp-000 --format XML create_sample.xml
vm1$> ./symadmin --engine corp-000 create-sym-tables
vm1$> ./dbimport --engine corp-000 insert_sample.sql
เชเชฆเชพเชนเชฐเชฃเชฎเชพเช, เชเชเชเชฎ เช เชจเซ เชเชเชเชฎ_เชธเซเชฒเชฟเชเช_เชเชฟเชเชฎเชค เชเซเชทเซเชเชเซ corp-000 เชฅเซ เชธเซเชเซเชฐ-001 เชธเซเชงเซ เชจเชเชฒ เชเชฐเชตเชพ เชฎเชพเชเซ เชเชชเชฎเซเชณเซ เชเซเช เชตเชตเชพเชฎเชพเช เชเชตเซ เชเซ, เช เชจเซ เชตเซเชเชพเชฃ เชเซเชทเซเชเชเซ (sale_transaction เช เชจเซ sale_return_line_item) เชธเซเชเซเชฐ-001 เชฅเซ corp-000 เชฎเชพเช เชจเชเชฒ เชเชฐเชตเชพ เชฎเชพเชเซ เชเชชเชฎเซเชณเซ เชเซเช เชตเชตเชพเชฎเชพเช เชเชตเซ เชเซ. เชนเชตเซ เช เชฎเซ เชนเซเชธเซเช vm2 (store-001) เชชเชฐ PostgreSQL เชกเซเชเชพเชฌเซเชเชฎเชพเช เชเช เชธเซเชเซเชฎเชพ เชฌเชจเชพเชตเซเช เชเซเช เชเซเชฅเซ เชคเซเชจเซ corp-000เชฎเชพเชเชฅเซ เชกเซเชเชพ เชชเซเชฐเชพเชชเซเชค เชเชฐเชตเชพ เชฎเชพเชเซ เชคเซเชฏเชพเชฐ เชเชฐเซ เชถเชเชพเชฏ.
vm2$> cd /usr/local/symmetric-server-3.9.20/bin
vm2$> ./dbimport --engine store-001 --format XML create_sample.xml
เชเชพเชคเชฐเซ เชเชฐเซ เชเซ vm1 เชชเชฐเชจเชพ MySQL เชกเซเชเชพเชฌเซเชเชฎเชพเช เชเชฆเชพเชนเชฐเชฃ เชเซเชทเซเชเชเซ เช เชจเซ SymmetricDS เชเซ เชเซเชฒเซเช เชเซเชทเซเชเชเซ เชเซ. เชจเซเชเชง เชเชฐเซ เชเซ SymmetricDS เชธเชฟเชธเซเชเชฎ เชเซเชทเซเชเชเซ (sym_ เชธเชพเชฅเซ เชเชชเชธเชฐเซเช) เชนเชพเชฒเชฎเชพเช เชซเชเซเชค เชจเซเชก corp-000 เชชเชฐ เช เชเชชเชฒเชฌเซเชง เชเซ เชเชพเชฐเชฃ เชเซ เชคเซ เช เชเชเซเชฏเชพเช เช เชฎเซ create-sym-tables เชเชฆเซเชถ เชเชฒเชพเชตเซเชฏเซ เชเซ เช เชจเซ เชชเซเชฐเชคเชฟเชเซเชคเชฟเชจเซเช เชธเชเชเชพเชฒเชจ เชเชฐเซเชถเซเช. เช เชจเซ เชจเซเชก เชธเซเชเซเชฐ-001 เชชเชฐเชจเชพ เชกเซเชเชพเชฌเซเชเชฎเชพเช เชกเซเชเชพ เชตเชฟเชจเชพ เชฎเชพเชคเซเชฐ 4 เชเชฆเชพเชนเชฐเชฃ เชเซเชทเซเชเชเซ เชนเชถเซ.
เชฌเชงเชพ. เชจเซเชเซ เชฌเชคเชพเชตเซเชฏเชพ เชชเซเชฐเชฎเชพเชฃเซ เชฌเชเชจเซ เชจเซเชกเซเชธ เชชเชฐ เชธเชฟเชฎ เชธเชฐเซเชตเชฐ เชชเซเชฐเชเซเชฐเชฟเชฏเชพเช เชเชฒเชพเชตเชตเชพ เชฎเชพเชเซ เชชเชฐเซเชฏเชพเชตเชฐเชฃ เชคเซเชฏเชพเชฐ เชเซ.
vm1$> cd /usr/local/symmetric-server-3.9.20/bin
vm1$> sym 2>&1 &
เชฒเซเช เชเชจเซเชเซเชฐเซเช เชฌเซเชเชเซเชฐเชพเชเชจเซเชก เชฒเซเช เชซเชพเชเชฒ (symmetric.log) เชจเซ เชกเชพเชฏเชฐเซเชเซเชเชฐเซเชฎเชพเช เชฒเซเช เชซเซเชฒเซเชกเชฐเชฎเชพเช เชฎเซเชเชฒเชตเชพเชฎเชพเช เชเชตเซ เชเซ เชเซเชฏเชพเช SymmetricDS เชเชจเซเชธเซเชเซเชฒ เชเชฐเซเชฒ เชเซ, เชคเซเชฎเช เชชเซเชฐเชฎเชพเชฃเชญเซเชค เชเชเชเชชเซเช เชชเชฐ. เชธเชฟเชฎ เชธเชฐเซเชตเชฐ เชนเชตเซ เชจเซเชก เชธเซเชเซเชฐ-001 เชชเชฐ เชถเชฐเซ เชเชฐเซ เชถเชเชพเชฏ เชเซ.
vm2$> cd /usr/local/symmetric-server-3.9.20/bin
vm2$> sym 2>&1 &
เชเซ เชคเชฎเซ vm2 เชนเซเชธเซเช เชชเชฐ sym เชธเชฐเซเชตเชฐ เชชเซเชฐเชเซเชฐเชฟเชฏเชพ เชเชฒเชพเชตเซ เชเซ, เชคเซ เชคเซ PostgreSQL เชกเซเชเชพเชฌเซเชเชฎเชพเช SymmetricDS เชเซเชเชฒเซเช เชเซเชทเซเชเชเซ เชชเชฃ เชฌเชจเชพเชตเชถเซ. เชเซ เชคเชฎเซ เชฌเชเชจเซ เชจเซเชกเซเชธ เชชเชฐ เชธเชฟเชฎ เชธเชฐเซเชตเชฐ เชชเซเชฐเชเซเชฐเชฟเชฏเชพ เชเชฒเชพเชตเซ เชเซ, เชคเซ เชคเซเช เชเซเชฐเซเชช-000 เชฅเซ เชธเซเชเซเชฐ-001 เชธเซเชงเซเชจเชพ เชกเซเชเชพเชจเซ เชจเชเชฒ เชเชฐเชตเชพ เชฎเชพเชเซ เชเชเชฌเซเชเชพ เชธเชพเชฅเซ เชธเชเชเชฒเชจ เชเชฐเซ เชเซ. เชเซ เชฅเซเชกเซเช เชธเซเชเชจเซเชกเซ เชชเชเซ เชเชชเชฃเซ เชฌเชเชจเซ เชฌเชพเชเซเชจเชพ เชคเชฎเชพเชฎ 4 เชเซเชทเซเชเชเซเชจเซ เชเซเชตเซเชฐเซ เชเชฐเซเช, เชคเซ เชเชชเชฃเซ เชเซเชถเซเช เชเซ เชชเซเชฐเชคเชฟเชเซเชคเชฟ เชธเชซเชณ เชนเชคเซ. เช เชฅเชตเชพ เชคเชฎเซ เชจเซเชเซเชจเชพ เชเชฆเซเชถ เชธเชพเชฅเซ corp-001 เชฎเชพเชเชฅเซ เชจเซเชก เชธเซเชเซเชฐ-000 เชชเชฐ เชฌเซเชเชธเซเชเซเชฐเซเชช เชฎเซเชเชฒเซ เชถเชเซ เชเซ.
vm1$> ./symadmin --engine corp-000 reload-node 001
เช เชธเชฎเชฏเซ, เชจเซเชก เชเซเชฐเซเชช-000 (เชนเซเชธเซเช: vm1) เชชเชฐ MySQL เชกเซเชเชพเชฌเซเชเชฎเชพเช เชเชเชเชฎ เชเซเชฌเชฒเชฎเชพเช เชเช เชจเชตเซ เชฐเซเชเซเชฐเซเชก เชฆเชพเชเชฒ เชเชฐเชตเชพเชฎเชพเช เชเชตเซ เชเซ, เช เชจเซ เชคเชฎเซ เชจเซเชก เชธเซเชเซเชฐ-001 (เชนเซเชธเซเช: vm2) เชชเชฐ เชชเซเชธเซเชเชเซเชฐเซเชเชธเชเซเชฏเซเชเชฒ เชกเซเชเชพเชฌเซเชเชฎเชพเช เชคเซเชจเซ เชชเซเชฐเชคเชฟเชเซเชคเชฟ เชคเชชเชพเชธเซ เชถเชเซ เชเซ. เช เชฎเซ เชกเซเชเชพเชจเซ เชเซเชฐเซเชช-000 เชฅเซ เชธเซเชเซเชฐ-001 เชชเชฐ เชเชธเซเชกเชตเชพ เชฎเชพเชเซ เชชเซเชฒ เชเชชเชฐเซเชถเชจ เชเซเชเช เชเซเช.
mysql> insert into item values ('22000002','Jelly Bean');
Query OK, 1 row affected (0.00 sec)
vm2$> psql -p 5832 -U postgres pgdb_replica -c "select * from item"
item_id | name
----------+-----------
11000001 | Yummy Gum
22000002 | Jelly Bean
(2 rows)
เชธเซเชเซเชฐ-001 เชฅเซ เชเซเชฐเซเชช-000 เชฎเชพเช เชกเซเชเชพ เชเชธเซเชกเชตเชพ เชฎเชพเชเซ เชชเซเชถ เชเชชเชฐเซเชถเชจ เชเชฐเชตเชพ เชฎเชพเชเซ, เช เชฎเซ เชตเซเชเชพเชฃ_เชเซเชฐเชพเชจเซเชเซเชเซเชถเชจ เชเซเชทเซเชเชเชฎเชพเช เชเช เชฐเซเชเซเชฐเซเชก เชฆเชพเชเชฒ เชเชฐเซเช เชเซเช เช เชจเซ เชเชเชพเชธเซ เชเซ เชชเซเชฐเชคเชฟเชเซเชคเชฟ เชธเชซเชณ เชเซ.
เช เชฎเซ MySQL เช เชจเซ PostgreSQL เชกเซเชเชพเชฌเซเชธเซเชธ เชตเชเซเชเซเชจเชพ เชเชฆเชพเชนเชฐเชฃ เชเซเชทเซเชเชเซเชจเซ เชฆเซเชตเชฟ-เชฎเชพเชฐเซเชเซ เชชเซเชฐเชคเชฟเชเซเชคเชฟเชจเซเช เชธเชซเชณ เชธเซเชเช เชช เชเซเชฏเซเช. เชจเชตเชพ เชตเชชเชฐเชพเชถเชเชฐเซเชคเชพ เชเซเชทเซเชเชเซ เชฎเชพเชเซ เชชเซเชฐเชคเชฟเชเซเชคเชฟ เชธเซเช เชเชฐเชตเชพ เชฎเชพเชเซ, เช เชชเชเชฒเชพเช เช เชจเซเชธเชฐเซ: เช เชฎเซ เชเชฆเชพเชนเชฐเชฃ เชคเชฐเซเชเซ เชเซเชทเซเชเช t1 เชฌเชจเชพเชตเซเช เชเซเช เช เชจเซ เชคเซเชจเชพ เชชเซเชฐเชคเชฟเชเซเชคเชฟเชจเชพ เชจเชฟเชฏเชฎเซ เชจเซเชเซ เชชเซเชฐเชฎเชพเชฃเซ เชเซเช เชตเซเช เชเซเช. เช เชฐเซเชคเซ เชเชชเชฃเซ เชฎเชพเชคเซเชฐ corp-000 เชฅเซ store-001 เชธเซเชงเซเชจเซ เชชเซเชฐเชคเชฟเชเซเชคเชฟ เชเซเช เชตเซเช เชเซเช.
mysql> create table t1 (no integer);
Query OK, 0 rows affected (0.01 sec)
mysql> insert into sym_channel (channel_id,create_time,last_update_time)
values ('t1',current_timestamp,current_timestamp);
Query OK, 1 row affected (0.01 sec)
mysql> insert into sym_trigger (trigger_id, source_table_name,channel_id,
last_update_time, create_time) values ('t1', 't1', 't1', current_timestamp,
current_timestamp);
Query OK, 1 row affected (0.01 sec)
mysql> insert into sym_trigger_router (trigger_id, router_id,
Initial_load_order, create_time,last_update_time) values ('t1',
'corp-2-store-1', 1, current_timestamp,current_timestamp);
Query OK, 1 row affected (0.01 sec)
เชชเชเซ เชฐเซเชชเชฐเซเชเชพเชเชเชจเชจเซ เชธเซเชเซเชฎเชพ เชซเซเชฐเชซเชพเชฐเชจเซ เชธเซเชเชจเชพ เชเชชเชตเชพเชฎเชพเช เชเชตเซ เชเซ, เชเชเชฒเซ เชเซ, เชธเชฟเชเช-เชเซเชฐเชฟเชเชฐเซเชธ เชฆเชฒเซเชฒ เชธเชพเชฅเซ symadmin เชเชฆเซเชถเชจเซ เชเชชเชฏเซเช เชเชฐเซเชจเซ, เชเช เชจเชตเซเช เชเซเชฌเชฒ เชเชฎเซเชฐเชตเซเช, เชเซ เชเซเชฌเชฒ เชตเซเชฏเชพเชเซเชฏเชพเชเชจเซ เชฎเซเชช เชเชฐเชตเชพ เชฎเชพเชเซ เชเซเชฐเชฟเชเชฐเซเชธเชจเซ เชซเชฐเซเชฅเซ เชฌเชจเชพเชตเซ เชเซ. เชจเซเชก เชธเซเชเซเชฐ-001 เชชเชฐ เชธเซเชเซเชฎเชพ เชซเซเชฐเชซเชพเชฐเซ เชฎเซเชเชฒเชตเชพ เชฎเชพเชเซ send-schema เชเชฒเชพเชตเชตเชพเชฎเชพเช เชเชตเซ เชเซ, เช เชจเซ เชเซเชทเซเชเช t1 เชจเซ เชจเชเชฒ เชเซเช เชตเชตเชพเชฎเชพเช เชเชตเซ เชเซ.
vm1$> ./symadmin -e corp-000 --node=001 sync-triggers
vm1$> ./symadmin send-schema -e corp-000 --node=001 t1
SymmetricDS เชจเชพ เชฒเชพเชญเซ
เชคเซเชฐเชฃ-เชจเซเชก เช
เชฅเชตเชพ เชฌเซ-เชจเซเชก เชธเชฐเซเชเชฟเช เชฌเชจเชพเชตเชตเชพ เชฎเชพเชเซ เชชเชฐเชฟเชฎเชพเชฃเซ เชธเชพเชฅเซ เชซเชพเชเชฒเซเชจเชพ เชคเซเชฏเชพเชฐ เชธเซเช เชธเชนเชฟเชค เชธเชฐเชณ เชเชจเซเชธเซเชเซเชฒเซเชถเชจ เช
เชจเซ เชเซเช เชตเชฃเซ.
เชธเชฐเซเชตเชฐ, เชฒเซเชชเชเซเชช เช
เชจเซ เชฎเซเชฌเชพเชเชฒ เชเชชเชเชฐเชฃเซ เชธเชนเชฟเชค เชเซเชฐเซเชธ-เชชเซเชฒเซเชเชซเซเชฐเซเชฎ เชกเซเชเชพเชฌเซเชธเซเชธ เช
เชจเซ เชชเซเชฒเซเชเชซเซเชฐเซเชฎ เชธเซเชตเชคเชเชคเซเชฐเชคเชพ.
เชเซเชเชชเชฃ เชกเซเชเชพเชฌเซเชเชจเซ เชธเซเชฅเชพเชจเชฟเช เชฐเซเชคเซ, WAN เชชเชฐ เช
เชฅเชตเชพ เชเซเชฒเชพเชเชกเชฎเชพเช เชเซเชเชชเชฃ เช
เชจเซเชฏ เชกเซเชเชพเชฌเซเชเชฎเชพเช เชจเชเชฒ เชเชฐเซ.
เช
เชจเซเชเซเชณ เชชเซเชฐเชคเชฟเชเซเชคเชฟ เชฎเชพเชเซ เชเซเชเชฒเชพเช เชกเซเชเชพเชฌเซเช เช
เชฅเชตเชพ เชนเชเชพเชฐเซ เชธเชพเชฅเซ เชถเซเชฐเซเชทเซเช เชเชพเชฐเซเชฏเชจเซ เชถเชเซเชฏเชคเชพ.
GUI เช
เชจเซ เชเชคเซเชคเชฎ เชธเชฎเชฐเซเชฅเชจ เชธเชพเชฅเซ เชเซเชเชตเซเชฒ เชธเชเชธเซเชเชฐเชฃ.
SymmetricDS เชจเชพ เชเซเชฐเชซเชพเชฏเชฆเชพ
เชเซเชเซเชฒเซเช เชเซเชทเซเชเชเซ เชฒเซเชก เชเชฐเชตเชพ เชฎเชพเชเซ เชคเชฎเชพเชฐเซ เชเชฆเซเชถ เชตเชพเชเซเชฏ เชชเชฐ เชชเซเชฐเชคเชฟเชเซเชคเชฟเชจเชพ เชจเชฟเชฏเชฎเซ เช
เชจเซ เชฆเชฟเชถเชพเชจเซ เชฎเซเชจเซเชฏเซเช
เชฒเซ เชตเซเชฏเชพเชเซเชฏเชพเชฏเชฟเชค เชเชฐเชตเชพเชจเซ เชเชฐเซเชฐ เชเซ, เชเซ เช
เชธเซเชตเชฟเชงเชพเชเชจเช เชนเซเช เชถเชเซ เชเซ.
เชชเซเชฐเชคเชฟเชเซเชคเชฟ เชฎเชพเชเซ เชเชฃเชพ เชเซเชทเซเชเชเซ เชธเซเชฏเซเชเชฟเชค เชเชฐเชตเซเช เชเชเชเชพเชณเชพเชเชจเช เชนเซเช เชถเชเซ เชเซ เชธเชฟเชตเชพเชฏ เชเซ เชคเชฎเซ SQL เชธเซเชเซเชเชฎเซเชจเซเช เชฌเชจเชพเชตเชตเชพ เชฎเชพเชเซ เชธเซเชเซเชฐเชฟเชชเซเชเชจเซ เชเชชเชฏเซเช เชเชฐเซ เชเซ เชเซ เชชเซเชฐเชคเชฟเชเซเชคเชฟเชจเชพ เชจเชฟเชฏเชฎเซ เช
เชจเซ เชฆเชฟเชถเชพเชจเซ เชตเซเชฏเชพเชเซเชฏเชพเชฏเชฟเชค เชเชฐเซ เชเซ.
เชฒเซเชเชฎเชพเช เชเชฃเซ เชฌเชงเซ เชฎเชพเชนเชฟเชคเซ เชฐเซเชเซเชฐเซเชก เชเชฐเชตเชพเชฎเชพเช เชเชตเซ เชฐเชนเซ เชเซ, เช
เชจเซ เชเซเชเชฒเซเชเชตเชพเชฐ เชคเชฎเชพเชฐเซ เชฒเซเช เชซเชพเชเชฒเชจเซ เชตเซเชฏเชตเชธเซเชฅเชฟเชค เชเชฐเชตเชพเชจเซ เชเชฐเซเชฐ เชชเชกเซ เชเซ เชเซเชฅเซ เชคเซ เชตเชงเซ เชเชเซเชฏเชพ เชจ เชฒเซ.
SymmetricDS เชฎเชพเชเซ เชชเชฐเชฟเชฃเชพเชฎเซ
SymmetricDS เชคเชฎเชจเซ เชซเชพเชเชฒเซเชจเซ เชจเชเชฒ เช เชจเซ เชธเชฟเชเชเซเชฐเชจเชพเชเช เชเชฐเชตเชพ เชฎเชพเชเซ เชฌเซ, เชคเซเชฐเชฃ เช เชฅเชตเชพ เชคเซ เชเซเชเชฒเชพเช เชนเชเชพเชฐ เชจเซเชกเซเชธ เชตเชเซเชเซ เชฆเซเชตเชฟ-เชฎเชพเชฐเซเชเซ เชชเซเชฐเชคเชฟเชเซเชคเชฟ เชธเซเช เชเชฐเชตเชพเชจเซ เชฎเชเชเซเชฐเซ เชเชชเซ เชเซ. เช เชเช เช เชจเชจเซเชฏ เชธเชพเชงเชจ เชเซ เชเซ เชธเซเชตเชคเชเชคเซเชฐ เชฐเซเชคเซ เชเชฃเชพ เชเชพเชฐเซเชฏเซ เชเชฐเซ เชเซ, เชเซเชฎ เชเซ เชจเซเชก เชชเชฐ เชฒเชพเชเชฌเชพ เชธเชฎเชฏ เชธเซเชงเซ เชกเชพเชเชจเชเชพเชเชฎ เชชเชเซ เชธเซเชตเชเชพเชฒเชฟเชค เชกเซเชเชพ เชชเซเชจเชเชชเซเชฐเชพเชชเซเชคเชฟ, HTTPS เชฆเซเชตเชพเชฐเชพ เชจเซเชกเซเชธ เชตเชเซเชเซ เชธเซเชฐเชเซเชทเชฟเชค เช เชจเซ เชเชพเชฐเซเชฏเชเซเชทเชฎ เชกเซเชเชพ เชตเชฟเชจเชฟเชฎเชฏ, เชจเชฟเชฏเชฎเซเชจเชพ เชธเชฎเซเชนเชจเชพ เชเชงเชพเชฐเซ เชธเซเชตเชเชพเชฒเชฟเชค เชธเชเชเชฐเซเชท เชธเชเชเชพเชฒเชจ เชตเชเซเชฐเซ. SymmetricDS เชเชฐเซ เชเซ. เชเซเชเชชเชฃ เชกเซเชเชพเชฌเซเช เชตเชเซเชเซ เชชเซเชฐเชคเชฟเชเซเชคเชฟ, เชคเซเชฅเซ, เชคเซเชจเซ เชเชชเชฏเซเช เชตเชฟเชตเชฟเชง เชชเซเชฐเชเชพเชฐเชจเชพ เชฆเซเชถเซเชฏเซ เชฎเชพเชเซ เชฅเช เชถเชเซ เชเซ, เชเซเชฎเชพเช เชธเซเชฅเชณเชพเชเชคเชฐ, เชธเซเชฅเชณเชพเชเชคเชฐ, เชตเชฟเชคเชฐเชฃ, เชซเชฟเชฒเซเชเชฐเชฟเชเช เช เชจเซ เชธเชฎเชเซเชฐ เชชเซเชฒเซเชเชซเซเชฐเซเชฎ เชชเชฐ เชกเซเชเชพเชจเชพ เชฐเซเชชเชพเชเชคเชฐเชฃเชจเซ เชธเชฎเชพเชตเซเชถ เชฅเชพเชฏ เชเซ.
เชเชฆเชพเชนเชฐเชฃ เช
เชงเชฟเชเชพเชฐเซ เชชเชฐ เชเชงเชพเชฐเชฟเชค เชเซ
เชธเซเชฐเซเชธ: www.habr.com