IMP如何导入到其他表空间remap_tablespace?

问题描述
请教一个问题,我这边有一个dmp文件,exp导出的,别人拷过来的,是整个库拷的,导出来的表的表空间可能有多个,我这边建了一个表空间,入库的时候可以将表全部导入这一个表空间吗?我建的这个表空间是自动扩展的。

专家解答
imp 的话,没有remap_tablespace参数,只有IMPDP有。可以先建好用户,指定用户的默认表空间,然后把用户在原表空间的quota设为0(目标库要临时有这个表空间,imp做完了再把它删掉就好了),这样所有原表空间的表就可以导入到用户的默认表空间了,另外不支持LOBS字段类型的表。

你有技术问题,到墨天轮问答平台提问吧,无门槛提问,技术专家免费答~
更多技术问答,可查看墨天轮问答平台或微信小程序 “ DBASK ”

<think>好的,我需要帮助用户了解如何将数据导入到达梦数据库的指定表空间。根据用户提供的引用内容,特别是引用[2]提到的全库导出导入时使用TABLESPACE=y参数,我需要详细说明这一步骤。首先,用户可能已经有一个dmp文件,想要导入到特定的表空间。根据达梦的文档,导入前需要确保目标表空间已存在,并且用户有足够的权限。然后使用dexp和dimp工具进行操作。 我需要分步骤解释这个过程,包括导出时是否需要指定参数,还是仅在导入时使用。根据引用[2],导出时带上TABLESPACE=y参数,然后在导入时也需要同样的参数。同时,可能需要创建相同的用户和表空间结构,确保表空间归属正确。此外,用户可能关心导入过程中如何处理已有表空间的问题,是否需要预先创建,或者是否有其他注意事项。 还要注意语法是否正确,例如dexp和dimp的命令格式,参数的正确使用。可能还需要提到其他相关参数,如FULL=y表示全库导出,DIRECTORY指定路径等。需要确保用户按照步骤操作时不会出错,例如权限问题或路径错误。最后,生成的相关问题应该围绕导出导入参数、表空间管理、常见错误等,帮助用户进一步了解可能遇到的问题。</think>### 达梦数据库导入数据到指定表空间的方法教程 #### 步骤说明 1. **创建目标表空间** 在目标数据库中**提前创建与原库一致的表空间**,名称和属性需与原库对应表空间相同。可使用以下SQL语句: ```sql CREATE TABLESPACE "TBS_NAME" DATAFILE 'TBS_PATH' SIZE 128; ``` 2. **全库导出时指定表空间参数** 使用达梦的`dexp`工具导出数据时,**必须添加`TABLESPACE=y`参数**,以确保导出元数据中包含表空间信息。示例命令: ```bash ./dexp USERID=SYSDBA/SYSDBA FILE=full.dmp LOG=exp.log FULL=y TABLESPACE=y DIRECTORY=/dmdata/backup ``` 3. **导入时启用表空间归属** 使用`dimp`工具导入时,**同样添加`TABLESPACE=y`参数**,系统会根据导出文件中的元数据将表分配到对应表空间。示例命令: ```bash ./dimp USERID=SYSDBA/SYSDBA FILE=full.dmp LOG=imp.log FULL=y TABLESPACE=y DIRECTORY=/dmdata/backup ``` #### 关键注意事项 - **表空间一致性**:若目标库缺少对应表空间导入会失败,需提前创建[^2]。 - **用户权限**:导入用户需拥有`CREATE TABLE`权限及目标表空间的使用权限。 - **对象归属**:若原表属于特定用户,目标库需存在相同用户名且关联到对应表空间。 #### 验证方法 导入完成后,执行以下SQL检查表的表空间归属: ```sql SELECT TABLE_NAME, TABLESPACE_NAME FROM DBA_TABLES WHERE OWNER = '用户名'; ``` #### 扩展场景 - **部分表导入**:若仅导入部分表,需在导出时指定`TABLES=表名`参数,并确保目标表空间已存在。 - **跨用户导入**:使用`REMAP_SCHEMA=原用户:目标用户`参数调整用户映射关系。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值