我正试图将一个数据库导入到我的本地xe实例中。我有一个问题,因为它大于11GB,一切都会崩溃。我的数据库有审计表(由envers提供)。我不需要这些数据。
这里有两个问题:
- 我可以导出表结构,而不是作为审计表的aud_表的数据吗
- 我可以在不同的SID上expdp吗。我的SID不是兽人而是兽人(由于历史原因)
对于第二个问题,我已经做了以下操作,但
sqlplus / as sysdba@orcllo
alter user MY_DB identified by MY_PASS ACCOUNT UNLOCK;
CREATE OR REPLACE DIRECTORY db_dumps AS '/tmp/db_dumps';
GRANT READ, WRITE ON DIRECTORY db_dumps TO MY_DB;
但是当我运行expdp时,我得到一个关于找不到db_dumps的错误。
感谢
Q.1:
您可以在oracle impdp(数据泵)期间使用">EXCLUDE"或">INCLUDE">开关来转义/包含几个表。
以下代码显示了如何将它们用作命令行参数。
impdp scott/tiger@db10g schemas=SCOTT exclude=TABLE:"IN ('EMP', 'DEPT')" directory=TEST_DIR dumpfile=SCOTT.dmp logfile=expdpSCOTT.log
在出口过程中也可以这样做:
expdp scott/tiger@db10g schemas=SCOTT exclude=TABLE:"IN ('EMP', 'DEPT')" directory=TEST_DIR
如果确实要在目标架构/db上创建结构,则应使用CONTENT=METADATA_ONLY开关。
Q.2:
不能在不同的SID上按原样使用expdp/impdp,而是通过DB-Link路由(使用NETWORK_Link开关)。
然而,我认为,由于Oracle XE的限制,Ans-1应该解决您真正的问题。此外,由于跨网络/DB数据流,可能存在性能问题。
本地和远程用户都需要授予他们IMP_FULL_DATABASE角色。
impdp test/test@db10g tables=SCOTT.EMP network_link=REMOTE_SCOTT directory=TEST_DIR logfile=impdpSCOTT.log remap_schema=SCOTT:TEST
HTH-
检查以下数据泵的更多选项:
http://www.oracle-base.com/articles/10g/oracle-data-pump-10g.php