标签: database-replication

两个具有不同名称且具有不同列名称的表之间的复制。是否可以创建这样的复制

我有一个要求,在两个具有不同名称且具有不同列名称的表之间创建复制。是否有可能创建这样的复制。

server A                                            server B
----------                                          ----------
Table : Test                                        Table : SUBS
--------------                                      ---------------
columns A,B,C                                       Columns D,E,F,G,H
Run Code Online (Sandbox Code Playgroud)

我想配置复制,以便将 A 列数据复制到 D 列,将 B 列数据复制到 E 列,将 C 列数据复制到 F 列

sql-server replication sql-server-2008 database-replication merge-replication

3
推荐指数
1
解决办法
7161
查看次数

是否可以在不提供整个发布快照的情况下更改SQL Server复制过滤器?

我经常被要求更改我的公司SQL Server Transactional Publications上的过滤器,其中包含数百个表和大约400GB的行数据.

每当我需要更改过滤器时,我必须完全重新整理整个出版物并将其发送给订阅者,这个过程需要将近一整天才能完成.

我的问题:可以在不提供整个发布快照的情况下更改SQL Server复制过滤器吗?

sql-server database-replication transactional-replication

3
推荐指数
1
解决办法
3256
查看次数

MySQL Master-Master 复制和自动递增列问题

我正在使用主-主复制进行一些测试,并且遇到了一些奇怪的问题,我将尝试描述我遵循的过程,以便有人可以重现该问题。

我在 2 个虚拟机上和每个虚拟机的配置文件中设置了复制:

-- Master1 -- 
auto_increment_increment = 2
auto_increment_offset = 1

-- Master2 -- 
auto_increment_increment = 2
auto_increment_offset = 2
Run Code Online (Sandbox Code Playgroud)

这些设置应该导致自动增量列的算术级数:

- Master1: 1,3,5,7,9,11,13  ...
- Master2: 2,4,6,8,10,12,14 ...
Run Code Online (Sandbox Code Playgroud)

Master1 得到奇数,Master2 得到偶数。然后我创建一个测试数据库并添加一个具有以下定义的表:

CREATE TABLE `t1` (
 `id` int(11) NOT NULL AUTO_INCREMENT,
 `c1` varchar(50) DEFAULT NULL,
 `d1` date DEFAULT '1970-01-01',
  PRIMARY KEY (`id`)
) ENGINE=MyISAM;
Run Code Online (Sandbox Code Playgroud)

当然,数据库是在两台服务器上创建的。之后,我执行

START SLAVE;
Run Code Online (Sandbox Code Playgroud)

在两台服务器上,以便开始复制。为了生成数据,我使用以下过程:

  • 必须插入单个记录才能使进程起飞

    INSERT INTO t1(c1,d1) SELECT LPAD('', 50, MD5( RAND() ) ), DATE_ADD( CURDATE(), INTERVAL FLOOR( RAND() * 365 ) DAY …

mysql replication auto-increment master-slave database-replication

3
推荐指数
1
解决办法
9041
查看次数

哪个内置的Postgres复制最适合我基于Django的用例?

我注意到Postgres现在具有内置复制功能,包括同步复制,流复制和其他一些变体.它甚至可以为应用程序级别的特定操作提供控制同步的能力(例如,对于诸如汇款等重要事项使用同步,但可能不会用于诸如用户评论之类的不太重要的事情等)

我正在使用Django 1.5(即dev)开发软件,并且可能需要同步复制(将继续进行与商业相关的事务).

您是否认为内置工具在大多数情况下最适合工作,您是否对内置复制的一种变体与另一种变体,易用性,质量等有任何想法?

最后一件事; Slony和PGPool II似乎非常流行(特别是Slony)用于复制.有没有A)特定的技术原因,因为它们比内置复制更受欢迎,或者B)是因为很多人使用的是没有内置复制的版本,或者C)我是否曾经在岩石下和PG内置复制已经非常流行?

更新(更多细节)

我只有2台物理服务器,它们位于同一个机架中.我的目的是提供一个可以自动变成主机的从机,如果在一台机器上发生了某些特定的错误(或者甚至是像双电源故障那样简单的事情等).我不介意我的客户在自动故障转移期间遇到停机时间,只要停机时间是几分钟左右,而不是一小时或者其他什么.

我希望零数据丢失,并愿意在故障转移过程中牺牲更多时间.有没有办法在不进行同步复制的情况下进行这种交易(例如,没有回写确认的流式传输日志)?

您会推荐什么策略或复制变体?

database django postgresql database-replication

3
推荐指数
1
解决办法
1604
查看次数

错误1794在配置复制从站时加载mysql 5.6主转储

E:> mysql -u root <masterDump.db ERROR 1794(HY000)在第22行:Slave未配置或无法正确初始化.您必须至少设置--server-id以启用主服务器或从服务器.可以在MySQL错误日志中找到其他错误消息.错误日志中没有其他消息.

在他们各自的my.ini文件中(是​​的,我在Windows上)master server-id = 1 slave server-id = 2

当我打开转储文件并查看第22行时,这就是我所拥有的(为了隐私而插入了X): CHANGE MASTER TO MASTER_HOST='1X2.21.42.XXX', MASTER_PORT=3306, MASTER_USER='replicant', MASTER_PASSWORD='MasteAccessXXX', MASTER_LOG_FILE='mysql-bin.000004', MASTER_LOG_POS=335723162; 显然我没有--server-id在该行上,但它不是"CHANGE MASTER TO"命令的一部分(http://dev.mysql.com/doc/refman/5.6/en/change-master-to.html)

我启动了奴隶,就像它说:

mysqld --skip-slave-start

有没有人知道我错过了什么?

谢谢,

安德鲁

mysql mysqldump database-replication

3
推荐指数
1
解决办法
9217
查看次数

基于JSON的数据库的理想复制过滤器,如Couchbase,CouchbaseLite,CouchDB等?

我即将在CouchDB服务器端编写过滤函数来过滤特定于用户的文档.此过滤器仅允许复制特定用户可访问的少数选定文档,而不是整个TB大小的数据库.

在这里,我发现了类似的问题CouchDB:限制用户只复制他们自己的文档,但它没有提供我需要的信息.

我的问题仍然存在:

  1. 指定这样的过滤器的最佳方法是什么?
  2. 我应该如何编写这样的过滤函数,任何书面示例?
  3. 我应该在每个文档中包含哪些内容,以便过滤器以这种方式工作:

    在社交网络的上下文中,假设您想要从服务器获取图片等用户数据,在这种情况下,包含图片的文档将保留userId在其中.但有时候,这个人的朋友可以访问他的个人资料,然后他们也可以查看这些照片.在这种情况下,每当朋友访问他的个人资料时,图片文档将被复制到朋友,他也将能够查看这些图片.

我怎样才能完成这样的过滤器?

更多信息:在移动平台方面,我使用的是CouchbaseLite,在服务器端,我使用的是CouchDB.我只希望在Mobile平台上过滤文档.

database json couchdb database-replication couchbase-lite

3
推荐指数
1
解决办法
1789
查看次数

两个数据中心之间的 Galera 集群复制

我们在两个数据中心有 4 台服务器。一条直线连接两个数据中心。我们计划从 MariaDB 切换到 MariaBD Gallera,因为循环复制是一种痛苦。

负载平衡器用于确定哪个服务器将处理传入请求,该请求可以是四个服务器中的任何一个。

我关心的是当数据中心之间的连接中断时会发生什么?每两个中心是否会形成一个迷你集群,直到连接恢复,然后它们又会重新组织成一个 4 节点集群?

Galera如何防止两个数据中心连接失败时可能出现的主键重复问题?

想象一下,负载均衡器开始将请求转发到两个数据中心,并且在两个数据中心都进行插入,这可能会在连接恢复时导致 PK 重复问题。

在此处输入图片说明

我曾尝试使用 vmware station 模拟不同的情况,但是我不知道如何复制这种情况。我设法创建了一个 4 节点复制集群,并设法取出节点并将其引入集群。但是我不知道如何模拟数据中心。

database database-replication mariadb galera

3
推荐指数
1
解决办法
2161
查看次数

需要对给定 mongoDB 副本集中仲裁者的角色进行简单解释

我偶然发现 MongoDB 官方网站解释了如何设置奇数成员副本。我还从同一站点听说了Arbiter一词,根据我的理解,它不会被选为主要节点,但它确实参与选举(来自https://docs.mongodb.com/manual/core/replica-set ) -仲裁者/)。

在《为什么我们在 MongoDB 复制中需要“仲裁器”?》中还有一篇与仲裁器相关的帖子。这就涉及到 CAP 定理,这使得事情变得更加复杂。

首先,为什么我们需要使成员数量为奇数?另外,有人可以用简单的外行英语向我解释一下这个仲裁者是什么以及它在给定副本集中的作用是什么?

提前致谢。

database-design mongodb database-replication cap-theorem mongodb-replica-set

3
推荐指数
1
解决办法
1852
查看次数

PostgreSQL 索引和复制技术

背景:到目前为止,我一直使用 Django 及其 ORM 来构建小型网站,因此哪个数据库(MySQL 与 PostgreSQL)在幕后完成所有工作并不是真正的问题。

最近我决定更多地了解这两者之间的差异。我刚刚读完这篇(长篇)文章,它探讨了索引在 PostgresSQL 中的工作原理,我对以下事实感到非常震惊:

“例如,如果我们有一个定义了十几个索引的表,那么对仅由单个索引覆盖的字段的更新必须传播到所有 12 个索引中,以反映新行的 ctid。”

我根本不是专家,但对我来说听起来很疯狂,在更新不涉及索引的字段时,这种超载应该是设计使然的。

此外,文章继续解释 PostgreSQL 复制策略如何不在逻辑级别工作,而是在磁盘级别工作,即主服务器向从服务器发送所有更改的列表(逐字节)以应用于磁盘而不是更多抽象指令,例如UPDATE <fields> ON <table> WHERE ....

虽然网上很多比较 MySQL 和 PostgreSQL 的短文一般都倾向于声称 PostgreSQL 在技术上更先进(ACID、JSON 支持等),但这两个问题对我来说似乎是严重的缺点。您能否确认这些陈述并可能指出有关这些问题的更多资源?

谢谢你。

postgresql indexing database-replication

3
推荐指数
1
解决办法
741
查看次数

php7 的 mysqlnd_ms 替代方案

我正在 Debian 8 机器中将我的 Web 服务器 PHP 版本从 5.5 升级到 7.1。

问题是 mysqlnd_ms 不适用于 PHP7。

据我了解,应该有另一种方法来配置我的服务器以添加到 MySQL 主服务器和 MySQL 从服务器的连接。

也许你可以给我指一个教程?

我想指出的是,我正在配置一个网络服务器,而不是一个 mysql 服务器。我需要配置 mysql 客户端以允许 php 连接到主或从 mysql 服务器。

谢谢你。

php mysql replication database-replication

3
推荐指数
1
解决办法
1505
查看次数