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

来源:互联网 发布:ipython 查看源码 编辑:程序博客网 时间:2024/05/22 02:03

oracle 基本命令:

启动数据库服务和监听器

net start OracleXETNSListenernet start OracleServiceXE

登录,修改密码

sqlplus / as sysdbaalter user sys identified by password;

reference:

  • http://www.oschina.net/question/1428332_141874
  • http://www.oracle.com/technetwork/database/features/instant-client/index-097480.html
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 = webagentC:\WINDOWS\system32>sqlplus /nologSQL*Plus: Release 10.2.0.1.0 - Production on 星期四 112 09:27:58 2017Copyright (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 2017Copyright (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 的对象导入到 WEBAGNETIMP-00003: 遇到 ORACLE 错误 1435ORA-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) RECORDLENGTH IO 记录的长度 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:

  • http://blog.csdn.net/hwhua1986/article/details/49336765
  • http://blog.csdn.net/wuweilong/article/details/46520767
  • http://bbs.csdn.net/topics/350203557
SQL> select * from v$version;BANNER--------------------------------------------------------------------------------Oracle Database 10g Express Edition Release 10.2.0.1.0 - ProductPL/SQL Release 10.2.0.1.0 - ProductionCORE    10.2.0.1.0      ProductionTNS for 32-bit Windows: Version 10.2.0.1.0 - ProductionNLSRTL Version 10.2.0.1.0 - ProductionSQL>

或者用另一种方法:

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

C:\WINDOWS\system32>d:D:\>cd oracle_table_spaceD:\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.dmp2017/11/02  08:12        52,436,992 SGC_DATA.DBF2017/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
原创粉丝点击