欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

MySQL5.7 如何通過(guò)邏輯備份遷移到GreatSQL及注意事項(xiàng)

 更新時(shí)間:2024年06月07日 16:19:19   作者:GreatSQL  
在將數(shù)據(jù)庫(kù)從MySQL 5.7遷移到GreatSQL8.0.32時(shí),由于數(shù)據(jù)量較小且關(guān)注安全性,決定使用mysqldump執(zhí)行邏輯備份,并將數(shù)據(jù)導(dǎo)入GreatSQL,這篇文章主要介紹了MySQL5.7 通過(guò)邏輯備份遷移到GreatSQL注意事項(xiàng),需要的朋友可以參考下

一、背景概述

在將數(shù)據(jù)庫(kù)從MySQL 5.7遷移到GreatSQL8.0.32時(shí),由于數(shù)據(jù)量較小且關(guān)注安全性,決定使用mysqldump執(zhí)行邏輯備份,并將數(shù)據(jù)導(dǎo)入GreatSQL。但在備份時(shí)采用了備份全庫(kù)(--all-databases)的方式,在導(dǎo)入GreatSQL后,修改用戶密碼時(shí)出現(xiàn)錯(cuò)誤。這是因?yàn)閙ysqldump備份時(shí)包括了mysql系統(tǒng)庫(kù),而MySQL 5.7中的mysql系統(tǒng)庫(kù)采用了MyISAM存儲(chǔ)引擎,而GreatSQL的mysql系統(tǒng)庫(kù)采用了InnoDB存儲(chǔ)引擎。因此,在導(dǎo)入數(shù)據(jù)后,部分系統(tǒng)表被覆蓋,導(dǎo)致了錯(cuò)誤的出現(xiàn)。

二、問(wèn)題復(fù)現(xiàn)

1.部署2個(gè)實(shí)例

部署MySQL 5.7與GreatSQL 8.0.32,具體步驟省略

2.MySQL 創(chuàng)建測(cè)試數(shù)據(jù)

通過(guò)sysbench創(chuàng)建10張表

$ sysbench lua/oltp_read_write.lua --mysql-db=sysbench --mysql-host=192.168.1.162 --mysql-port=6003 --mysql-user=root --mysql-password=greatsql --tables=10 --table_size=5000 --report-interval=2 --threads=10 --time=600 --mysql-ignore-errors=all prepare

3.MySQL 創(chuàng)建測(cè)試用戶

mysql> create user test1@'%' identified by 'greatsql';
Query OK, 0 rows affected (0.01 sec)
mysql> grant all on *.* to test1@'%';
Query OK, 0 rows affected (0.01 sec)

???????4.MySQL進(jìn)行全庫(kù)備份

$ /mysql57/svr/mysql/bin/mysqldump -uroot -pgreatsql -h192.168.1.162 -P6003  --single-transaction --set-gtid-purged=OFF --all-databases > all.sql

5.GreatSQL導(dǎo)入備份數(shù)據(jù)

greatsql> source all.sql;

在導(dǎo)入過(guò)程中有如下報(bào)錯(cuò),從這里可以看出導(dǎo)入時(shí)有系統(tǒng)表被導(dǎo)入,并且部分系統(tǒng)表不支持被修改:

6.GreatSQL執(zhí)行修改用戶密碼操作

greatsql> alter user test1@'%' identified by 'abc123';
ERROR 1785 (HY000): Statement violates GTID consistency: Updates to non-transactional tables can only be done in either autocommitted statements or single-statement transactions, and never in the same statement as updates to transactional tables.

此時(shí)報(bào)錯(cuò)違反了 GTID 的一致性,由于導(dǎo)入數(shù)據(jù)后有部分MySQL庫(kù)下的系統(tǒng)表被修改成了MyISAM存儲(chǔ)引擎,并且修改用戶密碼會(huì)涉及多張系統(tǒng)表的更新,在一個(gè) SQL 語(yǔ)句中既對(duì)非事務(wù)表進(jìn)行了更新操作,又對(duì)事務(wù)表進(jìn)行了更新操作,這違反了 GTID 的一致性規(guī)則。

7.GreatSQL執(zhí)行查看庫(kù)表信息的操作

當(dāng)執(zhí)行刷新權(quán)限的操作后,執(zhí)行下面的SQL時(shí)也會(huì)報(bào)錯(cuò)

greatsql> flush privileges;
Query OK, 0 rows affected, 11 warnings (0.00 sec)
greatsql> show tables;
ERROR 1449 (HY000): The user specified as a definer ('mysql.infoschema'@'localhost') does not exist
greatsql> show databases;
ERROR 1449 (HY000): The user specified as a definer ('mysql.infoschema'@'localhost') does not exist

mysql.infoschema用戶是MySQL8.0中引入的,mysql.infoschema用戶是MySQL數(shù)據(jù)庫(kù)的系統(tǒng)用戶,用來(lái)管理和訪問(wèn)系統(tǒng)自帶實(shí)例information_schema;導(dǎo)入MySQL系統(tǒng)庫(kù)后,user表被覆蓋為MySQL5.7的user表,此用戶不存在,因此在刷新權(quán)限后訪問(wèn)元數(shù)據(jù)信息時(shí)報(bào)錯(cuò);

8.查看mysqldump備份了哪些系統(tǒng)表

$ grep 'CREATE TABLE ' all.sql
......
CREATE TABLE `innodb_index_stats` (
CREATE TABLE `innodb_table_stats` (
CREATE TABLE `ndb_binlog_index` (
CREATE TABLE `plugin` (
CREATE TABLE `proc` (
CREATE TABLE `procs_priv` (
CREATE TABLE `proxies_priv` (
CREATE TABLE `server_cost` (
CREATE TABLE `servers` (
CREATE TABLE IF NOT EXISTS `slave_master_info` (
CREATE TABLE IF NOT EXISTS `slave_relay_log_info` (
CREATE TABLE `slave_worker_info` (
CREATE TABLE `tables_priv` (
CREATE TABLE `time_zone` (
CREATE TABLE `time_zone_leap_second` (
CREATE TABLE `time_zone_name` (
CREATE TABLE `time_zone_transition` (
CREATE TABLE `time_zone_transition_type` (
CREATE TABLE `user` (
CREATE TABLE IF NOT EXISTS `general_log` (
CREATE TABLE IF NOT EXISTS `slow_log` (
......

???????三、問(wèn)題解決

1、可以初始化一個(gè)新的GreatSQL實(shí)例,備份這個(gè)新的GreatSQL實(shí)例的MySQL系統(tǒng)庫(kù)

$ /greatsql/svr/mysql/bin/mysqldump -uroot -pgreatdb -h127.0.0.1 -P6001  --single-transaction --set-gtid-purged=OFF -B mysql > mysql.sql

???????2、導(dǎo)入mysql系統(tǒng)庫(kù)的備份文件到GreatSQL實(shí)例中

greatsql> source mysql.sql;

3、導(dǎo)入完成后,刷新權(quán)限

greatsql> flush privileges;
Query OK, 0 rows affected (0.01 sec)

4.執(zhí)行創(chuàng)建用戶測(cè)試

greatsql> create user test1@'%' identified by 'greatsql';
Query OK, 0 rows affected (0.01 sec)
greatsql> grant all on *.* to test1@'%';
Query OK, 0 rows affected (0.01 sec)

5.執(zhí)行 show 操作

greatsql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
| sys_audit          |
| sysbench           |
| test               |
+--------------------+
7 rows in set (0.01 sec)
greatsql> show tables;
+----------------+
| Tables_in_test |
+----------------+
| test           |
+----------------+
1 row in set (0.01 sec)

???????四、總結(jié)

1.在從MySQL5.7向GreatSQL或者M(jìn)ySQL8.0 通過(guò)邏輯備份遷移時(shí),不要備份系統(tǒng)庫(kù)mysql,避免發(fā)生問(wèn)題;

2.用戶及權(quán)限可以單獨(dú)進(jìn)行備份然后導(dǎo)入到GreatSQL或者M(jìn)ySQL8.0中。

關(guān)于 GreatSQL

GreatSQL是適用于金融級(jí)應(yīng)用的國(guó)內(nèi)自主開源數(shù)據(jù)庫(kù),具備高性能、高可靠、高易用性、高安全等多個(gè)核心特性,可以作為MySQL或Percona Server的可選替換,用于線上生產(chǎn)環(huán)境,且完全免費(fèi)并兼容MySQL或Percona Server。

相關(guān)鏈接: GreatSQL社區(qū)GiteeGitHubBilibili

GreatSQL社區(qū):

社區(qū)博客有獎(jiǎng)?wù)鞲逶斍椋?a rel="external nofollow" target="_blank">https://greatsql.cn/thread-100-1-1.html

到此這篇關(guān)于MySQL5.7 通過(guò)邏輯備份遷移到GreatSQL注意事項(xiàng)的文章就介紹到這了,更多相關(guān)MySQL5.7邏輯備份遷移到GreatSQL內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • MySQL存儲(chǔ)過(guò)程的異常處理方法

    MySQL存儲(chǔ)過(guò)程的異常處理方法

    這篇文章主要介紹了MySQL存儲(chǔ)過(guò)程的異常處理方法,可實(shí)現(xiàn)有效調(diào)試MySQL存儲(chǔ)過(guò)程處理結(jié)果的功能,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-07-07
  • mysql全文搜索 sql命令的寫法

    mysql全文搜索 sql命令的寫法

    首先,大家先去下載一份dvbbs.php beta1的代碼,解壓后先拋開php代碼,找出你的mysql手冊(cè),如果沒(méi)有手冊(cè)那么就直接看下面的實(shí)例操作吧!
    2011-01-01
  • Mysql?InnoDB聚簇索引二級(jí)索引聯(lián)合索引特點(diǎn)

    Mysql?InnoDB聚簇索引二級(jí)索引聯(lián)合索引特點(diǎn)

    這篇文章主要為大家介紹了Mysql?InnoDB聚簇索引二級(jí)索引聯(lián)合索引特點(diǎn)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-05-05
  • MySQL索引的一些常見面試題大全(2022年)

    MySQL索引的一些常見面試題大全(2022年)

    索引(Index)是幫助MySQL高效獲取數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu),是對(duì)表中一列或多列值進(jìn)行排序的結(jié)構(gòu),下面這篇文章主要給大家介紹了關(guān)于MySQL索引的一些常見面試題,文中介紹的非常詳細(xì),需要的朋友可以參考下
    2023-02-02
  • MySQL 數(shù)據(jù)庫(kù)兩臺(tái)主機(jī)同步實(shí)戰(zhàn)(linux)

    MySQL 數(shù)據(jù)庫(kù)兩臺(tái)主機(jī)同步實(shí)戰(zhàn)(linux)

    MySQL支持單向、異步復(fù)制,復(fù)制過(guò)程中一個(gè)服務(wù)器充當(dāng)主服務(wù)器,而一個(gè)或多個(gè)其它服務(wù)器充當(dāng)從服務(wù)器。主服務(wù)器將更新寫入二進(jìn)制日志文件,并維護(hù)日志文件的一個(gè)索引以跟蹤日志循環(huán)。
    2009-04-04
  • MySQL DATE_SUB()函數(shù)的實(shí)現(xiàn)示例

    MySQL DATE_SUB()函數(shù)的實(shí)現(xiàn)示例

    本文主要介紹了MySQL DATE_SUB() 函數(shù)的實(shí)現(xiàn)示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2025-03-03
  • MySQL中varchar類型的字段默認(rèn)值設(shè)置方式

    MySQL中varchar類型的字段默認(rèn)值設(shè)置方式

    這篇文章主要介紹了MySQL中varchar類型的字段默認(rèn)值設(shè)置方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-10-10
  • Mysql如何優(yōu)化查詢速度

    Mysql如何優(yōu)化查詢速度

    這篇文章主要介紹了Mysql如何優(yōu)化查詢速度問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • mysql數(shù)據(jù)庫(kù)批量復(fù)制單條數(shù)據(jù)記錄

    mysql數(shù)據(jù)庫(kù)批量復(fù)制單條數(shù)據(jù)記錄

    在開發(fā)數(shù)據(jù)庫(kù)應(yīng)用時(shí),批量操作是一項(xiàng)常見的需求,無(wú)論是數(shù)據(jù)遷移、備份還是更新,理解如何在MySQL中批量復(fù)制單條數(shù)據(jù)都至關(guān)重要,本文將深入探討這一過(guò)程,并提供代碼示例,幫助你更好地理解這一概念
    2025-02-02
  • MySQL優(yōu)化GROUP BY方案

    MySQL優(yōu)化GROUP BY方案

    滿足GROUP BY子句的最一般的方法是掃描整個(gè)表并創(chuàng)建一個(gè)新的臨時(shí)表,表中每個(gè)組的所有行應(yīng)為連續(xù)的,然后使用該臨時(shí)表來(lái)找到組并應(yīng)用累積函數(shù)(如果有)。在某些情況中,MySQL能夠做得更好,即通過(guò)索引訪問(wèn)而不用創(chuàng)建臨時(shí)表。
    2014-07-07

最新評(píng)論