您好,登錄后才能下訂單哦!
本文主要給大家簡單講講管理藍鯨平臺MySQL數據庫有哪些規范,相關專業術語大家可以上網查查或者找一些相關書籍補充一下,這里就不涉獵了,我們就直奔主題吧,希望管理藍鯨平臺MySQL數據庫有哪些規范這篇文章可以給大家帶來一些實際幫助。
MySQL作為藍鯨平臺存取數據的主要數據庫,其穩定性關系到藍鯨平臺的使用體驗,而其數據安全性則可能關系到企業IT資產相關信息,在安裝和維護藍鯨平臺的過程中應引起足夠重視。本文將對如下幾個出現過的問題進行分析和提供處理建議。這幾個問題分別為:升級,配置日志自動清理,binlog手動清理維護,表清空,備份。
藍鯨平臺的MySQL數據庫會在安裝平臺時自動安裝,其版本為5.5.24,架構為主從復制(5臺云服務器情況下),下文分別對提到的幾個問題進行描述。
1.問題分析
藍鯨平臺默認安裝的MySQL版本為5.5.24,一般不符合安全掃描的版本要求,為了避免在使用過程中由于安全問題需要重新升級數據庫,建議在完成平臺安裝后及時進行數據庫升級,此時數據庫還沒存入業務數據,升級無風險且升級效率高,基于已經在生成環境驗證過的升級經驗,為防止版本跨度過大導致的兼容問題,建議升級到MySQL5.5的最高版本即5.5.62,采用邏輯升級的方法,使用mysqldump將低版本的據庫全庫導出,再導入到安裝好的新版本。
2. 邏輯升級過程
1、查當前MySQL進程
檢查當前運行的MySQL的進程詳情,主要是查看啟動參數,用于升級后對比
[root@paas-1 install]# ps -ef |grep mysql
root 20407 8526 0 15:10 pts/3 00:00:00 grep --color=auto mysql
root 29942 1 0 Dec17 ? 00:00:00 /bin/sh /data/bkce/service/mysql/bin/mysqld_safe --datadir=/data/bkce/public/mysql/ --pid-file=/data/bkce/public/mysql/mysql.pid
mysql 30344 29942 5 Dec17 ? 13:17:37 /data/bkce/service/mysql/bin/mysqld --basedir=/data/bkce/service/mysql --datadir=/data/bkce/public/mysql/ --plugin-dir=/data/bkce/service/mysql/lib/plugin --user=mysql --log-error=/data/bkce/public/mysql//paas-1.err --pid-file=/data/bkce/public/mysql/mysql.pid --socket=/data/bkce/logs/mysql/mysql.sock --port=3306
2、全庫備份
使用如下命令進行全庫備份,備份路徑可根據數據量,磁盤性能等進行調整
[root@paas-1 service]# mysqldump -uroot -x -A -E -R >/tmp/alldbback.sql
3、備份安裝目錄,數據目錄
停止數據庫服務,并對basedir,datadir目錄進行備份,升級前一定要進行備份,避免出現意外進行回退
[root@paas-1 service]# mkdir /data/backup
[root@paas-1 service]# mv mysql/ /data/backup/
[root@paas-1 service]# cd /data/bkce/public/
[root@paas-1 public]# mv mysql /data/backup/mysql_data
4、新版本解壓安裝
使用二進制的包進行解壓安裝,下載5.5.62版本的壓縮包,上傳至安裝目錄進行解壓,創建軟連接為mysql
[root@paas-1 service]# tar zxf /tmp/mysql-5.5.62-linux-glibc2.12-x86_64.tar.gz
[root@paas-1 service]# ln -s mysql-5.5.62-linux-glibc2.12-x86_64/ mysql
5、初始化數據庫
對數據目錄進行初始化
[root@paas-1 public]# mkdir mysql
[root@paas-1 mysql]# cd /data/bkce/service/mysql
[root@paas-1 mysql]# ./s/mysql_install_db --user=mysql --basedir=/data/bkce/service/mysql --datadir=/data/bkce/public/mysql/
Installing MySQL system tables...
181227 15:39:10 [Note] Ignoring --secure-file-priv value as server is running with --bootstrap.
181227 15:39:10 [Note] /data/bkce/service/mysql/bin/mysqld (mysqld 5.5.62-log) starting as process 24766 ...
OK
Filling help tables...
181227 15:39:11 [Note] Ignoring --secure-file-priv value as server is running with --bootstrap.
181227 15:39:11 [Note] /data/bkce/service/mysql/bin/mysqld (mysqld 5.5.62-log) starting as process 24790 ...
OK
To start mysqld at boot time you have to copy
support-files/mysql.server to the right place for your system
PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER !
To do so, start the server, then issue the following commands:
/data/bkce/service/mysql/bin/mysqladmin -u root password 'new-password'
/data/bkce/service/mysql/bin/mysqladmin -u root -h 132.108.252.43 password 'new-password'
Alternatively you can run:
/data/bkce/service/mysql/bin/mysql_secure_installation
which will also give you the option of removing the test
databases and anonymous user created by default. This is
strongly recommended for production servers.
See the manual for more instructions.
You can start the MySQL daemon with:
cd /data/bkce/service/mysql ; /data/bkce/service/mysql/bin/mysqld_safe &
You can test the MySQL daemon with mysql-test-run.pl
cd /data/bkce/service/mysql/mysql-test ; perl mysql-test-run.pl
Please report any problems at http://bugs.mysql.com/
6、修改配置并啟動
因原my.cnf配置文件未設置pid file,新版啟動時會根據主機名自動生成,跟原進程下的pid文件不符,需要在配置文件里添加如下配置:
pid-files=
vim /etc/my.cnf
[mysqld]
/data/bkce/public/mysql/mysql.pid
啟動數據庫:
/data/bkce/service/mysql/bin/mysqld_safe &
7、導入數據
登錄mysql,確認版本已經升級至5.5.62,接下來導入備份的數據
mysql -uroot </tmp/alldbback.sql
等待其導入完成即可。
8、恢復mysql.sh文件
在藍鯨平臺中控機上控制mysql服務的啟停,是通過調用安裝目錄下的mysql.sh文件實現的,所以需要將該文件恢復到新版安裝后的目錄下
[root@paas-1 mysql]# cd /data/backup/mysql/bin/
[root@paas-1 bin]# cp mysql.sh /data/bkce/service/mysql/bin/
9、升級確認
通過中控機查看及啟停mysql,檢查是否正常
[root@paas-1 mysql]# cd /data/install/
[root@paas-1 install]# ./bkcec status mysql
[root@paas-1 install]#./bkcec stop mysql
[root@paas-1 install]#./bkcec start mysql
[root@paas-1 install]# ps -ef |grep mysql
檢查藍鯨平臺,查看數據庫調用是否正常。到此,整個升級過程完成。
1.問題分析
我處理過的藍鯨平臺MySQL問題,很多是因為磁盤空間不足導致,而磁盤空間不足多是由于binlog日志過多而未及時清理造成,藍鯨在客戶處使用過程中由于沒有專門的運維團隊,通常很少去關注后臺云服務器的情況,所以binlog自動清理的機制強烈建議開啟。
2.測試過程
1、設置binlog自動清理
參數expire_logs_days表示超過該參數值的binlog日志會自動清理,可以根據云服務器磁盤空間來確定該值的設置,前提是保證日志保留時間大于數據庫備份頻率,比如備份是7天一次全備,則expire_logs_days的值應大于7,空間充足情況下一般建議設置為7天或者15天。
設置方法,在參數文件中配置expire_logs_days=7即可在重啟MySQL后生效。也可以在MySQL命令行直接設置:
mysql> set global expire_logs_days=7;
在命令行設置不會立即對日志進行清理,需要達到如下幾種觸發條件之一:
1、binlog大小超過max_binlog_size
2、手動執行flush logs
3、MySQL服務重新啟動時
所以如果是MySQL使用過程中命令行設置了該參數,可以使用flush logs切換日志觸發清理,此時需要注意清理需要占用云服務器I/O資源,應在不影響使用情況下執行。
1.問題分析
當磁盤空間由于binlog占用空間不足,MySQL服務已經掛起時,需要手動清理binlog日志。處理過的幾次問題是管理員在清理binlog時刪除了所有的binlog日志,磁盤空間釋放后,重啟MySQL服務發現啟動失敗,其原因就是binlog被全部清理后,MySQL服務啟動需要寫入日志到最新的一個binlog,而其記錄的最后一個binlog找不到,所以會報錯啟動失敗。
1、手動清理的正確方法
手動清理binlog日志時,需要保留最新一個日志,保證數據庫重啟后可以檢測到最新的寫入日志,確認最后一個日志,可以根據日志名稱(序號遞增)或者寫入時間來確定。
2、刪除所有日志后的處理方法
如果已經刪除了所有的日志而無法啟動數據庫,此時可以按照如下方法處理:
在datadir目錄下找到mysql-bin.index文件,該文件是記錄數據庫里的binlog信息,清空該文件內容,重啟數據庫,此時日志會重置為1號,數據庫恢復正常。
1.問題分析
由于數據庫里某些日志表太大,影響查詢和插入表的效率,有時會做清空表的操作,而管理員維護MySQL數據庫時習慣使用圖形工具如Navicat,當表的數據比較大時,從圖形工具點擊清空表,系統會卡住,原因是工具里的情況表是delete的操作,數據庫執行時會每條數據進行刪除并記錄redo,undo日志,占用數據庫資源較大導致的數據庫hang住。
1、表清空的正確方法
如果確認表數據是不需要的,請使用truncate的方式情況表,效率非常高且占用資源少,SQL語法如下:
mysql> truncate table_name;
1.問題分析
數據庫最重要的就是數據,數據的安全高于一切,而完善的備份是數據安全的最后一道防線,藍鯨平臺是一個企業級的平臺,其存儲的數據也是至關重要的,所以備份策略必須合理制定。MySQL 最常用的備份方式分為邏輯備份mysqldump,物理備份xtrabackup,當數據量不大,備份時間在1小時內可以完成的,使用mysqldump即可,更大數據量則需要考慮使用xtrabackup,下面主要介紹mysqldump。
2.備份通用性命令
mysqldump是個很靈活的工具,有很多參數可以在備份時使用,不過對于藍鯨平臺的mysql備份,建議使用如下通用的備份命令即可:
mysqldump -uroot -p --all-databases --master-data=2 --flush-logs --single-transaction > /backup/dbfull-date +%F.sql
如果需要壓縮備份文件,可以用如下命令:
mysqldump -uroot -p --all-databases --master-data=2 --flush-logs --single-transaction |gzip > dbfull-date +%F.tar.gz
該命令備份所有的數據庫,記錄備份時binlog的位置(用于建立主從關系的復制起始點或是恢復到指定時間點),以事務的方式備份,不會影響主庫運行。
備份如果是在本地磁盤,還需要定期清理備份文件,比如清理30天前的備份文件,如下清理腳本可以參考:
find /backup -mtime +30 -name "dbfull-*.sql" -exec rm -rf {} \;
隨著藍鯨平臺在企業級的廣泛使用,其存儲數據的MySQL數據庫應確保數據安全和MySQL服務平穩運行,本文所列舉的幾個問題都是常見的導致平臺無法使用的問題,其處理方法也都是驗證過并在生成環境使用的方式,可以作為處理該類問題的參考。
管理藍鯨平臺MySQL數據庫有哪些規范就先給大家講到這里,對于其它相關問題大家想要了解的可以持續關注我們的行業資訊。我們的板塊內容每天都會捕捉一些行業新聞及專業知識分享給大家的。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。