Microsoft Sync Framework和复制之间有什么区别?哪一个更好?
在简单的MySQL复制主从配置中,我遇到一个问题,即Master在重启时尝试连接自身作为从属设备.
因此,当我在Master上重启MySQL时,我看到与同一服务器有关的错误试图复制到自身,mysql -e "STOP SLAVE;"每次重启MySQL时我都必须手动运行.
如何在master上禁用slave?
以下是相关部分my.cnf:
## Logging
binlog_format = mixed
log_bin = /var/log/mysql/mysql-bin.log
sync_binlog = 1
pid_file = /var/run/mysqld/mysqld.pid
log_error = /var/log/mysql/error.log
#general_log = 0
#general_log_file = /var/log/mysql/general.log
slow_query_log = 1
slow_query_log_file = /var/log/mysql/slow.log
long_query_time = 3
expire_logs_days = 14
sql_mode = STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
# sql_mode = ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
## Replication
server_id = 200
## Master Configuration
binlog-do-db = my_db_1
binlog-do-db = my_db_2
binlog-do-db = my_db_3
binlog-do-db = my_db_4
binlog-do-db = my_db_5
binlog-do-db = my_db_6
Run Code Online (Sandbox Code Playgroud)
此外,当我跑步时,我 …
我对MySQL复制可以做的事情有一个相当不错的感觉.我想知道其他数据库支持复制,以及它们与MySQL和其他数据库的比较?
我会遇到的一些问题是:
它与BI和来自不同数据源的数据合并相关联,并使该过程更加顺畅.
是否存在从没有Guids的数据库到没有信息丢失的Guids版本的最佳迁移策略?
将mongodb副本集转换为独立服务器后,我遇到以下警告.我做了rs.remove('host')并在启动mongo db时删除了replSet参数.
[root@sam ~]# mongo
MongoDB shell version: 2.4.3
connecting to: test
Server has startup warnings:
Tue Jul 9 17:18:46.076 [initandlisten]
Tue Jul 9 17:18:46.076 [initandlisten] ** WARNING: mongod started without --replSet yet 1 documents are present in local.system.replset
Tue Jul 9 17:18:46.077 [initandlisten] ** Restart with --replSet unless you are doing maintenance and no other clients are connected.
Tue Jul 9 17:18:46.077 [initandlisten] ** The TTL collection monitor will not start because of this.
Tue Jul 9 17:18:46.077 [initandlisten] …Run Code Online (Sandbox Code Playgroud) 我只是混淆了它们如何工作的Sharding和复制......根据定义
复制:MongoDB中的副本集是一组维护相同数据集的mongod进程.
分片:分片是一种跨多台机器存储数据的方法.
根据我的理解,如果有75 GB的数据然后通过复制(3台服务器),它将在每台服务器上存储75GB数据意味着服务器1上75GB,服务器2上75GB和服务器3上75GB.(纠正我如果我错了)..并且通过分片将它存储为服务器-1上的25GB数据,服务器-2上的25Gb数据和服务器-3上的25GB数据.(对吗?)...但是后来我遇到了这一行教程
碎片存储数据.为了提供高可用性和数据一致性,在生产分片集群中,每个分片都是副本集
副本设置为75GB但碎片为25GB,那么它们是如何相同的......这让我感到很困惑......我想我错过了一些很棒的东西.请帮帮我.
我正在尝试使用MySQL Replication Listener Library在HostA和HostB之间进行数据复制.
复制基于基于行的其他语句.我知道MySQL本身有这样的内置功能,但我想自己做 - 从HostA的bin日志中读取所有行更改并将所有这些更改应用到HostB.
我遇到的问题是,我无法暂时禁用触发器,这将导致数据不同步.
举个例子,假设要同步的数据库是TestSyncDB,其中有两个表是Data和DataOp.Data表有一个触发器,一旦将记录插入该表,触发器将为DataOp生成一条新记录.
现在新的记录被插入到HostA.TestSyncDB.Data中,因为有一个触发器,所以实际上会有两个记录添加到数据库中,复制侦听器库将返回给我两个查询,如:
问题是,如果我重播这两个查询到主机B,将会有3个添加到表新记录HostA.TestSyncDB,因为触发器.然后数据永远不会是正确的.
那么如何解决这个问题?有可能暂时禁用触发器吗?如果没有,如何像MySQL Replication那样正确地做到这一点?
问题:在热备模式下,在从属设备上应用WAL更新(从属角色是报告数据库服务器)时,是否可以运行长时间运行的查询(30秒+)?它现在的工作方式是,要么设置下面的参数来杀死长时间运行的查询,以便可以应用WAL更新,或者无限期地延迟WAL更新,直到没有运行查询来应用它们.我们可以同时拥有吗?长时间运行的查询和WAL更新同时应用?
案例实现:我们目前正在使用热备模式来同步从一个主服务器到一个服务器的任何更改.slave角色是一个报告数据库服务器,其查询不断地并发地运行(一些以ms为单位,一些以秒为单位,一些以分钟为单位.)在从站上运行没有活动查询的间隙是非常罕见的.
我们调整了这两个参数,以便在热备用上进行长时间查询:
max_standby_archive_delay = -1 # max delay before canceling queries
max_standby_streaming_delay = -1 # max delay before canceling queries
Run Code Online (Sandbox Code Playgroud)
在postgres邮件列表中查看类似于我们的存档邮件问题:
http://www.postgresql.org/message-id/AANLkTinLg+bpzcjzdndsnGGNFC=D1OsVh+hKb85A-s=n@mail.gmail.com
我理解在查询运行时阻止WAL更新应用于从属的概念.但是,我认为与使用MVCC,从属节点上的活动查询的(长期运行30秒+)可以运行从一个版本/快照读书,一边在施加WAL更新,因此后续的查询将得到WAL更新时WAL事务已提交.我还没有完全消化PostgreSQL中使用的MVCC模型[ https://devcenter.heroku.com/articles/postgresql-concurrency],所以这只是我的假设 - 即使表在一个表中被删除/截断WAL更新,当前运行的查询应该仍然有效,因为它正在使用它查询的表的版本/快照?
简介:无论如何(即使有第三方扩展)我们可以从主服务器同步从服务器并将主服务器的更新立即应用于从服务器,同时让任何执行时间的查询继续运行直到他们在备用服务器上完成/奴隶?如果Hot Standby无法做到这一点,你会为这种情况推荐什么?我们的情况是,我们正在不断地运行postgres并同时运行(一些以ms为单位,一些以秒为单位,一些以分钟为单位),几乎没有时间来应用WAL更新.我们使用过Bucardo,但在这种情况下这不是一个好的选择,因为我们需要同步200多个表,包括视图以及除主数据库之外的40多个其他数据库.
任何帮助将不胜感激.
谢谢!
我正在运行一个主从MySQL二进制日志复制系统(p!),对于某些数据,它不同步(意味着,主机拥有的数据多于从机).但是奴隶经常在最轻微的MySQL错误上停止,这可以被禁用吗?(也许是复制奴隶的my.cnf设置ignore-replicating-errors或者某种类型;))
这就是发生的事情,当奴隶试图复制一个不存在的物品时,奴隶就会死亡.快速查看SHOW SLAVE STATUS\G; 给
Slave-IO-Running: Yes
Slave-SQL-Running: No
Replicate-Do-DB:
Last-Errno: 1062
Last-Error: Error 'Duplicate entry '15218' for key 1' on query. Default database: 'db'. Query: 'INSERT INTO db.table ( FIELDS ) VALUES ( VALUES )'
Run Code Online (Sandbox Code Playgroud)
我通过执行以下操作立即修复(一旦我意识到奴隶已经停止):
STOP SLAVE;
RESET SLAVE;
START SLAVE;
Run Code Online (Sandbox Code Playgroud)
... ...最近这已经变得有点烦人了,在我吐出某种PHP为我做这个之前,我想知道是否有一些my.cnf条目在第一次错误时不会杀死奴隶.
干杯,
/ MP
现在我们正在使用PostgreSQL 8.3(在Linux上)作为我们的Ruby on Rails Web应用程序的数据库后端.
考虑到在PostgreSQL数据库上我们主动使用行级阻塞和PL/PGSQL,我们可以采用什么来保护我们的数据 - 我的意思是工具,包,脚本,策略 - 来成功复制数据库并构建多主组合?
我也会感谢主从建议.
例如,如果我将几个运行Apache/Ruby的应用程序服务器用于实现更高的性能并最终部署多个数据库服务器,那么有没有办法在PostgreSQL中构建多主复制?
现在我们使用PostgreSQL WAL机制将数据备份到文件系统.
非常感谢.
replication ×10
mysql ×4
database ×3
postgresql ×3
sql-server ×3
mongodb ×2
binlog ×1
guid ×1
sharding ×1