oracle 如何导出指定表空间的数据?

大神们,打扰一下,oracle 如何导出指定表空间的数据?
最新回答
快乐很简单

2024-10-24 08:07:16

1.确定表空间是否为自包含表空间。
SQL>execute dbms_tts.transport_set_check(ts_list=>表空间名,incl_constraints=>TRUE);
说明:
参数ts_list用于指定要搬移的表空间,incl_constraints用于指定是否检查完整性约束。

执行完过程dbms_tts.transport_set_check之后,系统将违反自包含表空间的信息存入临时表transport_set_violations。查询该表时,如果没有返回任何信息,说明表空间是自包含的,否则会返回非自含表空间的原因,也就是要导出的表空间名还必需要包括的其它表空间名。

2.导出表空间信息
2.1首先设置表空间为只读。第一步查出有多少表空间就需要做多少个。(假设2个apps_ts_tx_data和apps_ts_tx_idx)
SQL>alter tablespace apps_ts_tx_data read only;
SQL>alter tablespace apps_ts_tx_idx read only;
2.2 导出数据
SQL>EXP transport_tablespace=y tablespaces=apps_ts_tx_data,apps_ts_tx_idx read file=expdat.dmp

注意:导入完后需要执行以下命令将表空间设置为读写。
SQL>alter tablespace app_data read write;
薄荷心凉

2024-10-24 08:08:23

楼上正解。
EXP
FILE="D:\aa.DMP"
LOG="D:\exp_aa.log"
TRANSPORT_TABLESPACE=Y
TABLESPACES=('DATA' )
我咋那么萌捏

2024-10-24 08:09:55

什么版本的oracle数据库?只有10g以后的才可以
追问
是10g的,我在一个user里建的一个表属于tablespace1,其他的属于tablespace2,我想只到user中属于tablespace2的数据
追答
你tablespace1里的表和tablespace2表里的数据有依赖关系没?就是说有没有主外建关系还有tablespace2里的表的索引在什么表空间?只有没有依赖性且表的索引和数据都在一个表空间里才可以导
追问
没有依赖关系,没有索引
追答
C:\Documents and Settings\Administrator>expdp lztx_lzntp/manager@test dumpfile=d:\test.dmp  DIRECTORY=E:\work\script\dir  tablespaces=lzntp_data_system