标签: database-replication

MySQL:写入从属节点

可以说我有一个汽车数据库.我有制作和模特(FK制作).我打算让用户跟踪他们的汽车.每辆车都有FK到型号.现在,我有很多用户,我想分割我的数据库来分配负载.Makes和Models表不会发生太大变化,但需要跨分片共享.我的想法是使用从复制品和模型的主数据库到每个从数据库的MySQL复制.我的问题是:我可以安全地写入从数据库,假设我不写入主数据库上的那些表吗?

而在这个问题上,无论如何都要保证一个从数据库有最新的数据?例如,有人刚刚添加了"金牛座"制作,然后想要添加他们的汽车.我可以确保他们使用的从数据库具有最新的主数据吗?

mysql database replication database-design database-replication

7
推荐指数
2
解决办法
1万
查看次数

MongoDB Capped集合在PostgreSQL中等效

MongoDB上限集合的基础是它们允许您设置表的最大大小,并且系统将在达到大小限制时清除旧数据.

有没有人想出PostgreSQL中的类似设置并在生产中使用它?

postgresql mongodb database-replication

7
推荐指数
2
解决办法
1801
查看次数

CouchDB中的并行/冗余复制

我有多个CouchDB服务器,我想彼此保持同步,我使用这些服务器共享大文件(例如> 100 MB).为了使它们保持同步,我让每个CouchDB实例从每个其他实例执行连续拉式复制.

这是一个例子:我有三个CouchDB服务器A,B和C,所有这些服务器都有相互连续的拉式复制,如下所示:

------- <------------- -------
|  A  | -------------> |  B  |
-------                -------
  ^ |                   | ^
  | |                   | |
  | V                   | |
------- <---------------- |
|  C  | -------------------
-------
Run Code Online (Sandbox Code Playgroud)

有人将文档上传到服务器A,附件为500MB.B和C都开始从A复制文档,B在C完成之前完成复制:

-------    doc         -------
|  A  |--------------->|  B  |
-------                -------
   |
   | doc
   V
-------
|  C  |
-------
Run Code Online (Sandbox Code Playgroud)

我的问题是,然后C会开始从B复制相同的文件(因为C也有从B的连续拉式复制),而它仍然从A传输文件?

-------                -------
|  A  |                |  B  |
-------                -------
   |          doc         |
doc|    |------------------
   |    |
   V    V
  ------- …
Run Code Online (Sandbox Code Playgroud)

rest replication synchronization couchdb database-replication

7
推荐指数
1
解决办法
450
查看次数

数据复制和同步之间的区别?

我在查找数据同步和复制之间的差异时遇到了麻烦.

据我所知,复制使两个数据库之间的所有数据都相同.同步不一定使两个数据库之间的所有数据相同.复制是一次性传输,同步可以是小型更新以保持数据一致吗?我不太确定,请在这里纠正我?

如果我要拥有一个存储多个移动数据的中央mySQL数据库,我的目标是保持手机中的数据与来自mySQL的数据(仅限某些用户数据)相同,那么是同步还是复制,还是两者兼而有之?它最初会获取所有用户数据(复制),然后在此之后发送任何更新的数据(同步)?

希望有人可以清理混乱,非常感谢!

replication sync database-replication data-synchronization

7
推荐指数
1
解决办法
1万
查看次数

"连接到数据库时出错.错误:错误:找不到有效的replicaset实例服务器"

我正在使用具有2个节点(主要和次要)和1个仲裁器(总共3个)的复制.有时我会在连接到数据库时出现"错误.错误:错误:找不到有效的replicaset实例服务器".我无法重现(因为它本身发生,有时非常频繁).我已经添加了server.on( 'error',)要调试的事件,但有时在我的本地环境中打印出类似于成员主机名的连接错误打印1(虽然我不知道它是否与我的问题有关).当我通过mongo shell连接到其中一个实例并检查rs.status()时,我得到了一切,所有成员都健康起来.

以上问题的Jira链接是:

https://jira.mongodb.org/browse/NODE-296

mongodb database-replication node.js

7
推荐指数
1
解决办法
888
查看次数

如何检查热备用服务器是否提供只读查询

我有设置复制:主 - 从.从服务器作为热备用,这意味着我们可以运行只读的sql查询.我怎么能看到奴隶服务器正在提供只读查询?

postgresql database-replication

7
推荐指数
1
解决办法
8266
查看次数

MongoDB SECONDARY在夜间成为RECOVERING

我正在运行一个由3个成员组成的传统MongoDB副本集(数据中心A中的member1,数据中心B中的member2和member3).member1是当前的PRIMARY,我正在添加成员2和3 rs.add().他们正在执行初始同步并很快成为SECONDARY.一切都很好,两个成员的复制延迟是0秒,直到凌晨2点.

现在:每天凌晨2点,两个成员都会进入RECOVERING状态并完全停止复制,这导致我rs.printSlaveReplicationInfo()在早上时间进行查看会导致数小时的复制延迟.凌晨2点左右,我没有大量的插入或维护任务.

我在PRIMARY上获得以下日志条目:

2015-10-09T01:59:38.914+0200 [initandlisten] connection accepted from 192.168.227.209:59905 #11954 (37 connections now open)
2015-10-09T01:59:55.751+0200 [conn11111] warning: Collection dropped or state deleted during yield of CollectionScan
2015-10-09T01:59:55.869+0200 [conn11111] warning: Collection dropped or state deleted during yield of CollectionScan
2015-10-09T01:59:55.870+0200 [conn11111] getmore local.oplog.rs cursorid:1155433944036 ntoreturn:0 keyUpdates:0 numYields:1 locks(micros) r:32168 nreturned:0 reslen:20 134ms
2015-10-09T01:59:55.872+0200 [conn11111] end connection 192.168.227.209:58972 (36 connections now open)
Run Code Online (Sandbox Code Playgroud)

而且,更有趣的是,我在两个SECONDARY上获得以下日志条目:

2015-10-09T01:59:55.873+0200 [rsBackgroundSync] repl: old cursor isDead, will initiate a new one
2015-10-09T01:59:55.873+0200 [rsBackgroundSync] replSet syncing …
Run Code Online (Sandbox Code Playgroud)

time replication mongodb database-replication

7
推荐指数
1
解决办法
368
查看次数

将主数据库复制到不同的从属服务器

我有一个主数据库,它将是由不同学校组成的云服务器.

仪表板类型,包含每所学校的详细信息.可以编辑他们的信息和其他数据.

现在,这些学校被部署到相应的学校位置,这将是本地服务器.

仪表板类型,只能编辑本地服务器中部署的特定学校.可以编辑他们的信息和其他数据.

现在我想要发生的是,cloud to local server如果某些事情发生了变化,就可以同步相应的学校.这也适用local to cloud server.

注意:如果您曾经尝试使用Evernote,可以在您正在使用的任何设备上编辑备注信息,并且在您拥有互联网或手动点击同步时仍能够同步.

当本地服务器没有互联网连接并在学校编辑了一些数据.一旦互联网启动,本地和云服务器的数据应该同步.

这就是我追求的逻辑.

在此输入图像描述

有人会为我开始从哪里开始吗?我想不出任何适合我问题的解决方案.

我还想到使用php来遍历整个表格以及与当前日期和时间相对应的数据.但我知道那会很糟糕.

编辑:我删除了关于此事的其他SO问题的参考/帖子.

我找到的应用程序挂钩

  • Evernote的
  • Todoist

服务器:

  • 本地服务器计算机:Windows 10(部署在学校)
  • 云服务器:可能是一些使用的专用主机 phpmyadmin

不要挑剔,但希望答案是你正在与一个新手掌握到奴隶数据库进程.我没有这方面的经验.

php mysql phpmyadmin database-replication

7
推荐指数
1
解决办法
910
查看次数

为什么Postgres Replication Stream在单独的函数中使用时不起作用?

我正在研究postgres复制流API.在努力工作时遇到了不寻常的行为.

当我使用复制槽在主块内写入整个代码时,一切正常.

public class Server implements Config {

public static void main(String[] args) {
    Properties prop = new Properties();
    prop.load(new FileInputStream(System.getProperty("prop")));

    String user = prop.getProperty("user");
    String password = prop.getProperty("password");
    String url = prop.getProperty("url");

    Properties props = new Properties();
    PGProperty.USER.set(props, user);
    PGProperty.PASSWORD.set(props, password);
    PGProperty.ASSUME_MIN_SERVER_VERSION.set(props, "9.4");
    PGProperty.REPLICATION.set(props, "database");
    PGProperty.PREFER_QUERY_MODE.set(props, "simple");

    Connection conn= null;
    PGConnection replicationConnection= null;
    PGReplicationStream stream = null;

        conn = DriverManager.getConnection(url, props);
        replicationConnection = conn.unwrap(PGConnection.class);
        stream = replicationConnection.getReplicationAPI().replicationStream().logical()
                .withSlotName("replication_slot")
                .withSlotOption("include-xids", true)
                .withSlotOption("include-timestamp", "on")
                .withSlotOption("skip-empty-xacts", true)
                .withStatusInterval(20, TimeUnit.SECONDS).start();

    while (true) { …
Run Code Online (Sandbox Code Playgroud)

java postgresql database-replication

7
推荐指数
1
解决办法
742
查看次数

测量 postgresql 中的复制延迟

我试图测量我的系统中的复制时间滞后。(postgresql 10.1)

pg_last_xact_timestamp()我在查询中使用,pg_last_receive_lsn()和函数的组合pg_last_replay_lsn()来检查滞后。

(以如何从此链接进行测量为例)

postgres=# SELECT now(), pg_last_wal_receive_lsn(), pg_last_wal_replay_lsn(), EXTRACT (EPOCH FROM now() - pg_last_xact_replay_timestamp())::INT;
               now                | pg_last_wal_receive_lsn | pg_last_wal_replay_lsn | date_part 
----------------------------------+-------------------------+------------------------+-----------
 2018-08-06 07:00:36.540959+05:30 | 4/99B84030              | 4/99B84030             |       223
Run Code Online (Sandbox Code Playgroud)

从第2列和第3列可以看出,最后的接收LSN和重放LSN是相同的,这意味着系统是同步的。但我无法理解到底是什么pg_last_xact_replay_timestamp()。它如何找出以秒为单位的复制延迟。我是否使用错误的方法来测量延迟(以秒为单位)?

postgresql database-replication postgresql-10

7
推荐指数
1
解决办法
4199
查看次数