資料庫遷移(分享十一)

2022-09-16 14:39:12 字數 2440 閱讀 3501

公司最近資料遷移專案比較多,大部分都是上雲服務,目前基本上是映象上雲,p2v,v2v模式,但是我也漸漸了解到很多企業也打算資料庫上雲服務,由於各種不同原因,沒有辦法p2v、v2v這種形式。需要我們就是進行應用遷移即資料庫遷移。

下面幾節我就oracle、mysql、sqlserver資料庫遷移工具介紹。

oracle:

一、oracle sql developer是 oracle 用於將非 oracle 資料庫遷移到 oracle 的遷移工具

以上工具遷移到oracle。

具體步驟:

1、在oracle資料庫中建立移植資料檔案庫使用者

資料檔案庫使用者不是用來接收mysql遷移資料的使用者,而是進行資料遷移配置的使用者。

oracle建立使用者命令如下:

create user migrater identified by migrater;

alter user migrater account unlock;

grant dba to migrater;

grant connect, resource to migrater;

grant create session to migrater;

commit;

2、在sql developer中新建oracle連線sql developer中建立oracle的連線比較簡單,如下圖所示:

3、新增第三方jar包(mysql)

使用sql developer建立mysql的連線,需要新增mysql的驅動包,新增方法如下:

點選「工具-》首選項」

在首選項面板中選擇左側「資料庫-》第三方jdbc驅動程式」,點選下方的新增條目按鈕選擇mysql的驅動jar包。

4、新建mysql連線

新增好mysql的第三方驅動後,在新建連線頁面中即可出現mysql的配置項。

5、關聯移植資料檔案庫

執行遷移資料庫之前需要關聯移植資料檔案庫,操作如下:

選中oracle資料庫--》移植資料檔案庫----》關聯移植資料檔案庫

關聯過後新建的oracle資料庫中增加很多表:

6、移植mysql資料庫至oracle資料庫

在需要資料遷移的mysql資料庫連線上右鍵,選擇「移植到oracle…」選單。選中移植資料庫,資料庫資料型別轉換,一直下一步,到完成。

配置完成後在oracle庫中會生成乙個和mysql資料庫名字一樣的schema,裡面就是要轉換的資料。

注意:如果要是先建好使用者(使用者名稱用mysql資料庫的資料庫名),定義好使用者的預設表空間,然後再做mysql到oracle轉換,這樣就可以即把表存放到正確的位置,又可以用正確的使用者名稱。也可以改變資料庫的預設表空間防止自動建立使用者的預設表空間使用user表空間:

sql> alter database default tablespace mis_data;

注意:改過名字的使用者,許可權會繼承,但是預設表空間不會繼承,需要手工再設定預設表空間:

sql> alter user oa identified by oa default tablespace mis_data temporary tablespace temp;

修改底層表user$更換使用者名稱

注:修改oracle使用者名稱需要sys使用者,或者給操作使用者操作user$表的許可權。

sql> grant select on user$ to system;

sql> grant update on user$ to system;

截止已經結束。

如果是oracle之間資料遷移:利用 sql developer 資料庫複製即可。

資料庫遷移

這期專案,需要將另外乙個系統a與現有系統b整合,由於時間比較緊,直接採用遷移oracle資料庫物件的方式,發現之前評估的方案不是特別完善,首先 1 a資料庫為gbk編碼,b資料庫是utf 8編碼格式,a資料遷移需要進行中文字段擴容 至少1.5倍 2 a資料庫需要做效能評估,歷史資料遷移涉的方式,兼顧...

資料庫遷移

資料庫遷移 在開發過程中,需要修改資料庫模型,而且還要在修改之後更新資料庫。最直接的方式就是刪除舊表,但這樣會丟失資料。更好的解決辦法是使用資料庫遷移框架,它可以追蹤資料庫模式的變化,然後把變動應用到資料庫中。在flask中可以使用flask migrate擴充套件,來實現資料遷移。並且整合到fla...

資料庫遷移

1,增加遷移 如果你已經建好了表,你想在這個表中新增屬性,但是有不能回滾,這就需要單獨遷移了。1 rails generate migration addpartnumbertoproducts 這個命令生成乙個空的遷移,但名字已經起好了 class addpartnumbertoproducts ...