标签: database-replication

如何为MySQL中的数据库授予复制权限?

我需要REPLICATION SLAVE为每个数据库创建一个具有权限的用户。

当我使用命令时:

GRANT REPLICATION SLAVE ON `mydb`.* TO 'user';
Run Code Online (Sandbox Code Playgroud)

错误显示:

DB GRANT 和 GLOBAL PRIVILEGES 的使用不正确

REPLICATION SLAVE有没有办法只向数据库授予权限?

mysql sql database privileges database-replication

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

用于只读副本的 golang sql 包

我们正在将原型服务转移到生产环境。我没有找到任何在 golang sql 库中进行 mysql 读取复制的最佳库/方法。

我们的Mysql数据库服务运行在AWS RDS上(一主二从)。

需要进行以下操作。

  1. 插入/更新/删除应该转到master
  2. 从任何数据库读取(包括主数据库也可以)

目前我们只有一个数据库连接。

import (
    "database/sql"
    _ "github.com/go-sql-driver/mysql"
)


db, err := sql.Open("mysql", "root:password@tcp(localhost:3306)/test")
Run Code Online (Sandbox Code Playgroud)

我们如何使我们的数据库实例与 golang 中的只读副本一起使用?谢谢。

mysql go database-replication

5
推荐指数
0
解决办法
1926
查看次数

PostgreSQL 复制 - 使用 pg_recvlogic 和 wal2json 读取后如何更新 LSN?(没有超级用户)

我正在尝试为 PostgreSQL 9.5 数据库实现定期增量更改转储。

我选择了 WAL、wal2json插件和pg_recvlogical. 一切都以某种方式工作,除了一件事:

当所有数据被读取后,pg_recvlogical就变得安静。没有办法让它在一段时间没有改变的情况下退出,对吧?所以我用kill -2(SIGINT) 终止它,这给了我

pg_recvlogical: unexpected termination of replication stream: 
Run Code Online (Sandbox Code Playgroud)

当我想要下一批更改时,复制槽会从与之前相同的位置开始,即再次发送条目。

我如何告诉 PostgreSQL 对于某些槽,我想将复制位置设置为客户端的当前位置?

有两个函数似乎可以做到这一点,

  • SELECT * FROM pg_replication_origin_advance(node_name text, pos pg_lsn)
  • SELECT * FROM pg_replication_origin_progress(node_name text, flush bool)

但是,我不确定要传递什么作为参数。说明书上没说。节点名称是什么?对于这个职位,wal2json我所能得到的只是xid

更新:我可以使用pg_replication_origin_advance("sas2json", "28/160E2250"),请参阅我的答案。但是,当我尝试时:

错误:只有超级用户可以查询或操作复制源

这是在 Amazon RDS 中。而且我不能拥有超级用户 - 这是 AWS 政策。

还有其他方法可以设置LSN位置吗?

postgresql database-replication wal postgresql-9.5

5
推荐指数
1
解决办法
2373
查看次数

有RDS aurora同步只读副本吗?

如果我理解正确的话,Amazon Aurora 有异步只读副本。所以,我们可以得到一些读取延迟(看起来,延迟大约是100 ms)。

我需要同步读取副本。那么,我可以为 Amazon Aurora for PostgreSQL 设置这种类型的复制吗?

database-replication amazon-web-services amazon-rds amazon-aurora

5
推荐指数
1
解决办法
4062
查看次数

org.apache.kafka.connect.errors.ConnectException:更改事件生产者中发生异常。该连接器将被停止

在 kafka 中使用 postgres 源连接器。它可以正常工作一段时间,然后突然停止并出现上述错误。如果有人知道这个问题请帮忙。

postgresql database-administration database-replication apache-kafka debezium

5
推荐指数
1
解决办法
5612
查看次数

设置数据库复制时启动快照代理时出现异常

我正在尝试在数据库之间设置复制。我遵循了这个教程:

https://learn.microsoft.com/en-us/sql/relational-databases/replication/tutorial-preparing-the-server-for-replication?view=sql-server-ver15

之后:

https://learn.microsoft.com/en-us/sql/relational-databases/replication/tutorial-replicating-data- Between-Continously-connected-servers?view=sql-server-ver15

我先通过了,没有任何问题。几乎完成了第二个,但我停留在步骤查看快照生成的状态

当我尝试 strat 快照代理时,出现错误:

异常消息:本机 SQL Server 连接组件中发生未指定的错误。

我尝试在互联网上搜索 MSSQL_REPL55012 (这是我得到的错误代码),但没有成功。

我尝试查看 SQL Profiler、作业历史记录、复制监视器,甚至从 PowerShell 运行失败的作业步骤,但无法获得更多信息。

可能是什么问题?还有其他人偶然发现这一点吗?

我在用:

  • SSMS 版本 15.0.18206.0

  • SQL Server 引擎 15.0.2000.5

sql sql-server replication database-replication transactional-replication

5
推荐指数
1
解决办法
9898
查看次数

如何找到mysql DB是奴隶?

如何查找mysql DB是奴隶而不是通过查询使用"show slave status"?

mysql replication database-replication

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

SQL Server双向事务复制 - 这是一个很好的用例吗?

我们在使用SQL服务器扩展时遇到了问题.这主要是由于以下几个原因:1)设计不良的数据结构,2)繁重的工作和业务/处理逻辑都是在T-SQL中完成的.这是由我们聘请的Redmond的Microsoft SQL人员在我们的服务器上进行分析验证的.我们通过不断增加命令超时来解决问题,这是荒谬的,而不是一个好的长期解决方案.此后,我们制定了以下战略和一系列阶段:

阶段1:在问题上抛出硬件/软件以止血.

这包括一些不同的东西,如缓存服务器,但我想在这里问每个人有关在新SQL服务器上实现双向事务复制的具体问题.我们有两个用例想要实现这个:

  1. 我们考虑在这个新的SQL"处理盒"上运行长时间运行(和表/行锁定)SELECT并将它们放入缓存层并让UI从缓存中读取它们.这些SELECT正在生成报告,并在Web上返回结果.

  2. 大多数业务逻辑都在SQL中.我们有一些LONG运行查询,用于执行处理逻辑的SELECT,INSERT,UPDATE和DELETE.最终结果实际上只是在处理完成后(大量游标)充满了INSERT,UPDATE和DELETE.我们的想法是平衡这两个服务器之间的负载.

我有一些问题:

  1. 这些用于双向事务复制的好用例吗?

  2. 我需要确保这个解决方案"正常工作"而不必担心冲突.在这个解决方案中会出现哪些冲突?我已经阅读了一些关于重置身份种子增量的文章,以防止冲突,这是有道理的,但它如何处理UPDATE/DELETE或其他可能发生冲突的地方?

  3. 我可能会遇到哪些其他问题,我们需要注意什么?

  4. 这个问题有更好的解决方案吗?

阶段2:将逻辑重写为.NET,它应该是,并优化SQL存储过程以仅执行基于集合的操作,因为它也应该如此.

这显然需要一段时间,这就是为什么我们想看看是否有一些初步步骤可以阻止用户遇到的痛苦.

谢谢.

sql-server replication sql-server-2008 database-replication transactional-replication

4
推荐指数
1
解决办法
2502
查看次数

在MySQL中设置`server-id`变量不起作用

我一直在尝试设置两个数据库作为主服务器和从服务器.

我按照这里着名的指南:https: //dev.mysql.com/doc/refman/5.1/en/replication-howto-existingdata.html

但我的奴隶服务器没有运气,我遇到的问题是设置server-id变量.无论我在哪里定义它(我查看了可能允许我定义变量的所有可能的cnf文件)

我试着像这样定义它:

[mysqld]
server-id = 2
Run Code Online (Sandbox Code Playgroud)

我也尝试使用SET GLOBAL server_id来设置它,但很明显,它没有保存设置.

当我做:

SHOW VARIABLES LIKE 'server_id'
Run Code Online (Sandbox Code Playgroud)

它回来了

server_id 0
Run Code Online (Sandbox Code Playgroud)

在我看过的cnf文件中有:

etc/mysql/mysql.conf.d/mysqld.cnf
etc/mysql/mysql.conf.d/mysqld_safe_syslog.cnf
etc/mysql/conf.d/mysql.cnf
etc/mysql/debian.cnf
etc/mysql/mysql.cnf
usr/my.cnf
usr/my-new.cnf
usr/etc/my.cnf
Run Code Online (Sandbox Code Playgroud)

我的MySQL服务器在Ubuntu上运行.如果重要,我可以通过输入以下内容开始:

service mysql start
Run Code Online (Sandbox Code Playgroud)

我很想知道我还能在哪里解决这个问题.谢谢你!

补充说明:

MySQL忽略全局conf文件

我收到了这个警告几次,当我将chmod返回到etc/mysql文件夹中的644时,它就消失了,尽管上面说的所有内容都是使用644和777权限尝试的,644警告消失了.

mysql database-replication

4
推荐指数
1
解决办法
6700
查看次数

PouchDB同步没有给出完整的事件

我的PouchDB同步代码没有产生完整的事件.

我确实得到了更改以及活动和暂停事件(按此顺序),并且数据库最终会同步(在很长时间的等待之后,即使数据不多).

我需要完整的事件,所以我知道何时本地可以使用远程CouchDB数据.

我的代码看起来像这样:

  init(localDBName, remoteDBName)
  // Initialises the database - Called every time the App starts or the user logs in or registers
  // If remoteDBName is false we don't want to sync data to the server
  {

    // Create a new database or open it if it already exists
    this._DB = new PouchDB(localDBName);
    this.remote = remoteDBName;          // If remoteDBName is false we don't sync data to the server

    console.log('Data: init(): PouchDB database opened for localDBName = ' + …
Run Code Online (Sandbox Code Playgroud)

database-replication pouchdb

4
推荐指数
1
解决办法
1934
查看次数