cacti mysql数据库的备份
创始人
2024-07-24 20:00:23
0

cacti mysql数据库的备份步骤如下:

  为了防止cacti mysql数据库损坏导致的问题,在另一服务器上建立从服务器,现记录步骤

  1 建立从数据库

  groupadd mysql

  useradd -g mysql mysql

  ./configure --prefix=/cache/mysql --enable-assembler --enable-largefile --with-extra-charsets=all

  make

  make install

  cp support-files/my-medium.cnf /etc/my.cnf

  bin/mysql_install_db --user=mysql --datadir=/cache/mysql/var/

  #在/cache/mysql/var/下 建立mysql数据库,属主为mysql

  chgrp -R mysql .

  将mysql文件夹下的属组变为mysql

  启动mysql

  . mysql/bin/mysqld_safe

  将mysql设置为自动启动

  cp support/mysql.server /etc/rc.d/init.d/mysqld

  chown root.root /etc/rc.d/init.d/mysqld

  chmod 755 /etc/rc.d/init.d/mysqld

  chkconfig --add mysqld

  chkconfig mysqld on

  service mysqld restart

  设置mysql root用户的密码

  ./bin/mysqladmin -u root password 123456

  从服务器配置完毕。

#p#

  2 同步的建立

  2.1 主服务器上的更改

  vi /etc/my.cnf

  log-bin #启动支持replication的二进制日志

  binlog-do-db=cacti #指出要备份的数据库名称

  server-id=1 #指出此数据库为主数据库

  binlog-ignore-db=mysql #不备份mysql数据库

  注意:如果想做复杂的结构:比如说A备份到B,B再备份到C,那么B除了打开log-bin,还要打开log-slave-updates

  2.2 从服务器上的配置更改

  vi /etc/my.cnf

  server-id=2

  master-host=主机

  master-user=用户名

  master-password=密码

  master-port=端口

  replicate-do-db=需要复制的数据名

  replicate-ignore-db=需要复制的数据库名

  2.3 在主数据库上建立同步用户。

  grant replication slave on *.* to qxt@"%" identified by "qxt";

  grant replication client,reload,super on *.* to qxt@"%"

  flush privileges;

  #修改权限后需要刷新才能生效

  2.4 利用热备份将本地数据库拷贝到从数据库上

  2.4.1 数据库的导出

  mysqldump -u root -p cacti > /root/cacti.sql

  #mysqldump将cacti数据库的所有数据导出

  scp /root/cacti.sql IP:/root

  #将主数据库文件拷贝到从数据库所在的机器上

  并在上面执行

  mysql -u root -p cacti < /root/cacti.tzt

  #装载数据库

  2.5 锁住主数据库保证备份时没有数据进入主库干扰备份

  flush tables with read lock;

  停止主服务器上的mysql服务

  mysqladmin -u root shutdown

  注意:如果表的类型只是mylsam,可以不停止mysql数据库,但复制过程中要锁住,如果表类型是InnoDB则必须停止主数据库。查看)(show table status from cacti;)

  2.6 查看主库状态

  show master status;

  +------------------+----------+--------------+------------------+

  | File | Position | Binlog_Do_DB | Binlog_Ignore_DB |

  +------------------+----------+--------------+------------------+

  | mysql-bin.000008 | 59170349 | | |

  +------------------+----------+--------------+------------------+

  1 row in set (0.00 sec)

  2.7 启动复制过程

  start slave;

  2.8 解锁

  unlock tables;

#p#

  2.9 测试

  1 在从数据库上

  mysql > show slave status\G;

  Slave_IO_Running: Yes #IO同步成功

  Slave_SQL_Running: Yes #数据库同步成功

  2 因为是主从数据库,所以在主数据库中插入数值,从数据库就会同步过去。

  例子: 在主数据库中插入test表

  mysql> use cacti;

  mysql> create table test(i int)

  #在test中插入一个值为1

  mysql> insert into test values(1);

  mysql> commit;

  #确认

  查询一下是否插入

  select * from test;

  +------+

  | i |

  +------+

  | 1 |

  +------+

  1 row in set (0.00 sec)

  进入从数据库检查:

  mysql> use cacti;

  Database changed

  mysql> select * from test;

  +------+

  | i |

  +------+

  | 1 |

  +------+

  1 row in set (0.00 sec)

  实验证明从数据库已经复制过来了。

  附: mysql> show processlist\G 查看从主数据库和从数据库复制的相关进程

  mysql> show processlist\G;

  *************************** 1. row ***************************

  Id: 1

  User: system user

  Host:

  db: NULL

  Command: Connect

  Time: 5159

  State: Waiting for master to send event

  Info: NULL

  *************************** 2. row ***************************

  Id: 2

  User: system user

  Host:

  db: NULL

  Command: Connect

  Time: 81

  State: Has read all relay log; waiting for the slave I/O thread to update it

  Info: NULL

  *************************** 3. row ***************************

  Id: 4

  User: root

  Host: localhost

  db: NULL

  Command: Sleep

  Time: 1166

  State:

  Info: NULL

  问题解决

  Slave_SQL_Running: No

  1.程序可能在slave上进行了写操作

  2.也可能是slave机器重起后,事务回滚造成的.

  一般是事务回滚造成的:

  解决办法:

  mysql> slave stop;

  mysql> set GLOBAL SQL_SLAVE_SKIP_COUNTER=1;

  mysql> slave start;

  解决办法二、

  首先停掉Slave服务:slave stop

  到主服务器上查看主机状态:

  记录File和Position对应的值

  进入master

  mysql> show master status;

  +----------------------+----------+--------------+------------------+

  | File | Position | Binlog_Do_DB | Binlog_Ignore_DB |

  +----------------------+----------+--------------+------------------+

  | localhost-bin.000094 | 33622483 | | |

  +----------------------+----------+--------------+------------------+

  1 row in set (0.00 sec)

  然后到slave服务器上执行手动同步:

  mysql> change master to

  > master_host='master_ip',

  > master_user='user',

  > master_password='pwd',

  > master_port=3306,

  > master_log_file='localhost-bin.000094',

  > master_log_pos=33622483 ;

  1 row in set (0.00 sec)

  mysql> slave start;

  解决3 有些是日志错误造成的。

  方法删掉数据库日志。

  指定正确的日志位置和名称,再做同步。

通过上面的数据,我们知道如何进行cacti mysql数据库的备份!希望你们能学会,以便预防问题的出现!

【编辑推荐】

  • 使用Cacti的一些小技巧
  • Cacti 插件中setup.php 文件的编写
  • cacti中配置nagios的注意事项
  • Cacti:AppServ环境,事件查看器报错_httpd php5ts
  • Cacti流量监控由bit转换为M的方法
  • cacti、rrd 相关

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
Windows恶意软件20年“... 在Windows的早期年代,病毒游走于系统之间,偶尔删除文件(但被删除的文件几乎都是可恢复的),并弹...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...
《非诚勿扰》红人闫凤娇被曝厕所... 【51CTO.com 综合消息360安全专家提醒说,“闫凤娇”、“非诚勿扰”已经被黑客盯上成为了“木...