亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

MySQL數據全量導入PG的方法

發布時間:2020-06-18 11:10:49 來源:網絡 閱讀:942 作者:我的二狗呢 欄目:系統運維

下面會用到一個perl腳本來做數據格式的轉換: https://github.com/ahammond/mysql2pgsql


1 導出mysql的數據

#?導出結構
mysqldump?bx_cmdb_37?--master-data=2??--skip-opt?--default-character-set=utf8?--no-data?--compact?--skip-dump-date?--set-gtid-purged=OFF?>?/tmp/struct.sql

#?導出數據
mysqldump?bx_cmdb_37?--master-data=2??--skip-opt?--default-character-set=utf8?--no-create-info??--compact?--skip-dump-date?--set-gtid-purged=OFF?>?/tmp/data.sql


2 使用perl腳本,將上一步驟中的2個sql轉為pg格式的,命令類似如下

下載?到?/root/目錄下
chmod?+x?/root/mysql2pgsql.perl

cd?/tmp/

/root/mysql2pgsql.perl?struct.sql?struct_pg.sql
/root/mysql2pgsql.perl?data.sql?data_pg.sql

sed?-i.bak?'s#?int?#?bigint?#g'?struct_pg.sql
sed?-i.bak?'s#?smallint?#?int?#g'?struct_pg.sql
sed?-i.bak?'s#?datetime(6)?#?timestamp?#g'?struct_pg.sql

做上面的幾個sed替換操作的原因是:?這里我遇到幾個問題(我下面的操作處理的不夠優雅):
1?部分int?unsigned的數據,perl腳本給轉成了int?signed,導致范圍縮小了,后續插入數據可能溢出,因此我這里將全部建表語句中的int?替換為bigint
2?注意?datetime的列,在PG里面我們需要人工改成?timestamp?類型的,不然會報錯
3?smallint?都改成?int類型,防止到PG中插入溢出




3 將文件導入到PG庫中(注意可能有些不兼容的報錯)

chown?postgres.postgres?/tmp/bbb.sql
psql?--port?5434?-d?testdb?-f?/tmp/bbb.sql???即可導入到PG的testdb庫中




4 后續的增量數據同步,可以使用 go-mysql-postgresql來進行(下一篇blog介紹用法)

我們?導出data.sql?的時候,?已經帶上?master-data了,很容易就知道最后復制的binlog位置。



## 參考? http://zhansq.cn/article/18-08-09/43.html

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

永修县| 连城县| 格尔木市| 滨海县| 宜兰县| 安新县| 忻城县| 彰化市| 罗源县| 保康县| 两当县| 延长县| 五寨县| 施秉县| 鄂尔多斯市| 阿克陶县| 青冈县| 洞口县| 沙洋县| 东辽县| 盱眙县| 容城县| 岑溪市| 五峰| 衡东县| 祁门县| 襄樊市| 新邵县| 工布江达县| 义乌市| 富宁县| 石楼县| 开封市| 读书| 读书| 东光县| 左云县| 科技| 广东省| 山东省| 乃东县|