Site icon Mr. 沙先生

筆記-Oracle 備份資料庫於異地還原流程

由於Oracle很少接觸到,有一些基本的指令動作常常碰壁,加上oracle權限分得很細,每次要執行都要再重新找資料

但大部份資料都以對岸居多,而且參差不齊,以此紀錄

 

 

範例:

Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 64bit 註1

 

 

來源資料庫:

sid: dba

user: source_user/source_pwd

 

目的資料庫:

sid: dbb

user: destination_user/destination_pwd

 

 

備份:

SETP.1 於來源DB將資料庫匯出至D:\oracle.dmp

exp source_user/source_pwd@dba file=D:\oracle.dmp full=y

 

 

SETP.2 建立目的資料庫的user,並給予所須權限。

 

#建立 user 並給予表空間=1G

sqlplus> create user destination_user identified by destination_pwd default tablespace users quota 1024M on users;

 

 

#調整使用者權限

sqlplus>

GRANT CREATE MATERIALIZED VIEW,
CREATE PROCEDURE,
CREATE SEQUENCE,
CREATE SESSION,
CREATE TABLE,
CREATE TRIGGER,
CREATE TYPE,
CREATE VIEW,
ON COMMIT REFRESH,
QUERY REWRITE 
TO "source_user";

 

SETP.3 將oracle.dmp抓到目的資料庫本機,進行匯入

imp system/system_pwd@dbb file=D:\oracle.dmp full=y fromuser=source_user touser=destination_user;

 

 

 

此段在進行匯入的時候,因不熟oracle遇到了許多問題,並紀錄一些觀念釐清

 

1. system 使用者只是登入權限,並不代表要匯入的account空間 (如MSSQL的登入使用者,須要有夠大的匯入權限才可以進行匯入)

2. sid為連線位置,可在Net Manager定義。

3. fromuser代表匯出使用的user,touser代表你要匯入的Account空間。

 

 

 

註1:

查詢Oracle版本

select * from v$version

 

 

Exit mobile version