一、導出
導出用戶對象:
1、plsql登錄到數據庫
2、查詢當前用戶的默認表空間(以DEMO1賬戶為例)
用DEMO1用戶登陸plsql,在上圖的窗口里的Users的分支下找到當前的用戶名DEMO1,再點view,在右邊的Default tablespace就可以查看該用戶的默認表空間(TBS_DEMO1)。
3、導出DEMO1用戶的所有用戶對象(表結構):
在DEMO1用戶下,點擊tools,Export User Objects,在右側彈出的窗口按如上設置進行設置,重點是Single file,然后在Output file選擇路徑,再點擊export導出用戶對象文件(文件為sql格式)。
注意:這個導出完成后可能沒有什么成功或者完成一類的提示,只需要看到下條的進度條已經走完。再看一下生成出來的log文件最后有spoo off就說明導完了。
導出表數據:
在右側窗口全選所有表對象,再點擊下方的Output file選擇輸出路徑,再點擊Export生成數據文件(文件格式為dmp格式)
二、導入
在新的數據庫服務器用sys賬號登陸sql
1、新建用戶表空間(表空間的名字要和導出的一致,這里以TBS_DEMO1為例)
create tablespace TMS_DEMO1 datafile 'D:\ORACLE11GR2\ORADATA\PCILAB\DATA.DBF' size 10g
autoextend on next 1g maxsize unlimited
EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO;
表空間是oracle獨有的,可以想象為一個存放數據庫的一個盒子,需要指定該大小(本例為10g),以及實體文件的路徑xx.DBF自定義(本例為D:\ORACLE11GR2\ORADATA\PCILAB\DATA.DBF),所有數據表都會放在表空間。(如果想知道當前實例里別的表空間路徑都在哪,可以用select * from dba_data_files 查詢)
2、新建一個用戶,並指定其默認表空間(用戶名需要和之前導出時的用戶名一致,這里以DEMO1為例。)
CREATE USER DEMO1 IDENTIFIED BY DEMO1123
DEFAULT TABLESPACE TBS_DEMO1
TEMPORARY TABLESPACE TEMP;
新建用戶DEMO1,密碼DEMO1123,默認表空間 TBS_DEMO1,默認臨時表空間TEMP.
3、授予用戶DBA權限(有時間可能上述的權限無法導入用戶對象以及用戶數據,所以最好用grant dba to DEMO1;授予它dba權限,在導完了用戶對象后,再用revoke dba from DEMO1;回收dba權限。)
授於用戶的基本權利
grant
connect,
ALTER SESSION,
CREATE ANY JOB,
CREATE ANY TABLE,
CREATE ANY VIEW,
CREATE CLUSTER,
CREATE DATABASE LINK,
CREATE INDEXTYPE,
CREATE JOB,
CREATE OPERATOR,
CREATE PROCEDURE,
CREATE SEQUENCE,
CREATE SESSION,
CREATE SYNONYM,
CREATE TABLE,
CREATE TRIGGER,
CREATE TYPE,
CREATE VIEW,
DEBUG ANY PROCEDURE,
DEBUG CONNECT SESSION,
EXECUTE ANY PROCEDURE,
INSERT ANY TABLE,
MANAGE SCHEDULER,
SELECT ANY DICTIONARY,
SELECT ANY TABLE,
UNDER ANY TABLE,
UNLIMITED TABLESPACE,
UPDATE ANY TABLE
to DEMO1;
1、導入用戶對象(表結構)
登陸DEMO1賬號后,直接執行導出的sql腳本。
2、導入表數據
登陸DEMO1賬號后,選擇tools 下邊的Import Tables,選擇之前導出的dmp文件后,按import后即可。