歡迎關注【無量測試之道】公衆號,回覆【領取資源】,
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自動化測試等,微信搜索公衆號:“無量測試之道”,或掃描下方二維碼:
添加關注,一起共同成長吧。