2011-10-24 160 views
1

我有一个问题。我在我的一台服务器(eAthena)上运行开源游戏软件,他们使用MySQL作为他们的首选数据库。然而,每一次我运行mysqldump的mysqldump挂起服务器

mysqldump -u backup -p*** eathena > test-backup.sql

它结束了挂在服务器上。 eAthena软件挂起,并在完成后关闭。这是一个尺寸问题?看到数据库是如何4.7gb,我不知道应该责怪什么。有一些类型的替代我的mysqldump?

我正在运行CentOS 6 64bit,MySQL版本5.1.52。

+0

假设这是一个64位的MySQL,4.7GB应该是(长)眨眼的-的眼吧。什么类型的表?如果他们是myisam,您可以尝试使用“check table”和“repairs tables”来检查损坏情况。 –

回答

2

看来你的mysql安装内存不足了。请检查/etc/my.cnf或/etc/mysql/my.cnf(或在CentOS上的任何位置)。

增加table_cache和key_buffer_size。请参阅mysql安装附带的confs示例:my-huge.cnf’, my-large.cnf',my-medium.cnf’, and my-small.cnf'。与此对比您confs:

[mysqld] 
# Reduced to 200 as memory will not be enough for 500 connections. 
# memory=key_buffer+sort_buffer_size+read_buffer_size)*max_connections 
# which is now: 64 + (1 + 1) * 200 = 464 MB 
# max_connections = approx. MaxClients setting in httpd.conf file 
# Default set to 100. 
max_connections = 100 
max_allowed_packet = 1M 
max_connect_errors = 10 
key_buffer = 512M # 128M for 1GB, 256M for 2GB, 512 for 4GB 
join_buffer_size = 4M # 1M for 1GB, 2M for 2GB, 4M for 4GB 
read_buffer_size = 4M # 1M for 1GB, 2M for 2GB, 4M for 4GB 
sort_buffer_size = 2M # 1M for 1GB, 2M for 2GB, 4M for 4GB 
# myisam_sort_buffer_size used for ALTER, OPTIMIZE, REPAIR TABLE commands. 
myisam_sort_buffer_size = 32M 
# Checked opened tables and adjusted accordingly after running for a while. 
table_cache = 1024 
# thread_concurrency = 2 * (no. of CPU) 
thread_concurrency=4 
thread_cache_size = 286 
# log slow queries is a must. Many queries that take more than 2 seconds. 
# If so, then your tables need enhancement. 
log_slow_queries=/var/log/mysqld.slow.log 
long_query_time=2 
# Reduced wait_timeout to prevent idle clients holding connections. 
wait_timeout = 10 
connect_timeout = 10 
interactive_timeout = 10 
# Enable it for vast improvement and it may be all you need to tweak. 
query_cache_limit = 1M 
query_cache_size = 128M 
query_cache_type = 1 
[mysqld_safe] 
open_files_limit = 8192 
[mysqldump] 
quick 
max_allowed_packet = 16M 
[myisamchk] 
key_buffer = 256M # 64M for 1GB, 128M for 2GB, 256 for 4GB 
sort_buffer = 256M # 64M for 1GB, 128M for 2GB, 256 for 4GB 
read_buffer = 64M # 16M for 1GB, 32M for 2GB, 64M for 4GB 
write_buffer = 64M # 16M for 1GB, 32M for 2GB, 64M for 4GB 
[mysqlhotcopy] 
interactive-timeout 

不要忘记之前重新启动MySQL服务器再试

+0

这确实奏效,但我认为节省空间/带宽我只是不会去备份不必要的日志/表(这也解决了我的问题)。 – Ivan