mysql优化-针对zabbix数据库

mysql优化:

修改mysql的root账号的密码:

先停止mysql服务:

service mysqld stop

使用--skip-grant-tables忽略密码启动:

mysqld_safe --skip-grant-tables &

进入mysql修改密码:

use mysql

update user set password=password(‘mysql‘) where user=‘root‘;

flush privileges;

查看表占用空间情况:

select table_name, (data_length+index_length)/1024/1024 as total_mb, table_rows from information_schema.tables where table_schema=‘zabbix‘;

备份表trends_uint、history_uint、history

mysqldump -uroot -p zabbix history> history.sql

mysqldump -uroot -p zabbix trends_uint> trends_uint.sql

mysqldump -uroot -p zabbix history_uint> history_uint.sql

清空表trends_uint、history_uint、history中的数据:

truncate table trends_uint;

truncate table history;

truncate table history_uint;

修改单独表空间:

备份数据

mysqldump -uroot -p zabbix > zabbix.sql

删除数据库:

drop database zabbix;

停止数据库:

service mysqld stop

删除共享表空间数据文件

$ cd /var/lib/mysql

$ rm ib*

.增加innodb_file_per_table参数

vi /etc/my.cnf

在[mysqld]下设置

innodb_file_per_table=1

重启数据库:

service mysqld start

重新创建数据库:

mysql -uroot -p

create database zabbix character set utf8;

grant all privileges on zabbix.* to [email protected] identified by ‘zabbix‘;

flush privileges;

导入zabbix数据库:

mysql -uzabbix -pzabbix zabbix<zabbix.sql

增大innodb_log_file_size的方法:

暂停mysql,

service mysqld stop

转移ib_logfile0和ib_logfile1,

mkdir /home/backup/ && mv /var/lib/mysql/ib_logfile*   /home/backup/

编辑my.cnf  ,  增加

innodb_log_file_size=20M

启动mysql,

service mysqld start

[[email protected] etc]# cat my.cnf

[mysqld]

datadir=/var/lib/mysql

socket=/var/lib/mysql/mysql.sock

user=mysql

# Disabling symbolic-links is recommended to prevent assorted security risks

symbolic-links=0

innodb_buffer_pool_size=3G

slow_query_log=/var/log/mysql.slow.log

back_log               =500

connect_timeout        =5

delayed_insert_timeout =  300

delayed_insert_limit   =100

delayed_queue_size     =5000

flush_time             =0

interactive_timeout    =28800

join_buffer_size       =1048540

key_buffer_size        =1048540

lower_case_table_names =  0

long_query_time        =1

max_allowed_packet     =1048576

max_connections        =1000

max_connect_errors     =10

max_delayed_threads    =20

max_heap_table_size    =256M

max_join_size          =4294967295

max_sort_length        =1024

max_tmp_tables         =32

max_write_lock_count   =4294967295

net_buffer_length      =16384

read_buffer_size       =134217728

sort_buffer            =10M

table_cache            =64

thread_concurrency     =10

tmp_table_size         =1048576

thread_stack           =1M

wait_timeout           =28800

innodb-file-per-table=1

innodb_log_file_size=20M

innodb_flush_log_at_trx_commit=0

[mysqld_safe]

log-error=/var/log/mysqld.log

pid-file=/var/run/mysqld/mysqld.pid

移动mysql数据目录的方法:

关闭mysql: service mysqld stop

复制文件:cp -R /var/lib/mysql /home/mysql

重命名目录: mv /var/lib/mysql /var/lib/mysql-backup

链接文件: ln -s /home/mysql /var/lib/mysql

修改目录权限:

chown mysql:mysql /home/mysql -R

chown -h mysql:mysql /var/lib/mysql

重新启动mysql: service mysqld start

每月1日定时清理3个zabbix数据库的大表

01 03 1 * * /backup/mysql_trunc_mysql.sh &>/dev/null

vim /backup/mysql_trunc_zabbix.sh

#!/bin/bash

#truncate 3 big tables :trends_uint,history,history_unit .

#Every month‘s 1th 3:00 excute this script

#Writen by yuweibing ,phonenumber:18080116652

service zabbix_server stop

echo "truncate table trends_uint;"   |mysql -uzabbix -pzabbix zabbix

echo "truncate table history;"       |mysql -uzabbix -pzabbix zabbix

echo "truncate table history_uint;"  |mysql -uzabbix -pzabbix zabbix

sleep 1

mysqldump -uroot -pmysql zabbix > /backup/zabbix.sql

if [ $? -eq 0 ]

then

echo "drop database zabbix;"|mysql  -uroot -pmysql

else

exit 1

fi

echo "create database zabbix character set utf8;"|mysql  -uroot -pmysql

echo "grant all privileges on zabbix.* to [email protected] identified by ‘zabbix‘;"|mysql  -uroot -pmysql

echo "flush privileges;"|mysql  -uroot -pmysql

mysql -uzabbix -pzabbix zabbix</backup/zabbix.sql

sleep 1

service zabbix_server start

时间: 2024-07-31 15:30:39

mysql优化-针对zabbix数据库的相关文章

MySQL备份脚本(包含zabbix数据库)

需求:按天备份,保留一周,zabbix数据库不备份历史数据 MySQL版本:5.7.17 脚本: 需要提前建立路径 mkdir -pv /opt/mysql_backup/auto_backup cat /opt/mysql_backup/mysqlback.sh #!/bin/bash # 0 3 * * * bash /opt/mysql_backup/mysqlback.sh &>/dev/null DBUSER=root DBPASS=********** DATE=`date +%

MYSQL学习笔记——数据库范式及MYSQL优化整体思路

一.数据库范式                                                                               为了建立冗余较小.结构合理的数据库,设计数据库时必须遵循一定的规则.在关系型数据库中这种规则就称为范式.范式是符合某一种设计要求的总结.要想设计一个结构合理的关系型数据库,必须满足一定的范式. 1.1.第一范式(1NF:每一列不可包含多个值)      所谓第一范式(1NF)是指数据库表的每一列都是不可分割的基本数据项,同一列

数据库 mysql 优化器原理

MySQL查询优化器有几个目标,但是其中最主要的目标是尽可能地使用索引,并且使用最严格的索引来消除尽可能多的数据行. 你的最终目标是提交SELECT语句查找数据行,而不是排除数据行.优化器试图排除数据行的原因在于它排除数据行的速度越快,那么找到与条件匹配的数据行也就越快. 如何 更好的 利用索引: 1:尽量比较数据类型相同的数据列.当你在比较操作中使用索引数据列的时候,请使用数据类型相同的列.相同的数据类型比不同类型的性能要高一些. 例如,INT与BIGINT是不同的.CHAR(10)被认为是C

京东MySQL监控之Zabbix优化、自动化

随着京东业务的飞速发展, MySQL数据库的使用更加普及.服务器量级飞速增长,这对京东MySQL DBA团队的要求也越来越高.监控系统为数据库管理和维护提供了精确的数据依据,是数据库运维人员的千里眼和顺风耳. 准确.及时.有效的监控,能够使运维人员对生产服务系统运行情况了如指掌.通过分析获得的监控信息,判断被监控数据库的运行状态,对可能出现的问题进行预测,可以及时制定出适当的优化方案,从而保证整个系统正常.高效地运行.这也就在很大程度上保证了数据库的安全性,避免了一些不必要的损失.所以,我们有必

zabbix数据库优化脚本

分享一个zabbix数据库的优化脚本,适合2.0版本. 对history,hostory_uint按日分区,trends,trends_uint按月分区: 关闭Houserkeeper: vim zabbix_server.conf DisableHousekeeper=1 对history,hostory_uint每日建立第二天的分区并删除45天前的分区 对trends,trends_uint每月20号建立下一个月的分区,并删除12个月前的分区 时间可以自己修改 由于events表的大小对仪表

mysql优化-数据库优化、SQL优化

我有一张表w1000,里面有1000万条数据,这张表结构如下:CREATE TABLE `w1000` ( `id` varchar(36) NOT NULL, `name` varchar(10) DEFAULT NULL, `age` int(3) DEFAULT NULL, `money` double(8,2) DEFAULT NULL, `address` varchar(100) DEFAULT NULL, `create_date` datetime(3) DEFAULT NULL

利用XtraBackup和MySQL主从复制来转移Zabbix数据库

一 应用场景描述 目前Zabbix监控系统的Server端和Web端以及MySQL运行在同一台虚拟机上,最近这台虚拟机运行不是很稳定,MySQL频繁被OOM杀掉.故需要及时迁移Zabbix数据库到另外一台大内存的物理机. 二 迁移步骤 迁移的思路是搭建MySQL主从复制,把现有的MySQL实例作为Master,把新的MySQL实例作为Slave,现DUMP一份现有的数据迁移到新的MySQL实例,然后设置主从同步,最后再关闭主从同步. 这里我们使用XtraBackup来备份Master的数据,而不

单表60亿记录等大数据场景的MySQL优化和运维之道

此文是根据杨尚刚在[QCON高可用架构群]中,针对MySQL在单表海量记录等场景下,业界广泛关注的MySQL问题的经验分享整理而成,转发请注明出处. 杨尚刚,美图公司数据库高级DBA,负责美图后端数据存储平台建设和架构设计.前新浪高级数据库工程师,负责新浪微博核心数据库架构改造优化,以及数据库相关的服务器存储选型设计. 前言 MySQL数据库大家应该都很熟悉,而且随着前几年的阿里的去IOE,MySQL逐渐引起更多人的重视. MySQL历史 1979年,Monty Widenius写了最初的版本,

单表60亿记录等大数据场景的MySQL优化和运维之道 | 高可用架构(转)

转自http://www.php1.cn/Content/DanBiao_60_YiJiLuDengDaShuJuChangJingDe_MySQL_YouHuaHeYunWeiZhiDao_%7C_GaoKeYongJiaGou.html, 更多详细资料请参看原文 此文是根据杨尚刚在[QCON高可用架构群]中,针对MySQL在单表海量记录等场景下,业界广泛关注的MySQL问题的经验分享整理而成,转发请注明出处. 杨尚刚,美图公司数据库高级DBA,负责美图后端数据存储平台建设和架构设计.前新浪高