安徽思成儀器技術(shù)有限公司
暫無信息 |
閱讀:21發(fā)布時(shí)間:2024-11-23
為什么升級(jí)到MySQL 8.0
基于安全考慮基于性能和 穩(wěn)定性考慮:
mgr復(fù)制 ,并行復(fù)制writeset 等功能,性能提升新的功能:
Hash join ,窗口函數(shù),DDL即時(shí),json 支持原始環(huán)境中版本太多,統(tǒng)一版本8.0版本基本已到穩(wěn)定期,可以大量投入生產(chǎn)環(huán)境中
升級(jí)之前需要了解
數(shù)據(jù)庫字典升級(jí)
schema,mysql,information_schema,performance_schema,sys
比如:密碼測(cè)試 mysql_native_password → caching_sha2_password
關(guān)鍵詞是不是兼容
關(guān)鍵詞 added in查詢
SQL是不是兼容
Group by處理上的不兼容,觸發(fā)器mysql升級(jí),存儲(chǔ)過程
5.6 可以跑select id,count(*)from group by name;
5.7,8.0是不是允許的 sql_mode控制
數(shù)據(jù)文件存儲(chǔ)格式是不是可以直接升級(jí)
Perconal 和 mysql 存儲(chǔ)引擎一直,可以兼容
現(xiàn)有應(yīng)用的兼容性是否滿足
自定義函數(shù),一些不規(guī)范的SQL語句等等
密碼策略
What Is New in MySQL 8.0
作為DBA需要基本了解8.0的一些功能,參考:
升級(jí)準(zhǔn)備事項(xiàng)
已經(jīng)了解8.0的特性,應(yīng)對(duì)升級(jí)需要事行驗(yàn)證和準(zhǔn)備工作測(cè)試庫升級(jí),應(yīng)用驗(yàn)證
數(shù)據(jù)庫升級(jí),末知問題發(fā)生
f配置信息調(diào)整
不兼容的操作方法,影響復(fù)制
一個(gè)平穩(wěn)的過濾,列如先升級(jí)一個(gè)從庫,到所有從庫
最少停機(jī)時(shí)間,同樣生產(chǎn)數(shù)據(jù)恢復(fù)到環(huán)境,進(jìn)行模擬升級(jí),評(píng)估時(shí)間
怎樣進(jìn)行數(shù)據(jù)驗(yàn)證:行數(shù),表的數(shù)量 等等
考慮回滾方案
數(shù)據(jù)庫備份
升級(jí)前檢查
Mysql8.0還是提供了很多方便,不像之前一樣5.6升級(jí)5.7那樣?,F(xiàn)在可以通過mysql shell進(jìn)行確認(rèn)。
下面2種方式
#mysqlsh root:123456@192.168.244.130:3410 -e 'util.checkForServerUpgrade({"targetVersion":"8.0.19","configPath":"/etc/f"})';
MySQL JS > util.checkForServerUpgrade('root@192.168.244.130:3410', {"password":"123456", "targetVersion":"8.0.11", "configPath":"/etc/f"})
按照提示的要求進(jìn)行更改
雖然shell做的很好,但還是存在一些缺陷。
比如以下內(nèi)容都不會(huì)存在提示:
1. basedir,
2. sql_mode ,
3. 半同步配置,
4. 密碼策略:default_authentication_plugin = mysql_native_password
開始升級(jí)
下載對(duì)應(yīng)的tar包
下面是單機(jī)升級(jí),高可用架構(gòu)下 需要先升級(jí)從庫,在逐步升級(jí)主庫。
執(zhí)行mysql_upgrade命令,會(huì)提示如下:
#/mysql8.0.19/bin/mysql_upgrade -uroot -p123456
在MySQL 8中mysql_upgrade客戶端現(xiàn)已棄用。升級(jí)客戶端執(zhí)行的操作現(xiàn)在由服務(wù)器完成。
要升級(jí),請(qǐng)使用較舊的數(shù)據(jù)目錄啟動(dòng)新的 MySQL 二進(jìn)制文件。自動(dòng)修復(fù)用戶表。升級(jí)后不需要重新啟動(dòng)。
所以必須在測(cè)試環(huán)境模擬準(zhǔn)備對(duì)應(yīng)SQL語句
正確操作如下:
1)登錄服務(wù)器進(jìn)行正常關(guān)閉:innodb_fast_shutdown是默認(rèn)是1mysql升級(jí),常常認(rèn)為是安全關(guān)閉
關(guān)閉innodb參數(shù)確認(rèn)mysql> show variables like 'innodb_fast_shutdown';
+----------------------+-------+
| Variable_name | Value |
+----------------------+-------+
| innodb_fast_shutdown | 1 |
+----------------------+-------+
1 row in set (0.00 sec)確保數(shù)據(jù)都刷到硬盤上,更改成0
mysql> set global innodb_fast_shutdown=0;
Query OK, 0 rows affected (0.01 sec)
mysql> shutdown;
Query OK, 0 rows affected (0.00 sec)
*進(jìn)行備份。2)用mysql8.0.19客戶端直接啟動(dòng)
啟動(dòng)mysql服務(wù)
[root@ss30 bin]# /opt/mysql8.0.19/bin/mysqld_safe --defaults-file=/etc/f --user=mysql &
[1] 15400
[root@ss30 bin]# 2020-04-25T13:07:16.591560Z mysqld_safe Logging to '/opt/data3400/logs/error.log'.
2020-04-25T13:07:16.636879Z mysqld_safe Starting mysqld daemon with databases from /opt/data3400/mysql
##打開另一個(gè)窗口查看error日志
[root@ss30 ~]# tail -f /opt/data3400/logs/mysql_error.log登錄服務(wù)器確認(rèn)
[root@ss30 ~]# mysql -uroot -p -S /opt/data3400/mysql/mysql.sockEnter
password:
Welcome to the MySQL monitor. Commands end with ; or /g.Your MySQL connection id is 10Server version: 8.0.19 MySQL Community Server - GPLCopyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.Oracle is a registered trademark of Oracle Corporation and/or itsaffiliates. Other names may be trademarks of their respectiveowners.Type 'help;' or '/h' for help. Type '/c' to clear the current input statement.
mysql> select version();
+-----------+
| version() |
+-----------+
| 8.0.19 |
+-----------+
1 row in set (0.01 sec)無myisam引擎
mysql> SELECT table_schema,table_name,engine
FROM information_schema.tables
where engine!='InnoDB';剩下的就是驗(yàn)證 和 業(yè)務(wù)確認(rèn)否應(yīng)用正常。
總結(jié)
整個(gè)從升級(jí)準(zhǔn)備開始 到結(jié)束,中間包含很多細(xì)致的工作。比如版本確認(rèn),功能確認(rèn),測(cè)試,準(zhǔn)備,備份,驗(yàn)證,高可用切換等等。前期需要投入很多精力進(jìn)行準(zhǔn)備,這樣才能做到一步到位。
升級(jí)完,下一步踏上8.0的使用旅程。
最后給大家分享我寫的SQL兩件套:《SQL基礎(chǔ)知識(shí)第二版》和《SQL高級(jí)知識(shí)第二版》的PDF電子版。里面有各個(gè)語法的解釋、大量的實(shí)例講解和批注等等,非常通俗易懂,方便大家跟著一起來實(shí)操。 有需要的讀者可以下載學(xué)習(xí),在下面的公眾號(hào)「數(shù)據(jù)前線」(非本號(hào))后臺(tái)回復(fù)關(guān)鍵字:SQL,就行 數(shù)據(jù)前線 后臺(tái)回復(fù)關(guān)鍵字:1024,獲取一份精心整理的技術(shù)干貨后臺(tái)回復(fù)關(guān)鍵字:進(jìn)群,帶你進(jìn)入高手如云的。
儀表網(wǎng) 設(shè)計(jì)制作,未經(jīng)允許翻錄必究 .? ? ?
請(qǐng)輸入賬號(hào)
請(qǐng)輸入密碼
請(qǐng)輸驗(yàn)證碼
請(qǐng)輸入你感興趣的產(chǎn)品
請(qǐng)簡(jiǎn)單描述您的需求
請(qǐng)選擇省份