我在多主复制设置中配置了两个MySQL服务器.每个人都是奴隶,掌握着另一个人.我的应用程序要求在后台运行一些大型查询,这些查询的结果将用于填充表.我想,我可以在一台服务器上运行这些大型查询,而应用程序前端则使用另一台服务器.这样,在服务器运行这些查询时,应用程序不会变慢.
这些查询非常大INSERT .... SELECT.通过我的复制设置,似乎当一个服务器完成查询时,而不是仅仅将INSERT发送到从服务器,它使从服务器运行原始的大型INSERT/SELECT.
这真的发生了吗?或者有没有办法看到从主服务器发送到从服务器的命令,以验证这是行为?我能告诉的唯一方法是CPU负载.
是否有一种方法让奴隶只能从INSERT中获得结果INSERT ...在主服务器上运行SELECT?
检查是否以SQL 2000,2005和2008兼容格式启用复制的最简单方法是什么?不需要任何状态信息...只是为了知道它是否已启用数据库.我需要这个,因为如果在尝试执行架构更新之前启用了复制,我希望我的Db Migration代码抛出异常.
谢谢.
我将在生产中使用Postgres数据库但是想要使用MS SQL(无论版本)进行报告.所以,我想设置MS SQL从postgres订阅的复制.这可能吗?
我开始使用pymongo(版本2.2.1)ReplicaSetConnection对象而不是pymongo.Connection对象.现在,当我从数据库执行读取时,例如:
if cur.count() == 0:
raise NoDocumentsFound(self.name, self.COLLECTION_NAME)
elif cur.count() > 1:
raise TooManyDocumentsFound(self.name, self.COLLECTION_NAME)
cur.rewind()
rec = cur[0]
Run Code Online (Sandbox Code Playgroud)
我有时会在最后一行收到" IndexError:Cursor实例没有这样的项 ".从我可以找到有关此错误的所有内容,只有当您没有任何与您的查询匹配的记录时才会发生此错误.但是,我已经清楚地检查过我的光标中有项目.ReplicaSetConnection是否存在奇怪的问题,这使得这些读取操作更加不稳定?
我的搜索后端尝试从Solr 3.6升级到Solr 4.0.
基于Solr 3.6的现有arch具有1个主Solr节点,具有2个用于负载平衡的从Solr节点,其主节点仅用于更新文档,从节点是只读的.一切都是N分钟,docs致力于主节点,然后奴隶节点轮询索引文档并安装它们,因此这些文档是可见的.
在Solr 4.0中,因为软件提交的文档没有同步到磁盘文件,我的问题是,如果我升级到Solr 4.0并且不使用SolrCloud,那么软件提交的文档是否可以立即主从Solr节点对从属节点可见.
如果这些对奴隶可见,它是如何运作的,通过zookeeper?
尝试设置复制主 - 从.
掌握my.cnf
[mysqld]
bind-address = 0.0.0.0
port = 3306
server-id = 1
log-bin = /var/lib/mysql/mysql-bin
replicate-do-db = Test
Run Code Online (Sandbox Code Playgroud)
奴隶my.cnf
[mysqld]
log_output = "FILE"
general_log_file = /var/log/mysql/mysql.log
general_log = 1
log_bin = /var/log/mysql/mysql-bin.log
server-id = 2
relay-log = /var/lib/mysql/mysql-relay-bin
relay-log-index = /var/lib/mysql/mysql-relay-bin.index
replicate-do-db = Test
Run Code Online (Sandbox Code Playgroud)
SHOW SLAVE STATUS显示
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Run Code Online (Sandbox Code Playgroud)
在中继日志中,我看到在master上执行的查询.
Read_Master_Log_Pos也会更新.
但是在general_log_file中只出现
130530 14:50:25 523 Query BEGIN
523 Query COMMIT /* implicit, from Xid_log_event */
Run Code Online (Sandbox Code Playgroud)
并且master上的更改没有在slave上执行.我错过了什么?
curl http://usrname:password@192.168.1.10:5985/_active_tasks 显示以下内容.
特别是checkpointed_source_seq":0.所以我的复制显然没有完成.这是由于源服务器(iriscouch.org)缺乏响应吗?
我不确定它是否重要,但我也很想知道在目标或源上发生复制"逻辑"的位置.
(我重新启动我的CouchDB和checkpointed_source_seq仍然是0,但是docs_read,docs_written,missing_revisions_found和revisions_checked所有跃升至5而过一段时间后,一切都停留在5的目标是Android上的老couchbase Mobile上运行,所以也许问题是目标而不是来源缺乏回应.)
[
{
"pid": "<0.242.0>",
"checkpointed_source_seq": 0,
"continuous": false,
"doc_write_failures": 0,
"docs_read": 0,
"docs_written": 0,
"missing_revisions_found": 0,
"progress": 0,
"replication_id": "477dc6e34c791f161a2d47d742b349cd",
"revisions_checked": 0,
"source": "https://username:*****@myprj.iriscouch.com/myprj/",
"source_seq": 342,
"started_on": 1372285819,
"target": "http://usrname:*****@0.0.0.0:5985/myprj/",
"type": "replication",
"updated_on": 1372287887
}
]
Run Code Online (Sandbox Code Playgroud) 我有一个关于在使用PostgreSQL和Windows服务器时负载平衡的可能性的问题.在Unix系统上,这可以通过使用pgpool-II实现.如何在Windows中实现相同的目标?
我知道在复制时你不能混合使用系统.Pgpool文档说明:
我可以将PostgreSQL的不同平台混合为pgpool-II后端,例如Linux和Windows吗?
在流复制模式下,没有
那个不同的场景怎么样?我可以在Unix机器上运行pgpool,并在Windows服务器池上配置复制和负载平衡吗?
我正在使用Windows Server 2008 R2以防万一.
基于行的复制MySql文档声明:
"对于诸如CREATE TABLE ... SELECT之类的语句,CREATE语句是从表定义生成的,并使用基于语句的格式进行复制,而行插入则使用基于行的格式进行复制."
基于行的复制处理如何更改和删除语句?找不到任何相关文档,我是否需要在副本上重新运行这些命令?
OpenStack Swift允许在群集上的多个位置复制和分发对象.
是否保证在成功PUT操作后,我可以立即GET对象或者我必须等待对象在群集上传播?
replication ×10
mysql ×3
postgresql ×2
sql-server ×2
couchdb ×1
ddl ×1
mongodb ×1
openstack ×1
pgpool ×1
propagation ×1
pymongo ×1
solr ×1
t-sql ×1
windows ×1