mysql數據庫運維方案

歡迎關注【無量測試之道】公衆號,回覆【領取資源】,
Python編程學習資源乾貨、
Python+Appium框架APP的UI自動化、
Python+Selenium框架Web的UI自動化、
Python+Unittest框架API自動化、

資源和代碼 免費送啦~
文章下方有公衆號二維碼,可直接微信掃一掃關注即可。

數據庫不僅僅是dba的工作,每一個測試人員也應該懂得基本的數據運維操作,因爲數據庫是數據承載的地方並且是系統中非常重要的一部分,作爲測試我們也需要熟練的對數據庫進行基本維護。

 

01、常用備份恢復命令


第1組命令:

1.1:導出所有庫

mysqldump --socket=/home/q/mysql/multi/3306/socket/mysql.sock -hlocalhost -utester -p123456 --all-databases > alldb.sql

 

1.2:導入所有庫

mysql -hlocalhost -utester -p123456 < alldb.sql

或者

mysql>source alldb.sql;

 

第2組命令:

2.1:導出某些庫

mysqldump --socket=/home/q/mysql/multi/3306/socket/mysql.sock -hlocalhost -utester -p123456  --databases testdb1 testdb2 > testdb.sql

 

2.2:導入某些庫

mysql-hlocalhost -utester -p123456 < testdb.sql

或者

mysql>source testdb.sql;

 

第3組命令:

3.1:導出單個庫

mysqldump --socket=/home/q/mysql/multi/3306/socket/mysql.sock -hlocalhost -utester -p123456  --databases testdb1 > testdb1.sql

 

3.2:導入單個庫

mysql-hlocalhost -utester -p123456 < testdb1.sql

或者

mysql>source testdb1.sql;

 

第4組命令: 

4.1:導出某些數據表

mysqldump --socket=/home/q/mysql/multi/3306/socket/mysql.sock -hlocalhost -utester -p123456  --databases testdb1 table1 table2 > tables.sql

 

4.2:導入某些數據表

mysql -uusername -ppassword testdb1 < tables.sql

或者

mysql>source tables.sql;

 

02、shell腳本實現數據庫備份


#!/bin/bash  #是指此腳本使用/bin/bash來解釋執行,#!是特殊的表示符

export PATH=/bin:/usr/bin:/usr/local/bin #進行環境變更的設置

TODAY=`date +"%d%b%Y"` #獲取日期,進行變更賦值

 

DB_BACKUP_PATH='/backup/dbbackup'  #先創建備份目錄

MYSQL_HOST='localhost' #mysql服務器

MYSQL_PORT='3306' #mysql服務端口

MYSQL_USER='root' #mysql賬號

MYSQL_PASSWORD='123456' #mysql 密碼

DATABASE_NAME=‘db1' #指定備份的數據名稱

 

mkdir -p ${DB_BACKUP_PATH}/${TODAY}  #創建備份的目錄

echo "Backup started for database - ${DATABASE_NAME}" #輸出開始備份提示語

mysqldump -h ${MYSQL_HOST} \

          -P ${MYSQL_PORT} \

          -u ${MYSQL_USER} \

          -p ${MYSQL_PASSWORD} \

          ${DATABASE_NAME} | gzip > ${DB_BACKUP_PATH}/${TODAY}/${DATABASE_NAME}-${TODAY}.sql.gz  #執行備份並壓縮

 

if [ $? -eq 0 ]; then #判斷mysqldump是否成功

  echo "Database backup successfully completed" #輸出成功的提示語

else

  echo "Error found during backup" #輸出失敗的提示語

fi

 

03、使用mysqlbinlog恢復數據


binlog配置:

在MySQL配置文件my.cnf文件中的mysqld節中添加下面的配置文件:

[mysqld]

#設置日誌格式

binlog_format = mixed

#設置日誌路徑,注意路徑需要mysql用戶有寫權限

log-bin = /data/mysql/logs/mysql-bin.log

#設置binlog清理時間

expire_logs_days = 7

#binlog每個日誌文件大小

max_binlog_size = 100m

#binlog緩存大小

binlog_cache_size = 4m

#最大binlog緩存大小

max_binlog_cache_size = 512m

重啓服務。

 

執行mysqlbinlog命令恢復數據:

$> mysqlbinlog --stop-date="2019-05-31 23:59:59" /home/q/mysql/log/binlog/binlog.000009 | mysql -utester -p123456 #根據日誌文件binlog.000008將數據恢復到2019-05-31 23:59:59以前的操作。

 

總結:數據庫的運維對於測試人員來說仍然是非常重要的,比如:非常重要也不太容易構建的測試數據需要做備份操作時,數據庫的運維就顯得很有技術含量,掌握數據的基本運維可以使測試工作做得更出色,同時也會讓開發刮目相看,朋友們一起加油~

 

備註:我的個人公衆號已正式開通,致力於測試技術的分享,包含:大數據測試、功能測試,測試開發,API接口自動化、測試運維、UI自動化測試等,微信搜索公衆號:“無量測試之道”,或掃描下方二維碼:

 添加關注,一起共同成長吧。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章