91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

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

余姚市| 若尔盖县| 宜州市| 宿迁市| 乌兰察布市| 宁波市| 宽城| 康定县| 惠安县| 镇宁| 永吉县| 江川县| 翁牛特旗| 九龙坡区| 延安市| 潮安县| 广南县| 鹿泉市| 微山县| 三门峡市| 安塞县| 海原县| 故城县| 陵川县| 鄂托克旗| 石景山区| 丰原市| 佛学| 长白| 鄄城县| 四平市| 连山| 恩平市| 余江县| 陵水| 高要市| 丹江口市| 兴和县| 县级市| 长丰县| 黄大仙区|