您的位置:首页 > 数据库 > MySQL

基于备份恢复搭建Mysql主从

2018-09-06 15:02 176 查看

基于备份恢复搭建ERP主从
一. 复制备份文件到目标环境
mkdir -p /var/lib/mysql
lvcreate -n lv_data -L 2048G DATAVG
mkfs.ext4 /dev/mapper/DATAVG-lv_data 
mount /dev/mapper/DATAVG-lv_data /var/lib/mysql
mkdir -p  /var/lib/mysql/fullbackup
mkdir -p  /var/lib/mysql/increment
mkdir -p  /var/lib/mysql/binlog
scp root@192.168.5.3:/bak/mysql/db005036/archive/fullbackup_2018-09-02.tar.gz /var/lib/mysql/fullbackup/
scp -r root@192.168.5.3::/bak/mysql/db005036/increment/2018-09-05 /var/lib/mysql/increment/


二. 安装数据库等基础软件
cd /usr/local/
tar zxf mysql-5.5.61-linux-glibc2.12-x86_64.tar.gz 
mv mysql-5.5.61-linux-glibc2.12-x86_64.tar mysql
cp mysql.server /etc/init.d/mysqld
chmod +x /etc/init.d/mysqld
 
三. 检查相关软件包
soft_check()
#检查Xtrabackup
{
echo "####################################################################################"
echo "$($Time) Check Installed SoftWare"
if dpkg -l|grep percona-xtrabackup-24;then
    echo "">/dev/null
else
    wget https://repo.percona.com/apt/percona-release_0.1-4.$(lsb_release -sc)_all.deb
    dpkg -i percona-release_0.1-4.$(lsb_release -sc)_all.deb
    apt-get update
    apt-get install percona-xtrabackup-24 -y
    Reval=$?
        if [ ${Reval} -eq 0 ];then
            echo "percona-xtrabackup-24 install sucess"
        else 
            echo "\033[41;37m [ERROR] \033[0m install failure"
            send_mes "percona-xtrabackup-24 install failure"
            exit 1
        fi
fi
#检测curl软件安装包
if dpkg -L  curl >/dev/null 2>&1;then
    echo "" >>/dev/null
else
apt-get update
apt-get install curl -y
fi
#检查qpress软件安装包
if which qpress;then
    echo "" >/dev/null
else
    wget http://www.quicklz.com/qpress-11-linux-x64.tar
    tar xvf qpress-11-linux-x64.tar
    cp qpress /usr/bin/
    Reval=$?
        if  [ ${Reval} -eq 0 ];then
            echo "qpress installl success"
        else
            echo "\033[41;37m [ERROR] \033[0m install failure"
            send_mes "qpress install faillure"
        fi
fi        
}

 
四 数据库配置文件my.cnf
vim /etc/mysql/my.cnf
[client]
port        = 3306
socket        = /var/run/mysqld/mysqld.sock

[mysqld]
basedir=/usr/local/mysql
datadir=/var/lib/mysql/
port        = 3306
socket        = /var/run/mysqld/mysqld.sock
pid-file        = /var/run/mysqld/mysqld.pid
innodb_buffer_pool_size = 32G
innodb_additional_mem_pool_size = 64M
innodb_buffer_pool_instances    = 8
innodb_log_files_in_group     = 2
innodb_log_file_size = 512M
innodb_log_buffer_size    =    128M
#innodb_flush_log_at_trx_commit    = 1
innodb_flush_method    = O_DIRECT
innodb_max_dirty_pages_pct      = 75
innodb_adaptive_flushing        = 1
innodb_read_io_threads          = 16
innodb_write_io_threads         = 16
innodb_purge_threads            = 1
innodb_io_capacity        = 5000

# cache parameter 
key_buffer_size = 12G
sort_buffer_size = 1G
myisam_sort_buffer_size = 512M
thread_stack            = 256K
thread_cache_size       = 256
table_open_cache       = 5000
thread_concurrency      = 64
query_cache_type    = 0
query_cache_size    = 0
binlog_cache_size    = 128K
binlog_stmt_cache_size    = 32K
tmp_table_size        = 1G
max_heap_table_size    = 1G
read_buffer_size    = 32M
read_rnd_buffer_size    = 64M


# log parameter
relay-log= mysql-relay-bin
long_query_time = 10
server-id        = 0590
log_bin            = mysql-bin.log
binlog_format = ROW
expire_logs_days    = 3
max_binlog_size         = 100M
slow_query_log_file     = mysql-slow.log

# other parameter
#character_set_server=utf8
interactive_timeout    = 300
wait_timeout    = 300
innodb_lock_wait_timeout = 90
lock_wait_timeout     = 90
max_connections        = 3000
max_allowed_packet      = 128M
myisam_recover_options    = BACKUP
tmpdir           = /tmp
skip_name_resolve    = ON


[mysqldump]
quick
quote-names
max_allowed_packet    = 512M


五. 恢复还原数据库
innobackupex --decompress   /var/lib/mysql/fullbackup  && { find  /var/lib/mysql/fullbackup    -name  '*.qp' -type f |xargs rm;  }
innobackupex --decompress   /var/lib/mysql/increment/2018-09-05 &&{ find  /bak/mysql/db005036/increment/2018-09-05    -name  '*.qp' -type f |xargs rm;}
innobackupex --apply-log    --redo-only  /var/lib/mysql/fullbackup
innobackupex --apply-log    --redo-only  /var/lib/mysql/fullbackup --incremental-dir=/var/lib/mysql/increment/2018-09-05
innobackupex --apply-log    /var/lib/mysql/fullbackup
mv /var/lib/mysql/fullbackup/* /var/lib/mysql/
chmod +x /var/lib/mysql
mysqld_safe --defaults-file=/etc/mysql/my.cnf --user=mysql &

六. 恢复二进制文
root@yskp005090:/var/lib/mysql# cat xtrabackup_info 
uuid = 9e8dd427-b065-11e8-83c2-204747922d3c
name = 
tool_name = innobackupex
tool_command = --user=root --password=... --ftwrl-wait-threshold=60 --ftwrl-wait-timeout=120 --stream=xbstream --compress --extra-lsndir=/bak/mysql/inc_chkpoint/2018-09-05 /tmp --incremental --incremental-basedir=/bak/mysql/full_chkpoint/
tool_version = 2.4.8
ibbackup_version = 2.4.8
server_version = 5.5.46-0ubuntu0.12.04.2-log
start_time = 2018-09-05 00:02:26
end_time = 2018-09-05 01:11:53
lock_time = 0
binlog_pos = filename 'mysql-bin.030803', position '52434356'
innodb_from_lsn = 16312444798426
innodb_to_lsn = 16351713143746
partial = N
incremental = Y
format = xbstream
compact = N
compressed = compressed
encrypted = N


scp root@192.168.5.3:/bak/mysql/db005036/binlog/mysql-bin.030803 /var/lib/mysql/binglog/
mysqlbinlog --start-position=52434356 mysql-bin.030803 >source.sql
mysql -uroot -ppassword -e "source source.sql;"


--master服务器上
grant  REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO repl01@'%' identified by '';
--slave服务器上
change master to master_host='192.168.5.36',master_user='',master_password='',master_log_file='mysql-bin.030804',master_log_pos=0;

 
 
 
 
 
 
 
 
 
 
 
 
 

阅读更多
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: