如何使用imp导入dmp文件

本文详细介绍了Oracle数据库中创建和管理表空间的过程,包括创建临时和数据表空间、增加表空间大小、创建用户及授权、使用IMP工具导入DMP文件等关键步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、创建临时表空间:

      create temporary tablespace yd_temp 
      tempfile
'D:\oracledata\file_temp.dbf'                   --路径根据实际情况填写
      size 50m  
      autoextend on  
      next
50m maxsize 2048m  
      extent management local; 

 

二、创建数据表空间

       create tablespace file_data  
       logging  
       datafile
'D:\oracledata\file_data.dbf'                    --路径根据实际情况填写
       size 50m  
       autoextend on  
       next
50m maxsize 2048m  
       extent management local; 

 

       现实实例详解: 

       CREATE TABLESPACE YNCCIP  --表空间名
       DATAFILE  '/home/u02/oradata/orcl/YNCCIP01.dbf'   --表空间对应的数据文件
       SIZE 100M  --数据文件大小
       AUTOEXTEND ON NEXT 10M  --数据文件不够用自动扩展,每次扩展大小
       MAXSIZE 1000M   --数据文件最大文件大小
       LOGGING   --启动重做日志
       PERMANENT --指定表空间为永久性的表空间
       EXTENT MANAGEMENT LOCAL AUTOALLOCATE  --指定新建表空间为本地管理方式的表空间
       BLOCKSIZE 16K    --块大小
       SEGMENT SPACE MANAGEMENT auto    --指定本地管理表空间中段的存储管理方式,AUTO自动方式,MANUAL手工方式。;

       (补充:如果想将oracle表空间数据文件的大小设置为不限制,可以配置MAXSIZE UNLIMITED
       (补充:删除表空间数据和表空间文件:drop tablespace表空间名称 including contents and datafiles cascade constraint;
       (参考地址:CREATE TABLESPACE命令详解(转)

 

三、创建用户并指定表空间

       create user username identified by 12345678    -- ‘username’ 为创建的用户名  ;‘12345678’为创建的新用户登录密码
       default tablespace file_data   -- 指定数据表空间
       temporary tablespace file_temp; -- 指定临时表空间

 

四、给用户授权

       grant connect,    -- 连接权限
       resource,   --  资源权限
       dba    -- 数据库管理员权限
       to file_username;

 

五、使用imp导入工具导入dmp文件

       imp 用户名/密码@数据库实例名   -- 创建实例
       file=C:\data\filename.dmp    -- 配置待导入的dmp文件
       log=C:\data\logname.log     -- 配置要导入时生成的日志文件地址(可不配置)
       [fromuser=source用户名    -- 配置dmp导出的数据库的用户名(仅在根据用户名导入数据时配置)
       touser=target用户名     -- 配置dmp要导入的数据库的用户名(仅在根据用户名导入数据时配置)
       |full=y]        -- 配置导入文件中的全部内容,有可能有多个用户的内容
       ignore=y;    -- 配置导入的时候,如果没有表,创建表并导入数据,如果已经存在的表,忽略创建表,但不忽略导入。

    (注意:full=y 和 fromuser、touser 只能二选一)

 

六、 增加表空间大小

通常完成1-5步骤以后,就可以使用DW_TEST用户登录使用了,此时表空间只分配了一个文件。

为了减少运维麻烦,通常在初始创建时创建多个表空间文件,这样可以维持使用很久。

因此,我通常每次都是增加10-20个文件来使用,注意每个文件后面的序号连续。

ALTER TABLESPACE DW_TEST_TBS ADD DATAFILE '/opt/oracle/oradata/biee/DW_TEST_TBS02.dbf' SIZE 7167M AUTOEXTEND ON NEXT 3072M MAXSIZE 32767M;
ALTER TABLESPACE DW_TEST_TBS ADD DATAFILE '/opt/oracle/oradata/biee/DW_TEST_TBS03.dbf' SIZE 7167M AUTOEXTEND ON NEXT 3072M MAXSIZE 32767M;
ALTER TABLESPACE DW_TEST_TBS ADD DATAFILE '/opt/oracle/oradata/biee/DW_TEST_TBS04.dbf' SIZE 7167M AUTOEXTEND ON NEXT 3072M MAXSIZE 32767M;
ALTER TABLESPACE DW_TEST_TBS ADD DATAFILE '/opt/oracle/oradata/biee/DW_TEST_TBS05.dbf' SIZE 7167M AUTOEXTEND ON NEXT 3072M MAXSIZE 32767M;
ALTER TABLESPACE DW_TEST_TBS ADD DATAFILE '/opt/oracle/oradata/biee/DW_TEST_TBS06.dbf' SIZE 7167M AUTOEXTEND ON NEXT 3072M MAXSIZE 32767M;
ALTER TABLESPACE DW_TEST_TBS ADD DATAFILE '/opt/oracle/oradata/biee/DW_TEST_TBS07.dbf' SIZE 7167M AUTOEXTEND ON NEXT 3072M MAXSIZE 32767M;
ALTER TABLESPACE DW_TEST_TBS ADD DATAFILE '/opt/oracle/oradata/biee/DW_TEST_TBS08.dbf' SIZE 7167M AUTOEXTEND ON NEXT 3072M MAXSIZE 32767M;
ALTER TABLESPACE DW_TEST_TBS ADD DATAFILE '/opt/oracle/oradata/biee/DW_TEST_TBS09.dbf' SIZE 7167M AUTOEXTEND ON NEXT 3072M MAXSIZE 32767M;
ALTER TABLESPACE DW_TEST_TBS ADD DATAFILE '/opt/oracle/oradata/biee/DW_TEST_TBS010.dbf' SIZE 7167M AUTOEXTEND ON NEXT 3072M MAXSIZE 32767M;

 

 7. 查询结果

SELECT tablespace_name,
file_id,
file_name,
round(bytes / (1024 * 1024), 0) total_space
FROM dba_data_files
where tablespace_name = 'DW_TEST_TBS'
ORDER BY tablespace_name;

结果如下:

### 如何使用 IMP 工具导入 DMP 文件 `IMP` 是 Oracle 提供的传统导入工具,用于将通过 `EXP` 命令导出的数据重新加载到目标数据库中。以下是有关如何使用 `IMP` 工具导入 `.dmp` 文件的具体方法。 #### 使用语法 基本的 `IMP` 命令结构如下所示: ```bash imp username/password@database_file_name FILE=dumpfile.dmp LOG=import.log FULL=Y ``` 其中各参数的意义解释如下: - **username/password**: 这是指定的目标数据库用户名和密码。 - **FILE**: 指定要从中读取数据的二进制转储文件的位置和名称[^3]。 - **LOG**: 可选日志文件名,记录导入过程中的所有活动以便后续审查。 - **FULL**: 如果设置为 Y,则表示整个导出文件都将被导入;如果只希望导入特定对象或部分数据,则可以省略此选项或者调整其他过滤器参数。 除了上述主要参数外,还可以利用更多高级选项来控制哪些模式(schema),表(table)甚至行(row)应该被处理。例如: - **TABLES=(table1, table2,...)**: 列举需要恢复的一系列表格名字列表。 - **ROWS=N/YES**: 控制是否仅复制元数据(定义信息)还是连同实际数据一起迁移,默认情况下会包含两者[Y]. #### 实际操作案例 假设有一个名为 example.dmp 的 dump 文件位于 C:\temp\example.dmp 路径下,并且我们打算将其完全迁移到 TESTUSER 用户下的 ORCL 数据库实例里去。那么完整的命令可能是这样的形式: ```bash imp testuser/testpassword@orcl file=C:\temp\example.dmp log=C:\temp\example_import.log full=y ignore=n commit_interval=none buffer=4096000 statistics=none direct=no feedback=1000 ``` 这里额外增加了几个重要的配置项说明如下: - **IGNORE**: 当遇到重复的对象创建错误时忽略它们继续执行剩余的任务[N]. - **COMMIT_INTERVAL**: 定义每次提交事务前插入多少条记录数[无默认值],此处设为了不自动提交. - **BUFFER**: 设置内部缓冲区大小字节数量影响性能调优建议适当增大该数值提高效率[4MB]. - **STATISTICS**: 不收集统计信息加快速度[NONE]. - **DIRECT**: 是否启用直接路径写入机制提升大批量装载效能但是可能丢失某些特性支持比如触发器等[NO]. 以上就是基于传统方式运用 IMP 来完成 dmp 文件oracle 数据库内的传输流程概述以及一些常用技巧分享. ```sql -- 示例 SQL 查询验证导入后的数据是否存在 SELECT COUNT(*) FROM all_tables WHERE owner='TESTUSER'; ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值