小编Rol*_*DBA的帖子

将 MySQL DB 拆分为两台服务器是个好主意吗

我有一个 MySQL 数据库服务器,它接受大量移动应用程序数据进行分析。我想知道出于优化原因,以下架构是否有意义且合适:

我想将 MySQL 数据库服务器拆分为两个单独的服务器,如下所示:

  • 服务器 A(主)将接收统计数据进行计算。
  • 服务器 B(主)将保留
    • 按需聚合(预先计算的数据)Master
    • 应用
    • 用户数据。

关系黑白服务器将是主-主。

  • 服务器 A -> 服务器 B:发送聚合(计算)数据
  • 服务器 B -> 服务器 A:发送新的应用程序和用户数据,以便为新跟踪的应用程序执行聚合。

如果我的推理是正确的,你能解释一下我如何准确地做到这一点吗?

mysql replication aggregate

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

恢复后不同的 MySQL 数据文件大小

我在数据库管理方面很新。我现在公司的数据库架构是主从复制。我们使用的是 MySQL 5.0.86 版。

几周前,我们升级了公司的主应用程序。此升级为其数据库的所有表添加了一列。升级前,我们的 ibdata 大小约为 3.1GiB。升级后是~5.2GiB。

今天,我已经用 mysqldump 完成了一个完整的备份恢复测试。恢复后,ibdata 大小约为 3.6 GiB。标准选择在恢复中显示与原始数据库中相同的数据。

我已经通过 select to information_schema 检查了数据大小(CUSTODIA 是我们主应用程序的名称):

select SUM(DATA_LENGTH+INDEX_LENGTH) from TABLES where TABLE_SCHEMA='CUSTODIA';
Run Code Online (Sandbox Code Playgroud)

这是主数据库中的结果:

+-------------------------------+
| SUM(DATA_LENGTH+INDEX_LENGTH) |
+-------------------------------+
|                    5683345068 |
+-------------------------------+
Run Code Online (Sandbox Code Playgroud)

这是恢复数据库的结果:

+-------------------------------+
| SUM(DATA_LENGTH+INDEX_LENGTH) |
+-------------------------------+
|                    3735748608 |
+-------------------------------+
Run Code Online (Sandbox Code Playgroud)

我的问题:

  1. 为什么原始和恢复的数据库大小之间存在这种差异?
  2. 尽管大小不同,但假设恢复的数据库没问题是否安全?
  3. MySQL如何计算data_length?是估价吗?
  4. 我可以在不停机的情况下安全地将生产的 ibdata 文件大小减少到 3.6GiB 吗?

对此的任何想法将不胜感激。谢谢你。

mysql innodb mysqldump backup size

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

my.cnf 值不适用 - 在 CentOS LAMP 中优化 MySQL

我检查了 my.cnf 的其他出现,但我只发现了 /etc/my.cnf 出现了一次。

然后,我继续修复我的值,例如 query_cache_size 等。

保存并重新启动后,未应用 my.cnf 中的值。我正在使用 CentOS 5.6、Apache 2 上的 LAMP、MySQL 5.0.77

有什么帮助吗?

我也跑了

[root@veepiz ~]# ps aux | grep mysql
root     16202  0.0  0.1  61220   704 pts/0    D+   03:17   0:00 grep mysql
root     32054  0.0  0.1  63888   536 ?        S    Jul24   0:00 /bin/sh /usr/bin/mysqld_safe --datadir=/var/lib/mysql --socket=/var/lib/mysql/mysql.sock --log-error=/var/log/mysqld.log --pid-file=/var/run/mysqld/mysqld.pid --user=mysql
mysql    32096  6.0  1.6 250592  8352 ?        Sl   Jul24  19:14 /usr/libexec/mysqld --basedir=/usr --datadir=/var/lib/mysql --user=mysql --pid-file=/var/run/mysqld/mysqld.pid --skip-external-locking --port=3306 --socket=/var/lib/mysql/mysql.sock
Run Code Online (Sandbox Code Playgroud)

这是/etc/init.d/mysqld的内容

#!/bin/bash
#
# mysqld    This shell …
Run Code Online (Sandbox Code Playgroud)

mysql optimization configuration

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

SQL Server 2008 R2 上高可用性和 SSRS 的最佳解决方案?

我有 2 台带有 SQL Server 2008 R2 的物理服务器。– SQL Server 1(主动)和 SQL Server 2(被动)Web 应用程序是使用 .Net 4.0 框架开发的。

我想知道具有高可用性并具有用于报告的 SSRS 的最佳解决方案。

计划的解决方案:故障转移的镜像,SSRS 的事务复制作为镜像数据库只能用于故障转移场景。SSRS 将在被动服务器上,以减少主动服务器上的负载。

让我知道解决方案是否正确。还建议替代方法。

sql-server-2008 sql-server

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

用于练习数据库管理的小样本数据库?

我正在寻找一个便携式示例数据库

  • 可以从脚本创建
  • 有一个简单的 ER 模型
  • 用于数据库管理实践目的的数据很少。

我知道那里有 Adventureworks、Northwind 和 pubs 示例数据库,但我正在寻找更小的东西。

知道在哪里可以找到这种数据库吗?

sql-server-2008 sql-server database-recommendation

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

如何使 InnoDB 表中的 CREATE INDEX 更快

我有 RHEL 5 平台和 8G RAM 和 MySQL 版本 14.12 distrib 5.0.86。我想在一个 InnoDB 表中创建索引,但是需要很长时间:

Time | State             | Info
2291 | copy to tmp table | create index index_test
Run Code Online (Sandbox Code Playgroud)

该表有 8,000,000 行,在 /etc/my.cnf

innodb_buffer_pool_size = 4G
Run Code Online (Sandbox Code Playgroud)

但还是太慢了。

如何使 innodb 表中的创建索引更快?


我已经有了这些变量:

read_buffer_size = 2M
sort_buffer_size = 8M
tmp_table_size   = 64M
Run Code Online (Sandbox Code Playgroud)

显示创建 user_t\G

CREATE TABLE `user_t` (
  `t_id` mediumint(8) unsigned NOT NULL auto_increment,
  `user_id` varchar(50) NOT NULL default '',
  `event_time` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
  `user_A` double(11,2) NOT …
Run Code Online (Sandbox Code Playgroud)

mysql innodb index

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

MySQL 5.5 - Innodb - innodb_log_file_size 大于 4GB 的总和?

在线阅读有关 innodb_log_file_size 时,它说

日志文件的总大小必须小于 4GB

那么如果它需要更大呢?

在书籍和网上,它说将 innodb_log_file_size 设置为至少一个小时的写入值。

目前我有 2 个 1GB 的日志文件,在计算Innodb_os_log_written1 小时时,至少需要 10GB。2GB 的日志文件只能在我们的峰值负载下进行 20 分钟的写入。

蒂亚!

mysql innodb tuning mysql-5.5

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

确定 MySQL InnoDB 表是否在其自己的文件中,而不是在系统表空间中的最佳方法

我有一个 MySQL 开发服务器,它在某些数据库中使用 InnoDB 表。它最初是使用默认值设置的,因此所有数据都进入系统表空间(例如主表空间)ibdata1文件)。一路上,我启用了innodb_file_per_table以便新的数据库表进入它们自己的文件。

我现在想通过删除一些开发数据库来回收磁盘空间。我知道我必须 mysqldump 并重新导入系统表空间中的那些数据库。确定重点关注哪些的最佳方法是什么?

我没有看到任何明显的东西 information_schema数据库中。我可以使用 SSH shell 手动浏览服务器,但我正在寻找一种更自动化或更优雅的方式来做到这一点。

在一些较旧的数据库中,我只看到.frm数据库目录中的文件,在较新的数据库中我看到.frm.ibd文件。这似乎是知道数据在哪里的关键......

健全性检查:是否可以通过 mysqldump 一半的数据库来回收空间,或者你真的必须对每个数据库都做?该服务器中有 54 个使用 InnoDB 表的数据库。

注意:在 UNIX 上使用 MySQL v5.1。

mysql innodb mysqldump

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

为什么有些mysql系统变量是只读的

mysql服务器系统变量差不多有277个。在这些变量中,有些变量是动态的,而很少是动态的。

我不明白只读变量背后的原因是什么。为什么mysql系统变量很少是只读的。如果他们使这些变量动态化将会发生什么。

只读变量有什么深层原因吗?

现在我们可以考虑:

  • innodb_buffer_pool_size
  • innodb_校验和
  • 日期时间格式
  • 日志箱

我们还可以在http://dev.mysql.com/doc/refman/5.5/en/server-system-variables.html找到许多其他变量

当然,我知道我们不能像这样改变变量version。但许多其他变量log-bin都不是动态的。general_log对我来说,如果和是动态的就没有意义log_slow_queries。为什么 log-bin 不是动态的?同样,还有许多其他变量。

mysql

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

如何检查独立于使用的 SQL 数据库的列上是否存在 INDEX

无论使用的实际 SQL 数据库系统如何,是否有统一的方法来检查给定列的 INDEX 是否存在?

例如,对于 MySQL,可以使用SHOW CREATE TABLE mytable. 如果列mycolumn有一个索引,结果会是这样的:KEY 'Index_1' ('mycolumn')

这个指标KEY是所有SQL数据库系统统一的吗?

有没有更好的方法来检查索引?

mysql index information-schema

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