mysql 備份

MySQL安裝

  • 添加 MySQL Yum Repository
sudo yum -y localinstall http://mirrors.d.com/software/mysql/5.7/mysql57-community-release-el7-11.noarch.rpm 
  • 默認是最新版5.7版本的mysql,需要安裝5.6版本,所以修改/etc/yum.repos.d/mysql-community.repo文件缨历,修改對應版本的enabled字段,如下
[mysql57-community]
enabled=0

[mysql57-community]
enabled=1
  • 安裝sudo yum -y install mysql-community-server糙麦,啟動sudo service mysqld start辛孵,驗證安裝是否成功mysqladmin --version
  • 設置默認root的用戶密碼 mysqladmin -u root password "123456";,登錄mysql -u root -p
  • 添加用戶及權限GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP ON TUTORIALS.* TO 'username'@'%' IDENTIFIED BY 'password';赡磅,其中%表示所有客戶端ip可連接觉吭,可指定IP可連接。也可以直接操作mysql數據庫下的user表管理用戶仆邓。

Mysql備份

  • 開啟binlog日志
vim /etc/my.cnf

log_bin=mysql-bin   
binlog_format=row 
  • 常用操作
mysql> show master logs;  #查看數據庫所有日志文件鲜滩。
mysql> flush logs; #將內存中l(wèi)og日志寫磁盤,保存在當前binlog文件中节值,并產生一個新的binlog日志文件徙硅。
mysql> reset master;  #刪除所有二進制日志,在(mysql-bin.000001)開始記錄搞疗。  

mysqldump --all-databases > dump.sql
mysqldump --databases db1 db2 db3 > dump.sql

xtrabackup備份

  • 1嗓蘑、安裝
yum install http://www.percona.com/downloads/percona-release/redhat/0.1-4/percona-release-0.1-4.noarch.rpm

yum install percona-xtrabackup-24

yum -y install perl-DBD-MySQL.x86_64 
  • 2须肆、創(chuàng)建備份用戶
mysql> grant reload,lock tables,replication client on *.* to 'backup'@'localhost' identified by '123456';

mysql> grant process on *.* to backup@'localhost';

mysql> flush privileges;
  • 3、全量物理備份

    • 生成當前時間戳命名的備份文件
    innobackupex --user=backup --password=123456 /data/mysql/backup 
    
    • 讓備份文件準備桩皿,備份文件不能直接用于恢復豌汇,因為備份的數據中可能會包含尚未提交的事務或已經提交但尚未同步至數據文件中的事務,此時數據文件處于不一致的狀態(tài)泄隔。因此拒贱,我們現在就是要通過回滾未提交的事務及同步已經提交的事務至數據文件也使得數據文件處于一致性狀態(tài)。
    innobackupex --user=backup --password=123456 --apply-log /data/mysql/backup/2017-11-24_14-11-17
    
    • 將mysql的數據目錄鏈接到這個已經恢復的備份目錄佛嬉,或直接用copy-back拷貝至mysql數據目錄
    systemctl stop mysqld
    mv mysql mysql.old
    ln -s /data/mysql/backup/2017-11-24_14-11-17/  /var/lib/mysql
    chown  mysql:mysql /var/lib/mysql
    chown -R mysql:mysql /data/mysql/backup/*
    
    systemctl start mysqld  #重啟mysql即可 恢復
    
  • 4逻澳、增量備份

#全備
innobackupex --user=backup --password=123456 /data/mysql/backup 

#第一次增量備份
innobackupex  --user=backup --password=123456 --incremental /data/mysql/backup/inc  --incremental-basedir=/data/mysql/backup/2017-11-24_14-11-17/

#第二次增量備份
innobackupex  --user=backup --password=123456 --incremental /data/mysql/backup/inc  --incremental-basedir=incremental /data/mysql/backup/inc/2017-11-24_14-18-35


#恢復 
innobackupex --apply-log --redo-only ~/data/mysql/backup/full/2017-11-24_16-29-09/

## 注意每次恢復后設置 備份文件的mysql用戶權限

innobackupex --apply-log --redo-only /data/mysql/backup/full/2017-01-20_10-52-43 --incremental-dir=/data/mysql/backup/inc/2017-01-20_11-04-31

shell 腳本

  • mysql和xtrabackup安裝
#####  mysql  安裝   默認5.7    
yum  -y install http://mirrors.d.com/software/mysql/5.7/mysql57-community-release-el7-11.noarch.rpm 

#echo "#### install   mysql:默認安裝最新版5.7,  若需要之前版本需要修改/etc/yum.repos.d/mysql-community.repo 中對應版本的enabled值"

yum -y install mysql-community-server
mysqladmin --version

#  deta目錄   /var/lib/mysql
if [ ! -d /var/lib/mysql ]; then
    echo install  mysql  failed
    exit 0;
fi

service mysqld start

###### mysql 設置
#設置 root  密碼   123456
mysqladmin -u root password "123456";
#允許所有客戶端訪問
 ##mysql -uroot -p123456 -D mysql -e "update user set Host='%' where User='root' and Host='127.0.0.1';"

# Grant all on *.* to 'root'@'%' identified by 'password' with grant option;
mysql -uroot -p123456 -e "Grant all on *.* to 'root'@'%' identified by 'password' with grant option;"
#創(chuàng)建備份用戶  backup  123456
mysql -uroot -p123456 -e "grant reload,lock tables,replication client ,process on *.* to 'backup'@'localhost' identified by '123456';"

mysql -uroot -p123456 -e ' flush privileges;'

mysql -uroot -p123456 -D mysql  -e 'select host,user from user;'  


#xtrabackup安裝 
yum   -y install   http://www.percona.com/downloads/percona-release/redhat/0.1-4/percona-release-0.1-4.noarch.rpm
yum -y install   percona-xtrabackup-24
#yum  -y  install  perl-DBD-MySQL.x86_64
  • 備份腳本暖呕,定時執(zhí)行
#!/bin/bash

# mysql備份文件斜做,該文件每天執(zhí)行,每周一全備湾揽,每天基于本周一的全備做增量備份
#全備最近四周瓤逼,增備最近七天
#  crontab -e
#  00 03 * * 1  /data/mysql/backup/backup.sh
backupfull_dir='/data/mysql/backup/full'
backupinc_dir='/data/mysql/backup/inc'
username='backup'
password='123456'
#需要在備份服務器上對備份文件定期刪除處理
backup_host='10.0.12.59'   
last4week_day=`date -d -4weeks '+%Y-%m-%d'`  
week_day=`date +%w`
lastmon_day=`date -d "last Mon" +"%Y-%m-%d"`
today=`date +%Y-%m-%d`

# Every Monday  full back 
if [ $week_day == 1 ]; then
    #周一刪除四周前的基礎備份,新增基礎備份
    rm -rf ${backupfull_dir}/${last4week_day}*
    ulimit -n 65535 && innobackupex --user=$username --password=$password $backupfull_dir
    #備份文件傳到其他服務器
    if [ $backup_host ]; then 
      new_full=`ls ${backupfull_dir} |grep $today`
      #tar czvf ${new_full}.tar $new_full 
      cd $backupfull_dir && tar -cf - ${new_full} | pigz > ${new_full}.tgz
      rsync -rl ${new_full}.tar root@10.0.12.59:/data/mysql/backup/full 
      rm -rf ${new_full}.tar
    fi
fi

#每天增量備份库物,基于周一的全備
full_dir=`ls ${backupfull_dir} |grep $lastmon_day`

if [ $full_dir ]; then
   ulimit -n 65535 && innobackupex  --user=$username --password=$password --incremental $backupinc_dir  --incremental-basedir=${backupfull_dir}/${full_dir} 
   #備份文件傳到其他服務器
   if [ $backup_host ]; then
     new_inc=`ls ${backupinc_dir} |grep $today`
     #tar czvf ${new_inc}.tar $new_inc
     cd $backupinc_dir && tar -cf - ${new_inc} | pigz > ${new_inc}.tgz
     rsync -rl ${new_inc}.tar root@10.0.12.59:/data/mysql/backup/inc
     rm -rf ${new_inc}.tar
   fi
fi
#刪除 一周之前的增量備份
find $backupinc_dir -maxdepth 1  -mtime +7 | xargs rm -rf


mariadb安裝

  • yum源
#vim /etc/yum.repo.d/MariaDB.repo

# MariaDB 10.1 CentOS repository list - created 2016-12-01 03:36 UTC
# http://downloads.mariadb.org/mariadb/repositories/
[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.1/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1

 #yum clean all
 #yum makecache
  • 安裝sudo yum -y install MariaDB-server MariaDB-client

  • 使用mysql_secure_installation配置MariaDB服務

#由于一開始安裝MariaDB數據庫后, root用戶默認密碼為空, 所以只需要按Enter鍵
Enter current password for root (enter for none):

#是否設置root用戶的新密碼
Set root password? [Y/n] y

#錄入新密碼
New password:

#確認新密碼
Re-enter new password:

#是否刪除匿名用戶,生產環(huán)境建議刪除
Remove anonymous users? [Y/n] y

#是否禁止root遠程登錄,根據自己的需求選擇
Disallow root login remotely? [Y/n] n

#是否刪除test數據庫
Remove test database and access to it? [Y/n] y

#是否重新加載權限表
Reload privilege tables now? [Y/n] y
  • 用戶配置霸旗,遠程訪問設置同mysql

  • MariaDB的日志在 /etc/logs/messages

[mysqld]
datadir=/data/mysql_test   #修改默認路徑
socket=/data/mysql_test/mysql.sock
#default-character-set=utf8
character_set_server=utf8
slow_query_log=on
slow_query_log_file=/data/mysql_test/slow_query_log.log
#long_query_time=2

mysql_install_db --user=mysql --basedir=/usr --datadir=/data/mysql_test/
?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市艳狐,隨后出現的幾起案子,更是在濱河造成了極大的恐慌皿桑,老刑警劉巖毫目,帶你破解...
    沈念sama閱讀 211,290評論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現場離奇詭異诲侮,居然都是意外死亡镀虐,警方通過查閱死者的電腦和手機,發(fā)現死者居然都...
    沈念sama閱讀 90,107評論 2 385
  • 文/潘曉璐 我一進店門沟绪,熙熙樓的掌柜王于貴愁眉苦臉地迎上來刮便,“玉大人,你說我怎么就攤上這事绽慈『藓担” “怎么了?”我有些...
    開封第一講書人閱讀 156,872評論 0 347
  • 文/不壞的土叔 我叫張陵坝疼,是天一觀的道長搜贤。 經常有香客問我,道長钝凶,這世上最難降的妖魔是什么仪芒? 我笑而不...
    開封第一講書人閱讀 56,415評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上掂名,老公的妹妹穿的比我還像新娘据沈。我一直安慰自己,他們只是感情好饺蔑,可當我...
    茶點故事閱讀 65,453評論 6 385
  • 文/花漫 我一把揭開白布锌介。 她就那樣靜靜地躺著,像睡著了一般膀钠。 火紅的嫁衣襯著肌膚如雪掏湾。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,784評論 1 290
  • 那天肿嘲,我揣著相機與錄音融击,去河邊找鬼。 笑死雳窟,一個胖子當著我的面吹牛尊浪,可吹牛的內容都是我干的。 我是一名探鬼主播封救,決...
    沈念sama閱讀 38,927評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼拇涤,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了誉结?” 一聲冷哼從身側響起鹅士,我...
    開封第一講書人閱讀 37,691評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎惩坑,沒想到半個月后掉盅,有當地人在樹林里發(fā)現了一具尸體,經...
    沈念sama閱讀 44,137評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡以舒,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,472評論 2 326
  • 正文 我和宋清朗相戀三年趾痘,在試婚紗的時候發(fā)現自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片蔓钟。...
    茶點故事閱讀 38,622評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡永票,死狀恐怖,靈堂內的尸體忽然破棺而出滥沫,到底是詐尸還是另有隱情侣集,我是刑警寧澤,帶...
    沈念sama閱讀 34,289評論 4 329
  • 正文 年R本政府宣布兰绣,位于F島的核電站肚吏,受9級特大地震影響,放射性物質發(fā)生泄漏狭魂。R本人自食惡果不足惜罚攀,卻給世界環(huán)境...
    茶點故事閱讀 39,887評論 3 312
  • 文/蒙蒙 一党觅、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧斋泄,春花似錦杯瞻、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,741評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至募胃,卻和暖如春旗唁,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背痹束。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評論 1 265
  • 我被黑心中介騙來泰國打工检疫, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人祷嘶。 一個月前我還...
    沈念sama閱讀 46,316評論 2 360
  • 正文 我出身青樓屎媳,卻偏偏與公主長得像,于是被迫代替她去往敵國和親论巍。 傳聞我的和親對象是個殘疾皇子烛谊,可洞房花燭夜當晚...
    茶點故事閱讀 43,490評論 2 348

推薦閱讀更多精彩內容