标签: replication

在 MySQL 复制从站上创建视图会破坏复制吗?

我们需要在 MySQL 复制集群上运行一些非常丑陋的查询。

有谁知道直接在从站上创建视图是否会破坏另一个的复制,否则与主站同步的未触及数据?

mysql replication

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

MySQL,优化和复制

我有两个 MySQL(实际上是 MariaDB)服务器,一个主服务器和一个带有标准复制的从属服务器。在不到一个月的时间里,我的奴隶已经有两次无法使用了。

这是我的经历:

  • 使用我的监控工具注意到从站每秒的查询量下降
  • 用mysql客户端连接服务器,运行 SHOW SLAVE STATUS \G
  • 注意一切看起来都很正常(等待主人发送事件,主人后面的秒数 = 0 等)
  • 尝试停止复制 STOP SLAVE
  • STOP SLAVE 挂起
  • 无法使用客户端连接到服务器
  • SHOW SLAVE STATUS \G在另一个已经连接的客户端上执行,它也挂了。

之后,我看到了使用 CPU 的 MySQL 进程,我看到了很多使用 iotop 的磁盘写入,所以我让它做它的东西一段时间。

15 分钟后,我杀死了 MySQL 进程 -9,因为我感到沮丧。然后我重新启动 MySQL,我可以连接和运行查询,很好。

我执行SHOW SLAVE STATUS \G现在可以工作了,它看起来很正常:master 后面的秒数 = 0,等待事件。然后我继续在 master 上执行CREATE DATABASE foobar以查看复制是否有效,但它没有。

同样,那时我看到了很多磁盘写入,所以我认为复制正在赶上。两个小时后,我终于决定检查SHOW PROCESSLIST,我看到执行的只是一个OPTIMIZE TABLE table1 ...,然后我记得我上次遇到了完全相同的问题。

我用那个查询终止了这个进程,然后我重新执行SHOW PROCESSLIST,果然它赶上了主人。SHOW SLAVE STAUTS \G报告落后master 15k 秒,这是连贯的。

无论如何,在那堵文字墙之后,我的问题是:

  • 为什么 OPTIMIZE 查询会阻止复制追赶?
  • 我可以阻止那些 OPTIMIZE …

mysql replication

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

具有数据子集的复制选项

我们有一个由 SQL Server 2012 ( ServerA) 数据库组成的应用程序。不过,我们需要显示的一些数据来自另一个数据库,但它是 SQL Server 2008 ( ServerSOURCE)。该数据库也位于单独的服务器上。

计划是在与 ServerA 相同的服务器上创建一个复制数据库,称为ServerREP,并将数据从 复制ServerSOURCEServerREP。但是我们只需要 ServerSOURCE 中的某些表。这是表的一小部分。ServerSOURCE有数百张桌子。我们只需要10个左右。

此外,表格中的数据可以减少。例如,假设我们有一个 Person 表,它有一个PersonTypeId. 我们只想要行where PersonTypeId = x

这可以通过复制来实现吗?我们可以从源表的子集中获取数据子集到我们新的复制数据库中吗?是否类似于在源上创建一个 VIEW,然后将该视图的结果复制为复制数据库中的一个表?

replication sql-server

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

还原数据库时对象名称“master.dbo.MSreplication_options”无效

我试过在谷歌上搜索这个问题的答案,但一无所获。

我有一个 SQL Server 实例,其复制设置为FooDatabase. 我有第二个实例,其复制设置FooDatabase为第一个实例的订阅者。复制更新工作。我想要做的是备份订阅FooDatabase,在订阅者实例上删除它,然后恢复备份。但是,当我这样做并尝试恢复备份时,出现以下错误:

服务器“DAVEG1525-162”的还原失败。(Microsoft.SqlServer.SmoExtended)

System.Data.SqlClient.SqlError: 无效的对象名称“master.dbo.MSreplication_options”。(Microsoft.SqlServer.Smo)

我已经检查过并且dbo.MSreplication_options确实作为生产实例的master数据库中的系统表存在,但不在订阅实例上。

我的问题是:如果订阅实例上不存在它,为什么它包含在从 SQL Server 订阅实例制作的备份中?我该如何解决这个问题?

replication backup sql-server-2008-r2 restore transactional-replication

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

MySQL 复制中使用的 TCP 连接的端口和方向是什么?

我想知道复制在 mysql 中是如何工作的。

slave 和 master 都在端口 3306 上运行 mysql 服务器。slave 充当客户端,master 充当服务器。

slave在建立tcp连接发送请求时是否总是绑定到3306?当服务器发回响应时,dest 端口将是 3306,并且由于从属 mysql 正在侦听该端口,它将处理响应?

不确定我的理解是否正确。

此外,我有兴趣了解应该为复制工作添加的入口和出口规则。

对于来自从站的 TCP 连接,它会选择任何可用的 TCP 端口还是总是 3306?

任何帮助表示赞赏!

谢谢!

mysql replication network

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

无法让我的从站 - 复制服务器启动

我的复制服务器将无法启动。我已按照此处的说明进行操作:http :
//opensourcedbms.com/dbms/setup-replication-with-postgres-9-2-on-centos-6redhat-el6fedora/

以及包括 Postgres Wiki 在内的其他几个地方,因为它们都有相同的信息。

这是发生的事情:
我对/9.2/data文件夹进行完整备份并将其移动到复制/从服务器,解压缩它。我可以启动 PostgreSQL 和 pgAdmin 并毫无问题地访问所有数据。

然后我转到有关编辑从服务器的pg_hba.conf和的说明postgresql.conf。我尝试启动它,但它失败了(红色错误 [失败]。我在任何地方都找不到任何日志来提示我为什么。

我什至验证postmaster.pid了数据文件夹中没有。

另外,我找不到任何日志文件。我需要在配置中“激活”一个日志文件吗?

因此,如果有人想对我含糊的描述一无所知,我很想听听任何建议。如果有帮助,我可以将我的 conf 文件放在 pastebin 上。

postgresql replication

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

日志传送代替复制

我有两个 SQL Server 2008 R2 系统,由于网络限制,无法使用 SQL Server 复制。但是,这些系统之间需要共享数据。但是,可以将文件从一个系统发送到另一个系统。

我在想的是可以设置日志传送。我知道要使用日志传送,辅助数据库必须处于 NORECOVERY 状态,因此它不能用于实时 OLTP。

我在想可能在辅助服务器上,我可以拥有辅助数据库,然后将该数据库复制到同一本地服务器上的数据库,然后该数据库将成为实时 OLTP 数据库。

我认为在 NORECOVERY 模式下无法进行复制。是否可以每 5 分钟运行一次日志传送还原,首先更改为 NORECOVERY,然后进行还原,然后返回到恢复,允许复制继续?是否有 TSQL 命令将状态更改为 NORECOVERY,然后返回?

无论如何,我都不是 SSIS 大师,但也许这是更好的方法(平面文件)?是否可以在具有 150 多个表的数据库中进行设置,并带有 FK 依赖项,其中所有更改都需要非常频繁地反映在目标数据库上

replication sql-server sql-server-2008-r2 log-shipping

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

使用 SQL 事务复制,更改用户对表的权限是否会触发新快照?

我希望在 SQL Server 2012 事务复制场景方面获得一些帮助 - 或者只是我对 SQL Server 中存储权限的理解。如果我在事务复制配置中更改发布者对特定表的用户权限(例如授予 SELECT 或 INSERT),是否会更改架构,以便订阅者需要从新快照中提取?

我担心这种更改可能会造成停机时间,即在创建新快照时订阅者实际上处于离线状态。理想情况下,我可以只授予特定用户对发布者或订阅者上复制文章的新权限,而无需重置。我不关心更新的权限从发布者复制到订阅者(事实上,理想情况下他们不会)。提前致谢!

replication permissions sql-server-2012 transactional-replication

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

辅助副本索引

我有一个问题,关于一个问题,它是 70-462 Microsoft 考试的一部分。

我今天有这个问题,我不完全确定正确答案。虽然我确实通过了考试,但我想了解这种情况下的正确解决方案。

如果我没记错问题,您管理的是 2012 SQL Server,要求是将 OLTP 数据库的分钟报告卸载到另一台服务器,并且还能够向辅助数据库添加索引。

问题的答案大致如下:

  1. 两台服务器,不同的数据中心。具有同步提交的 AG 组。主动次要。
  2. 两台服务器,同一个子网。具有同步提交的 AG 组。
  3. 两台服务器,每 10 分钟发送一次日志。
  4. a-synch 提交有几个不同的答案。
  5. 包含配置为执行事务复制的应用程序数据库的 SQL Server。
  6. 包含配置为执行快照复制的应用程序数据库的 SQL Server。
  7. Windows 故障转移群集中的两台服务器。SQL Server 配置为群集实例。

最初我排除了异步提交选项(延迟)、不同数据中心的同步提交 AG 组(延迟?)、日志传送(延迟)和快照复制选项。

这给我留下了同一个子网上的同步提交 AG 组,或具有事务复制的 SQL 服务器。

基于https://msdn.microsoft.com/en-us/library/ff878253.aspx,我读到如果你想在你的活动辅助节点上建立索引,你必须在你的主要节点中创建它们。我将这个问题解释为要求能够在主服务器上创建索引,而这些索引在主服务器上不存在(包括用于报告的索引,或者其他什么不存在)。

另一个答案,单独指的是 SQL Server,这听起来不像我们要添加“另一台服务器”来卸载工作。

我是否误解了问题/要求?正确答案/解决方案应该是什么?

replication sql-server sql-server-2012 availability-groups

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

如何在致命错误后恢复 Postgres 复制从站

在 4 个 Debian 8 Jessie 服务器上,我有 PostgreSQL 9.4.3 master + 3 slaves。在 master 上的大量数据更改后,slave 日志显示此错误:

LOG: started streaming WAL from primary at 182/0 on timeline 1 FATAL: could not receive data from WAL stream: ERROR: requested WAL segment 000000010000018200000000 has already been removed

我需要哪些步骤来恢复/重建从站?

postgresql replication

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