Oracle数据库导入dmp文件的基本步骤

本文介绍了Oracle数据库导入dmp文件的详细步骤,包括启动服务、登录、创建表空间和用户、授权,以及解决导入过程中遇到的问题。通过参考多个来源,提供了修正的SQL语句和参数设置。

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

oracle 基本命令:

启动数据库服务和监听器

net start OracleXETNSListener
net start OracleServiceXE

登录,修改密码

sqlplus / as sysdba
alter user sys identified by password;

reference:

select username from dba_users; #查询所有用户
drop user <user_name> cascade; #删除用户
select tablespace_name, status from dba_tablespaces; #查看表空间及状态
drop tablespace <tablespace_name> including contents and datafiles; #删除表空间

前提:删除表空间之前要确认该表空间没有被其他用户使用之后再做删除

如何导入dmp文件

创建临时表空间和表空间

SQL> create temporary tablespace user_temp
  2  tempfile 'D:\oracle_table_space\sgc_temp.dbf'
  3  size 50m
  4  autoextend on
  5  next 50m maxsize 2048m
  6  extent management local;

表空间已创建。

SQL> create tablespace user_data
  2  logging
  3  datafile 'D:\oracle_table_space\sgc_data.dbf'
  4  size 50m
  5  autoextend on
  6  next 50m maxsize 2048m
  7  extent management local;

表空间已创建。

创建用户并指定表空间和默认表空间,给用户授予权限

SQL> create user sunguangchao identified by sunguangchao
  2  default tablespace user_data
  3  temporary tablespace user_temp;

用户已创建。
SQL> grant connect, resource, dba to sunguangchao;

授权成功。

查了一下临时表空间的定义:

表空间是数据库的逻辑划分,一个表空间只能属于一个数据库。所有的数据库对象都存放在指定的表空间中。但主要存放的是表, 所以称作表空间。Oracle临时表空间主要用来做查询和存放一些缓冲区数据。临时表空间,可自动释放;而表空间中存储表数据、函数、过程、序列等。是随数据库永久存在的。

具体的操作流程:

C:\WINDOWS\system32>set ORACLE_SID = webagent

C:\WINDOWS\system32>sqlplus /nolog

SQL*Plus: Release 10.2.0.1.0 - Production on 星期四 112 09:27:58 2017

Copyright (c) 1982, 2005, Oracle.  All rights reserved.

SQL> conn / as sysdba
已连接。
SQL> create bigfile tablespace CC_BASE logging datafile 'CC_BASE.dbf' size 100m autoextend on next 50m maxsize 32768m extent management local;

表空间已创建。

SQL> create bigfile tablespace CC_IBASE logging datafile 'CC_IBASE.dbf' size 100m autoextend on next 50m maxsize 32768m extent management local;

表空间已创建。

SQL> create bigfile temporary tablespace CC_BASE_TMP tempfile 'CC_BASE_TMP.dbf' size 100m autoextend on next 50m maxsize 32768m extent management local;

表空间已创建。

SQL> create user webagent identified by "webagent" default tablespace CC_BASE temporary tablespace CC_BASE_TMP;

用户已创建。

SQL> grant connect, resource, dba to webagent;

授权成功。

问题:

imp webagent/webagent@XE file="D:\oracle_table_space\ccdb.dmp" fromuser=webagent touser=webagnet

后来导入的时候发现上面这句SQL语句是有问题的,死活都导不进去,而且报错如下:

Import: Release 10.2.0.1.0 - Production on 星期四 11月 2 14:23:55 2017

Copyright (c) 1982, 2005, Oracle.  All rights reserved.


连接到: Oracle Database 10g Express Edition Release 10.2.0.1.0 - Production

经由常规路径由 EXPORT:V10.02.00 创建的导出文件
已经完成 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集中的导入
导入服务器使用 AL32UTF8 字符集 (可能的字符集转换)
导出客户机使用 US7ASCII 字符集 (可能的字符集转换)
IMP-00008: 导出文件中出现无法识别的语句:

. 正在将 WEBAGENT 的对象导入到 WEBAGNET
IMP-00003: 遇到 ORACLE 错误 1435
ORA-01435: 用户不存在
成功终止导入, 但出现警告。

网上搜资料后改了一下:

C:\WINDOWS\system32>imp webagent/webagent@XE file="D:\oracle_table_space\ccdb.dmp" full=y

full=y是导出整个文件的意思

其余的参数设置如下:

关键字说明默认
USERID用户名/口令
FULL导出整个文件(N)
BUFFER数据缓冲区的大小
OWNER导出指定的所有者用户名列表
FILE输出文件(EXPDAT.DMP)
TABLES导出指定的表名列表
COMPRESS是否压缩导出的文件(Y)
RECORDLENGTHIO 记录的长度
GRANTS导出权限(Y)
INCTYPE增量导出类型
INDEXES导出索引(Y)
RECORD跟踪增量导出(Y)
ROWS导出数据行(Y)
PARFILE参数文件名
CONSTRAINTS导出限制(Y)
CONSISTENT交叉表一致性
LOG屏幕输出的日志文件
STATISTICS分析对象(ESTIMATE)
DIRECT直接路径(N)
TRIGGERS导出触发器(Y)
FEEDBACK显示每 x 行 (0) 的进度
FILESIZE各转储文件的最大尺寸
QUERY选定导出表子集的子句
TRANSPORT_TABLESPACE导出可传输的表空间元数据(N)
TABLESPACES导出指定的表空间列表

reference:

SQL> select * from v$version;

BANNER
--------------------------------------------------------------------------------
Oracle Database 10g Express Edition Release 10.2.0.1.0 - Product
PL/SQL Release 10.2.0.1.0 - Production
CORE    10.2.0.1.0      Production
TNS for 32-bit Windows: Version 10.2.0.1.0 - Production
NLSRTL Version 10.2.0.1.0 - Production

SQL>

或者用另一种方法:

用管理员权限打开cmd,然后找到你想导入的dmp文件所在的目录:

C:\WINDOWS\system32>d:

D:\>cd oracle_table_space

D:\oracle_table_space>dir
 驱动器 D 中的卷是 LENOVO
 卷的序列号是 4454-E767

 D:\oracle_table_space 的目录

2017/11/02  09:44    <DIR>          .
2017/11/02  09:44    <DIR>          ..
2017/11/02  10:21        97,017,856 ccdb.dmp
2017/11/02  08:12        52,436,992 SGC_DATA.DBF
2017/11/01  10:04        52,436,992 SGC_TEMP.DBF
               3 个文件    201,891,840 字节
               2 个目录 289,902,190,592 可用字节

D:\oracle_table_space>imp webagent/webagent full=y file=ccdb.dmp
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值