Oracle資料庫邏輯遷移步驟
一、首先,查詢並得到匯出所有非Oracle內建使用者資料的exp匯出指令碼:
1 SELECT 'EXP SYSTEM/PASSWORD@ORCL FILE=' || USERNAME || '.DMP LOG=' || 2 3 USERNAME || '.LOG OWNER=' || USERNAME || ' 4 5 ' 6 7 FROM ALL_USERS T 8 9 WHERE T.CREATED >10 11 (SELECT R.CREATED FROM ALL_USERS R WHERE R.USERNAME = 'SYSTEM') + 1;
二、接著,得到新庫中建立所需非Oracle內建使用者的sql指令碼:
1 SELECT 'CREATE USER ' || USERNAME || 'IDENTIFIED BY PASSWORD;' || ' 2 3 /' || ' 4 5 GRANT CONNECT, RESOURCE TO ' || USERNAME || ';' || ' 6 7 /' 8 9 FROM ALL_USERS T10 11 WHERE T.CREATED >12 13 (SELECT R.CREATED FROM ALL_USERS R WHERE R.USERNAME = 'SYSTEM') + 1;
三、接著,得到在新庫中建立匯入資料所需資料表空間的sql指令碼:
1 SELECT 'CREATE TABLESPACE ' || NAME || 'LOGGING DATAFILE ' || NAME ||2 3 '.ORA' ||4 5 'SIZE 1000M AUTOEXTEND ON NEXT 300M MAXSIZE UNLIMITED EXTENT MANAGEMENT LOCAL;'6 7 FROM V$TABLESPACE8 9 WHERE NAME NOT IN ('SYSTEM', 'UNDOTBS1', 'SYSAUX', 'USERS', 'TEMP');
四、最後,查詢並得到匯入所有非Oracle內建使用者資料的imp匯入指令碼:
1 SELECT 'IMP SYSTEM/PASSWORD@ORCL FILE=' || USERNAME || '.DMP LOG=' || 2 3 USERNAME || '.LOG FROMUSER=' || USERNAME || ' TOUSER=' || USERNAME || ' 4 5 ' 6 7 FROM ALL_USERS T 8 9 WHERE T.CREATED >10 11 (SELECT R.CREATED FROM ALL_USERS R WHERE R.USERNAME = 'SYSTEM') + 1;
末了,進行查詢,確認遷移資料成功。