oracle 資料庫中 表A以欄位C作為list磁區,,想要把表A的欄位D作為磁區,該如何處理,,
表A資料量很大。
,有沒有大神解答一下。
uj5u.com熱心網友回復:
或者說 LIST磁區可以轉成range磁區嗎uj5u.com熱心網友回復:
如果有停機的視窗期,可以把表刪掉重建。uj5u.com熱心網友回復:
謝謝回答。不過之前也想過重新建表建磁區,然后把原表資料復制過來,可是源表資料量比較大,千萬級別的,用create table select * from 源表。比較耗資源,而且時間也長,擔心影響其他的業務操作,以及正常的batch
uj5u.com熱心網友回復:
磁區策略都調整了恐怕只能重建了uj5u.com熱心網友回復:
無非兩種方式:1.申請停機視窗,ctas并行重建,風險小
2.在線重定義不停機,風險大
uj5u.com熱心網友回復:
如果是oracle18c以后的版本,就可以直接在線改了。例子:
ALTER TABLE jyc_test1 MODIFY
partition by list(d)
(partition p1 values (1,2,3,4,5,6,7,8,9,10),
partition p2 values (11,12,13,14,15,16,17,18,19,20),
partition p3 values (default)
);
uj5u.com熱心網友回復:
建一個以D欄位磁區的磁區表(怎么分自己定義),然后用exhcange partition把源磁區表的資料遷過去,這個速度很快,而且比較安全uj5u.com熱心網友回復:
貌似唯一的辦法,就是重新建表,最安全的辦法,還是爭取停機時間。建表完成后,可以用多視窗,開多行程,不寫日志快速匯入資料。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/6873.html
標籤:開發
