如何使用Oracle DataPump导出Schema所有对象元数据及每张表的N行数据?
Oracle DataPump导出Schema全量元数据+单表有限行数据
有时我们需要借助Oracle DataPump(导出/导入)备份Schema的所有对象元数据,同时仅导出每张表中的有限行数据。这种方式生成的转储文件体积较小,非常适合在测试环境中导入至其他数据库。以下是具体操作步骤(示例为导出每张表20行数据,可按需修改参数文件):
步骤1:仅导出全量元数据
创建导出参数文件 expdp_full_meta.par,内容如下:
USERID=your_username/your_password@your_db_instance DIRECTORY=DATA_PUMP_DIR DUMPFILE=schema_full_meta.dmp LOGFILE=schema_full_meta.log SCHEMAS=target_schema_name CONTENT=METADATA_ONLY
执行导出命令:
expdp parfile=expdp_full_meta.par
步骤2:导出每张表的有限行数据
创建导出参数文件 expdp_limit_rows.par,内容如下(示例为每张表导出20行):
USERID=your_username/your_password@your_db_instance DIRECTORY=DATA_PUMP_DIR DUMPFILE=schema_limit_rows.dmp LOGFILE=schema_limit_rows.log SCHEMAS=target_schema_name CONTENT=DATA_ONLY QUERY=%"WHERE ROWNUM <=20"
- 若需针对不同表设置不同行数,可指定单个表的QUERY规则,例如:
QUERY=EMP:"WHERE ROWNUM <=20",DEPT:"WHERE ROWNUM <=10"
执行导出命令:
expdp parfile=expdp_limit_rows.par
额外操作:从转储文件提取DDL至SQL文件
若需要将元数据转成独立的SQL文件,可使用impdp的SQLFILE参数:
创建参数文件 impdp_extract_ddl.par:
USERID=your_username/your_password@your_db_instance DIRECTORY=DATA_PUMP_DIR DUMPFILE=schema_full_meta.dmp SQLFILE=schema_all_ddl.sql SCHEMAS=target_schema_name
执行命令:
impdp parfile=impdp_extract_ddl.par
内容的提问来源于stack exchange,提问作者Rajesh
相关产品推荐
相关产品推荐

