日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網(wǎng)為廣大站長(zhǎng)提供免費(fèi)收錄網(wǎng)站服務(wù),提交前請(qǐng)做好本站友鏈:【 網(wǎng)站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(wù)(50元/站),

點(diǎn)擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會(huì)員:747

下午的時(shí)候接到業(yè)務(wù)部門(mén)的一個(gè)需求,他們有一個(gè)業(yè)務(wù)對(duì)性能要求比較高,在測(cè)試環(huán)境已經(jīng)做了一些測(cè)試和優(yōu)化,想看看在MySQL新版本中是否有一定的提升,現(xiàn)在使用的數(shù)據(jù)庫(kù)版本是MySQL 5.5.19,想問(wèn)問(wèn)我能不能做下升級(jí)。

確實(shí),很少有業(yè)務(wù)部門(mén)對(duì)數(shù)據(jù)庫(kù)版本有一定的要求,對(duì)我來(lái)說(shuō)有點(diǎn)兒驚喜。本來(lái)要推到下周的事情,我就速戰(zhàn)速?zèng)Q吧。

升級(jí)數(shù)據(jù)庫(kù)版本,在商業(yè)數(shù)據(jù)庫(kù)中是一個(gè)大活,有一定的復(fù)雜性,記得在Oracle中是有一個(gè)特有的版本升級(jí)路線圖的,現(xiàn)在都19c了,相比路線圖更是復(fù)雜了不少。

 

MySQL 5.5升級(jí)5.7小試

 

 

回到這個(gè)需求,在MySQL中,常用的思路無(wú)非是兩種,一種是遷移式升級(jí),一種是字典升級(jí)。鑒于這是一個(gè)測(cè)試環(huán)境,上面的數(shù)據(jù)庫(kù)很多,數(shù)據(jù)量也不大,采用遷移式升級(jí)是比較推薦的,因?yàn)闃I(yè)務(wù)方對(duì)時(shí)間的要求比較寬松,1個(gè)小時(shí)以內(nèi)交付就行,所以我想試試字典升級(jí)的方式。

整個(gè)遷移的過(guò)程可以歸納為下面的幾個(gè)步驟:

1.多版本軟件部署

2.停庫(kù)備份

3.切換版本,啟動(dòng)數(shù)據(jù)庫(kù)

4.升級(jí)數(shù)據(jù)字典

5.重啟數(shù)據(jù)庫(kù)

我們來(lái)逐個(gè)說(shuō)一下。

源環(huán)境是MySQL 5.5.19,升級(jí)到Percona 5.7.16版本

  1. 多版本軟件部署
  2. 需要在同一臺(tái)服務(wù)器上部署多版本軟件,在這里就是5.7的軟件,這里使用二進(jìn)制的部署方式,目錄暫定為/usr/local/mysql_5.7
  3. 停庫(kù)備份
  4. 這應(yīng)該是最關(guān)鍵的一個(gè)步驟了,可以考慮多個(gè)層面的備份,比如目前的數(shù)據(jù)量不大,可以直接做目錄的復(fù)制,同時(shí)為了保險(xiǎn)起見(jiàn),再做一個(gè)邏輯備份,記得備份/etc/my.cnf
  5. 切換版本,啟動(dòng)數(shù)據(jù)庫(kù)
  6. 這個(gè)是風(fēng)險(xiǎn)高發(fā)階段,很可能數(shù)據(jù)庫(kù)啟動(dòng)出現(xiàn)問(wèn)題。
  7. 常見(jiàn)的問(wèn)題是參數(shù)不兼容,比如下面的參數(shù)是5.7版本中不識(shí)別的。
  8. thread_concurrency = 8
  9. innodb_additional_mem_pool_size = 32M
  10. innodb_thread_concurrency = 0
  11. 還有MySQL的啟動(dòng)方式,是用mysqld_safe --defaults-file總是提示如下的錯(cuò)誤。

mysqld_safe Adding '/usr/local/Percona-Server-5.7.16-10-linux.x86_64.ssl101/lib/mysql/libjemalloc.so.1' to LD_PRELOAD for mysqld

mysqld_safe ld_preload libraries can only be loaded from system directories (/usr/lib64, /usr/lib, /usr/local/mysql/lib)

 

[1]+ Exit 1 mysqld_safe --defaults-file=/data/mysql_4306/my.cnf

而使用service的方式啟動(dòng)就沒(méi)有問(wèn)題了,可以看到方式還是有較大的差異,在/etc/init.d下面的mysql文件里有這些變量的差異性補(bǔ)充,還有Percona和MySQL社區(qū)版的文件路徑差異

root 21395 1 0 15:25 pts/2 00:00:00 /bin/sh /usr/local/Percona-Server-5.7.16-10-Linux.x86_64.ssl101/bin/mysqld_safe --datadir=/data/mysql_4306/data --pid-file=/data/mysql_4306/tmp/mysql.pid

4.升級(jí)數(shù)據(jù)字典

數(shù)據(jù)庫(kù)啟動(dòng)之后,算是處于一個(gè)臨界狀態(tài),用的MySQL 5.7的軟件,但是數(shù)據(jù)字典還是5.5版本的。可以使用自帶的mysql_upgrade來(lái)進(jìn)行升級(jí)。

mysql_upgrade --socket=/data/mysql_4306/tmp/mysql.sock --port=4306 -uroot -pxxxx

MySQL的字典升級(jí)難得之處就是對(duì)于字典的兼容性很好,沒(méi)有了版本間的復(fù)雜依賴,處理起來(lái)真是很清爽。

會(huì)輸出一些簡(jiǎn)單日志,類似下面的形式:

Checking if update is needed.

Checking server version.

Running queries to upgrade MySQL server.

Checking system database.

mysql.columns_priv OK

mysql.db OK

mysql.engine_cost OK

mysql.event OK

mysql.func OK

mysql.general_log OK

mysql.gtid_executed OK

mysql.help_category OK

mysql.help_keyword OK

mysql.help_relation OK

mysql.help_topic OK

mysql.host OK

mysql.innodb_index_stats OK

mysql.innodb_table_stats OK

mysql.ndb_binlog_index OK

mysql.plugin OK

mysql.proc OK

mysql.procs_priv OK

mysql.proxies_priv OK

mysql.server_cost OK

mysql.servers OK

mysql.slave_master_info OK

mysql.slave_relay_log_info OK

mysql.slave_worker_info OK

mysql.slow_log OK

mysql.tables_priv OK

mysql.time_zone OK

mysql.time_zone_leap_second OK

mysql.time_zone_name OK

mysql.time_zone_transition OK

mysql.time_zone_transition_type OK

mysql.user OK

Upgrading the sys schema.

Checking databases.

。。。

liteApp.banner OK

litework.attributes

error : Partitioning upgrade required. Please dump/reload to fix it or do: ALTER TABLE `litework`.`attributes` UPGRADE PARTITIONING

litework.id_sequence OK

。。。

Repairing tables

Upgrading tables

`test`.`monitor_db`

Running : ALTER TABLE `test`.`monitor_db` FORCE

status : OK

Running : ALTER TABLE `litework`.`attributes` UPGRADE PARTITIONING

status : OK

。。。

Upgrade process completed successfully.

整個(gè)過(guò)程不超過(guò)2分鐘即可搞定。

5.重啟數(shù)據(jù)庫(kù)

升級(jí)之后需要做下基本的檢查,比如查看數(shù)據(jù)庫(kù)日志,查看sys庫(kù)是否正常等。

當(dāng)然在生產(chǎn)環(huán)境中的檢查和預(yù)案就要豐富一些了,總之一句話,升級(jí)是一件風(fēng)險(xiǎn)極高的任務(wù),一定要做好完整的備份,升級(jí)不成如何降級(jí),你有了余地才有了進(jìn)步的機(jī)會(huì)。

分享到:
標(biāo)簽:MySQL
用戶無(wú)頭像

網(wǎng)友整理

注冊(cè)時(shí)間:

網(wǎng)站:5 個(gè)   小程序:0 個(gè)  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會(huì)員

趕快注冊(cè)賬號(hào),推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨(dú)大挑戰(zhàn)2018-06-03

數(shù)獨(dú)一種數(shù)學(xué)游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過(guò)答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫(kù),初中,高中,大學(xué)四六

運(yùn)動(dòng)步數(shù)有氧達(dá)人2018-06-03

記錄運(yùn)動(dòng)步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓(xùn)練成績(jī)?cè)u(píng)定2018-06-03

通用課目體育訓(xùn)練成績(jī)?cè)u(píng)定