公司購買的BPM系統在部署的時候,軟體商想都沒想直接建完資料庫后使用SYSTEM表空間,現在隨著公司發展,增加開發人員之后很不好管理,考慮要把應用從這個表空間分離出來,軟體商沒有提供應用的ER設計圖,怎么分離這些資料表呢?應用的很多表都不確定,還有約束、索引,匯入匯出好幾次都失敗了!沒辦法,求大神提供技術支持。。。有意向加下微信:gt2390461568
uj5u.com熱心網友回復:
如果應用物件都建在system或者sys等系統用戶下,沒法確認應用所使用的物件,那么這種分離就會很危險,有一個方法可以先粗略的區分下:查詢dba_objects,查看物件的created欄位,從而與系統物件區分開來。但如果只是表建錯了表空間,建到了SYSTEM表空間上,那么可以使用move操作將表遷移至新的應用專屬表空間,當然move之后需要rebuild這些表上的索引。
uj5u.com熱心網友回復:
這種不適合匯出匯入了,可以先把表、序列、觸發器、函式、程序等等,生成腳本出來在新用戶下同步的執行腳本,先弄一個空庫出來,然后做資料遷移
uj5u.com熱心網友回復:
新建表空間,然后再遷移資料。uj5u.com熱心網友回復:
這種應該問題不大,一般來說,可以考慮使用邏輯的資料遷移的方法,當然具體要看你那邊的實際情況,如果需要支持聯系我們uj5u.com熱心網友回復:
大神好久不見,終于冒泡了。
uj5u.com熱心網友回復:
1、建立新的表空間,建立新的用戶,使用匯出匯入的方法2、使用陳述句逐個遷移,表使用move tablespace,索引使用rebuild
如: select 'alter table ' ||table_name || ' move tablespace newtablespace;' from user_all_tables where tablespace_name='SYSTEM' and owner='你的用戶';
select 'alter index ' || index_name || ' rebuild tablespace newtablespace;' from user_indexes
WHERE index_type = 'NORMAL'
AND table_owner = '你的用戶';
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/82553.html
標籤:開發
