溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

管理藍(lán)鯨平臺(tái)MySQL數(shù)據(jù)庫(kù)有哪些規(guī)范

發(fā)布時(shí)間:2020-05-29 16:58:36 來(lái)源:網(wǎng)絡(luò) 閱讀:259 作者:三月 欄目:MySQL數(shù)據(jù)庫(kù)

本文主要給大家簡(jiǎn)單講講管理藍(lán)鯨平臺(tái)MySQL數(shù)據(jù)庫(kù)有哪些規(guī)范,相關(guān)專(zhuān)業(yè)術(shù)語(yǔ)大家可以上網(wǎng)查查或者找一些相關(guān)書(shū)籍補(bǔ)充一下,這里就不涉獵了,我們就直奔主題吧,希望管理藍(lán)鯨平臺(tái)MySQL數(shù)據(jù)庫(kù)有哪些規(guī)范這篇文章可以給大家?guī)?lái)一些實(shí)際幫助。

管理藍(lán)鯨平臺(tái)MySQL數(shù)據(jù)庫(kù)有哪些規(guī)范
MySQL作為藍(lán)鯨平臺(tái)存取數(shù)據(jù)的主要數(shù)據(jù)庫(kù),其穩(wěn)定性關(guān)系到藍(lán)鯨平臺(tái)的使用體驗(yàn),而其數(shù)據(jù)安全性則可能關(guān)系到企業(yè)IT資產(chǎn)相關(guān)信息,在安裝和維護(hù)藍(lán)鯨平臺(tái)的過(guò)程中應(yīng)引起足夠重視。本文將對(duì)如下幾個(gè)出現(xiàn)過(guò)的問(wèn)題進(jìn)行分析和提供處理建議。這幾個(gè)問(wèn)題分別為:升級(jí),配置日志自動(dòng)清理,binlog手動(dòng)清理維護(hù),表清空,備份。

藍(lán)鯨平臺(tái)的MySQL數(shù)據(jù)庫(kù)會(huì)在安裝平臺(tái)時(shí)自動(dòng)安裝,其版本為5.5.24,架構(gòu)為主從復(fù)制(5臺(tái)云服務(wù)器情況下),下文分別對(duì)提到的幾個(gè)問(wèn)題進(jìn)行描述。

MySQL升級(jí)

1.問(wèn)題分析

藍(lán)鯨平臺(tái)默認(rèn)安裝的MySQL版本為5.5.24,一般不符合安全掃描的版本要求,為了避免在使用過(guò)程中由于安全問(wèn)題需要重新升級(jí)數(shù)據(jù)庫(kù),建議在完成平臺(tái)安裝后及時(shí)進(jìn)行數(shù)據(jù)庫(kù)升級(jí),此時(shí)數(shù)據(jù)庫(kù)還沒(méi)存入業(yè)務(wù)數(shù)據(jù),升級(jí)無(wú)風(fēng)險(xiǎn)且升級(jí)效率高,基于已經(jīng)在生成環(huán)境驗(yàn)證過(guò)的升級(jí)經(jīng)驗(yàn),為防止版本跨度過(guò)大導(dǎo)致的兼容問(wèn)題,建議升級(jí)到MySQL5.5的最高版本即5.5.62,采用邏輯升級(jí)的方法,使用mysqldump將低版本的據(jù)庫(kù)全庫(kù)導(dǎo)出,再導(dǎo)入到安裝好的新版本。

2. 邏輯升級(jí)過(guò)程

1、查當(dāng)前MySQL進(jìn)程

檢查當(dāng)前運(yùn)行的MySQL的進(jìn)程詳情,主要是查看啟動(dòng)參數(shù),用于升級(jí)后對(duì)比

[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、全庫(kù)備份

使用如下命令進(jìn)行全庫(kù)備份,備份路徑可根據(jù)數(shù)據(jù)量,磁盤(pán)性能等進(jìn)行調(diào)整

[root@paas-1 service]# mysqldump -uroot -x -A -E -R >/tmp/alldbback.sql

3、備份安裝目錄,數(shù)據(jù)目錄

停止數(shù)據(jù)庫(kù)服務(wù),并對(duì)basedir,datadir目錄進(jìn)行備份,升級(jí)前一定要進(jìn)行備份,避免出現(xiàn)意外進(jìn)行回退

[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、新版本解壓安裝

使用二進(jìn)制的包進(jìn)行解壓安裝,下載5.5.62版本的壓縮包,上傳至安裝目錄進(jìn)行解壓,創(chuàng)建軟連接為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、初始化數(shù)據(jù)庫(kù)

對(duì)數(shù)據(jù)目錄進(jìn)行初始化

[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、修改配置并啟動(dòng)

因原my.cnf配置文件未設(shè)置pid file,新版啟動(dòng)時(shí)會(huì)根據(jù)主機(jī)名自動(dòng)生成,跟原進(jìn)程下的pid文件不符,需要在配置文件里添加如下配置:

pid-files=

vim /etc/my.cnf

[mysqld]

/data/bkce/public/mysql/mysql.pid

啟動(dòng)數(shù)據(jù)庫(kù):

/data/bkce/service/mysql/bin/mysqld_safe &

7、導(dǎo)入數(shù)據(jù)

登錄mysql,確認(rèn)版本已經(jīng)升級(jí)至5.5.62,接下來(lái)導(dǎo)入備份的數(shù)據(jù)

mysql -uroot </tmp/alldbback.sql

等待其導(dǎo)入完成即可。

8、恢復(fù)mysql.sh文件

在藍(lán)鯨平臺(tái)中控機(jī)上控制mysql服務(wù)的啟停,是通過(guò)調(diào)用安裝目錄下的mysql.sh文件實(shí)現(xiàn)的,所以需要將該文件恢復(fù)到新版安裝后的目錄下

[root@paas-1 mysql]# cd /data/backup/mysql/bin/

[root@paas-1 bin]# cp mysql.sh /data/bkce/service/mysql/bin/

9、升級(jí)確認(rèn)

通過(guò)中控機(jī)查看及啟停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

檢查藍(lán)鯨平臺(tái),查看數(shù)據(jù)庫(kù)調(diào)用是否正常。到此,整個(gè)升級(jí)過(guò)程完成。

MySQL配置

1.問(wèn)題分析

我處理過(guò)的藍(lán)鯨平臺(tái)MySQL問(wèn)題,很多是因?yàn)榇疟P(pán)空間不足導(dǎo)致,而磁盤(pán)空間不足多是由于binlog日志過(guò)多而未及時(shí)清理造成,藍(lán)鯨在客戶處使用過(guò)程中由于沒(méi)有專(zhuān)門(mén)的運(yùn)維團(tuán)隊(duì),通常很少去關(guān)注后臺(tái)云服務(wù)器的情況,所以binlog自動(dòng)清理的機(jī)制強(qiáng)烈建議開(kāi)啟。

2.測(cè)試過(guò)程

1、設(shè)置binlog自動(dòng)清理

參數(shù)expire_logs_days表示超過(guò)該參數(shù)值的binlog日志會(huì)自動(dòng)清理,可以根據(jù)云服務(wù)器磁盤(pán)空間來(lái)確定該值的設(shè)置,前提是保證日志保留時(shí)間大于數(shù)據(jù)庫(kù)備份頻率,比如備份是7天一次全備,則expire_logs_days的值應(yīng)大于7,空間充足情況下一般建議設(shè)置為7天或者15天。

設(shè)置方法,在參數(shù)文件中配置expire_logs_days=7即可在重啟MySQL后生效。也可以在MySQL命令行直接設(shè)置:

mysql> set global expire_logs_days=7;

在命令行設(shè)置不會(huì)立即對(duì)日志進(jìn)行清理,需要達(dá)到如下幾種觸發(fā)條件之一:

1、binlog大小超過(guò)max_binlog_size

2、手動(dòng)執(zhí)行flush logs

3、MySQL服務(wù)重新啟動(dòng)時(shí)

所以如果是MySQL使用過(guò)程中命令行設(shè)置了該參數(shù),可以使用flush logs切換日志觸發(fā)清理,此時(shí)需要注意清理需要占用云服務(wù)器I/O資源,應(yīng)在不影響使用情況下執(zhí)行。

binlog手動(dòng)清理維護(hù)

1.問(wèn)題分析

當(dāng)磁盤(pán)空間由于binlog占用空間不足,MySQL服務(wù)已經(jīng)掛起時(shí),需要手動(dòng)清理binlog日志。處理過(guò)的幾次問(wèn)題是管理員在清理binlog時(shí)刪除了所有的binlog日志,磁盤(pán)空間釋放后,重啟MySQL服務(wù)發(fā)現(xiàn)啟動(dòng)失敗,其原因就是binlog被全部清理后,MySQL服務(wù)啟動(dòng)需要寫(xiě)入日志到最新的一個(gè)binlog,而其記錄的最后一個(gè)binlog找不到,所以會(huì)報(bào)錯(cuò)啟動(dòng)失敗。

1、手動(dòng)清理的正確方法

手動(dòng)清理binlog日志時(shí),需要保留最新一個(gè)日志,保證數(shù)據(jù)庫(kù)重啟后可以檢測(cè)到最新的寫(xiě)入日志,確認(rèn)最后一個(gè)日志,可以根據(jù)日志名稱(chēng)(序號(hào)遞增)或者寫(xiě)入時(shí)間來(lái)確定。

2、刪除所有日志后的處理方法

如果已經(jīng)刪除了所有的日志而無(wú)法啟動(dòng)數(shù)據(jù)庫(kù),此時(shí)可以按照如下方法處理:

在datadir目錄下找到mysql-bin.index文件,該文件是記錄數(shù)據(jù)庫(kù)里的binlog信息,清空該文件內(nèi)容,重啟數(shù)據(jù)庫(kù),此時(shí)日志會(huì)重置為1號(hào),數(shù)據(jù)庫(kù)恢復(fù)正常。

表清空操作

1.問(wèn)題分析

由于數(shù)據(jù)庫(kù)里某些日志表太大,影響查詢和插入表的效率,有時(shí)會(huì)做清空表的操作,而管理員維護(hù)MySQL數(shù)據(jù)庫(kù)時(shí)習(xí)慣使用圖形工具如Navicat,當(dāng)表的數(shù)據(jù)比較大時(shí),從圖形工具點(diǎn)擊清空表,系統(tǒng)會(huì)卡住,原因是工具里的情況表是delete的操作,數(shù)據(jù)庫(kù)執(zhí)行時(shí)會(huì)每條數(shù)據(jù)進(jìn)行刪除并記錄redo,undo日志,占用數(shù)據(jù)庫(kù)資源較大導(dǎo)致的數(shù)據(jù)庫(kù)hang住。

1、表清空的正確方法

如果確認(rèn)表數(shù)據(jù)是不需要的,請(qǐng)使用truncate的方式情況表,效率非常高且占用資源少,SQL語(yǔ)法如下:

mysql> truncate table_name;

MySQL備份

1.問(wèn)題分析

數(shù)據(jù)庫(kù)最重要的就是數(shù)據(jù),數(shù)據(jù)的安全高于一切,而完善的備份是數(shù)據(jù)安全的最后一道防線,藍(lán)鯨平臺(tái)是一個(gè)企業(yè)級(jí)的平臺(tái),其存儲(chǔ)的數(shù)據(jù)也是至關(guān)重要的,所以備份策略必須合理制定。MySQL 最常用的備份方式分為邏輯備份mysqldump,物理備份xtrabackup,當(dāng)數(shù)據(jù)量不大,備份時(shí)間在1小時(shí)內(nèi)可以完成的,使用mysqldump即可,更大數(shù)據(jù)量則需要考慮使用xtrabackup,下面主要介紹mysqldump。

2.備份通用性命令

mysqldump是個(gè)很靈活的工具,有很多參數(shù)可以在備份時(shí)使用,不過(guò)對(duì)于藍(lán)鯨平臺(tái)的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

該命令備份所有的數(shù)據(jù)庫(kù),記錄備份時(shí)binlog的位置(用于建立主從關(guān)系的復(fù)制起始點(diǎn)或是恢復(fù)到指定時(shí)間點(diǎn)),以事務(wù)的方式備份,不會(huì)影響主庫(kù)運(yùn)行。

備份如果是在本地磁盤(pán),還需要定期清理備份文件,比如清理30天前的備份文件,如下清理腳本可以參考:

find /backup -mtime +30 -name "dbfull-*.sql" -exec rm -rf {} \;

隨著藍(lán)鯨平臺(tái)在企業(yè)級(jí)的廣泛使用,其存儲(chǔ)數(shù)據(jù)的MySQL數(shù)據(jù)庫(kù)應(yīng)確保數(shù)據(jù)安全和MySQL服務(wù)平穩(wěn)運(yùn)行,本文所列舉的幾個(gè)問(wèn)題都是常見(jiàn)的導(dǎo)致平臺(tái)無(wú)法使用的問(wèn)題,其處理方法也都是驗(yàn)證過(guò)并在生成環(huán)境使用的方式,可以作為處理該類(lèi)問(wèn)題的參考。

管理藍(lán)鯨平臺(tái)MySQL數(shù)據(jù)庫(kù)有哪些規(guī)范就先給大家講到這里,對(duì)于其它相關(guān)問(wèn)題大家想要了解的可以持續(xù)關(guān)注我們的行業(yè)資訊。我們的板塊內(nèi)容每天都會(huì)捕捉一些行業(yè)新聞及專(zhuān)業(yè)知識(shí)分享給大家的。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI