歡迎關注【無量測試之道】公衆号,
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自動化測試等,微信搜尋公衆号:“無量測試之道”,或掃描下方二維碼:

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