标签: mysql-replication

如何备份和复制大型 MySQL 数据库?

如何在mysql中备份大型数据库?复制数据库的最佳方法是什么?


我正在寻找的是在很短的时间限制内备份具有大量数据的大型数据库,然后在很短的限制时间内恢复它?

mysql backup mysql-replication data-recovery

5
推荐指数
2
解决办法
7430
查看次数

为什么对 mysql 使用基于混合的复制

我正在配置 MySQL 复制并打算使用基于行的复制,但我也在阅读基于混合的复制。

这是基于语句的默认设置,然后在某些情况下(http://dev.mysql.com/doc/refman/5.1/en/binary-log-mixed.html)MySQL将切换到基于行。

该列表何时切换到基于行的内容非常多。

我的问题是:

有人混合使用吗?如果是,你为什么选择这个而不是只使用一个?

提前致谢

mysql mysql-replication replication

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

如何将其他数据库添加到我的 mysql 复制从站(只读)?

我有一个 mysql 只读复制从属设置,目前正在为大约 10 个数据库工作,我需要添加 3 个新数据库。我找不到有关如何添加其他信息的任何信息。有没有人对如何做到这一点有一些指导?

谢谢。

mysql mysql-replication

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

MySQL负载均衡

我正在寻找平衡 MySQL 基础架构负载的方法,但似乎找不到适合我的答案... :)

所以,我有一个又大又胖的服务器,可以处理所有事情。许多数据库,许多读取,许多写入等。它处理得很好,但它是单点故障。

我们已经设置了几个 slaves 来将读取重定向到它们,但面临两个问题:重建所有程序以拆分读取和写入需要花费大量精力;有时奴隶会落后,这会导致应用程序中出现非常有趣的工件。

从站落后的问题:因为许多数据库是混合的 - 在数据挖掘方面完成了大量 10-20 分钟的查询,以及不需要时间的原子查询。但是 Slave 一次只运行一个查询,因此所有原子查询都必须等到重查询完成。

为了解决这两个问题,我正在考虑使用代理之类的东西,它会考虑:

  • 自动拆分读/写
  • 作为单一入口点,然后将请求重定向到需要数据库的适当服务器(例如,后端分开 db1 和 db2,但对应用程序透明)
  • 注意从延迟,并在发生从延迟时将读取发送到主服务器(如果可以做到这一点,例如每个数据库,那将是理想的;但服务器范围内的也非常棒)
  • 所有符合条件的从站之间的负载平衡读取(通过简单的循环,或通过监视 LA)

仍然存在但我想考虑的一个问题是故障转移。如果 master 失败了——如果 slave 承担 master 的责任就好了,当 master 备份时——它将成为奴隶。

欢迎任何指向 RTFM 或有关此主题的案例研究的指针 =)

编辑:谷歌搜索了更多,除了 Tungsten 企业 - 还找到了 dbShards 和 Schooner。在深入研究的同时 - 有没有人有使用这些解决方案的经验?任何反馈?

mysql mysql-replication load-balancing

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

MySQL 到 PostgreSQL 复制

有没有办法在近乎​​实时的 MySQL 更改中复制到相等的 PostgreSQL 数据库?

postgresql mysql-replication replication

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

Mysql 复制重写数据库不起作用

一整天都在“奴役”这个问题。

我有一个有效的主/从设置,但是当我尝试复制到从属上的不同数据库名称时,它失败了。这是 my.cnf 的样子:

server-id=101
report-host=Slave01

replicate_do_db='DB1'
replicate-rewrite-db=DB1->DB2

replicate-ignore-table=DB2.SOME_TABLE_NAME
Run Code Online (Sandbox Code Playgroud)

如果我取出replicate-rewrite-db 行,它可以完美运行并将DB1 数据库从主数据库复制到从数据库。我在从站上使用的主日志位置是在主站上的 CREATE DATABASE DB1 调用之后。在该日志位置之后,将创建表并在主服务器上导入数据。在创建 DB2 数据库之前,我不会配置和启动从属设备。

有任何想法吗?

更新:在mysql错误日志中看到了这个:

120531 15:48:19 [Note] Slave I/O thread: connected to master 'slave_user@master_server:3306',  replication started in log 'mysql-bin.000001' at position 107
120531 15:48:20 [ERROR] Slave: Error 'Unknown database 'DB1'' on query. Default database: 'DB1'. Query: 'CREATE TABLE `ANOTHER_TABLE` (
Run Code Online (Sandbox Code Playgroud)

mysql mysql-replication

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

MySQL 从属服务器不删除旧的中继二进制日志

我在另一台主机上有一个带有从属复制的 MySQL 服务器。今天偶然发现了slave主机的磁盘使用率很高,并调查了占用所有空间的内容。事实证明,这个空间被奴隶中继日志占用。

我试图关闭expire_logs_days变量并重新启动 MySQL 守护程序,但报告的磁盘空间保持不变。我真的找不到任何FLUSH LOGS可以清除旧日志的东西。我试过没有结果。

有什么办法可以减少中继日志占用的磁盘空间吗?

mysql mysql-replication

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

MySQL - 无法启用二进制日志记录

我正在尝试启用二进制日志记录,以便我可以在两台服务器之间设置主从复制。我正在使用具有大量数据的现有服务器,并且正在尝试使用以下命令转储数据:

mysqldump -u root -p --all-databases --master-data > masterdump.sql
Run Code Online (Sandbox Code Playgroud)

但我收到错误:mysqldump: Error: Binlogging on server not active

我已经遵循了有关如何启用二进制日志记录的各种教程,但没有任何效果。我已确保已将以下参数添加到 my.cnf:

server-id    = 1
log_bin      = /var/log/mysql/mysql-bin.log
sync_binlog  = 1
Run Code Online (Sandbox Code Playgroud)

当我重新启动 MySQL 时,它需要一段时间(我认为这是由于数据库的巨大大小),大约 60 秒,但最终会启动。但是,当我检查时/var/log/mysql/error.log,发现以下错误(重复数百次):

InnoDB: Unable to lock ./ibdata1, error: 11
InnoDB: Check that you do not already have another mysqld process
Run Code Online (Sandbox Code Playgroud)

所以我通过运行来寻找所有的 mysqld 进程pstree,我发现了以下内容:

root@my_server:~# pstree
init---some stuff
     |--
     |--mysqld---10*[{mysqld}]
     |--
     |--sudo---mysqld---23*[{mysqld}]
Run Code Online (Sandbox Code Playgroud)

这就是我被困的地方。我不知道mysqldANDsudo mysqld都运行是否正常。服务器由ServerPilot维护,[我认为] 为我安装了 MySQL。

是否有任何证据表明二进制日志无法启用的任何原因?

mysql mysql-replication binary-log ubuntu-14.04

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

MySQL 软件包升级 (Debian apt-get) 总是由于 mysql 架构的变化而中断主-主复制

我在 2 个 Debian 服务器上设置了 master-master 复制,它们复制了所有内容,包括 mysql 数据库本身(以便新用户等也复制)。这通常非常有效,除了大多数(如果不是全部)对 mysql 的 apt 升级都涉及对 mysql 数据库架构的一些更改,这会导致复制错误停止复制。最终,我总是需要通过跳过每一边的错误语句来手动修复。这总是很耗时,而且我担心我可能会在手动操作时出错(跳过太多语句、错误输入 CHANGE MASTER 详细信息等)。

我可以做些什么来确保将来对 MySQL 的 apt-get 更新能够顺利处理而不会导致复制问题?肯定有一个完善的最佳实践吗?

mysql debian mysql-replication apt

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

复制 Linux Web 服务器

我正计划复制 Web 服务器以实现高可用性目的。该服务器在 Hyper-V 中作为 Ubuntu 15.04 虚拟机运行,并安装了 MariaDB 10.0、Apache 2.4 和 PHP-FPM 5.6。

第二个虚拟机将作为该虚拟机的直接副本启动,但位于美国。第一个虚拟机位于欧洲。(延迟约为 80-120 毫秒)

我想让服务器保持同步,以便它们都可以向我的客户端提供相同的内容,并且客户端将使用最近的服务器(为此我将使用 Route 53)

服务器之间的数据交换是安全的,这很重要,以保护数据库中的联系方式和其他信息,并防止更改 /var/www 目录中的文件。

我已经考虑为此使用以下选项:

  • 开放VPN
  • SSH隧道
  • SSL(TLS)

    1. 我的问题是哪种方法最可靠、最快(延迟、吞吐量)和最安全?易于维护也很好;)

我已经考虑使用 SSH 进行数据库和文件复制。但是我不确定文件复制部分使用哪个应用程序。

  1. 我应该如何设置文件的复制以及我应该使用哪个应用程序?

SSL 可用于数据库复制,但它需要生成需要时不时更换的证书,这可能会花钱。

我的最后一个选择是使用 openvpn,但我不确定是否可以将其设置为附加网络,而不是通过它路由我的所有流量。这个方法好像也需要生成证书文件。。

  1. 我希望能够在稍后向复制过程添加额外的服务器,可能是 Windows 服务器。

mysql ubuntu mysql-replication replication high-availability

5
推荐指数
2
解决办法
1687
查看次数