亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

directory search
前言 MySQL的使用 MySQL多表同時刪除方案 MySQL跨表、多表更新SQL語句總結(jié) MySQL存儲引擎 安裝 常規(guī)方式編譯安裝MySQL 采用cmake方式編譯安裝MySQL 使用rpm包安裝MySQL 使用yum方式安裝MySQL 采用二進(jìn)制方式免編譯安裝MySQL 多實例的安裝 什么是多實例 多實例的作用、問題以及應(yīng)用場景 多實例安裝01【推薦】 多實例官方安裝方案02 啟動、用戶和權(quán)限管理 單實例MySQL的啟動和關(guān)閉的方法 設(shè)置及修改MySQL root用戶密碼 找回丟失的MySQL root用戶密碼 創(chuàng)建MySQL用戶及用戶權(quán)限管理 基礎(chǔ)命令的操作 MySQL庫和表相關(guān)操作 MySQL中的索引操作 MySQL常用命令 MySQL的錯誤代碼 MySQL復(fù)習(xí)秘籍 備份與恢復(fù) 備份 恢復(fù) mysqlbinlog命令 服務(wù)日志 主從復(fù)制 主從復(fù)制部署配置問題匯總 主從復(fù)制讀寫分離 災(zāi)難恢復(fù) 配置phpmyadmin連接多實例MySQL MySQL語句大全 用戶創(chuàng)建、權(quán)限、刪除 數(shù)據(jù)庫與表顯示、創(chuàng)建、刪除 Mysql表復(fù)制及備份還原 數(shù)據(jù)庫表中數(shù)據(jù)操作 修改表中的指定一條數(shù)據(jù) 查詢表 日志 批量修改Mysql表引擎為InnoDB的方法 數(shù)據(jù)庫抽象層 PDO PDO對象常用方法 PDO 事務(wù)處理 PDO 與 MySQLi 二者效率簡單比較 大小寫敏感性 lower_case_table_names CentOS7安裝MySQL5.7密碼查看與修改
characters

MySQL的備份-mysqldump命令的使用

  • MySQL的備份-mysqldump命令的使用

    • 備份數(shù)據(jù)庫的參數(shù)

      • Myisam表常規(guī)備份(參數(shù))

      • InnoDB表常規(guī)備份(推薦使用的存儲引擎)

    • 普通方式備份數(shù)據(jù)庫

      • 多實例指定sock文件備份數(shù)據(jù)庫test并使用gzip壓縮

      • 使用egrep查看備份的文件的sql內(nèi)容

    • -B參數(shù) 備份多個庫

      • 備份庫下的表

        • 備份庫下的某個表

        • 備份庫下的多個表

    • -d參數(shù) 備份表結(jié)構(gòu)

    • -t參數(shù) 備份表數(shù)據(jù)

    • -F參數(shù) 刷新二進(jìn)制日志

    • --master-data參數(shù) 備份記錄點

  • 實例

    • 多實例分庫備份

      • 命令行實現(xiàn)備份

      • 腳本實現(xiàn)(多實例情況)

    • 多實例分表備份

數(shù)據(jù)備份的意義[運維的工作]
>1. 保護(hù)公司的數(shù)據(jù)
>2. 網(wǎng)站7*24小時提供服務(wù)

利用mysqldump命令備份數(shù)據(jù)的過程,實際上就是把數(shù)據(jù)從mysql庫里以邏輯的sql語句的形式直接輸出或者生成備份的文件的過程。

備份數(shù)據(jù)庫的參數(shù)

mysqldump參數(shù)
-A(--all-databases) :備份所有庫
-B(--databases) :連接多個數(shù)據(jù)庫,備份的數(shù)據(jù)中增加 建庫和use庫語句 (方便導(dǎo)入數(shù)據(jù))
-d(--no-data) :只導(dǎo)出表結(jié)構(gòu)
-t(--no-create-info) :只導(dǎo)出表數(shù)據(jù)
-x(--lock-all-tables) :鎖表(無法對數(shù)據(jù)庫進(jìn)行操作,影響大)
-l(--lock-tables) : 只讀鎖表
-F(--flush-logs) : 刷新binlog日志(備份數(shù)據(jù)時可能會用上)也可以在mysql客戶端執(zhí)行reset master;
--master-date=1/2 :增加binlog日志文件名以及對應(yīng)的位置點。
gzip :指定gzip進(jìn)行備份sql壓縮
--single-transaction :適合InnoDB事務(wù)數(shù)據(jù)庫備份(InnoDB表在備份時,通常啟用該參數(shù)來保證備份的一致性,他的工作原理是設(shè)定本次回話的隔離級別為: repeatable read,以確保本次回話dump時,不會看到其他會話已經(jīng)提交了的數(shù)據(jù)
--compact :參數(shù)優(yōu)化備份文件大小減少輸出注釋(debug調(diào)試時使用)
--default-chatacter-set=utf8 :指定默認(rèn)字符集

mysql數(shù)據(jù)庫自帶一個很好用的備份命令mysqldump,它的語法為:
mysqldump -u 用戶名 -p 密碼 數(shù)據(jù)庫名 [表名] > 備份的文件名

Myisam表常規(guī)備份(參數(shù))

mysqldump -uroot -paaaaaa -A -B -F --flush-privileges --triggers --routines --events --hex-blob --master-data=1 -x|gzip > ~/all.sql.gz

InnoDB表常規(guī)備份(推薦使用的存儲引擎)

mysqldump -uroot -paaaaaa -A -B -F --flush-privileges --master-data=1 --triggers --routines --events --hex-blob --single-transaction|gzip > ~/all.sql.gz

普通方式備份數(shù)據(jù)庫

# 20160108新增一個數(shù)據(jù)庫備份語句(運維推薦這個參數(shù) 理由:保證數(shù)據(jù)同步的同時還原操作可控)
mysqldum -uroot -paaaaaa --opt DbName >~/dbname.sql
# 多實例指定sock文件
mysqldump -uroot -paaaaaa -S /data/3306/mysql.sock database > ~/database.sql

多實例指定sock文件備份數(shù)據(jù)庫test并使用gzip壓縮

mysqldump -uroot -paaaaaa -S /data/3306/mysql.sock test|gzip > ~/test.gz.sql

使用egrep查看備份的文件的sql內(nèi)容

egrep -v "#|\*|--|^$" ~/test.sql

-B參數(shù) 備份多個庫

[root@localhost ~]# mysqldump -uroot -paaaaaa -S /data/3306/mysql.sock -B test mysql|gzip >~/mutil_db.sql.gz

備份庫下的表

備份庫下的某個表

[root@localhost ~]# mysqldump -uroot -paaaaaa -S /data/3306/mysql.sock dbNAME tableName>~/dbName.sql

備份庫下的多個表

[root@localhost ~]# mysqldump -uroot -paaaaaa -S /data/3306/mysql.sock dbName tableName tableName ..>~/dbName.sql


-d參數(shù) 備份表結(jié)構(gòu)

[root@localhost ~]# mysqldump -uroot -paaaaaa -d -S /data/3306/mysql.sock dbName tableName

-t參數(shù) 備份表數(shù)據(jù)

[root@localhost ~]# mysqldump -uroot -paaaaaa -t -S /data/3306/mysql.sock dbName tableName

-F參數(shù) 刷新二進(jìn)制日志

--master-data參數(shù) 備份記錄點

參數(shù)例子
--master-data1CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000003', MASTER_LOG_POS=107
--master-data2-- CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000003', MASTER_LOG_POS=107(注釋change master語句)

實例

多實例分庫備份

思路: 使用for循環(huán)查詢出數(shù)據(jù)庫中存在的庫,然后分別使用mysqldump進(jìn)行備份

命令行實現(xiàn)備份

# 多實例情況(單實例把sock去掉即可)
[root@localhost /test]# mysql -uroot -p'aaaaaa' -S /data/3306/mysql.sock -e 'show databases;'|grep -Evi 'database|information_schema|mysql'|sed -r 's#^([a-z].+$)#mysqldump -uroot -p"aaaaaa" -S /data/3306/mysql.sock --events -B \1|gzip>/test/\1.sql.gz #g'|/bin/bash

腳本實現(xiàn)(多實例情況)

[root@localhost ~] # vim mysql_bakdb.sql

#!/bin/bash
#filename mysql_bakdb.sh

MYUSER=root # 數(shù)據(jù)庫用戶
MYPASS=aaaaaa # 用戶密碼
SOCKET=/data/3306/mysql.sock # 多實例sock文件地址
BAKDIR=~/mysqldatabak/`date +"%Y%m%d"`/ # 保存的文件地址
MYCMD="mysql -u${MYUSER} -p${MYPASS} -S ${SOCKET}" # mysql連接
MYDUMP="mysqldump -u${MYUSER} -p${MYPASS} -S ${SOCKET}" # mysqldump連接

mkdir -p $BAKDIR # 創(chuàng)建文件夾

for database in `${MYCMD} -e "show databases;"|grep -Eiv 'mysql|database|information_schema'`
do
${MYDUMP} ${database}|gzip > ${BAKDIR}${database}.sql.gz
done

分庫備份的意義
有時候一個數(shù)據(jù)庫實例中會有多個庫,例如(blog,bbs..)但是出問題的時候可能是其中的某一個庫,如果在備份時,把所有的庫都備份成一個數(shù)據(jù)文件的話,恢復(fù)某一個數(shù)據(jù)庫就比較麻煩

多實例分表備份

典型備份語句(備份制定庫下的表)

[root@curder.localhost ~]
# mysqldump -uroot -paaaaaa rose student  > ~/student.sql

思路:在分庫備份下再循環(huán)庫下show tables from dbName找到所有表對表進(jìn)行備份(無-B參數(shù)) 使用mysqldump拼接庫、表進(jìn)行備份

[root@localhost ~] # vim mysql_baktable.sh

#!/bin/bash
#filename mysql_baktable.sh

MYUSER=root
MYPASS=aaaaaa
SOCKET=/data/3306/mysql.sock
BAKDIR=~/`date +"%Y%m%d"`
MYCMD="mysql -u${MYUSER} -p${MYPASS} -S ${SOCKET}"
MYDUMP="mysqldump -u${MYUSER} -p${MYPASS} -S ${SOCKET}"

for database in `${MYCMD} -e "show databases;"|grep -Eiv 'mysql|database|information_schema'`
do
	mkdir -p ${BAKDIR}/${database}
	
	for table in `${MYCMD} -e "show tables from ${database};"|sed '1d'` # 循環(huán)獲取當(dāng)前庫下的所有表
	do
	${MYDUMP} ${database} ${table}|gzip > ${BAKDIR}/${database}/${table}.sql.gz
	done
done

分表備份缺點:文件多,碎。

  1. 備份一個完整全備,再做一個分庫分表備份。

  2. 腳本批量恢復(fù)多個SQL文件。


Previous article: Next article: