-2
我們的Oracle數據庫大小大約爲220GB,並且有兩個表將二進制數據存儲爲blob列。二進制表大小之一是150GB左右,其他表是30GB。由於數據庫規模非常巨大,因此我們很難在其他位置進行每日備份和災難恢復計劃。想要了解如何從表中分離出二進制數據並將這些表數據移動到某些集中式存儲。如何在Oracle數據庫中分離二進制數據
我們的Oracle數據庫大小大約爲220GB,並且有兩個表將二進制數據存儲爲blob列。二進制表大小之一是150GB左右,其他表是30GB。由於數據庫規模非常巨大,因此我們很難在其他位置進行每日備份和災難恢復計劃。想要了解如何從表中分離出二進制數據並將這些表數據移動到某些集中式存儲。如何在Oracle數據庫中分離二進制數據
你可以做的是建立一個第二RDS實例和移動2代BLOB表在這個新的實例,所以你將與2個服務器: - 主要服務器:30 GB - 文檔服務器與BLOB表
您將離開多可用區和每日快照在主服務器和計劃快照每週可能爲文檔。
首先:備份除了斑點的所有表
可以使用expdp
導出某些表只喜歡
expdp <master user>/<master pass>@source.cnrsdab7emat.us-east-1.rds.amazonaws.com:1521/DB schemas=SCOTT exclude=TABLE:"IN ('BLOB1', 'BLOB2')" directory= data_pump_dir dumpfile=dump.dmp
二:創建新實例,並導入轉儲
創建一個新的數據庫實例,確保提供足夠的空間。你不一定需要轉移的dmp文件,你可以從新的實例導入數據庫在網絡鏈路
create database link to_rds connect to USERX identified by PASSX using '(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=source.cnrsdab7emat.us-east-1.rds.amazonaws.com)(PORT=1521))(CONNECT_DATA=(SID=<ORCL_SID>)))';
運行IMPDP
impdp <master user>/<master pass>@target.cnrsdab7emat.us-east-1.rds.amazonaws.com:1521/NEWDB network_link=to_rds directory=data_pump_dir dumpfile=dump.dmp
第三:清理你的舊數據庫
ALTER
表中刪除您已傳輸的表。
採取這些步驟可以使您更好地將blob數據移出數據庫並移入像S3這樣的對象存儲區。現有的blob表可以替換爲包含指向S3中的對象的指針(URI)的表。 – jbird
真實,可能;或者放在其他地方,比如aws彈性搜索,並且可以從搜索中受益,如果文件可以被索引;如果文件不能被索引s3是一個很好的存儲選項 –