我有一个 3 节点 Redis 复制和一个 3 节点 Sentinel。我想移除一个奴隶。
我尝试停止从站并slaveof 10.128.130.139 6379从配置中删除。但是在我启动之后它又变成了奴隶。并slaveof再次回到配置中。
阅读SLAVEOF 后,我尝试调用SLAVEOF NO ONE. 但1分钟后它又变成了奴隶。
我猜 Sentinel 将它重新配置为 slave。在 Sentinel 存在的情况下,如何删除一个奴隶?
我需要在带有复制的实时生产数据库上运行慢查询和未索引查询日志记录一段时间。更改 GLOBAL const 值听起来是一个不错的解决方案。这篇文章也提供了很好的阅读内容。
问题是我需要FLUSH LOGS;在主/从上运行。我不确定这将如何影响复制。FLUSH LOGS;有人可以告诉我运行对实时主机和实时从机的影响吗?
谢谢
根据这篇文章:
在单个副本集中,您不能分发写入,它们都必须转到主副本。您可以通过您认为合适的读取首选项将读取分发到辅助节点。驱动程序跟踪什么是主要的,什么是次要的,并适当地路由查询。
根据Mongo 文档:
您还可以部署一组 mongos 实例并在应用程序和 mongos 之间使用代理/负载均衡器。在这些部署中,您必须为客户端关联配置负载均衡器,以便来自单个客户端的每个连接都到达相同的 mongos。
所以基本上,如果你有一个由 3 个节点组成的副本集,你就不能真正使用代理/负载均衡器,因为所有写入都需要转到主节点,并且你需要客户端关联......所以所有读取还需要去初级。
不过,我在想的是,有可能将应用程序连接到负载平衡器。负载均衡器会将所有请求路由到主节点(不是很平衡,但无论如何)......直到/除非主节点宕机——此时负载均衡器将开始将请求路由到“新的主节点”。
我不确定这是否可行,因为负载均衡器如何知道哪个 mongo 服务器被选为新的主服务器(以及它应该在哪里路由新请求)?
假设这是可能的,这将实现一定程度的冗余,以防主服务器出现故障......我也希望它也能在网络分区发生时避免过时写入的副作用,因为负载平衡器(因此所有数据库客户端)只会连接到一个主服务器。
或者这是一个愚蠢的问题......
我想复制 Postgres 数据库而不使用pg_dump. 源数据库和目标数据库都在同一台机器上(测试和生产服务器)。
我想创建master_db_copy生产服务器的精确副本master_db。
我从命令行尝试过:
pg_dump -vO master_db | gzip > master_db
gunzip -cV master_db.sql.gz | psql master_db_copy
Run Code Online (Sandbox Code Playgroud)
有更好/更快的方法吗?
这里有这个问题:
但这不是我要找的答案。
下面有一个问题,这可能是相关的,但不一样。
这个问题几乎是重复的,但涉及 2.6.11 版,我的是 3.0 版和 3.2 版。另外,除非我需要,否则我不想使用force : 1。
我一直在努力将答案中描述的大多数内容付诸实践,也许有一个例子或澄清,因此是这个问题。
我的复制工作正常,3 个节点,node1 是主节点。
当我运行以下命令时
//-----------------------------
//check the status of the replication
//-----------------------------
rs.status()
Run Code Online (Sandbox Code Playgroud)
我得到这个结果:
{
"set" : "Krishna",
"date" : ISODate("2016-04-26T14:59:40.263Z"),
"myState" : 1,
"members" : [
{
"_id" : 0,
"name" : "jpb01275:37001",
"health" : 1,
"state" : 1,
"stateStr" : "PRIMARY",
"uptime" : 1022,
"optime" : Timestamp(1461678841, 1),
"optimeDate" : ISODate("2016-04-26T13:54:01Z"),
"electionTime" : Timestamp(1461682464, …Run Code Online (Sandbox Code Playgroud) 160523 13:07:29 [ERROR] Slave SQL: Error 'Duplicate entry '914166' for key
'PRIMARY'' on query. Default database: 'zo_dev_20121216'. Query: 'UPDATE
activity
SET
activity_type_id = 9,
subject = 'Send departure email',
date_due = '2016-05-26 01:00',
date_start = '2016-05-23 01:00',
activity_status_id = 1,
content = 'Send departure email'
WHERE
id = 2888555', Error_code: 1062
160523 13:07:29 [Warning] Slave: Duplicate entry '914166' for key 'PRIMARY'
Error_code: 1062
160523 13:07:29 [ERROR] Error running query, slave SQL thread aborted. Fix
the problem, and restart the slave …Run Code Online (Sandbox Code Playgroud) 我试图在两个系统上实现主从数据库复制。
我按照以下链接
https://www.youtube.com/watch?v=DmQWcU2INqQ
和
Master Slave Replication 中的步骤操作
但在这两种情况下,我都得到了
Slave_IO_Running:连接
Slave_SQL_Running:是
我试图检查机器之间的网络连接,并且它们能够成功地互相 ping 通。
禁用两个系统上的防病毒和防火墙
为从站添加别名以访问主机,工作。
两台机器都使用 3306 端口进行 mysql。
Last_IO_error:连接到 master 'user01@192.168.2.46:3306' 时出错——重试时间 60 次重试:1
每次重启MySQL服务,主从复制停止。是否可以将主从复制设置为在服务重新启动后自动启动。
我在 Windows 上运行 MySQL。
谢谢,
我试图删除作为发布者的数据库中的表。有问题的表没有被发布。我得到的错误是:
Msg 15021, Level 16, State 1, Procedure sp_MStran_ddlrepl, Line 14 [Batch Start Line 1]
Invalid value given for parameter @procmapid. Specify a valid parameter value.
Msg 3609, Level 16, State 2, Line 2
The transaction ended in the trigger. The batch has been aborted.
Run Code Online (Sandbox Code Playgroud)
我已经检查sysarticles过是否有旧记录或孤立记录,但该表没有出现。关于这里的问题有什么想法吗?
编辑:SQL Server 2016 RTM
我有一个 300 GB 的 mysql 数据库,我想将其迁移到另一台服务器,以便在两者之间设置 Master-Master 复制,我的主要目标是在尽可能减少停机时间的情况下实现这一目标。
我的数据库只有一个大约 30GB 的表,其中全天候进行插入操作。所有其他表都是历史表(静态)。
1)在这种情况下,最好的前进方式是什么?
获取整个数据库的 mysqldump 并将转储传输到其他服务器并将其导入新服务器将完成我想要实现的工作,但会花费大量停机时间(可能超过 14 小时),这是不允许的。
或者我可以在不停止 mysql 的情况下为静态表进行单独的表转储并将其导入新服务器,在这一切结束之后,为单个活动表停机,以便不会发生新的插入并且我的两个数据库都将同步? 首先有没有可能做这样的事情?如果可能的话,在设置主-主复制时可能会出现什么问题?
mysql replication mysqldump restore master-master-replication
replication ×10
mysql ×5
mongodb ×2
binlog ×1
mongodb-3.0 ×1
mysql-5.5 ×1
mysqldump ×1
performance ×1
postgresql ×1
proxy ×1
redis ×1
restore ×1
slow-log ×1
sql-server ×1