將MySQL資料庫移植為PostgreSQL

來源:互聯網
上載者:User

在北美,人們對於 PostgreSQL 的熱情不斷升溫。隨著 PostgreSQL 的發展, PostgreSQL 8.x 已經從技術上超越 MySQL 5.x ,而市場的超越相信只是時間問題。而最終,使用者也許有機會享受到可媲美 Oracle 的開來源資料庫也未嘗沒有可能。
我供職的互連網公司,服務約 50 萬商務使用者,經過多次的升級移植,目前公司已經全部將後台資料庫從 MySQL 移植到 PostgreSQL ,而個人完成了其中一半的資料庫移植工作,所以對資料庫從 MySQL 移植到 PostgreSQL 積累了一些經驗。在此整理成文,希望能對大家使用 PostgreSQL 有一些啟發。
1) 準備: 使用 MySQL 資料備份工具對資料庫進行全備份:
mysqldump -h [hostname] -u [username] -p [password] --extended-insert=false [dbname] > mysql-db.sql
注意 disable extended-insert , PostgreSQL 不支援 MySQL 的 extended-insert
2) 轉化: 將 mysql-db.sql 轉為 PostgreSQL 可以匯入的 SQL Script.
MySQL 和 PostgreSQL 在 SQL 語義上存在一定差異,比如 MySQL 不支援 sequence ,觸發器等功能,但為此又提供了一些自有的文法規則,而對比一些系統函數, MySQL 和 PostgreSQL 又存在比較大的差別。為此,我編寫了一段語義分析和轉化的程式 mysql2psql
>mysql2psql mysql-db.sql postgres-db.sql
3) 匯入: 使用 PostgreSQL 提供的 pgAdmin 將資料檔案匯入資料庫。
4) SQL 陳述式的修改: 在實際的應用中,前端的系統往往會嵌入一些具有資料庫特性的 SQL 陳述式,而隨著後台資料庫的改變,前端的系統程式也同樣需要做出相應的修改。
MySQL 和 PostgreSQL 最常見的不同之處包括:Group by,Join的使用差異,系統函數的命名和調用的差異等等。
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.