数据库迁移的几种方式
數據遷移(Data migration)是指在存儲類型、格式和計算機系統之間的數據轉換。數據遷移當一個機構決定使用新的計算系統或與當前的系統不兼容的數據管理系統時是必須的。數據遷移通常有計劃的執行來完成一個自動的遷移,從單調的任務中解放人力資源。當機構或個人改變計算機系統或升級到新的系統時需要它。
一、exp/imp邏輯備份與恢復:
二、Storage存儲遷移:
將數據文件、控制文件、日志文件、spfile掛到新機器上,然后在新機器上啟動數據庫。
三、利用data guard遷移:
四、用rman做遷移:
我們常常需要對數據進行遷移,遷移到更性能配置更高級的主機OS上、遷移到遠程的機房、遷移到不同的平臺下,以下介紹ORACLE的幾種數據庫遷移方案:
一、exp/imp邏輯備份與恢復:
它是最常用最簡單的方法,一般是基于應用的owner級做導出導入。
操作方法為:
在新庫建立好owner和表空間,停老庫的應用,在老庫執行:
$ exp user/pwd owner=XXX file=exp_xxx.dmp log=exp_xxx.log buffer=6000000,
導入dmp文件到新庫,在新庫執行如下命令:
$ imp user/pwd fromuser=XXX touser=XXX file=exp_xxx.dmp log=imp_xxx.log ignore=y.
優缺點:優點是可以跨平臺使用;缺點是停機時間長,停機時間為從exp到網絡傳輸到新庫,再加上imp的時間。
二、Storage存儲遷移:
這種情況下,數據文件、控制文件、日志文件、spfile都在存儲上(一般情況下是裸設備),我們可以直接把存儲掛到新機器上,然后在新機器上啟動數據庫。
操作方法:將老庫的pfile(因為里面有指向裸設備的spfile鏈接),tnsnames.ora,listener.ora,密碼文件傳到新庫的對應位置。將存儲切至新機,或者用文件拷貝或dd的方式復制數據文件,啟動數據庫。
優缺點:優點是該遷移方式非常簡單,主要的工作是主機工程師的工作,dba只需配合即可,停機時間為停庫、切存儲、起庫的時間;缺點是要求新老庫都是同一平臺,是相同的數據庫版本。
三、利用data guard遷移:
用dg我們不僅可以用來做容災,物理的dg我們還可以作為遷移的方式。
操作方法:可見http://www.oracleblog.cn/study-note/dg-created-by-rman/或者
http://www.oracleblog.cn/study-note/create-dg-by-rman-one-datafile-by-one-datafile/或者其他相關網文。注意switch over之后,可以將dg拆掉,去掉log_archive_dest_2、FAL_SERVER、FAL_CLIENT、standby_file_management參數。另外還要注意如果用rman做dg,注意手工添加tempfile。
優缺點:優點是停機時間短,停機時間為switch over的時間;缺點:主機必須雙份、存儲必須雙份。
四、用rman做遷移:
rman比較適合于跨文件系統的遷移,如同平臺下的不同文件系統。
操作方法:
1.停第三方的歸檔備份,如legato或dp;
2.backup數據庫;
數據庫間數據遷移常見工具和方法:
DB2DB 是目前經過測試速度最快、最穩定實現多種數據庫之間進行數據轉換的工具。支持 SQL Server、MySQL、SQLite、Access 等多種數據庫類型,通過該工具可以把原來的系統,方便快速地部署在不同的數據庫甚至是云端數據庫下。在大數據情況下(千萬級別以上),處理速度比國內外同類軟件要高出300%以上。并針對云端數據庫中使用最多的 MySQL 數據庫進行優化,使得從源數據庫復制到新數據庫時保留更多的數據表屬性設置。這樣大大減少程序員、DBA、實施人員將大型數據庫進行遷移時的等待、測試和調試時間,減少公司為了測試某系統轉換到新數據庫系統時的人力成本。
————————————————
項目需要對oracle數據遷移到MySQL中,搜集了一些方法和工具,現在做一個匯總和總結,較好的有以下幾種:
1、SQLyog(https://link.zhihu.com/?target=https%3A//www.webyog.com/product/sqlyog)
SQLyog是世界著名的Webyog公司出品的一款簡潔高效、功能強大的圖形化MySQL數據庫管理工具。使用SQLyog,可以快速直觀地讓我們從世界上任何角落通過網絡來維護遠端的MySQL數據庫。
2、 intelligent-converters 的 oracle-to-mysql (https://link.zhihu.com/?target=http%3A//www.convert-in.com/)
外國軟件,官網說法一般的i7可達2萬/秒。
3、DB2DB(https://link.zhihu.com/?target=http%3A//www.szmesoft.com/DB2DB)
國內深圳的軟件,官網介紹說在大數據情況下(千萬級別以上),處理速度比國內外同類軟件要高出300%以上。
4、MySQLMigration Toolkit免費
MySQLMigration Toolkit是一款很不錯的將其他數據源轉換成mysql的工具。這個 Mysql官方提供的工具。
5、Navicat Premium
這個不多做介紹,都知道的。
6、kettle等ETL工具
很多ETL工具帶有從一個數據庫讀取寫入另一個數據庫的功能。
7、自己編寫
利用JAVA、R、python等編寫程序進行數據轉移。
限制遷移的速度中除了工具性能外,估計在網絡速度方面也會有較大限制;按照每秒可以達到10M(萬條數據左右)的網絡傳輸速度,1T需要1024*1024/3600*10約30小時,實際估計還沒有這么快。具體的方法工具使用網上有比較多的教程。
————————————————
總結
以上是生活随笔為你收集整理的数据库迁移的几种方式的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 用c语言设计一个任意20个数升序排列,编
- 下一篇: 玩转电脑的前提就是要先玩转Bios