需求:就是建二个用户,拷贝已有的用户的所有对象结构,不需要数据。
每个用户都要新建表空间和数据文件。
(1)创建二个不同的表空间,注意文件的路径要和其他的一致,大小根据实际情况确定
CREATE TABLESPACE ISSYD DATAFILE
'/data/ISSYD01.dbf' SIZE 4G
AUTOEXTEND ON NEXT 1G MAXSIZE 31G
LOGGING
ONLINE
EXTENT MANAGEMENT LOCAL AUTOALLOCATE
BLOCKSIZE 8K
SEGMENT SPACE MANAGEMENT AUTO
FLASHBACK ON;
CREATE TABLESPACE BHBK DATAFILE
'/data/BHBK01.dbf' SIZE 4G AUTOEXTEND ON NEXT 1G MAXSIZE 31G
LOGGING
ONLINE
EXTENT MANAGEMENT LOCAL AUTOALLOCATE
BLOCKSIZE 8K
SEGMENT SPACE MANAGEMENT AUTO
FLASHBACK ON;
(2)创建用户,然后指定默认空间
create user YSG identified by "!QAZ2WSX" default tablespace ISSYD;
select * from dba_tablespaces where tablespace_name='ISSYD';
create user YSG identified by "!QAZ2WSX" default tablespace BHBK;
select * from dba_tables where tablespace_name='YSG'and owner=' BHBK';
(3)按照schema用户导出,不需要数据。需要加参数content=metadata_only
expdp \'/ AS SYSDBA@OUTDB\' DIRECTORY=backup schemas=ZX_NSBK_NT content=metadata_only dumpfile=exp_data_ZX20171122.dmp;
(4)导入数据,REMAP_TABLESPACE=ZX_NSBK_NT:ISSYD REMAP_SCHEMA=ZX_NSBK_NT:ISSYD,需要把ZX_NSBK_NT用户导入到ISSYD,需
要把表空间ZX_NSBK_NT导入到ISSYD
impdp \'/ AS SYSDBA@OUTDB\' DIRECTORY=backup content=metadata_only dumpfile=exp_data_ZX20171122.dmp REMAP_TABLESPACE=ZX_NSBK_NT:ISSYD REMAP_SCHEMA=ZX_NSBK_NT:ISSYD;
impdp \'/ AS SYSDBA@OUTDB\' DIRECTORY=backup content=metadata_only dumpfile=exp_data_ZX20171122.dmp REMAP_TABLESPACE=ZX_NSBK_NT:BHBK REMAP_SCHEMA=ZX_NSBK_NT:BHBK;
注意:如果没有加REMAP_TABLESPACE=ZX_NSBK_NT:ISSYD参数,会把对象重新导入到以前的表空间里面,加参数之后,就会把对象导入到新的表空间里面。
如果忘记加参数了。可以这样解决,前提是新建的用户,没有数据。
请慎用
alter user ISSYD account lock;
alter user YSG account lock;
drop user ISSYD cascade;
drop user YSG cascade;
--DROP TABLESPACE ISSYD INCLUDING CONTENTS AND DATAFILES;
--DROP TABLESPACE YSG INCLUDING CONTENTS AND DATAFILES;