在兩臺服務器上都運行MySQL 5.7.32版本的數據庫
兩個數據庫的數據都采用靜態加密
使用傳輸表空間功能將database1數據庫中的加密表“test.enc_data_test”復制到database2
▼▼▼
mysql> select @@version, @@version_commentG
*************************** 1. row ***************************
@@version: 5.7.32-log
@@version_comment: MySQL Community Server (GPL)
1 row in set (0.00 sec)
mysql> show create table test.enc_data_testG
*************************** 1. row ***************************
Table: enc_data_test
Create Table: CREATE TABLE `enc_data_test` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(16) DEFAULT NULL,
`exec_time` datetime DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=165520 DEFAULT CHARSET=utf8 ENCRYPTION=Y
1 row in set (0.00 sec)
1. 準備源表
確保enc_data_test表的更新已經刷新到磁盤,以便在服務器運行時制作表副本,在database1中:
▼▼▼
mysql> flush table enc_data_test for export;
Query OK, 0 rows affected (0.00 sec)
執行該命令后,將在 MySQL 數據目錄中創建兩個附加文件(.cfg 和 .cfp)
▼▼▼
-rw-r----- 1 mysql mysql 61 Jun 17 09:24 db.opt
-rw-r----- 1 mysql mysql 454 Jun 17 09:43 enc_data_test.cfg
-rw-r----- 1 mysql mysql 100 Jun 17 09:43 enc_data_test.cfp
-rw-r----- 1 mysql mysql 8626 Jun 17 09:37 enc_data_test.frm
-rw-r----- 1 mysql mysql 98304 Jun 17 09:43 enc_data_test.ibd
執行完第一步后,需要將表文件(.ib、.cfg、.cfp)復制到目標服務器database2
▼▼▼
[mysql@db01 test]$ scp -r enc_data_test.ibd enc_data_test.cfp enc_data_test.cfg 192.168.0.22:/home/mysql
mysql@192.168.0.22s password:
enc_data_test.ibd 100% 96KB 6.9MB/s 00:00
enc_data_test.cfp 100% 100 37.5KB/s 00:00
enc_data_test.cfg 100% 454 148.5KB/s 00:00
將表文件復制到目標服務器 (database2) 后,需要在 database1 上解鎖表以允許對其操作
▼▼▼
mysql> unlock tables;
Query OK, 0 rows affected (0.00 sec)
4. 在database2上創建表結構
在目標數據庫database2上創建空表
▼▼▼
mysql> CREATE TABLE `enc_data_test` (
-> `id` int(11) NOT NULL AUTO_INCREMENT,
-> `name` varchar(16) DEFAULT NULL,
-> `exec_time` datetime DEFAULT CURRENT_TIMESTAMP,
-> PRIMARY KEY (`id`)
-> ) ENGINE=InnoDB AUTO_INCREMENT=165520 DEFAULT CHARSET=utf8 ENCRYPTION=Y;
Query OK, 0 rows affected (0.02 sec)
確保表結構“ENCRYPTION=Y”上添加了加密。否則,在導入過程中會出現以下錯誤信息
▼▼▼
mysql> alter table enc_data_test import tablespace;
ERROR 1808 (HY000): Schema mismatch (Encryption attribute in the file does not match the dictionary.)
5. 刪除.idb文件
在 database2 上創建空表后,建產生兩個文件(.frm 和 .ibd)。需要刪除 .ibd 文件,以便從 database1復制表空間過來
▼▼▼
[mysql@db02 test]$ ll
total 112
-rw-r----- 1 mysql mysql 61 Jun 17 09:24 db.opt
-rw-r----- 1 mysql mysql 8626 Jun 17 09:53 enc_data_test.frm
-rw-r----- 1 mysql mysql 98304 Jun 17 09:53 enc_data_test.ibd
mysql> alter table enc_data_test discard tablespace;
Query OK, 0 rows affected (0.13 sec)
[mysql@db02 test]$ ls -lrth
total 16K
-rw-r----- 1 mysql mysql 61 Jun 17 09:24 db.opt
-rw-r----- 1 mysql mysql 8.5K Jun 17 09:53 enc_data_test.frm
6. 復制表空間到數據文件目錄
將表空間文件(從database1)拷貝到數據庫文件夾下的data目錄下
▼▼▼
[mysql@db02 test]$ cp -r /home/mysql/enc_data_test.ibd ./
[mysql@db02 test]$ cp -r /home/mysql/enc_data_test.cf* ./
[mysql@db02 test]$ ls -lrth
total 120K
-rw-r----- 1 mysql mysql 61 Jun 17 09:24 db.opt
-rw-r----- 1 mysql mysql 8.5K Jun 17 09:53 enc_data_test.frm
-rw-r----- 1 mysql mysql 96K Jun 17 10:01 enc_data_test.ibd
-rw-r----- 1 mysql mysql 100 Jun 17 10:01 enc_data_test.cfp
-rw-r----- 1 mysql mysql 454 Jun 17 10:01 enc_data_test.cfg
確保在.cfp 文件存在,如果沒有,導入將無法進行,并且會出現以下錯誤
▼▼▼
mysql> alter table enc_data_test import tablespace;
ERROR 1808 (HY000): Schema mismatch (Table is in an encrypted tablespace, but the encryption meta-data file cannot be found while importing.)
在目標數據庫運行一下命令進行導入
▼▼▼
mysql> alter table enc_data_test import tablespace;
Query OK, 0 rows affected (0.02 sec)
mysql> select count(*)from enc_data_test;
+----------+
| count(*) |
+----------+
| 1000 |
+----------+
1 row in set (0.00 sec)
遷移過程與正常的 InnoDB 表空間導出/導入過程非常相似。但是,在這里需要注意以下兩點:
必須將 .cfp 文件復制到目標服務器。
遷移表需要加密(ENCRYPTION = Y)
更多精彩干貨分享
點擊下方名片關注
IT那活兒
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/129873.html
摘要:如圖流程引擎創建完成后,只會對進行操作,屬性數據表存儲整個流程引擎級別的數據初始化表結構時,會默認插入四條記錄,流程部署測試流程部署,先把上面的流程引擎配置的注解改為。如圖資源流程定義數據表這里面存放的就是我們部署的資源元數據信息。 關于activiti是什么,我這里就不多說了,我們直接上路,O(∩_∩)O哈哈~ 引擎配置 配置方式有好幾種:1): /** * 獲取默認的流程引擎實例...
摘要:摘要第九屆中國數據庫技術大會,阿里云數據庫產品專家蕭少聰帶來以阿里云如何打破遷移上云的壁壘為題的演講。于是,阿里云給出了上面的解決方案。 摘要: 2018第九屆中國數據庫技術大會,阿里云數據庫產品專家蕭少聰帶來以阿里云如何打破Oracle遷移上云的壁壘為題的演講。Oracle是指數據庫管理系統,面對Oracle遷移上云的壁壘,阿里云如何能夠打破它呢?本文提出了Oracle 到云數據庫P...
摘要:通過對一些客戶的跨云遷移過程進行總結,發現普遍存在的挑戰有三點數據完整性和一致性挑戰。簡而言之,跨云遷移過程中的數據一致性主要就集中在存量數據的遷移如何保證一致。前言隨著互聯網業務發展對容災以及對訪問加速、多供應商成本控制等需求的產生,互聯網公司的多云部署和跨云遷移逐漸成為剛需,而在此過程中,最困擾運維和研發人員的就是數據的遷移和同步。俗語說 上屋搬下屋,搬灑一籮谷 ,在業務的遷移過程中一旦...
閱讀 1346·2023-01-11 13:20
閱讀 1684·2023-01-11 13:20
閱讀 1132·2023-01-11 13:20
閱讀 1858·2023-01-11 13:20
閱讀 4100·2023-01-11 13:20
閱讀 2704·2023-01-11 13:20
閱讀 1385·2023-01-11 13:20
閱讀 3597·2023-01-11 13:20