
рдРрд╕реЗ рд╕рдордп рд╣реЛрддреЗ рд╣реИрдВ рдЬрдм рдЖрдкрдХреЛ рд╕рд┐рд╕реНрдЯрдо рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдХреЛ рдмрджрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рд╢рд╛рдпрдж рдЖрдкрдиреЗ рдЕрдкрдиреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдЕрдбрд╝рдЪрди рдкрд╛рдИ рдпрд╛ рдпрд╣ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ рдХрд┐ рд╡рд░реНрддрдорд╛рди рд╡рд┐рдХрд╛рд╕ рджрд░ рдХреЗ рд╕рд╛рде, рд╕реНрдХреЗрд▓рд┐рдВрдЧ рдпрд╛ рдЧрд▓рддреА рд╕рд╣рд┐рд╖реНрдгреБрддрд╛ рдХреЗ рд╕рд╛рде рдХрдард┐рдирд╛рдЗрдпрд╛рдВ рдЬрд▓реНрдж рд╣реА рдЙрддреНрдкрдиреНрди рд╣реЛ рд╕рдХрддреА рд╣реИрдВред рдмрд╕ рдРрд╕реЗ рдорд╛рдорд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдЯрдВрдЧрд╕реНрдЯрди рдкреНрд░рддрд┐рдХреГрддрд┐ рд╣реИред
рдЯрдВрдЧрд╕реНрдЯрди рд░реЗрдкреНрд▓рд┐рдХреЗрдЯрд░ рдПрдХ рдореБрдХреНрдд, рдЦреБрд▓рд╛ рд╕реНрд░реЛрдд, рдЬрд╛рд╡рд╛-рдЖрдзрд╛рд░рд┐рдд рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╣реИ рдЬреЛ MySQL DBMS рдкреНрд░рддрд┐рдХреГрддрд┐ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рддрд╛ рд╣реИред рдЯрдВрдЧрд╕реНрдЯрди рдХреА рдХреНрд╖рдорддрд╛рдПрдВ рд╡реНрдпрд╛рдкрдХ рд╣реИрдВ, рдЬрд┐рдирдореЗрдВ рдорд▓реНрдЯреА-рдорд╛рд╕реНрдЯрд░ рдкреНрд░рддрд┐рдХреГрддрд┐, рд╕рдорд╛рдирд╛рдВрддрд░ рдкреНрд░рддрд┐рдХреГрддрд┐, MySQL рдФрд░ Oracle, PostgreSQL, MongoDB рдХреЗ рдмреАрдЪ рд╡рд┐рд╖рдо рдбреЗрдЯрд╛ рдкреНрд░рддрд┐рдХреГрддрд┐ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ, рдЕрдзреАрдирд╕реНрде MongoDB рд╕рд░реНрд╡рд░ рдХреЗ рд╕рд╛рде MySQL рд╡рд┐рдЬрд╝рд╛рд░реНрдб рдХреЗ рд╡рд┐рд╖рдо рдкреНрд░рддрд┐рдХреГрддрд┐ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, CentOS 6.5 OS рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рд░реНрдп рдХрд░реЗрдЧрд╛ред
рдирд┐рд░реНрднрд░рддрд╛ рд╕реНрдерд╛рдкрдирд╛рдЪреВрдВрдХрд┐ рдЯрдВрдЧрд╕реНрдЯрди рд░реЗрдкреНрд▓рд┐рдХреЗрдЯрд░ рдЬрд╛рд╡рд╛ рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдХрдо рд╕реЗ рдХрдо рдЖрдкрдХреЛ рдУрдкрдирдЬреЗрдбрдХреЗ 1.6 рдпрд╛ рдУрд░реЗрдХрд▓ рдЬрд╛рд╡рд╛ 6 рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред
# yum install java-1.6.0-openjdk ruby
MySQL рд╕реНрдерд╛рдкрдирд╛рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдкрд╣рд▓реЗ рд╕реЗ MySQL рд╕рд░реНрд╡рд░ рд╕реНрдерд╛рдкрд┐рдд рд╣реИ, рддреЛ рдЖрдкрдХреЛ рдХреЗрд╡рд▓ рдЗрд╕рдХреЗ рд╡рд┐рдиреНрдпрд╛рд╕ рдХреЛ рдЯреНрд╡реАрдХ рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдЬреИрд╕рд╛ рдХрд┐ рдиреАрдЪреЗ рд╡рд░реНрдгрд┐рдд рд╣реИ, рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рджреЛрд╣рд░рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдорд┐рд▓рддрд╛ рд╣реИред
рдпрджрд┐ MySQL рдкрд╣рд▓реЗ рд╕реЗ рдЗрдВрд╕реНрдЯреЙрд▓ рдирд╣реАрдВ рд╣реИ, рддреЛ рдпрд╣рд╛рдВ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВредрдЖрд╡рд╢реНрдпрдХ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХрдиреЗрдХреНрдЯ рдХрд░реЗрдВ:
# rpm -Uvh download.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
# rpm -Uvh rpms.famillecollet.com/enterprise/remi-release-6.rpm
MySQL рд╕рд░реНрд╡рд░ 5.5 рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ:
# yum --enablerepo=remi install mysql mysql-server
рдкреНрд░рддрд┐рдХреГрддрд┐ рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП MySQL рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╕рдорд╛рдпреЛрдЬрд┐рдд рдХрд░реЗрдВ:
# vim /etc/my.cnf
тАж
рд╣рдо рд╕рд┐рд╕реНрдЯрдо рдмреВрдЯ рдкрд░ MySQL рдХреА рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд╢реБрд░реБрдЖрдд рдХреЛ рд╕рдХреНрд░рд┐рдп рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рд╕реЗрд╡рд╛ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ:
# chkconfig --level 35 mysqld on
# service mysqld start
рдЖрд░рдВрднрд┐рдХ MySQL рд╕реНрдерд╛рдкрдирд╛ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЪрд▓рд╛рдПрдБ рдФрд░ рд░реВрдЯ рдкрд╛рд╕рд╡рд░реНрдб рд╕реЗрдЯ рдХрд░реЗрдВред
# mysql_secure_installation
Enter current password for root (enter for none): Change the root password? [Y/n] y New password: SomeSecretPasswD Re-enter new password: SomeSecretPasswD Remove anonymous users? [Y/n] y Disallow root login remotely? [Y/n] y Remove test database and access to it? [Y/n] y Reload privilege tables now? [Y/n] y
рдкреНрд░рддрд┐рдХреГрддрд┐ рдХреЗ рд▓рд┐рдП, рдПрдХ рдЕрд▓рдЧ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╣реЛрдирд╛ рд╡рд╛рдВрдЫрдиреАрдп рд╣реИ:
# mysql -u root -p
# mysql > grant all on *.* to tungsten identified by 'password' with grant option;
Query OK, 0 rows affected (0.01 sec)
MongoDB рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВрдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА MongoDB рд╣реИ, рддреЛ рдЖрдк рдЕрдЧрд▓реЗ рдЪрд░рдг рдкрд░ рдЖрдЧреЗ рдмрдврд╝ рд╕рдХрддреЗ рд╣реИрдВред
рдпрджрд┐ рдирд╣реАрдВ, рддреЛ рдореИрдВрдЧреЛ рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рдирд┐рд░реНрджреЗрд╢ рдпрд╣рд╛рдВ рд╣реИрдВредMongoDB рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░реЗрдВ:
# vim /etc/yum.repos.d/mongodb.repo
[mongodb] name=MongoDB Repository baseurl=http://downloads-distro.mongodb.org/repo/redhat/os/x86_64/ gpgcheck=0 enabled=1
рдФрд░ MongoDB рд╕рд░реНрд╡рд░ 2.4 рдкреИрдХреЗрдЬ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ:
# yum install mongo-10gen mongo-10gen-server
рд╣рдо рд╕рд┐рд╕реНрдЯрдо рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдкрд░ MongoDB рдХреЗ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд▓реЙрдиреНрдЪ рдХреЛ рд╕рдХреНрд░рд┐рдп рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рд╕реЗрд╡рд╛ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ:
# chkconfig --level 35 mongodb on
# service mongodb start
рд╕реЗрд╡рд╛ рдХреЗ рд╕реНрд╡рд╛рд╕реНрдереНрдп рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдбреЗрдЯрд╛рдмреЗрд╕ рдХреА рд╕реВрдЪреА рджреЗрдЦреЗрдВ:
# mongo
MongoDB shell version: 2.4.3
connecting to: test
> show dbs
local 0.078125GB
рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред
MySQL рдХреЗ рд▓рд┐рдП рдорд╛рд╕реНрдЯрд░ рд░реЗрдкреНрд▓рд┐рдХреЗрдЯрд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛рд╡рд░реНрддрдорд╛рди, рд▓реЗрдЦрди рдХреЗ рд╕рдордп, рдкреНрд░рддрд┐рдХреГрддрд┐ рдХрд╛ рд╕рдВрд╕реНрдХрд░рдг рдЗрд╕ рд▓рд┐рдВрдХ рдкрд░ рд╕реНрдерд┐рдд рд╣реИред
рдЖрд░рдВрдн рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдЗрдП рд╣рдорд╛рд░реЗ рдкреНрд░рддрд┐рдХреГрддрд┐ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдПрдВ рдмрдирд╛рддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП / рдСрдкреНрдЯ:
# cd /opt
# mkdir replicator
# cd replicator
# mkdir mysql # -
# mkdir mongodb #
рд╡рд░реНрддрдорд╛рди рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рдкреНрд░рддрд┐рдХреГрддрд┐ рд╕рдВрдЧреНрд░рд╣ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ:
# wget tungsten-replicator.googlecode.com/files/tungsten-replicator-2.2.0-292.tar.gz
# tar -xzf tungsten-replicator-2.2.0-292.tar.gz
# mv tungsten-replicator-2.2.0-292/ tungsten-replicator/
рдЕрдм, рдорд╛рд╕реНрдЯрд░ рдкреНрд░рддрд┐рдХреГрддрд┐ рдХреЗ рд▓рд┐рдП рд╕рдВрд╕реНрдерд╛рдкрди рд╕реНрдХреНрд░рд┐рдкреНрдЯ рддреИрдпрд╛рд░ рдХрд░реЗрдВ:
# vim master-installer.sh
cd /opt/replicator/tungsten-replicator ./tools/tungsten-installer --master-slave -a \ --datasource-type=mysql \ --master-host=127.0.0.1 \ --datasource-user=tungsten \ --datasource-password=password \ --datasource-mysql-conf=/etc/my.cnf --datasource-log-directory=/var/log/mysql/ --datasource-port=3306 \ --service-name=mongodb \ --home-directory=/opt/replicator/mysql \ --cluster-hosts=127.0.0.1 \ --thl-port=10001 \ --rmi-port=11001 \ --java-file-encoding=UTF8 \ --mysql-use-bytes-for-string=false \ --mysql-enable-enumtostring=true \ --mysql-enable-settostring=true \ --svc-extractor-filters=colnames,pkey \ --svc-parallelization-type=none --start-and-report
рдЗрд╕ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдВ рд╕рдм рдХреБрдЫ рджреЛрд╣рд░рд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдЕрд░реНрдерд╛рддреНред рд╕рднреА рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдкреНрд░рддреНрдпреЗрдХ рдЖрдзрд╛рд░ред
рдпрджрд┐ рдЖрдкрдХреЛ рдХрдбрд╝рд╛рдИ рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреЛ рджреЛрд╣рд░рд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рдЖрдк рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рддреБрд░рдВрдд рдкреЗрди рд▓рд╛рдЗрди (svc-extractor-filter) рдХреЛ рдмрджрд▓рдХрд░ рдлрд╝рд┐рд▓реНрдЯрд░ рдХреЛ рдкрд╣рдЪрд╛рди рд╕рдХрддреЗ рд╣реИрдВ:
--svc-extractor-filters=replicate \ "--property=replicator.filter.replicate.do=db1.table1,db2.table2,dbN.tableN" \
рддрджрдиреБрд╕рд╛рд░, db1.table1, рдЖрджрд┐ рдХреЗ рдмрдЬрд╛рдп, рдЕрдкрдиреЗ рдбреЗрдЯрд╛рдмреЗрд╕ рдФрд░ рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░реЗрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдЖрдкрдХреЛ рджреЛрд╣рд░рд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред
рд╡рд┐рдЬрд╝рд╛рд░реНрдб рдХреЗ рд▓рд┐рдП рд╕рдм рдХреБрдЫ рддреИрдпрд╛рд░ рд╣реИ, рд╣рдо рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВ:
# sh master-installer.sh
рдЬрд╛рдирдХрд╛рд░реА >> 127_0_0_1 >> рд╕реЗрд╡рд╛рдУрдВ рдХреА рд╕реВрдЪреА рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛
рдЬрд╛рдирдХрд╛рд░реА >> 127_0_0_1 >> ...
рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рд╕реЗрд╡рд╛рдПрдВ рдЖрджреЗрд╢ ...
рдирд╛рдо рдорд╛рди
- - рдЕрдкреНрд▓рд╛рд╕реНрдЯрд╕реЗрдХреНрдиреЛ: 0
рдЖрд╡реЗрджрди рдкрддреНрд░: 1.218
рднреВрдорд┐рдХрд╛: рдорд╛рд╕реНрдЯрд░
рд╕реЗрд╡рд╛рдирд╛рдо: рдореЛрдВрдЧреЛрдбрдм
serviceType: рд╕реНрдерд╛рдиреАрдп
рд╢реБрд░реВ: рд╕рдЪ
рд░рд╛рдЬреНрдп: рдСрдирд▓рд╛рдЗрди
рд╕рдорд╛рдкреНрдд рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рдЖрджреЗрд╢ ...
рд╡рд┐рдЬрд╝рд╛рд░реНрдб рддреИрдпрд╛рд░ рд╣реИ, рдЕрдм рдЖрдк рдПрдХ рдпрд╛ рдЕрдзрд┐рдХ рджрд╛рд╕реЛрдВ рдХреЛ рдЗрд╕рд╕реЗ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ - рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП MySQL рдпрд╛ PostgreSQLред рд▓реЗрдХрд┐рди рд╣рдорд╛рд░рд╛ рд▓рдХреНрд╖реНрдп MongoDB рдХреЗ рд╕рд╛рде рдкреНрд░рддрд┐рдХреГрддрд┐ рд╣реИ, рдЪрд▓реЛ рдЗрд╕реЗ рдЖрдЧреЗ рдмрдврд╝рд╛рдПрдВред
MongoDB рдХреЗ рд▓рд┐рдП рдЧреБрд▓рд╛рдо рдкреНрд░рддрд┐рдХреГрддрд┐рдпрд╛рдВ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВрд╣рдо рдПрдХ рджрд╛рд╕ рдЕрдиреБрд▓рд┐рдкрд┐рддреНрд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рддреИрдпрд╛рд░ рдХрд░реЗрдВрдЧреЗ рдЬреЛ рдХрд┐ MongoDB рдореЗрдВ рдбреЗрдЯрд╛ рдкрдВрдк рдХрд░реЗрдЧрд╛ред
# vim slave-installer.sh
cd /opt/replicator/tungsten-replicator tools/tungsten-installer --master-slave -a \ --datasource-type=mongodb \ --master-host=127.0.0.1 \ --service-name=mongodb \ --home-directory=/opt/replicator/mongodb \ --cluster-hosts=127.0.0.1 \ --datasource-port=27017 \ --master-thl-port=10001 \ --thl-port=10002 \ --rmi-port=11002 \ --java-file-encoding=UTF8 \ --skip-validation-check=InstallerMasterSlaveCheck \ --svc-parallelization-type=none --start-and-report
рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдореИрдВ рдПрдХ рд╣реЛрд╕реНрдЯ рдкрд░ рдкреНрд░рддрд┐рдХреГрддрд┐ рдХрд░рддрд╛ рд╣реВрдВ, рдЕрдЧрд░ рдЖрдкрдХреЛ рдХрд┐рд╕реА рдЕрдиреНрдп рд╣реЛрд╕реНрдЯ рдХреЛ рджреЛрд╣рд░рд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рд╕рд╣реА рд╣реЛрд╕реНрдЯ рдкрддрд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рди рднреВрд▓реЗрдВ, рдЬрд┐рд╕ рдкрд░ рдЖрдкрдХреЗ рдкрд╛рд╕ рдПрдХ рдорд╛рд╕реНрдЯрд░ рд╣реИ рдФрд░ рдлрд╛рдпрд░рд╡реЙрд▓ (thl-port, rmi-port) рдореЗрдВ рд╕рдВрдмрдВрдзрд┐рдд рдкреЛрд░реНрдЯ рдЦреЛрд▓реЗрдВред
рдпрджрд┐ рд╕рднреА рд╢рд░реНрддреЗрдВ рдкреВрд░реА рд╣реЛрддреА рд╣реИрдВ, рддреЛ рдЖрдк рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВред
# sh slave-installer.sh
WARN >> 127.0.0.1 >> рд╡рд░реНрддрдорд╛рди рдореЗрдВ mongodb рдореЗрдВ THL рд╕реНрдХреАрдорд╛ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдореЗрдВ рдЕрд╕рдорд░реНрде рд╣реИ
рдЬрд╛рдирдХрд╛рд░реА >> 127_0_0_1 >> рд╕реЗрд╡рд╛рдУрдВ рдХреА рд╕реВрдЪреА рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛
рдЬрд╛рдирдХрд╛рд░реА >> 127_0_0_1 >> рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рд╕реЗрд╡рд╛рдПрдВ рдХрдорд╛рдВрдб ...
рдирд╛рдо рдорд╛рди
- - рдЕрдкреНрд▓рд╛рд╕реНрдЯрд╕реЗрдХреНрдиреЛ: 0
рдЖрд╡реЗрджрди рдХреА рдпреЛрдЧреНрдпрддрд╛: 0.5
рднреВрдорд┐рдХрд╛: рдЧреБрд▓рд╛рдо
рд╕реЗрд╡рд╛рдирд╛рдо: рдореЛрдВрдЧреЛрдбрдм
serviceType: рд╕реНрдерд╛рдиреАрдп
рд╢реБрд░реВ: рд╕рдЪ
рд░рд╛рдЬреНрдп: рдСрдирд▓рд╛рдЗрди
рд╕рдорд╛рдкреНрдд рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рдЖрджреЗрд╢ ...
рдпрджрд┐ рд▓рд╛рдЗрди "рд╕реНрдерд┐рддрд┐" рдореЗрдВ рдЖрдкрдХреЛ "ONLINE" рд╕реНрдерд┐рддрд┐ рджрд┐рдЦрд╛рдИ рджреЗрддреА рд╣реИ, рддреЛ рд╕реНрдерд╛рдкрдирд╛ рд╕рдлрд▓ рд░рд╣реА рдереА рдФрд░ рдпрджрд┐ рдкреНрд░рддрд┐рдХреГрддрд┐ рдХрд╛рдо рдХрд░ рд░рд╣реА рд╣реИ рддреЛ рдЖрдк рдЬрд╛рдВрдЪрдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдкреНрд░рддрд┐рдХреГрддрд┐ рдХреА рдЬрд╛рдБрдЪрдкрд░реАрдХреНрд╖рдг рд╢реБрд░реВ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдЖрдкрдХреЛ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХрд┐ рд╕рдВрдмрдВрдзрд┐рдд рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ рдбреЗрдЯрд╛ рдХреЛ рдЧреИрд░-рд░рд┐рд▓реЗрд╢рдирд▓ рдбреЗрдЯрд╛рдмреЗрд╕ рдЬреИрд╕реЗ рдХрд┐ MongoDB рдореЗрдВ рдХреИрд╕реЗ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПред рджрд░рдЕрд╕рд▓, рдкрд╛рд░рдВрдкрд░рд┐рдХ DBMS рдЬреИрд╕реЗ рдХрд┐ MySQL, Oracle, рдФрд░ рдЕрдиреНрдп рдЬреЛ рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдореЗрдВ рдбреЗрдЯрд╛ рд╕реНрдЯреЛрд░ рдХрд░рддреЗ рд╣реИрдВ, рдХреЗ рд╡рд┐рдкрд░реАрдд Mongo рдбреЗрдЯрд╛ рдХреЛ рдПрдХ рд╕рд░рд▓реАрдХреГрдд рд░реВрдк рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддрд╛ рд╣реИ - "рдХреА-рд╡реИрд▓реНрдпреВ"ред рдЗрд╕рд▓рд┐рдП, MySQL рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреЗ рдбреЗрдЯрд╛ рдХреЛ MongoDB рдХреЗ "рд╕рдВрдЧреНрд░рд╣" рдореЗрдВ рдЕрдиреБрд╡рд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдХреЗрд╡рд▓ "рдЗрдиреНрд╕рд░реНрдЯ", "рдЕрдкрдбреЗрдЯ" рдФрд░ "рдбрд┐рд▓реАрдЯ" рдЯреЗрдмрд▓ рдХреЛ рджреЛрд╣рд░рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдмрд╛рдХреА рдХреЗ рдСрдкрд░реЗрд╢рдВрд╕ (рдХреНрд░рд┐рдПрдЯ / рдбреНрд░реЙрдк / рдЕрд▓рд░реНрдЯ) рдХреЛ рд░реЗрдкреНрд▓рд┐рдХреЗрдЯрд░ рджреНрд╡рд╛рд░рд╛ рдирдЬрд░рдЕрдВрджрд╛рдЬ рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
рдЖрдЗрдП рджреЗрдЦреЗрдВ рдХрд┐ рдЖрд╡реЗрд╖рдг рдХреЛ рдХреИрд╕реЗ рджреЛрд╣рд░рд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдПрдХ рдкрд░реАрдХреНрд╖рдг рд╕рд░реНрдХрд┐рдЯ рдФрд░ рдПрдХ рдЯреЗрдмрд▓ рдмрдирд╛рддреЗ рд╣реИрдВ:
mysql> create schema testdb;
mysql> use testdb;
mysql> create table testrepl (id int not null primary key, name char(20), date date);
Query OK, 0 rows affected (0.00 sec)
рдЪрд▓реЛ рджреЛ рдордирдорд╛рдирд╛ рдЖрд╡реЗрд╖рдг рдмрдирд╛рддреЗ рд╣реИрдВ:
mysql> insert into testrepl values (1, 'Vasya', '1965-01-01');
Query OK, 1 row affected (0.00 sec)
mysql> insert into testrepl values (2, 'Petya', '1991-02-02');
Query OK, 1 row affected (0.00 sec)
рдЕрдм рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рджрд╛рд╕ рдХреА рдУрд░ рд╕реЗ рдЙрддреНрдкрдиреНрди рдкреНрд░рддрд┐рдХреГрддрд┐ рдХреНрдпрд╛ рд╣реИ:
> show dbs
local 0.078125GB
testdb 0.203125GB
tungsten_mongodb 0.203125GB
> use testdb
switched to db testdb
> show collections
testrepl
system.indexes
> db.testdb.find()
{ "_id" : тАЬ01тАЭ, "id" : "1", "name" : "Vasya", "date" : "1965-01-01" }
{ "_id" : тАЬ02тАЭ, "id" : "2", "name" : "Petya", "date" : "1991-02-02" }
рдЖрдЗрдП рджреЗрдЦреЗрдВ рдХрд┐ рдЕрдкрдбреЗрдЯ рдХреЛ рдХреИрд╕реЗ рджреЛрд╣рд░рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:
mysql> update testrepl set name = 'Vasya P' where id =1;
Query OK, 1 row affected (0.01 sec)
Rows matched: 1 Changed: 1 Warnings: 0
рдорд╛рдирдЧреЛ рдореЗрдВ рдкрд░рд┐рдгрд╛рдо:
> db.testrepl.find()
{ "_id" : тАЬ01тАЭ, "id" : "1", "name" : "Vasya P", "d" : "1965-01-01" }
{ "_id" : тАЬ02тАЭ, "id" : "2", "name" : "Petya", "date" : "1991-02-02" }
рд░реЗрдкреНрд▓рд┐рдХреЗрдЯрд░ рднреА рдбрд┐рд▓реАрдЯ рдХреЛ рд╣реИрдВрдбрд▓ рдХрд░рддрд╛ рд╣реИ:
mysql> delete from testrepl where id =2;
Query OK, 1 row affected (0.00 sec)
рд░рд┐рд╕реАрд╡рд░ рдкрд░, рд░рд┐рдХреЙрд░реНрдб рднреА рдЪрд▓рд╛ рдЧрдпрд╛:
> db.myfirst.find()
{ "_id" : тАЬ01тАЭ, "id" : "1", "name" : "Vasya P", "d" : "1965-01-01" }
рд╣рдордиреЗ рдХреБрдЫ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЛ рджреЗрдЦрд╛ рдХрд┐ рдкреНрд░рддрд┐рдХреГрддрд┐ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддреА рд╣реИред рдЕрдВрдд рдореЗрдВ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рд░реЗрдкреНрд▓рд┐рдХреЗрдЯрд░ рдЕрдкрдирд╛ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ, рдЖрдк рдХреБрдЫ рдмрдбрд╝реЗ рдбрдВрдк рднрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдлрд┐рд░ рдХреНрд░рдорд╢рдГ MySQL рдФрд░ MongoDB рдореЗрдВ рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдФрд░ рд╕рдВрдЧреНрд░рд╣реЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдЧрд┐рди рд╕рдХрддреЗ рд╣реИрдВред
рдЖрдк рдкреНрд░рддрд┐рдХреГрддрд┐ рд╕реНрдерд┐рддрд┐ рдХреА рдЬрд╛рдВрдЪ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдкреНрд░рддрд┐рдХреГрддрд┐ рдХреЛ рдкреБрдирдГ рдЖрд░рдВрдн рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдпрд╛ рд╕рдВрдмрдВрдзрд┐рдд рд╕реЗрд╡рд╛ рдХреА рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рд╕реЗ trepctl рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреНрд░рддрд┐рдХреГрддрд┐ рдХреЛ рд░реЛрдХ рд╕рдХрддреЗ рд╣реИрдВ:
# cd /opt/replicator/
рдПрдХ рджрд╛рд╕ рдХреЗ рд▓рд┐рдП (MongoDB):
# ./mongodb/tungsten/tungsten-replicator/bin/trepctl status
рдФрд░ рдорд╛рд╕реНрдЯрд░ (MySQL) рдХреЗ рд▓рд┐рдП:
# ./mysql/tungsten/tungsten-replicator/bin/trepctl status
рдкреНрд░рддрд┐рдХреГрддрд┐ рд╕реЗрд╡рд╛ рдХреЛ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдХреЗ рд╡рд┐рд╡рд░рдг рдХреЗ рд▓рд┐рдП, "рд╕рд╣рд╛рдпрддрд╛" рд╡рд┐рдХрд▓реНрдк рдЖрдкрдХреЛ рдмрддрд╛рдПрдЧрд╛ред
рдХреНрдпреЛрдВ?рддрд╛рд░реНрдХрд┐рдХ рд╕рд╡рд╛рд▓ рдпрд╣ рд╣реИ рдХрд┐, рдЖрдкрдХреЛ MongoDB рдпрд╛ рдХрд┐рд╕реА рдЕрдиреНрдп DBMS рдХреЗ рд╕рд╛рде рдкреНрд░рддрд┐рдХреГрддрд┐ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреНрдпреЛрдВ рд╣реЛ рд╕рдХрддреА рд╣реИ? рдХрдИ рдкрд░рд┐рджреГрд╢реНрдп рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рдЧреИрд░-рд╕рдВрдмрдВрдзрдкрд░рдХ рдбреАрдмреАрдПрдордПрд╕ рдХреЗ рд▓рд╛рднреЛрдВ рдХрд╛ рдЕрдиреБрднрд╡ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдбреЗрд╡рд▓рдкрд░ рдХреА рдЗрдЪреНрдЫрд╛ред рдпрд╛ рд╢рд╛рдпрдж MongoDB рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рдПрдХ рдирдпрд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред

рдЕрдВрдд рдореЗрдВ, рдпрд╣ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реИ рдХрд┐ рдЯрдВрдЧрд╕реНрдЯрди рд░реЗрдкреНрд▓рд┐рдХреЗрдЯрд░ рдЖрдкрдХреЗ рд▓рд┐рдП рд╡рд┐рднрд┐рдиреНрди MySQL рдкреНрд░рддрд┐рдХреГрддрд┐ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдорд╛рди рдЙрдкрдпреЛрдЧреА рдЙрдкрдХрд░рдг рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣
рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдмрди рдЧрдпрд╛
рд╣реИ ред рдЗрд╕рдХреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рд╡реНрдпрд╛рдкрдХ рд╣реИ рдФрд░ рд╡рд┐рд╡рд░рдг рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рд▓реЗрдЦ рд▓реЗ рд╕рдХрддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд╡реЗрдмрд╕рд╛рдЗрдЯ рдкрд░ рдПрдХ рдХрд╛рдлреА рд╡рд┐рд╕реНрддреГрдд рджрд╕реНрддрд╛рд╡реЗрдЬ рд╣реИред рдХрд┐рд╕реА рдХреЛ рдХреЙрдиреНрдЯрд┐рдиреЗрдВрдЯрд▓ рд╕реЗ рднреБрдЧрддрд╛рди рдХрд┐рдП рдЧрдП рдЙрджреНрдпрдо рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рд░реБрдЪрд┐ рд╣реЛ рд╕рдХрддреА рд╣реИред рдПрдВрдЯрд░рдкреНрд░рд╛рдЗрдЬрд╝ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ, рд╕рд╛рдореБрджрд╛рдпрд┐рдХ рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд▓рд╛рднреЛрдВ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрд╣ рдШреЛрд╖рдгрд╛ рдХреА рдЧрдИ рд╣реИ: рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд╡рд╕реВрд▓реА, рдЧрд▓рддреА рд╕рд╣рд┐рд╖реНрдгреБрддрд╛, рдбрд╛рдЙрдирдЯрд╛рдЗрдо рдФрд░ рдЕрдиреНрдп рдЙрдкрд╣рд╛рд░реЛрдВ рдХреЗ рдмрд┐рдирд╛ рдЕрдкрдЧреНрд░реЗрдб, рд▓реЗрдХрд┐рди рдмрд╣реБрдд рд╕рд╛рд░реЗ рдкреИрд╕реЗ рдХреЗ рд▓рд┐рдПред
рдЯрдВрдЧрд╕реНрдЯрди рд░реЗрдкреНрд▓рд┐рдХреЗрдЯрд░ рдбреЙрдХреНрдпреВрдореЗрдВрдЯреЗрд╢рди:
рд╡рд┐рд╖рдо рдкреНрд░рддрд┐рдХреГрддрд┐MySQL MongoDB рдкреНрд░рддрд┐рдХреГрддрд┐ рдХреЗ рд▓рд┐рдПрдкреНрд░рд╢рд╛рд╕рдирдЙрдкрдпреЛрдЧреА рд▓реЗрдЦ:
рдЯрдВрдЧрд╕реНрдЯрди рд░реЗрдкреНрд▓рд┐рдХреЗрдЯрд░ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдФрд░ рдкреНрд░рд╢рд╛рд╕рд┐рдд рдХрд░рдирд╛MySQL рд╕реЗ MongoDB рддрдХ рдкреНрд░рддрд┐рдХреГрддрд┐ рдХреЗ рд╕рд╛рде рд╢реБрд░реБрдЖрдд рдХрд░рдирд╛MongoDB рдореИрдиреБрдЕрд▓