使用資料傳輸服務(dts)将本地資料庫遷移到rds,可以實作應用不停服務的情況下,平滑完成資料庫的遷移工作。
dts 資料遷移支援 mysql 的結構遷移、全量遷移和增量遷移。
1、結構遷移
dts 會将本地資料庫的結構定義遷移到目标執行個體。目前 dts 支援結構遷移的對象有:表、視圖、觸發器、存儲過程、存儲函數
2、全量遷移
dts 會将本地資料庫遷移對象的資料全部遷移到目标執行個體。如果使用者還選擇了增量遷移,那麼全量遷移過程中,為了保證資料一緻性,無主鍵的非事務表會被鎖定,鎖定期間這些表無法寫入,鎖定時長依賴于這些表的資料量大小,在這些無主鍵非事務表遷移完成後,鎖才會釋放。
3、增量遷移
增量遷移會将遷移過程進行資料變更同步到目标執行個體,如果遷移期間進行了 ddl 操作,那麼這些結構變更不會遷移到目标執行個體。
将本地資料庫遷移到 rds 上有以下限制。
遷移過程中,不支援 ddl
操作
結構遷移不支援 event
的遷移
如果使用了對象名映射功能後,依賴這個對象的其他對象可能遷移失敗
當選擇增量遷移時,本地
mysql 執行個體需要開啟 binlog,且本地庫的 binlog_format 要為 row。如果本地 mysql 為5.6版本時,它的 binlog_row_image 還須設定為 full
本例以有公網 ip 的本地資料庫遷移到 rds
上為例。
在正式遷移之前,需要先在本地資料庫和
rds 執行個體中建立遷移帳号,并在 rds 執行個體中建立要遷移的資料庫,并将要遷移的資料庫的讀寫權限授權給遷移帳号。不同的遷移類型需要不同的權限,如下表所示。
遷移類型
結構遷移
全量遷移
增量遷移
本地資料庫
select
replication slave
replication client
rds 執行個體
讀寫權限
1.
在本地資料庫中建立遷移帳号。
create user 'username'@'host' identified by
'password';
參數說明:
l username:要建立的帳号
l host:指定該帳号登入資料庫的主機。如果是本地使用者可以使用 localhost,如果想讓該使用者從任意主機登入,可以使用通配符 %
l password:該帳号的登入密碼
例:
要建立帳号為 william,密碼為 changme123 的帳号從任意主機登入本地資料庫,指令如下:
create user 'william'@'%' identified by
'changme123';
2.
在本地資料庫中給遷移帳号授權,本地資料庫中遷移帳号的權限要求請參見上表。
grant privileges on databasename.tablename to
'username'@'host' with grant option;
l privileges:該帳号的操作權限,如 select、insert、update 等。如果要授權該帳号所有權限,則使用 all
l databasename:資料庫名。如果要授權該帳号所有的資料庫權限,則使用通配符 *
l tablename:表名。如果要授權該帳号所有的表權限,則使用通配符 *
l username:要授權的帳号名
l host:授權登入資料庫的主機名。如果是本地使用者可以使用 localhost,如果想讓該使用者從任意主機登入,可以使用通配符 %
l with grant option:授權該帳号能使用grant指令,該參數為可選。
授權帳号 william 對所有資料庫和表的所有權限,并可以從任意主機登入本地資料庫,指令如下:
grant all on *.* to 'william'@'%';
<b> </b>
<b>說明</b>:
如果需要進行增量遷移,那麼需要确認本地資料庫的 binlog 是否開啟并正确設定,執行以下步驟。
3.
開啟本地資料庫的 binlog。
使用如下指令查詢是否開啟了binlog。
show global variables like "log_bin";
如果查詢結果為 log_bin=off,那麼本地資料庫沒有開啟 binlog。為了使遷移過程中産生的增量資料能同步遷移,需要修改配置檔案 my.cnf 中的如下參數。
log_bin=mysql_bin
binlog_format=row
server_id=大于 1 的整數
binlog_row_image=full //當本地 mysql 版本大于 5.6 時,則需設定該項
4.
修改完成後,重新開機 mysql 程序。
$mysql_dir/bin/mysqladmin -u root -p shutdown
$mysql_dir/bin/safe_mysqld &
其中,“mysql_dir”為mysql安裝目錄。
資料準備完畢後,即可進入正式的遷移操作。
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIyZuBnL0YWN5cTZmFGMwYWMmBTOzkDZkdzN0UTYzIGM5cjZhZ2NwgjY2gDM38CXt92Yu4GZjlGbh5SZslmZxl3Lc9CX6MHc0RHaiojIsJye.png)
單擊 建立線上遷移任務,進入 建立遷移任務 頁面,如下圖所示。
3、輸入任務名稱、本地資料庫資訊和目标資料庫資訊,單擊 授權白名單并進入下一步,如下圖示。
l 任務名稱:自定義任務名稱,可以保持預設值
l 源庫資訊
執行個體類型:本地資料庫的執行個體類型,可以選擇 有公網ip的自建資料庫、ecs上的自建資料庫、rds執行個體、雲資料庫mongodb
資料庫類型:本地資料庫的類型,可以選擇 oracle、mysql、sqlserver、postgresql、mongodb
主機名或 ip 位址:本地資料庫的公網位址
端口:本地資料庫的公網端口
帳号:本地資料庫的遷移帳号
密碼:本地資料庫遷移帳号對應的密碼
l 目标庫資訊
執行個體類型:預設為 rds
執行個體
帳号:目标 rds 資料庫的遷移帳号
密碼:目标 rds 資料庫遷移帳号對應的密碼
選擇遷移類型,并在 遷移對象 中選擇要遷移的對象,單擊 > 将要遷移的對象放入 已選擇中,單擊 預檢查并啟動,如下圖所示。
<b>注意</b>
資料遷移隻會将本地資料庫的資料(結構)複制一份到目标資料庫,并不會對本地資料庫資料(結構)造成影響
資料遷移過程中,不支援
ddl 操作,如進行 ddl 操作可能導緻遷移失敗
dts 增量遷移的時間最長支援 15 天,如果超過 15 天不停止任務,系統資源可能被回收
如果要修改遷移對象在目标資料庫上的名字,可以在 已選擇 清單右側單擊 編輯,修改已選擇的對象名稱,如上圖4所示。
以下以預檢查不通過為例進行描述,如果預檢查通過,請直接參見步驟 8。
5.
系統顯示預檢查結果,如下圖所示。
6、 單擊 檢測結果 為 失敗 的檢測項後的!,檢視失敗詳細資訊,根據失敗詳細資訊完成錯誤排查。
7、錯誤排查完畢後,在 遷移任務清單 頁面,選擇目前遷移任務,單擊 啟動,如下圖所示。
8、 系統預檢查通過後,單擊 确定,自動進行遷移任務,如下圖所示。
因遷移帳号擁有讀寫權限,為了保證本地資料庫安全,請在資料遷移完成後,删除本地資料庫和 rds 執行個體中的遷移帳号。
使用 mysqldump 工具的優點是簡單易用、容易上手,缺點是停機時間較長,是以它适用于資料量不大,或者允許停機的時間較長的情況。
由于 rds 提供的關系型資料庫服務與原生的資料庫服務完全相容,是以對使用者來說,将原有資料庫遷移到 rds 執行個體的過程,與從一個 mysql 伺服器遷移到另外一台 mysql 伺服器的過程基本類似。
l 已購買雲伺服器 ecs。
關閉 mysql 程序。
其中,mysql_dir 為mysql安裝目錄。
使用 mysqldump 的資料導出工具,将本地資料庫資料導出為資料檔案。
<b>說明</b>: 本步驟僅僅導出資料,不包括存儲過程、觸發器及函數。
mysqldump -h localip -u username -p --opt
--default-character-set=utf8 --hex-blob dbname --skip-triggers >
/tmp/dbname.sql
l localip:本地資料庫伺服器 ip 位址
l username:本地資料庫的遷移帳号
l dbname:需要遷移的資料庫名
l /tmp/dbname.sql:備份生成的檔案名
使用 mysqldump 導出存儲過程、觸發器和函數。
<b>說明</b>: 若資料庫中沒有使用存儲過程、觸發器和函數,可跳過此步驟。在導出存儲過程、觸發器和函數時,需要将 definer 去掉,以相容 rds。
--default-character-set=utf8 --hex-blob dbname -r | sed -e 's/definer[ ]*=[
]*[^*]*\*/\*/' > /tmp/triggerprocedure.sql
l /tmp/triggerprocedure.sql:備份生成的檔案名
參見 ecs 産品文檔,将資料檔案和存儲過程檔案上傳到 ecs 上。
本例以檔案上傳到如下路徑為例。
/tmp/triggerprocedure.sql
登入 ecs,将資料檔案和存儲過程檔案導入到目标 rds 中。
mysql -h
intranet4example.mysql.rds.aliyuncs.com –u username -p dbname <
intranet4example.mysql.rds.aliyuncs.com -u username -p dbname <
l intranet4example.mysql.rds.aliyuncs.com:rds 執行個體連接配接位址,本例以内網位址為例
l username:rds 資料庫的遷移帳号
l dbname:需要導入的資料庫名
l /tmp/dbname.sql:要導入的資料檔案名
l /tmp/triggerprocedure.sql:要導入的存儲過程檔案名
使用資料傳輸服務 (dts) 将本地資料庫遷移到 rds,可以實作應用不停服務的情況下,平滑完成資料庫的遷移工作。
dts 支援 sql server
資料結構遷移和全量遷移。
l 結構遷移
dts 會将本地資料庫的結構定義遷移到目标執行個體。目前dts支援結構遷移的對象有:表、視圖、表觸發器、同義詞、sql 存儲過程、sql 函數、自定義類型、plan guid、rule、default。
l 全量遷移
dts 會将本地資料庫遷移對象的資料全部遷移到目标執行個體。如果在遷移過程中有增量更新的話,這些增量不會被遷移到目标庫。是以建議在業務無寫入時,使用 dts 進行全量資料遷移。
将本地資料庫遷移到 rds 上有以下限制:
l 遷移過程中,不支援 ddl
l 結構遷移不支援
assemblies、庫級存儲過程、service broker、全文索引、全文目錄、分布式 schema、分布式函數、clr 标量函數、clr 标值函數、内部表、聚合函數和系統的遷移
l 如果使用了對象名映射功能後,依賴這個對象的其他對象可能遷移失敗
在正式遷移之前,需要先在本地資料庫和rds執行個體中建立遷移帳号,并在rds執行個體中建立要遷移的資料庫,并将要遷移的資料庫的讀寫權限授權給遷移帳号。不同的遷移類型需要不同的權限,如下表所示。
create login username with password='password',
default_database=mydb;
go
create user username for login username with default_schema=dbo;
username:要建立的帳号
password:該帳号的登入密碼
mydb:預設連接配接的資料庫
dbo:預設的資料表
要建立帳号為 william,密碼為 changme123 的帳号通路資料 mydb 的資料表 dbo,指令如下:
create login william with
password='changme123', default_database=mydb;
create user william for login william with
default_schema=dbo;
grant privileges on tablename to username with
grant option;
privileges:該帳号的操作權限,如 select、insert、update 等。如果要授權該帳号所有權限,則使用 all
tablename:表名。如果要授權該帳号所有的表權限,則使用通配符 *
username:要授權的帳号名
with grant option:授權該帳号能使用grant指令,該參數為可選
授權帳号 william 對所有資料庫和表的所有權限,指令如下:
grant all on * to william;
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIyZuBnL0YWN5cTZmFGMwYWMmBTOzkDZkdzN0UTYzIGM5cjZhZ2NwgjY2gDM38CXt92Yu4GZjlGbh5SZslmZxl3Lc9CX6MHc0RHaiojIsJye.png)
3. 輸入任務名稱、本地資料庫資訊和目标資料庫資訊,單擊 授權白名單并進入下一步,如下圖所示。
任務名稱:自定義任務名稱,可以保持預設值
源庫資訊
執行個體類型:本地資料庫的執行個體類型,可以選擇 有公網 ip 的自建資料庫、ecs 上的自建資料庫、rds 執行個體、雲資料庫 mongodb
資料庫類型:本地資料庫的類型,可以選擇 oracle、mysql、sqlserver、postgresql、mongodb
主機名或ip位址:本地資料庫的公網位址
端口:本地資料庫的公網端口
密碼:本地資料庫遷移帳号對應的密碼
目标庫資訊
rds執行個體id:目标 rds 執行個體的 id。點選下拉菜單将自動聯想目前登入管理控制台的帳号的 rds 執行個體,點選選擇所需要的執行個體
資料庫名稱:要遷移到目标資料庫的名稱
帳号:目标 rds 資料庫的遷移帳号
選擇遷移類型,并在 遷移對象 中選擇要遷移的對象,單擊 > 将要遷移的對象放入 已選擇 中,單擊 預檢查并啟動,如下圖所示。
資料遷移隻會将本地資料庫的資料(結構)複制一份到目标資料庫,并不會對本地資料庫資料(結構)造成影響
資料遷移過程中,不支援ddl操作,如進行ddl操作可能導緻遷移失敗
dts增量遷移的時間最長支援15天,如果超過15天不停止任務,系統資源可能被回收
如果要修改遷移對象在目标資料庫上的名字,可以在 已選擇 清單右側單擊 編輯 ,修改已選擇的對象名稱,如上圖中4所示。
系統顯示預檢查結果,如下圖所示。
6.
單擊 檢測結果 為 失敗 的檢測項後的 !,檢視失敗詳細資訊,根據失敗詳細資訊完成錯誤排查。
7、錯誤排查完畢後,在 遷移任務清單 頁面,選擇目前遷移任務,單擊 啟動,如下圖所示。
8. 系統預檢查通過後,單擊 确定,自動進行遷移任務,如下圖所示。
為了保證本地資料庫安全,請在資料遷移完成後,删除本地資料庫和 rds 執行個體中的遷移帳号。
阿裡雲資料庫 sql server 版導入資料有如下限制:
僅支援導入 sql
server 2005、sql server 2008、sql server 2008r2 版本資料
僅支援全量資料導入
資料庫的 recover
mode 必須是 full 模式
已建立目标執行個體和資料庫
如果資料庫裡有資料,請做好備份,目标資料庫中的資料将被覆寫
為了確定資料一緻性,請停止本地資料庫的寫入操作
準備好 filezilla
3.6.0.2 用戶端 軟體,請注意軟體版本,且安裝後請不要更新版本
執行如下指令,檢查本地資料庫的 recover mode。
use master;
go
select name, case recovery_model
when 1 then 'full'
when 2 then 'buld_logged'
when 3 then 'simple' end model from
sys.databases
where name not in
('master','tempdb','model','msdb');
确認本地資料庫的 model 值:
l 如果 model 值不為 full,請執行步驟 2。
l 如果 model 值為 full,請執行步驟 3。
執行如下指令,設定源資料庫的 recover mode 為 full。 注意: recover mode 改成 full 模式會導緻 sql server 日志增加,請注意有足夠的硬碟空間。
alter database [dbname] set recovery full;
go
alter database [dbname] set auto_close
off;
備份源資料庫,本例以備份檔案名為 filename.bak 為例。
use master;
backup database [testdbdb] to disk
='d:\backup\filename.bak' with compression,init;
還原源資料庫的 recover mode。
<b>說明</b>: 如果您未執行步驟 2,即資料庫 recover
mode 原為 full,則無需執行該步驟。
alter database [dbname] set recovery
simple;
在菜單中選擇 資料庫管理。
在 資料庫管理 頁面單擊 備份檔案(bak)遷入,如下圖所示。
4、在 資料導入向導 頁面的 備份你的資料庫 步驟确認已參照 備份本地資料 備份好本地資料庫後,單擊 下一步,如下圖所示。
5、 在 上傳備份檔案 步驟單擊 擷取 ftp 資訊,擷取備份檔案上傳 ftp 資訊,如下圖所示。
将本地資料庫備份檔案名更改為上一步驟中擷取的檔案名。 注意: 本地備份檔案名必須更改為上一步驟中提供的檔案名,否則備份檔案無法上傳成功。
7.
打開 filezilla 軟體,選擇 檔案 > 站點管理器。
8.
單擊 新站點,建立并命名新站點後,按步驟 5 中擷取的 ftp 資訊填寫站點資訊,如下圖所示。
主機:ftp 資訊中的 外網伺服器
端口:ftp 資訊中的 外網伺服器端口
加密:選擇 要求隐式的 ftp
over tls
登入類型:選擇 正常
使用者:ftp 資訊中的 ftp
帳号
密碼:ftp 資訊中的 ftp
密碼
9.
選擇 傳輸設定 頁簽,設定 傳輸模式 為 被動,單擊 連接配接,如下圖所示。 說明: 系統會彈出 未知證書 提示,單擊 确定 即可。
10.
連接配接 ftp 伺服器後,将備份檔案按步驟 5 中提供的檔案名更名後,上傳至 ftp 伺服器。
11.
12.
确認 ftp 上傳完成,且檔案大小無誤後,單擊 資料導入,在彈出的确認框中單擊 确定,如下圖所示。
<b>注意</b>:
如果導入殘缺或者非法檔案,導入會失敗,該執行個體控制台将一直處于恢複中狀态,請送出工單解除該狀态。
如果導入資料後,執行個體磁盤容量超過總使用量的 85%,則無法進行導入。請先删減執行個體的資料或擴充磁盤容量。
13.
資料導入完成後,單擊 關閉,結束資料導入。
本地資料導入阿裡雲後,您可以在菜單中選擇 備份檔案遷入記錄,檢視資料導入記錄,執行 資料導入 操作。
postgresql,目前資料傳輸服務可以支援postgresql的結構遷移及全量資料遷移。
資料傳輸服務會将遷移對象的結構定義遷移到目标執行個體。對于postgresql,資料傳輸服務支援結構遷移的對象有:table、trigger、view、sequence、function、user defined type、rule、domain、operation、aggregate
資料傳輸服務會将源資料庫遷移對象在的資料全部遷移到目标執行個體。為了保證遷移資料一緻性,建議在遷移過程中,源資料庫停止業務寫入。如果在遷移過程中
,源資料庫有業務寫入的話,那麼全量遷移後,源跟目标庫資料可能不一緻
l 源執行個體,支援postgresql
9.2、9.3、9.4
l 遷移過程中,不支援ddl操作
l 不支援遷移使用c語言編寫的function
當使用資料傳輸服務進行postgresql遷移時,在不同遷移類型情況下,源跟目标資料庫的遷移帳号權限要求如下:
本地postgresql執行個體
pg_catalog的usage權限
遷移對象的select
目的rds執行個體
遷移對象的create、usage權限
schema的owner
資料傳輸服務在進行postgresql->rds
for postgresql資料遷移時,為了解決對象間的依賴,提高遷移成功率。結構對象及資料的遷移順序如下:
(1) 進行結構對象:table、view、sequence、function、user defined type、rule、domain、operation、aggregate的遷移
(2) 全量資料遷移
(3) 進行結構對象:trigger、foreign key的遷移
全量資料遷移完成後,任務清單中的遷移進度如下圖,結構遷移100%,全量遷移100%,但是遷移狀态為“遷移中”,此時遷移任務正在進行步驟(3)中的對象的遷移。此時,請勿直接結束任務,否則會造成遷移對象丢失。
下面詳細介紹下使用者如何使用資料傳輸服務将本地的postgresql遷移到rds上的流程
在正式遷移之前,需要确認目标rds執行個體中是否已經建立好了需要遷入的資料庫,如果沒有建立的話,需要先建立遷入資料庫。
在正式遷移之前,需要先在本地postgresql資料庫及雲上rds執行個體中建立遷移帳号,并将要遷移的庫表的相應權限授權給上面建立的帳号。
當上面的所有前提條件都配置完成後,就可以開始正式的資料遷移了。下面詳細介紹下具體的遷移步驟。
填寫本地postgresql跟目标rds執行個體的連接配接資訊
這裡面源執行個體類型要選擇有公網ip的自建資料庫。
源執行個體需要填寫如下幾個内容:
執行個體類型: 執行個體類型需要選擇有公網ip的自建資料庫
資料庫類型: 資料庫類型需要選擇postgresql
主機名或ip位址: 資料庫服務安裝伺服器的ip或執行個體的連接配接串位址
端口: 資料庫監聽端口号
資料庫名稱: 需要遷移對象所屬資料庫
賬号: 資料庫連接配接賬号
密碼: 資料庫連接配接賬号對應的密碼
目标執行個體需要填寫如下幾個内容:
rds執行個體id: 需要遷入資料的rds執行個體id
資料庫名稱: 需要遷入對象所屬的資料庫
賬号: 資料庫連接配接賬号
密碼: 資料庫連接配接賬号對應的密碼
選擇遷移對象及遷移類型
預設情況下,遷移對象遷移到目标庫後,對象名跟源庫一緻。如果目标庫對象名同源庫不同,那麼可以使用資料傳輸服務提供的對象名映射功能。
對于需要映射的對象,将滑鼠挪到已選擇對象框中,對應對象行上,右邊會出現“編輯”按鈕,點選編輯進入對象編輯頁面,既可以修改對象名。
當點選編輯後,即進入對象名稱修改頁面:
修改了對象名後,目标執行個體要導入資料的對象名稱即為修改後的對象名。
這裡面隻是簡單介紹了配置對象映射的流程,詳細操作方式詳見資料遷移手冊中的庫表列映射。
資料傳輸服務同時還支援遷移資料過濾,具體使用方式詳見資料遷移手冊中的配置sql條件過濾資料。
啟動預檢查
在資料正式遷移之前,會先進行基礎預檢查,隻有預檢查通過後,才能啟動遷移
如果預檢查失敗,那麼可以檢視具體的失敗詳情,根據失敗原因修複後,重新進行預檢查
當點選檢視後,可以檢視到具體的預檢查失敗原因:
當修複完成後,可以在任務清單中,選擇這個任務,然後重新啟動任務
啟動遷移任務
當預檢查通過後,我們可以啟動遷移任務,任務啟動後,可以到任務清單中檢視具體的遷移狀态及進度
至此,完成将本地postgresql資料庫移到rds的資料遷移任務配置。
本例介紹通過 psql 指令将
postgresql 資料備份檔案恢複到目标 rds中。
postgresql
支援邏輯備份。我們使用 pg_dump 邏輯備份功能,導出備份檔案,再通過 psql 導入到 rds 中,實作将 postgresql 的資料導入到 rds 中。
通過 postgresql 用戶端,連接配接本地 postgresql 資料庫。
執行如下指令,備份資料。
pg_dump -u username -h hostname -p port
databasename -f filename
參數說明如下:
username:本地資料庫使用者名
hostname:本地資料庫主機名,如果是在本地資料庫主機登入,可以使用 localhost
port:本地資料庫端口号
databasename:要備份的本地資料庫名
filename:要生成的備份檔案名稱
例如,資料庫使用者
william 要備份本地 postgresql 資料庫,登入 postgresql 主機後,通過如下指令備份資料。
pg_dump -u william -h localhost -p 3433 pg001
-f pg001.sql
通過 rds 内網恢複資料,網絡更穩定,資料更安全。建議您通過将資料上傳到雲伺服器 ecs 上,然後通過内網将資料恢複到目标 rds上。如果資料檔案太大,可以先壓縮後再上傳。本例以該方式為例進行說明。
登入雲伺服器 ecs
通過 postgresql 用戶端,執行如下指令将資料導入到 rds 中。
psql -u username -h hostname -d desintationdb
-p port -f dumpfilename.sql
username:rds 上的 postgresql 資料庫使用者名
hostname:rds 上的 postgresql 資料庫位址
port:rds 上的 postgresql 資料庫端口号
databasename:rds 上的 postgresql 資料庫名
filename:本地備份資料檔案名
例如:
psql -u william -h postgresql.rds.aliyuncs.com
-d pg001 -p 3433 -f pg001.sql
由于 rds 資料庫的權限設定和本地資料庫不一緻,在資料導入過程當中可能會出現一些與權限相關的 warning 或 error,可以忽略,如:
warning:
no privileges could be revoked for "xxxxx"
error:
role "xxxxx" does not exist
使用資料傳輸服務(dts)将本地資料庫遷移到
rds,可以實作應用不停服務的情況下,平滑完成資料庫的遷移工作。遷移過程中,對本地的 oracle 資料庫沒有影響。
dts 資料遷移支援 ppas 的結構遷移和全量遷移。
結構遷移
dts 會将遷移對象的結構定義遷移到目标執行個體。目前 dts 支援結構遷移的對象有:表、視圖、同義詞、觸發器、存儲過程、存儲函數、包、自定義類型。
全量遷移
dts 會将本地資料庫遷移對象的資料全部遷移到目标執行個體。如果遷移過程中,本地 oracle 資料庫有資料寫入的話,那麼這些增量資料不一定能夠被遷移到 rds 中。是以,如果要保證資料一緻性,那麼盡量選擇在業務低峰期進行全量遷移。
将 ppas 本地資料庫遷移到 rds 上有以下限制。
遷移過程中,不支援 ddl
不支援物化視圖的遷移
結構遷移時,會将
reverse index 遷移成普通索引
結構遷移時,會将位圖索引遷移成普通索引
結構遷移時,會将分區索引遷移成在每個分區上單獨建立的索引
本地 oracle 執行個體
schema
的 owner
rds 上 ppas 執行個體
1ï¼Â 通過 postgresql
用戶端,在本地資料庫中建立遷移帳号。
create user username identified by password;
create user myuser identified by mypassword;
grant privileges on tablename to username;
grant all on * to myuser;
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIyZuBnL0YWN5cTZmFGMwYWMmBTOzkDZkdzN0UTYzIGM5cjZhZ2NwgjY2gDM38CXt92Yu4GZjlGbh5SZslmZxl3Lc9CX6MHc0RHaiojIsJye.png)
單擊 建立線上遷移任務,進入 建立遷移任務 頁面,如下圖所示。