mysql-zabbix数据库迁移

大体介绍一下基本情况:

zabbix版本:Zabbix 2.2.4

zabbix使用的msyql版本:Percona-XtraDB的msyql 5.1.56

mysql版本查看方法:

#usr/local/webserver/mysql/bin/mysql -u root -S /home/mysql_config/run/mysqld.sock  -p

Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 63
Server version: 5.1.56 Source distribution

mysql> show engines;
 InnoDB     | YES     | Percona-XtraDB, ........

备注:数据库迁移最好是在相同版本之间进行迁移!!!!

第一步:在原来的zabbix数据库进行全备

备份脚本如下:

[email protected]:~/sh# cat zabbix_backup-mysqldump.sh
#!/bin/bash
DATE=`date +%Y%m%d`
USER="****"
PASSWORD="******"

DATABASE="zabbix_ktep3"
DEFAULT_FILES=‘/home/ms_performance/config/my.cnf‘
HOST=192.168.*。*
LOCAL_BACKUPDIR=/home/wuxy/dbbackup

if [ ! -d $LOCAL_BACKUPDIR ] ;
then
    mkdir -p $LOCAL_BACKUPDIR
fi

innobackupex --defaults-file=$DEFAULT_FILES --user=$USER --password=$PASSWORD  --no-lock --databases=DATABASE  --host=$HOST  --stream=tar $LOCAL_BACKUPDIR | gzip > $LOCAL_BACKUPDIR/zabbix_backup-$DATE.tar.gz

if [[ $? == 0 ]]
then
    echo "zabbix_dbbackup is ok"  | mail -s ‘zabbix_dbbakup is ok!‘ 邮箱地址
else
    echo "zabbix_dbbackup is wrong" | mail -s ‘zabbix_dbbakup is wrong!‘ 邮箱地址
fi

备注:

1,如下使用innobackupex命令:

innobackupex --defaults-file=$DEFAULT_FILES --user=root --password="**"  --databases=zabbix $LOCAL_BACKUPDIR

不打包的话,则会在$LOCAL_BACKUPDIR下生成一个时间戳的目录来存放备份的数据,

eg:$LOCAL_BACKUPDIR/015-02-06_11-17-45

里面的内容如下:

[[email protected] 2015-02-06_11-17-45]# ls
backup-my.cnf  ibdata1  xtrabackup_binary  xtrabackup_binlog_info  xtrabackup_checkpoints  xtrabackup_logfile  zabbix(这个是目录)

2,/home/ms_performance/config/my.cnf的内容参考链接如下:

http://tenderrain.blog.51cto.com/9202912/1610450

第二步:使用nc命令将备份的文件拷贝至新的msyql所在服务器

解压缩的时候使用参数

tar xif zabbix_backup-20150206.tar.gz

注意必须有 i 参数,否则只解压出一个backup-my.cnf文件

第三步:新数据库进行相关配置

1,数据库初始化:

/usr/local/webserver/mysql/bin/mysql_install_db --user=mysql --basedir=/usr/local/webserver/mysql/ --datadir=/home/mysqldata

如果不是第一次初始化,必须将datadir即/home/mysqldata目录下的内容清空。

然后无密码进入mysql,设置root密码

2,将初始化的msyql和test目录备份一下再删除或者直接mv

cd /home/mysqldata && mv mysql test /home/mysqldata.bak-20150206

3,全库进行数据恢复,分为两步

innobackupex --defaults-file=/home/mysql_config/my.cnf --user=root --password=‘***‘ --use-memory=4G --apply-log /home/data/mysql_data_backup/90-130-zabbix-data/2015-02-06_11-17-45/

第1步是apply-log,为了加快速度,一般建议设置--use-memory,这个步骤完成之后,目录/backup/mysql/data/2013-10-29_09-05-25下的备份文件已经准备就绪。

innobackupex --defaults-file=/home/mysql_config/my.cnf --user=root --password=‘***‘ --copy-back /home/data/mysql_data_backup/90-130-zabbix-data/2015-02-06_11-17-45/

第2步是copy-back,即把备份文件拷贝至原数据目录下。

4,将mysql和test目录备份回来

cp -r /home/mysqldata.bak-20150206/mysql /home/mysqldata

cp -r /home/mysqldata.bak-20150206/test /home/mysqldata

5,修改权限!!!(很重要)

chown -R mysql.mysql /home/mysql_config/log
chown -R mysql.mysql /home/mysql_config/data/
chown -R mysql.mysql /home/mysqldata

6.启动

/bin/sh /usr/local/webserver/mysql/bin/mysqld_safe --defaults-file=/home/mysql_config/my.cnf --user=mysql --basedir=/usr/local/webserver/mysql/ --datadir=/home/mysqldata &

测试:登录进去,查看是否有数据库和相应的表,以及相应的表内容是否可以select得到

备注:

经测试,这样可以一次成功。如果没有成功要进行重复一次以上如上的操作,那么在每次进行上面的步骤前,做如下操作,否则会报很多错!

cd /home/mysqldata && rm -rf *
cd /home/mysql_config/data/ && rm -rf ibdata1

cd /home/mysql_config/log/ && rm -f ib_logfile*

报错场景还原如下:

innobackupex: Error: Original data directory ‘/home/mysqldata‘ is not empty! at /usr/bin/innobackupex line 2162.
解决方法:cd /home/mysqldata && rm -rf *

innobackupex: Error: Cannot overwrite file: /home/mysql_config/data/ibdata1 at /usr/bin/innobackupex line 2177.
解决方法:cd /home/mysql_config/data/ && rm -rf ibdata1

innobackupex: Error: Cannot overwrite file: /home/mysql_config/log/ib_logfile0 at /usr/bin/innobackupex line 2177.
cd /home/mysql_config/log
解决方法:cd /home/mysql_config/log/ && rm -f ib_logfile*

7,创建zabbix用户并授权

grant all privileges on 库名.* to ‘zabbix用户‘@‘%‘ identified by ‘密码‘;

8,修改/usr/local/webserver/zabbix/conf/zabbix.conf.php 和 /usr/local/zabbix/etc/zabbix_server.conf中的数据库执行ip, 重启zabbix_server 服务

页面观察测试。。。。

ok。。。。。。。。。。。。

时间: 2024-08-01 06:17:04

mysql-zabbix数据库迁移的相关文章

Linux Yum安装mysql的数据库迁移目录

Linux Yum安装mysql的数据库迁移目录 前言:因公司数据库目录存储满了,无法加空间进行更换数据目录Warning:更换数据目录之前先问一下有么有在用,或者又没用风险之类的,如果数据库有读写或者其他操作建议晚上进行操作.1.停用MySQL数据库 [[email protected] ~]# systemctl stop mysqld 2.查看数据现存目录迁移至所需目录 [[email protected] ~]# cat /etc/my.cnf | grep datadir datadi

zabbix数据库迁移

一.环境 192.168.1.163 zabbix 由于与线上业务争资源,影响比较大,故需要迁移,而现在是lamp部署 192.168.1.190 把原有zabbix数据库迁到这个台机器上3306上 二.163机器步 1.导出zabbix数据表结构 [[email protected] ~]# mysqldump -uroot -pdy2013 -P3308 -h127.0.0.1 --opt -d zabbix > zabbix.sql 2.把文件传到190机器上,以便恢复 [[email p

[Windows Server 2008] MySQL单数据库迁移方法

★ 欢迎来到[护卫神·V课堂],网站地址:http://v.huweishen.com ★ 护卫神·V课堂 是护卫神旗下专业提供服务器教学视频的网站,每周更新视频. ★ 本节我们将带领大家:MySQL数据库迁移方法 注意:此方法只适用于MyISAM模式的数据库(如护卫神·PHP套件):InnoDB不适合本方法. 本节主要讲述单个数据库迁移:如果是MySQL整体迁移,请查看我站其他视频. 操作流程:先在旧服务器上备份数据库,然后在新服务器创建数据库,再恢复数据. 1.查找数据库路径    打开[服

基于 ASP.NET Core 2.0 WebAPI 后台框架搭建(2) - EF Core (MySQL) CodeFirst 数据库迁移与依赖注入

概述 上一章,我们简单的搭建了依赖注入的三层架构,但是,没有真正的使用,而我们现在就使用MySQL数据,基于 EF Core 的 DbFirst 进行框架搭建. 微软爸爸官方文档:使用新数据库在 ASP.NET Core 上开始使用 EF Core    数据库表字段命名规范 步骤 1. 右击 Entity 项目,点击"管理NuGet程序包" 2. 安装以下三个包 Microsoft.EntityFrameworkCore     安装版本:2.1.0 Microsoft.Entity

Django链接MySQL,数据库迁移

form表单默认是以get请求提交数据的 http://127.0.0.1:8000/login/?username=admin&password=123 action 1 不写,默认向当前地址提交数据 2 全路径 3 后缀(/index) 提交post请求的时候,需要先去配置文件中注释掉一行 MIDDLEWARE = [ 'django.middleware.security.SecurityMiddleware', 'django.contrib.sessions.middleware.Se

ZABBIX数据库迁移目录

安装时候未考虑mysql空间大小,现发现空间不够需迁移如下操作: 1.停止服务 service mysqld stop service  zabbix-server stop mysq目录 find / -name mysql /var/lib/mysql  数据库目录 /var/lib/mysql/mysql /usr/bin/mysql /usr/lib64/mysql /usr/lib64/perl5/vendor_perl/auto/DBD/mysql /usr/lib64/perl5/

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

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

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 +%

zabbix server 数据库迁移

zabbix server 迁移DB: 之前zabbix server 和DB 在同一台机器上10.10.4.3,现在DB迁移到另外一台机器上10.10.4.2 Zabbix server 内网IP: 10.10.4.3 新DB内网IP为10.10.4.2 1.导出zabbix库,并导入新db中 mysql -uroot -p zabbix< zabbix.sql 2.新DB添加并授权zabbix用户 grant all on zabbix.* to [email protected]'%' i

mysql数据库迁移文档

数据库迁移文档 一.需求 确保数据库稳定的运行,为开发人员提供方便的测试数据库和生产数据库的环境. 二.数据库整体架构(master/slave) 三.数据库迁移备份还原操作 测试数据库导出操作 mysqldump -uroot -p123456 miss8 > miss8.sql Master节点,Slave节点导入数据库 mysql -uroot -piminerroot miss8 < miss8.sql 四.数据库迁移具体配置 一定要确保Master节点和Slave节点数据相同 配置M