您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 其它行业文档 > mysql主从备份6
linux系统下实现mysql热备份详细步骤(mysql主从复制)作者:字体:[增加减小]类型:转载时间:2013-12-12我要评论这篇文章主要介绍了linux系统下实现MySQL主从热备份主从的作用:1.可以当做一种备份方式2.用来实现读写分离,缓解一个数据库的压力MySQL主从备份原理:Mysql的主从复制至少是需要两个Mysql的服务,当然Mysql的服务是可以分布在不同的服务器上,也可以在一台服务器上启动多个服务。如果想配置成为同一台上的话,注意安装的时候,选择两个不同的prefix=路径,同时开启服务器的时候,端口不能相同。(1)首先确保主从服务器上的Mysql版本相同(做主从服务器的原则是,MYSQL版本要相同,如果不能满足,最起码从服务器的MYSQL的版本必须高于主服务器的MYSQL版本)(2)在主服务器上,设置一个从数据库的账户,使用REPLICATIONSLAVE赋予权限,如:复制代码代码如下:mysqlGRANTREPLICATIONSLAVEON*.*TO'slave001'@'192.168.0.99'IDENTIFIEDBY'123456';QueryOK,0rowsaffected(0.13sec)[原理]master上提供binlog,slave通过I/O线程从master拿取binlog,并复制到slave的中继日志中slave通过SQL线程从slave的中继日志中读取binlog,然后解析到slave中主从复制大前提需要master与slave同步,因为笔者的数据库数据量不大,所以无需考虑太多,直接把master上的data复制到了slave上,但是如果是大的数据量,比如像taobao这个的系统实验环境准备:OS:CentOS5.4Mysql:Mysql-5.0.41.tar.gz辅助工具:SSHSecureShellClient两台测试IP&服务器:复制代码代码如下:MasterServer:192.168.1.2/LinuxCentOS5.4/MYSQL5.0SlaveServer:192.168.1.3/LinuxCentOS5.4/MYSQL5.0安装配置步骤:1、首先在Linux环境下分配好磁盘分区以便留足MySQL数据库的备份空间复制代码代码如下:[root@vpsmysql]#df-hFilesystemSizeUsedAvailUse%Mountedon/dev/simfs30G2.0G29G7%/2、MySQL数据库的安装:1将Mysql-5.0.41.tar.gz通过SSH工具上传到Linux系统的home目录下2建立MySQL使用者和群组:复制代码代码如下:#groupaddmysql#useradd-gmysqlmysql3解压缩Mysql-5.0.41.tar.gz源码包复制代码代码如下:#cd/usr/local/sofrware#tarzxvfMysql-5.0.41.tar.gz4进入源码目录编译安装复制代码代码如下:#cd/home/Mysql-5.0.41#./configure--prefix=/usr/local/mysql--with-charset=gbk|注:配置Mysql安装路径并且支持中文#make|注:编译#makeinstall|注:编译安装5替换/etc/my.cnf文件,进入源码包,执行命令复制代码代码如下:#cd/home/Mysql-5.0.41#cpsupport-files/my-medium.cnf/etc/my.cnf6完成以上操作以后进行初始化数据库,进入已经安装好的mysql目录复制代码代码如下:#cd/usr/local/mysql#bin/mysql_install_db--user=mysql|注:--user=mysql初始化表并且规定用mysql用户7设置给mysql和root用户设定访问权限我们先进入mysql目录复制代码代码如下:#cd/usr/local/mysql#chown-Rroot/usr/local/mysql注:设定root能访问/usr/local/mysq#chown-Rmysql/usr/local/mysql/var注:设定mysql用户能访问/usr/local/mysql/var#chgrp-Rmysql/usr/local/mysql注:设定mysql组能够访问/usr/local/mysq8启动mysql,进入已经安装好的目录复制代码代码如下:#cd/usr/local/mysql#bin/mysqld_safe--user=mysql&9修改mysql数据库超级用户root的缺省密码:复制代码代码如下:/usr/local/mysql/bin/mysqladmin-urootpassword'mysql'关闭mysql服务器复制代码代码如下:cd/usr/local/mysql/bin./mysqladmin-uroot-pshutdown10设定开机就启动mysql,进入源码目录下复制代码代码如下:#cd/home/Mysql-5.0.41#cpsupport-files/mysql.server/etc/init.d/mysql#chmod+x/etc/init.d/mysql#chkconfig--level345mysqlon#servicemysqlrestartShuttingdownMySQL.[确定]StartingMySQL[确定][root@localhostmysql]#到这里MySQL就装好了。3、配置MySQL5.0的复制(Replication)功能一.将master设置为只读。mysqlflushtableswithreadlock;二.用master中的data文件夹替换slave中的data文件夹比如用tarzcvfmysql_data.gz/media/raid10/mysql/3306/data然后mvmysql_data.gz/media/raid10/htdocs/blog/wordpress/因为我的/media/raid10/htdocs/blog/wordpress/是Nginx的主目录所以可以在slave上,用wget下载这个文件,然后解压,并覆盖slave上的data文件注意:覆盖之前最好备份源文件三.配置master的my.cnf,添加以下内容在[mysqld]配置段添加如下字段复制代码代码如下:server-id=1log-bin=/media/raid10/mysql/3306/binlog/binlog//这里写你的binlog绝对路径名binlog-do-db=blog//需要同步的数据库,如果没有本行,即表示同步所有的数据库binlog-ignore-db=mysql//被忽略的数据库这里给出我的my.cnf配置文件复制代码代码如下:[client]character-set-server=utf8port=3306socket=/tmp/mysql.sock[mysqld]character-set-server=utf8replicate-ignore-db=mysqlreplicate-ignore-db=testreplicate-ignore-db=information_schemauser=mysqlport=3306socket=/tmp/mysql.sockbasedir=/usr/local/webserver/mysqldatadir=/media/raid10/mysql/3306/datalog-error=/media/raid10/mysql/3306/mysql_error.logpid-file=/media/raid10/mysql/3306/mysql.pidopen_files_limit=10240back_log=600max_connections=5000max_connect_errors=6000table_cache=614external-locking=FALSEmax_allowed_packet=16Msort_buffer_size=1Mjoin_buffer_size=1Mthread_cache_size=300#thread_concurrency=8query_cache_size=20Mquery_cache_limit=2Mquery_cache_min_res_unit=2kdefault-storage-engine=MyISAMthread_stack=192Ktransaction_isolation=READ-COMMITTEDtmp_table_size=20Mmax_heap_table_size=20Mlong_query_time=3log-slave-updateslog-bin=/media/raid10/mysql/3306/binlog/binlogbinlog-do-db=blogbinlog-ignore-db=mysqlbinlog_cache_size=4Mbinlog_format=MIXEDmax_binlog_cache_size=8Mmax_binlog_size=20Mrelay-log-index=/media/raid10/mysql/3306/relaylog/relaylogrelay-log-info-file=/media/raid10/mysql/3306/relaylog/relaylogrelay-log=/media/raid10/mysql/3306/relaylog/relaylogexpire_logs_days=30key_buffer_size=10Mread_buffer_size=1Mread_rnd_buffer_size=6Mbulk_insert_buffer_size=4Mmyisam_sort_buffer_size=8Mmyisam_max_sort_file_size=20Mmyisam_repair_threads=1myisam_recoverinteractive_timeout=120wait_timeout=120skip-name-resolve#master-connect-retry=10slave-skip-errors=1032,1062,126,1114,1146,1048,1396#master-host=192.168.1.2#master-user=username#master-password=password#master-port=3306server-id=1innodb_additional_mem_pool_size=16Minnodb_buffer_pool_size=20Minnodb_data_file_path=ibdata1:56M:autoextendinnodb_file_io_threads=4innodb_thread_concurrency=8innodb_flush_log_at_trx_commit=2innodb_log_buffer_size=16Minnodb_log_file_size=20Minnodb_log_files_in_group=3innodb_max_dirty_pages_pct=90innodb_lock_wait_timeout=120innodb_file_per_table=0#log-slow-queries=/media/raid10/mysql/3306/slow.log#long_query_time=10[mysqldump]quickmax_allowed_packet=32M四.在master机上为slave机添加一同步帐号复制代码代码如下:mysqlgrantreplicationslav
本文标题:mysql主从备份6
链接地址:https://www.777doc.com/doc-2889272 .html