导出/导入步骤:
expdp system/pwd directory=s_dirname dumpfile=mes1_20150810.dmp logfile=mes1_20150810.log schemas=mes1 CONTENT=METADATA_ONLY
1.在源资料库s中查看mes1与mes4中所有表和索引存放的表空间名称:
SQL@S> SELECT DISTINCT TABLESPACE_NAME FROM DBA_TABLES WHERE OWNER IN('MES1','MES4');
SQL@S> SELECT DISTINCT TABLESPACE_NAME FROM DBA_INDEXES WHERE OWNER IN ('MES1','MES4');
2.根据查询结果,在目标数据库t中建立相同名称的表空间,数据文件位置根据t服务器实际磁盘分区决定.可以与s数据文件位置不同.
SQL@T> CREATE TABLESPACE CMES DATAFILE 'XXXX.DBF' SIZE 300M AUTOEXTEND ON 30M;
……
3.在t中新建账号mes1/mes4/ztm01t1_ap,角色cit_group/mes_select.默认表空间设置为mes_user
SQL@T> CREATE USER MES1 IDENTIFIED BY pwd DEFAULT TABLESPACE mes_user;
SQL@T> CREATE USER MES4 IDENTIFIED BY pwd DEFAULT TABLESPACE mes_user;
SQL@T> CREATE USER ztm01t1_ap IDENTIFIED BY pwd DEFAULT TABLESPACE mes_user;
SQL@T> GRANT CONNECT TO ztm01t1_ap;
SQL@T> CREATE ROLE cit_group NOT IDENTIFIED;
SQL@T> CREATE ROLE mes_select NOT IDENTIFIED;
SQL@T> GRANT CONNECT TO cit_group;
SQL@T> GRANT CONNECT TO mes_select;
4.将s中mes1的数据使用数据泵导出.
4.1 在s中查找可读写的目录对象
SQL@S> SELECT DIRECTORY_NAME,DIRECTORY_PATH FROM DBA_DIRECTORIES;
4.2 导出s中MES1用户下的所有数据
oracle@S> expdp system/pwd directory=s_dirname dumpfile=mes1_20150810.dmp logfile=mes1_20150810.log schemas=mes1
4.3 在t中查找可读写的目录对象,拷贝mes1_20150810.dmp到对应目录下
SQL@T> SELECT DIRECTORY_NAME,DIRECTORY_PATH FROM DBA_DIRECTORIES;
4.4 使用数据泵,将mes1数据导入t,注意查看日志是否有报错信息.
oracle@T> impdp system/pwd directory=t_dirname dumpfile=mes1_20150810.dmp logfile=mes1_20150810.log schemas=mes1
5. 同样方法将mes4/ztm01_ap下的数据导入t
注意:ztm02_ap用户下的数据导入t时,添加参数remap_schema,如下:
oracle@T> impdp system/pwd directory=t_dirname dumpfile=mes1_20150810.dmp logfile=mes1_20150810.log schemas=ztm01_ap remap_schema=ztm01_ap:ztm01t1_ap
6.比较s与t各用户下对象数目是否相同,如果不同考虑重新导入数据
SQL@S> SELECT OWNER,OBJECT_TYPE,COUNT(OBJECT_TYPE) FROM DBA_OBJECTS WHERE OWNER IN ('MES1','MES4','ZTM01_AP') GROUP BY OWNER,OBJECT_TYPE ORDER BY OWNER;
7.根据s,在t的对应账号授予对象权限(以MES1用户为例)
SQL@S> SELECT GRANTEE,OWNER,TABLE_NAME,PRIVILEGE FROM DBA_TAB_PRIVS WHERE OWNER='MES1';
SQL@T> GRANT INSERT ON MES1.XXX TO XXXX;
导出c开头的表
expdp system/Foxconn88 directory=expdp_dir dumpfile=test02.dmp schemas=test INCLUDE=TABLE:"LIKE'C%'"
导出除了c开头的表
expdp system/Foxconn88 directory=expdp_dir dumpfile=test05.dmp schemas=test INCLUDE=TABLE:\"NOT LIKE \'C%\'\"
导出某个表
expdp system/Foxconn88 directory=expdp_dir dumpfile=test08.dmp schemas=test INCLUDE=TABLE:\"IN\(\'C01\',\'C02\',\'C03\'\)\"
导出除了C01,C02的表
expdp system/Foxconn88 directory=expdp_dir dumpfile=test10.dmp schemas=test EXCLUDE=TABLE:\"IN\(\'C01\',\'C02\'\)\"
配额(quota):允许被使用的空间
SQL>conn sys/password as sysdba;
SQL>alter user myuser quota 10M[unlimited] on users;
这个问题如果在授予权限时授予reource角色就不会出现。
来源:oschina
链接:https://my.oschina.net/u/2611077/blog/603629