【Mysql】Mysql遷移至postgrepsql
1mysql遷移資料至postgrepsql
推薦阿里工具mysql2pgsql,專案地址https://help.aliyun.com/document_detail/35458.htmlmysql2pgsql
工具 mysql2pgsql 支援不落地的把 MYSQL 中的表遷移到 HybridDB/Greenplum Database/PostgreSQL/PPAS。此工具的原理是,同時連線源端 mysql 資料庫和目的端資料庫,從 mysql 庫中透過查詢得到要匯出的資料,然後透過 COPY 命令匯入到目的端。此工具支援多執行緒匯入(每個工作執行緒負責匯入一部分資料庫表)。
引數配置
修改配置檔案 my.cfg、配置源和目的庫連線資訊。
-
源庫 mysql 的連線資訊如下:
注意:源庫 mysql 的連線資訊中,使用者需要有對所有使用者表的讀許可權。
-
[src.mysql]
-
host = "127.0.0.1"
-
port = "3307"
-
user = "root"
-
password = "ESBecs00!@#"
-
db = "devops"
-
encodingdir = "share"
-
encoding = "utf8"
-
binlogfile = "mysql-bin.000001"
-
binlogfile_offset = "4"
- serverid = 13307
-
[src.mysql]
-
目的庫 pgsql (包括 Postgresql、PPAS 和 HybridDB )的連線資訊如下:
注意:目的庫 pgsql 的連線資訊,使用者需要對目標表有寫的許可權。
-
[desc.pgsql]
-
connect_string = "host=127.0.0.1 dbname=exampledb port=5432 user=testpg password=testpg"
-
target_schema = "public"
- ignore_copy_error_count_each_table = "0"
-
[desc.pgsql]
mysql2pgsql 用法
mysql2pgsql 的用法如下所示:
./mysql2pgsql -l -d -n -j <number of threads> -s <schema of target able>
引數說明:
-
-l:可選引數,指定一個文字檔案,檔案中含有需要同步的表;如果不指定此引數,則同步配置檔案中指定資料庫下的所有表。為一個檔名,裡面含有需要同步的表集合以及表上查詢的條件,其內容格式示例如下:
-
table1 : select * from table_big where column1 < '2016-08-05'
-
table2 :
-
table3
-
table4: select column1, column2 from tableX where column1 != 10
- table5: select * from table_big where column1 >= '2016-08-05
-
table1 : select * from table_big where column1 < '2016-08-05'
-
-d:可選引數,表示只生成目的表的建表 DDL 語句,不實際進行資料同步。
-
-n:可選引數,需要與-d一起使用,指定在 DDL 語句中不包含表分割槽定義。
-
-j:可選引數,指定使用多少執行緒進行資料同步;如果不指定此引數,會使用 5 個執行緒併發。
-
-s:可選引數,指定目標表的schema,一次命令只能指定一個schema。如果不指定此引數,則資料會匯入到public下的表。
典型用法
全庫遷移
全庫遷移的操作步驟如下所示:
-
透過如下命令,獲取目的端對應表的 DDL。
./mysql2pgsql -d
-
根據這些 DDL,再加入 distribution key 等資訊,在目的端建立表。
-
執行如下命令,同步所有表:
./mysql2pgsql此命令會把配置檔案中所指定資料庫中的所有 mysql 表資料遷移到目的端。過程中使用 5 個執行緒(即預設執行緒數為 5),讀取和匯入所有涉及的表資料。
部分表遷移
-
編輯一個新檔案 tab_list.txt,放入如下內容:
-
t1
- t2 : select * from t2 where c1 > 138888
-
t1
-
執行如下命令,同步指定的 t1 和 t2 表(注意 t2 表只遷移符合 c1 > 138888 條件的資料):
- ./mysql2pgsql -l tab_list.txt
付網盤下載連結:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29096438/viewspace-2138179/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 如何從自建MySQL遷移至阿里雲RDS for MySQL的教程MySql阿里
- MySQL資料庫使用pg_chameleon遷移至openGaussMySql資料庫Chameleon
- SQL Server 遷移至MySQL 關鍵步驟的梳理總結ServerMySql
- Hadoop Hive遷移至MaxComputeHadoopHive
- 【恩墨學院】從商用到開源:DB2遷移至MySQL的最佳實踐DB2MySql
- 【遷移】SqlServer 遷移到 MySQL 方法ServerMySql
- DBMotion——MySQL遷移利器MySql
- ESXI 遷移至KVM (V2V遷移)
- 本部落格已遷移至Wordpress~
- Mysql資料遷移方法MySql
- MySQL分割槽如何遷移MySql
- MSSQL Server 遷移至 ORACLE解決方案SQLServerOracle
- 應用遷移至 Android P 操作指南Android
- MySQL5.17異機遷移到MySQL 5.7.23基本步驟MySql
- MySQL資料庫遷移到PostgresMySql資料庫
- MySQL備份遷移之mydumperMySql
- mysql檔案複製遷移MySql
- mysql 大表mysqldump遷移方案MySql
- 遷移MySQL 5.7資料庫MySql資料庫
- linux mysql資料庫遷移LinuxMySql資料庫
- Windows 遷移至 Linux(debian12) 實驗WindowsLinux
- 部落格從 CloudBase 遷移至雲主機Cloud
- 資料檔案遷移至其他磁碟組
- 【Golang+mysql】記一次mysql資料庫遷移(一)GolangMySql資料庫
- MySQL資料庫遷移與MySQL資料庫批量恢復MySql資料庫
- mysqldump從mysql遷移資料到OceanBaseMySql
- 乾貨好文 | 初探MySQL遷移到ClickHouseMySql
- MySQL資料遷移那些事兒MySql
- SmartDialog遷移至4.0:一份真誠的遷移說明
- WSL子系統檔案遷移至其他磁碟
- PVE虛擬機器遷移至VMware平臺虛擬機
- 記錄 WSL 從 C 盤遷移至 D 盤
- 容器化|自建 MySQL 叢集遷移到 KubernetesMySql
- 從Firebase+Redis遷移到PlanetScale+MySQLRedisMySql
- sqlserver使用者資料庫遷移至其他盤SQLServer資料庫
- 舊NAS資料遷移至新NAS怎麼做
- svn專案遷移至gitlab流程(保留提交記錄)Gitlab
- 將ERP系統遷移至雲端具有哪些作用
- ASP.NET Core 2.2 遷移至 3.0 備忘錄ASP.NET