相关疑难解决方法(0)

如何将数据库从一台服务器移动到另一台服务器?

如何将 MySQL 表从一台物理服务器移动到另一台物理服务器?

例如这个确切的场景: 我有一个使用 innodb 表的 MySQL 服务器,大小约为 20GB。

我想将其移至新服务器,最有效的方法是什么?

mysql mysqldump backup migration

153
推荐指数
8
解决办法
28万
查看次数

Mysql Innodb: InnoDB: ERROR: the age of last checkpoint is InnoDB: 超出日志组容量

我真的需要一些 mysql 专业知识。我是 mysql 的新手,在过去的 1 周内,我看到我的数据库发生了一些服务器崩溃。

我在 Ubuntu 上使用 mysql 5.1.36。这是一个专用的 mysql 服务器,具有双核和 4GB 内存和 40GB SSD。

日志错误是:

120413 23:57:15 [Note] Plugin 'FEDERATED' is disabled.
120413 23:57:15 [Warning] option 'innodb-autoextend-increment': unsigned value 2000 adjusted to 1000
120413 23:57:15  InnoDB: Initializing buffer pool, size = 2.9G
120413 23:57:15  InnoDB: Completed initialization of buffer pool
120413 23:57:16  InnoDB: Started; log sequence number 0 44234
120413 23:57:16 [Note] Event Scheduler: Loaded 0 events
120413 23:57:16 [Note] /usr/sbin/mysqld: ready for connections.
Version: '5.1.58-1ubuntu1-log' …
Run Code Online (Sandbox Code Playgroud)

mysql innodb

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

MySQL:读取通信数据包时出错

我在 mysql 中收到此警告,

[Warning] Aborted connection 21 to db: 'MyDB' user: 'MyUser' host: 'localhost' (Got an error reading communication packets)
Run Code Online (Sandbox Code Playgroud)

我经历过谷歌几个主题,并根据一些建议,我增加了max_allowed_packet128 to 512 to 1024仍然相同的行为。

我使用的Drupal 7,和是有很多BLOB数据类型的,但1024 Mbmax_allowed_packet应该是足够的在我看来。

任何其他解决方法如何克服此警告?

编辑:

添加了一些设置作为@Rolando 的建议/答案,我仍然收到相同的警告。

我的 mysql 配置如下所示:

[client]
port        = 3306
socket      = /tmp/mysql.sock
default-character-set = utf8

[mysqld]
port        = 3306
socket      = /tmp/mysql.sock
skip-external-locking
key_buffer_size = 16K 
max_allowed_packet = 1024M 
table_open_cache = 128 
sort_buffer_size = 64K
read_buffer_size = 256K
read_rnd_buffer_size = 256K
net_buffer_length …
Run Code Online (Sandbox Code Playgroud)

mysql innodb

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

如何在 InnoDB 引擎中使用插入延迟并为插入语句使用更少的连接?

我正在开发一个涉及大量数据库写入的应用程序,大约 70% 的插入和 30% 的读取。这个比率还包括我认为是一次读取和一次写入的更新。通过插入语句,多个客户端通过下面的插入语句在数据库中插入数据:

$mysqli->prepare("INSERT INTO `track` (user, uniq_name, ad_name, ad_delay_time ) values (?, ?, ?, ?)");
Run Code Online (Sandbox Code Playgroud)

问题是我应该使用insert_delay还是使用mysqli_multi_query机制,因为 insert 语句在服务器上使用 ~100% cpu。我在我的数据库上使用 InnoDB 引擎,所以插入延迟是不可能的。服务器上的插入是 ~36k/hr 和 99.89% 读取,我也在使用 select 语句在单个查询中检索数据七次,这个查询在服务器上执行需要 150 秒。我可以使用什么样的技术或机制来完成这项任务?我的服务器内存是 2 GB,我应该扩展内存吗?。看看这个问题,任何建议将不胜感激。

表的结构:

+-----------------+--------------+------+-----+-------------------+----------------+
| Field           | Type         | Null | Key | Default           | Extra          |
+-----------------+--------------+------+-----+-------------------+----------------+
| id              | int(11)      | NO   | PRI | NULL              | auto_increment |
| user            | varchar(100) | NO   |     | NULL              | …
Run Code Online (Sandbox Code Playgroud)

mysql innodb memory prepared-statement php

11
推荐指数
2
解决办法
3万
查看次数

InnoDB INSERT 性能的能力

您好,我正在运行最新版本的 Percona Server。

服务器版本:5.5.24-55 Percona Server (GPL),26.0 版

我有一个10个cpu的盒子有这些特点。

processor       : 0
vendor_id       : AuthenticAMD
cpu family      : 16
model           : 9
model name      : AMD Opteron(tm) Processor 6128
stepping        : 1
microcode       : 0x10000d9
cpu MHz         : 800.000
cache size      : 512 KB
Run Code Online (Sandbox Code Playgroud)

它具有 SSD 和 64GB 的 RAM。Innodb 大约为 10GB,因此 innodb_buffer_pool_size 设置为 10GB。

我有一张如下表:

create table TODAY
( symbol_id       integer not null
, openp           decimal(10,4)
, high            decimal(10,4)
, low             decimal(10,4)
, last            decimal(10,4) not null
, volume …
Run Code Online (Sandbox Code Playgroud)

mysql innodb performance percona-server

11
推荐指数
1
解决办法
9113
查看次数

MySQL 5.1 InnoDB 配置/24GB RAM - 双至强高负载

我正在运行一个 facebook 应用程序,目前有 300 - 600 个并发用户(并且还在增长)。为了让硬件为增长做好准备,我将 i7 / 12gb ram / 2x 80gb intel x25 ssd(debian 5.0 / mysql 5.0 / 64bit)更改为 bi-xeon / 24gb ram / 2x 120gb intel 320 ssd /mysql . 64 位)。

现在我面临的问题是性能比“小盒子”差。在两台服务器上,我一直在使用 nginx/php fcgi 来提供内容。

我只使用 innodb,读取/写入大约 65%/35%。大约 800 - 1000 qps,但所有查询都很简单,永远不会加入超过 1 个额外的表。所有索引都已设置,并且没有单独的查询记录在慢日志中(> 2 秒)。目前我有大约 400MB 的数据(大约 1GB 的索引)预计它每个月都会翻一番。

我很喜欢每个可以给我一个提示的人,他们应该改变什么才能让它运行得更顺畅。

i7盒子上的旧配置是这样的(混合myisam / innodb),在800+用户下表现相当不错。

旧的my.cnf

   key_buffer              = 3000M
   max_allowed_packet      = 128M
   thread_stack            = 192K
   thread_cache_size       = 8
   max_connections        = 400
   table_cache            = 8000
   thread_concurrency …
Run Code Online (Sandbox Code Playgroud)

mysql innodb performance my.cnf

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

使用 mysqldump 和 USE .. SOURCE 进行缓慢的 MySQL 数据库导入

我在 MySQL innoDB 中有大约 12 个表,其中一个有 1100 万条记录。

我用这个命令来备份:

mysqldump -u [USERNAME] -p [DBNAME] | gzip > [/path_to_file/DBNAME].sql.gz
Run Code Online (Sandbox Code Playgroud)

此命令用于在新服务器上导入内容:

USE [DBNAME];
SOURCE [/path_to_file/DBNAME].sql;
Run Code Online (Sandbox Code Playgroud)

这是我所遭受的痛苦(每个查询的时间都在增加!):

在此处输入图片说明

我可以做些什么来加快速度?我的 mysqldump 命令有问题吗?

mysql mysqldump backup

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

大量插入的 InnoDB 表不会使用我所有的 CPU

我有一个几乎从不查询的数据包日志数据库。它只需要快速插入即可。我使用 InnoDB 是因为我想保持 ACID 合规性,因为即使丢失一个数据包也可能对我们的客户造成损害。在性能调优方案中,我通过多个数据库连接向服务器发送 1,000,000 个数据包。但是无论我在 my.cnf 中使用什么设置,我都无法让 mysqld 进程在 12 核的系统上使用超过 900% 的 CPU。(盒子上没有其他东西在运行。)

我设置了以下内容

  • innodb_file_per_table = 1
  • innodb_write_io_threads = 64
  • innodb_read_io_threads = 64
  • innodb_thread_concurrency = 0

如果我使用 MyISAM,我可以在大约 6 秒内写入所有数据包。但是 InnoDB 大约需要 25。我可以让 MySQL 使用剩余的系统资源并更快地插入吗?

编辑:这是表的架构:

+-------+----------------------+------+-----+---------+-------+
| Field | Type                 | Null | Key | Default | Extra |
+-------+----------------------+------+-----+---------+-------+
| t     | bigint(20) unsigned  | YES  |     | NULL    |       |
| a     | char(1)              | YES  |     | NULL    |       |
| sa    | …
Run Code Online (Sandbox Code Playgroud)

mysql innodb myisam optimization mysql-5.5

8
推荐指数
1
解决办法
3589
查看次数

无法利用 MySQL 的最大 CPU 和内存使用量

再会。

我知道这可能是其他问题的重复,但是我已经在许多线程中应用了所有建议,但我仍然遇到同样的问题。

我有一个使用 max 的存储过程3 tables。当我运行该程序时,只30% of my CPU使用了大约25% of RAM.

我坐在一个CPU with 4 cores and 16GB RAM.

my.ini 如下所示:

[client]
port        = 3306
socket      = /tmp/mysql.sock

[mysqld]
port        = 3306
socket      = /tmp/mysql.sock
skip-external-locking
key_buffer_size = 512M
max_allowed_packet = 32M
table_open_cache = 512
sort_buffer_size = 2M
read_buffer_size = 2M
read_rnd_buffer_size = 8M
myisam_sort_buffer_size = 128M
thread_cache_size = 16
query_cache_size= 32M
thread_concurrency = 0

log-bin=mysql-bin

binlog_format=mixed

server-id   = 1

innodb_buffer_pool_size = 12G …
Run Code Online (Sandbox Code Playgroud)

mysql innodb performance wamp

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

MyISAM 表的性能设置 - 将所有内容保存在内存中

我有一个 8 核 MySQL 服务器,32 GB RAM,保存 40 个 MyISAM 表(总计:~4GB 数据)。由于数据库大小比可用内存小几倍,我如何才能充分利用我的服务器资源?

  1. 我应该尝试在 my.cnf 中配置哪些设置?

  2. 我可以强制数据 + 索引留在内存中吗?

mysql myisam mysql-5 performance

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