Oracle 查询用户表信息,导入导出处理表空间不一致

时间:2022-07-20 21:46:36
select table_name,tablespace_name from user_tables t;
//查询用户默认表空间信息
SELECT t.* FROM USER_USERS t;

导入导出处理表空间不一致

默认dump文件放的位置
SQL> select * from dba_directories where directory_name='DATA_PUMP_DIR'; OWNER DIRECTORY_NAME DIRECTORY_PATH
------------------------------ ---------------------------- --------------------------------
SYS DATA_PUMP_DIR E:\app\Administrator\admin\orcl1\dpdump\
SQL>conn / as sysdba
创建一个新dump文件位置
SQL> create directory dump_dir1 AS 'E:\app\Administrator\oradata\dump_dir';
目录已创建。
SQL> select * from dba_directories where directory_name='DUMP_DIR1';
OWNER DIRECTORY_NAME DIRECTORY_PATH
------------------------------ ---------------------------- --------------------------------
SYS DUMP_DIR1 E:\app\Administrator\oradata\dump_dir

Oracle 查询用户表信息,导入导出处理表空间不一致

给用户授权

  grant read,write on directory  dump_dir1 to HLMARKET;

导出数据
expdp HLZQWEIXIN/HLZQWEIXIN directory=dump_dir1 dumpfile=HLZQWEIXIN_20150729_01.dmp TABLESPACES=WEIXIN_DATA,THINKIVE_DATA,THINKWEIXIN_DATA

常用的参数:
directory=dump_dir1 ((必须指定目录对象参数且不能为空directory=dump_dir1)logfile/dumpfile在指定目录的基础上)
directory=dump_dir1 logfile=dump_dir1:aaa.log
directory=dump_dir1 dumpfile=dump_dir1:aaa.dmp
expdp s/s directory=dump_dir1 dumpfile=sas1.dmp logfile=aa.log
schemas=scott 
TABLES=emp,dept 
query='WHERE deptno=20'    带条件
TABLESPACES=temp,example  按表空间
FULL=y       整个库
content=all/metadata_only/data_only 所有/只导表元数据/表行

导入数据
impdp HLMARKET/HLMARKET directory=dump_dir1 dumpfile=HLZQWEIXIN_20150729_01.dmp logfile= impllog.log TABLE_EXISTS_ACTION=REPLACE remap_schema=HLZQWEIXIN:HLMARKET remap_tablespace=WEIXIN_DATA:HLMARKET_DATA,THINKIVE_DATA:HLMARKET_DATA,THINKWEIXIN_DATA:HLMARKET_DATA

常用的参数:

REMAP_SCHEMA=HLZQWEIXIN:HLMARKET    更改owner
TABLESPACES=old:new,old:new...导入表空间
TABLE_EXISTS_ACTION   追加数据
table_exists_action:

  SKIP:跳过该表,继续处理下一个对象,也是 TABLE_EXISTS_ACTION 参数默认值。但是要注
  意的是:如果指定了 content 参数值为 DATA_ONLY,那么默认值就是 append
  APPEND:向现有表中增加数据
  TRUNCATE:TRUNCATE 当前表,然后再添加记录
  REPLACE:删除并重建表对象,然后再向其中插入数据。