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

目錄 搜尋
前言 MySQL的使用 MySQL多表同時(shí)刪除方案 MySQL跨表、多表更新SQL語句總結(jié) MySQL存儲引擎 安裝 常規(guī)方式編譯安裝MySQL 采用cmake方式編譯安裝MySQL 使用rpm包安裝MySQL 使用yum方式安裝MySQL 采用二進(jìn)制方式免編譯安裝MySQL 多實(shí)例的安裝 什么是多實(shí)例 多實(shí)例的作用、問題以及應(yīng)用場景 多實(shí)例安裝01【推薦】 多實(shí)例官方安裝方案02 啟動、用戶和權(quán)限管理 單實(shí)例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連接多實(shí)例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密碼查看與修改
文字

MySQL的備份-mysqldump命令的使用

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

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

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

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

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

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

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

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

      • 備份庫下的表

        • 備份庫下的某個(gè)表

        • 備份庫下的多個(gè)表

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

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

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

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

  • 實(shí)例

    • 多實(shí)例分庫備份

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

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

    • 多實(shí)例分表備份

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

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

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

mysqldump參數(shù)
-A(--all-databases) :備份所有庫
-B(--databases) :連接多個(gè)數(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ù)時(shí)可能會用上)也可以在mysql客戶端執(zhí)行reset master;
--master-date=1/2 :增加binlog日志文件名以及對應(yīng)的位置點(diǎn)。
gzip :指定gzip進(jìn)行備份sql壓縮
--single-transaction :適合InnoDB事務(wù)數(shù)據(jù)庫備份(InnoDB表在備份時(shí),通常啟用該參數(shù)來保證備份的一致性,他的工作原理是設(shè)定本次回話的隔離級別為: repeatable read,以確保本次回話dump時(shí),不會看到其他會話已經(jīng)提交了的數(shù)據(jù)
--compact :參數(shù)優(yōu)化備份文件大小減少輸出注釋(debug調(diào)試時(shí)使用)
--default-chatacter-set=utf8 :指定默認(rèn)字符集

mysql數(shù)據(jù)庫自帶一個(gè)很好用的備份命令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新增一個(gè)數(shù)據(jù)庫備份語句(運(yùn)維推薦這個(gè)參數(shù) 理由:保證數(shù)據(jù)同步的同時(shí)還原操作可控)
mysqldum -uroot -paaaaaa --opt DbName >~/dbname.sql
# 多實(shí)例指定sock文件
mysqldump -uroot -paaaaaa -S /data/3306/mysql.sock database > ~/database.sql

多實(shí)例指定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ù) 備份多個(gè)庫

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

備份庫下的表

備份庫下的某個(gè)表

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

備份庫下的多個(gè)表

[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ù) 備份記錄點(diǎn)

參數(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語句)

實(shí)例

多實(shí)例分庫備份

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

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

# 多實(shí)例情況(單實(shí)例把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

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

[root@localhost ~] # vim mysql_bakdb.sql

#!/bin/bash
#filename mysql_bakdb.sh

MYUSER=root # 數(shù)據(jù)庫用戶
MYPASS=aaaaaa # 用戶密碼
SOCKET=/data/3306/mysql.sock # 多實(shí)例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í)候一個(gè)數(shù)據(jù)庫實(shí)例中會有多個(gè)庫,例如(blog,bbs..)但是出問題的時(shí)候可能是其中的某一個(gè)庫,如果在備份時(shí),把所有的庫都備份成一個(gè)數(shù)據(jù)文件的話,恢復(fù)某一個(gè)數(shù)據(jù)庫就比較麻煩

多實(shí)例分表備份

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

[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

分表備份缺點(diǎn):文件多,碎。

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

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


上一篇: 下一篇: