今天下班有点晚,因为工作的一个失误,看错数据库,还好操作错误提示可以避免进一步犯错,也没有对生产数据和用户做任何操作。虽然被领导批评,还是庆幸没有动生成数据,也没有影响业务用户。似乎成了魔咒,每个DBA都要犯几次错误,好吧。我们暂且放下,来讨论数据泵迁移为。
需求是将一个用户迁移到另一个数据库,也就是迁移一个schema.我们在学习Oracle的数据库时,对schema的定义是数据库对象的集合,这个集合包括:表,索引,约束,触发器,存储过程,视图等对象,也就我们通过dba_obects可以查到的对象类型,下面我们查询看一下:
SYS@orcl1>select distinct object_type from dba_objects;
OBJECT_TYPE
-------------------
EDITION
INDEX PARTITION
TABLE SUBPARTITION
CONSUMER GROUP
SEQUENCE
TABLE PARTITION
SCHEDULE
QUEUE
RULE
PROCEDURE
.....
在我的11.2.0.4版本数据库中,有37中对象类型,下面我们查询一个用户和索引的定义
DBMS_METADATA.GET_DDL('INDEX','PK_EMP','SCOTT')
--------------------------------------------------------------------------------
CREATE UNIQUE INDEX "SCOTT"."PK_EMP" ON "SCOTT"."EMP" ("EMPNO")
PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS
STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
TABLESPACE "USERS"
这是一个索引的定