作業系統遷移實戰之在openEuler上部署MySQL資料庫
寫在前面的話
系統遷移中庫體遷移是一件讓人挺“頭禿”的事兒。簡單的需求(照原樣再複製一份到XXX環境)可不意味著它的過程簡單……好在openEuler社群這邊提供了工具x2openEuler,能夠提前評估將MySQL移植到openEuler作業系統的相容性,再實時資料搬遷,減少很多準備工作和時間。想著可能也有朋友遇到同樣的需求,這裡我想分享下經驗,也希望大家能夠一起交流交流
1.簡要介紹
本文主要用於在openEuler 20.03 sp1 作業系統上部署MySQL資料庫。本次實踐主要使用x86_64架構虛擬機器,通過評估工具x2openEuler評估MySQL 5.7.21軟體移植到openEuler作業系統的相容性,再實施資料搬遷。如果您使用其他版本的MySQL,可以參考參考。
2.環境
專案 | 說明 |
---|---|
伺服器 | TaiShan 200伺服器 |
CPU | 華為鯤鵬920處理器 |
Raid卡 | SAS3508 |
網路卡 | Mellanox SP333 |
-- | TM210 |
-- | TM280 |
磁碟容量 | 500GB以上 |
OS | 軟體 | 版本 | 備註 |------| --------| ---------| OS | Centos 7.6.1810 | 當前mysql叢集伺服器 OS | openEuler 20.03 SP1 | 遷移目標伺服器
軟體包 | 軟體 | 版本 | |--------| -------------| mysql5 | 5.7.21 mysql5-common | 5.7.21 mysql5-embedded | 5.7.21 mysql5-embedded-devel | 5.7.21 mysql5-errmsg | 5.7.21 mysql5-libs | 5.7.21 mysql5-server | 5.7.21 mysql5-test | 5.7.21
3.軟體相容性評估
openEuler社群提供了 x2openEuler 工具 ,針對已經編譯好的二進位制程式,進行主要完成軟體包、介面級評估,明確應用軟體是否需要移植適配,是否有依賴的軟體包待引入;同時評估軟體呼叫的介面原型在兩個系統中是否有差異。 注:已經編譯好的二進位制程式,難以保障全部相容新OS,嚴重時會引發才記憶體風險,往往這種問題很難通過驗證的方式識別出來,遷移前針對軟體相容性評估尤為重要。
3.1獲取mysql的RPM包並解壓到/opt/mysql目錄下
wget –P /opt http://downloads.mysql.com/archives/get/p/23/file/mysql-5.7.21-1.el7.x86_64.rpm-bundle.tar
cd /opt/
mkdir mysql
tar -xf mysql-5.7.21-1.el7.x86_64.rpm-bundle.tar -C mysql
3.2下載x2openEuler工具到/opt/mysql
下載指引:http://www.openeuler.org/zh/other/migration/
3.3部署工具
cd /opt/mysql
rpm -ivh x2openEuler-2.0.0-1.x86_64.rpm
注意:安裝rpm時需要使用root使用者,且目前需要網路(用於下載安裝依賴) 注意:根據提示安裝依賴包如bzip2-devel等
su x2openEuler
x2openEuler redis-db -init
依次錄入redis資料庫的ip:127.0.0.1 埠:6379 資料庫索引號(0-16):0 密碼(工具會對密碼加密處理):如果redis密碼沒有設定或者為空時,直接回車即可.
x2openEuler init source_centos7.6-openEuler20.03-LTS-SP1.tar.gz
備註:x2openEuler使用rpm安裝完成後會在/opt/x2openEuler目錄下帶有source_centos7.6-openEuler20.03-LTS-SP1.tar.gz這個預設資源包,需要支援centos8.2到openEuler20.03-LTS-SP1的評估,則需獲取對應的靜態資源包匯入,如對應的資源包為source_centos8.2-openEuler20.03-LTS-SP1.tar.gz,匯入此包命令:x2openEuler init source_centos8.2-openEuler20.03-LTS-SP1.tar.gz,請示情況選擇對應的資源包
3.4掃描mysql
x2openEuler scan /opt/mysql/
注意要分析的移植檔案需要有能夠讓x2openEuler使用者可以讀取的許可權
掃描完成後會在/opt/x2openEuler/output目錄生成html格式的報告
4.評估結果分析
軟體相容性評估報告分三塊內容展示軟體相容性,分別是依賴包相容性、C/C++介面相容性、java介面相容性,依賴包相容性反映了軟體包安裝過程中的直接依賴,非100%表明無法正確安裝;介面相容性反映的是單個軟體執行過程中對其他軟體包、動態庫或系統介面的呼叫變化,非100%表明在某個功能呼叫時可能會觸發異常,未呼叫到時可能表現正常;部分結果建議人工複核,最終軟體包使用建優先順序建議 openEuler已移植包>openEuler上人工重編譯包>centos軟體包。
4.1報告分析
開啟html報告,逐行分析,得出結論:在openEuler上直接使用centos的mysql包存在風險,風險如下: 1個待確認介面表明mysql系列軟體包會呼叫到libaio.so.1.0.1,其函式引數數量從4變為5,直接影響了功能,在某個功能呼叫時可能會觸發異常;
另外,報告顯示需要確認3個依賴軟體包,經過人工確認屬於mysql系列包自閉環的依賴,故軟體包安裝無影響。
4.2分析結果建議
建議:由於函式呼叫風險,建議直接使用在openEuler官方編譯移植過的mysql-5.7.21系列軟體包
http://repo.openeuler.org/openEuler-20.03-LTS-SP1/everything/x86_64/Packages/mysql5-5.7.21-3.oe1.x86_64.rpm
http://repo.openeuler.org/openEuler-20.03-LTS-SP1/everything/x86_64/Packages/mariadb-common-10.3.9-9.oe1.x86_64.rpm
http://repo.openeuler.org/openEuler-20.03-LTS-SP1/everything/x86_64/Packages/mysql5-common-5.7.21-3.oe1.x86_64.rpm
http://repo.openeuler.org/openEuler-20.03-LTS-SP1/everything/x86_64/Packages/mysql5-server-5.7.21-3.oe1.x86_64.rpm
http://repo.openeuler.org/openEuler-20.03-LTS-SP1/everything/x86_64/Packages/mysql5-errmsg-5.7.21-3.oe1.x86_64.rpm
http://repo.openeuler.org/openEuler-20.03-LTS-SP1/everything/x86_64/Packages/mecab-0.996-2.oe1.x86_64.rpm
5.安裝資料庫mysql
5.1安裝mysql並配置密碼
1)安裝mariadb及mysql相關服務。
rpm -ivh mysql5-5.7.21-3.oe1.x86_64.rpm mariadb-common-10.3.9-9.oe1.x86_64.rpm mysql5-common-5.7.21-3.oe1.x86_64.rpm mysql5-server-5.7.21-3.oe1.x86_64.rpm mecab-0.996-2.oe1.x86_64.rpm mysql5-errmsg-5.7.21-3.oe1.x86_64.rpm
2) 啟動mysql。
systemctl start mysqld
3)mysql狀態查詢。
systemctl status mysqld 狀態為running則啟動成功:
[email protected] ~# systemctl status mysqld
● mysqld.service - MySQL 5.7 database server
Loaded: loaded (/usr/lib/systemd/system/mysqld.service; disabled; vendor preset: disabled)
Active: active (running) since Thu 2021-09-09 10:23:25 CST; 1 day 4h ago
Process: 103715 ExecStartPre=/usr/libexec/mysql-check-socket (code=exited, status=0/SUCCESS)
Process: 103738 ExecStartPre=/usr/libexec/mysql-prepare-db-dir mysqld.service (code=exited, sta>
Process: 103773 ExecStart=/usr/libexec/mysqld --daemonize --basedir=/usr --pid-file=/run/mysqld>
Process: 103803 ExecStartPost=/usr/libexec/mysql-check-upgrade (code=exited, status=0/SUCCESS)
Main PID: 103775 (mysqld)
Tasks: 37
Memory: 188.4M
CGroup: /system.slice/mysqld.service
└─103775 /usr/libexec/mysqld --daemonize --basedir=/usr --pid-file=/run/mysqld/mysqld.
4) 登入並修改預設密碼。
mysql -uroot -p
- a. 預設沒有密碼,按回車即可登入。
[email protected] /# mysql -uroot -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.7.21 MySQL Community Server (GPL)
Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>
- b. 設定密碼。
alter user 'user'@'localhost' identified by 'passward';
mysql> alter user 'root'@'localhost' identified by '123456';
Query OK, 0 rows affected (0.00 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
mysql>
flush privileges必須執行,否則設定不生效。
5) 驗證密碼。
退出後重新登入,檢視密碼是否修改成功。
[email protected] /# mysql -uroot -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 3Server version: 5.7.21 MySQL Community Server (GPL)
Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>
6.總結
根據評估結果再去實施搬遷,整體還是比較好操作,如若評估結果有疑問,可以向openEuler社群郵件列表([email protected])諮詢。
參考資料:
openEuler官網 http://www.openeuler.org/zh/other/migration/
x2openEuler 使用者指南 http://docs.openeuler.org/zh/docs/20.03_LTS_SP1/docs/thirdparty_migration/x2openEuleruseguide.html
openEuler社群郵件列表 http://www.openeuler.org/zh/community/mailing-list/
- 到底都有哪些國產的開源作業系統?
- 一次 Rancher 和 openEuler 的上雲之旅
- SUSE成立 RFO SIG,建設面向 openEuler 的容器基礎設施平臺
- StratoVirt 中的 PCI 裝置熱插拔實現
- StratoVirt 的 vCPU 拓撲(SMP)
- StratoVirt 中的虛擬網絡卡是如何實現的?
- 作業系統遷移實戰之在openEuler上部署MySQL資料庫
- openEuler資源利用率提升之道02:典型應用下的效果
- 2022開放原子全球開源峰會議程速遞 | 7 月 27 日分論壇議程一覽
- LibcarePlus 使用者態熱補丁技術那些事
- 實踐分享:如何安全快速地從 Centos遷移到openEuler
- Kyuubi 應用 | Kyuubi Playground 站點上線啦
- 聊聊怎麼做硬體相容性檢測,快速遷移到openEuler?
- 沒有 SIG 的開源專案不是好社群?
- 尤拉開源社群新增新華三、超聚變和龍芯中科為理事會成員單位
- 聊一聊資料庫的行存與列存
- openGauss資料庫ODBC環境連線配置(Windows)
- openGauss企業版安裝
- 使用gsql連線資料庫
- 重磅丨生態共榮——萬里資料庫推動GreatSQL攜手openEuler 共建資料庫產業生態