cmd imp导入dmp文件_这是一篇长篇入门级数据库讲解:oracle数据库数据导入导出步骤...

正如标题一样,本文内容主要介绍了浅谈入门级oracle数据库数据导入导出步骤,文章通过步骤解析介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧!!!

oracle数据库数据导入导出步骤(入门)

说明:

1.数据库数据导入导出方法有多种,可以通过exp/imp命令导入导出,也可以用第三方工具导出,如:PLSQL

2.如果熟悉命令,建议用exp/imp命令导入导出,避免第三方工具版本差异引起的问题,同时效率更高,但特别注意:采用命令时要注意所使用的用户及其权限等细节。

3.在目标数据库导入时需要创建与导出时相同的用户名(尽量一致),并赋予不低于导出时用户的权限;同时还需创建与原数据库相同的表空间名,若本地数据库已存在相同的表空间,则只能进行表空间扩充。

一、导入前准备工作(在目标数据库操作)

知识补充: 表空间 Oracle数据库是通过表空间来存储物理表的,一个数据库实例可以有N个表空间,一个表空间下可以有N张表。  表空间(tablespace)是数据库的逻辑划分,每个数据库至少有一个表空间(称作SYSTEM表空间)。为了便于管理和提高运行效率,可以使用一些附加表空间来划分用户和应用程序。例如:USER表空间供一般用户使用,RBS表空间供回滚端使用。一个表空间只能属于一个数据库。

1. 登录服务器

 用Xshell或者secureCRT工具都可

2. 查询磁盘空间是否足够大

 执行df -h或者df -H命令进行查询,若可用空间不足则更换新的目标环境再继续其他操作。

[oracle@orac ~]$ df -h

3. 查询表空间详情

 ①使用终端登录,依次执行命令:

 在/home/oracle/app/oradata 目录下新建一个文件夹,后面创建表空间需要用到,该路径不唯一,根据目标数据库存放数据文件位置而定。

[oracle@orac ~]$ /home/oracle/app/oradata [oracle@orac ~]$ mkdir snail

  ②登录数据库

(注意/与as之间要有空格)[oracle@orac ~]$ sqlplus / as sysdba

执行sql语句

SQL> select a.tablespace_name,a.bytes/1024/1024 "sum MB", (a.bytes-b.bytes)/1024/1024 "used MB",b.bytes/1024/1024 "free MB",round (((a.bytes-b.bytes)/a.bytes)*100,2) "used%" from (select tablespace_name,sum(bytes) bytes from dba_data_files group by tablespace_name) a, (select tablespace_name,sum(bytes) bytes,max (bytes) largest from dba_free_space group by tablespace_name)b where a.tablespace_name=b.tablespace_name order by ((a.bytes-b.bytes)/a.bytes) desc;

即可得到当前数据库的表空间情况,如下图:

20d17ce44522990c9f1ef7773f8b7e1e.png

  也可以通过第三方工具登录数据库执行上述sql语句(以下几步也同样可以) 

注: 如果要导入的数据库表空间名与当前已有表空间名相同,则无需新建表空间(也不可以再建),但是必须确定已有表空间大小充足,或者已经设置为自动增加并且自动增加的最大值足够大,那么就不需要进行表空间扩充,直接使用该表空间级即可,跳过第四步。

 反之如果没有该名称的表空间,或者表空间大小不足以存放要导入的数据时,需要对该表空间进行扩充,执行第四步。

4. 表空间扩充

 对表空间进行扩充有多种方法,简单介绍其中几个常用方法: 

① 直接增大表空间的大小:   

先查看表空间中数据文件存放的位置

SQL> select tablespace_name, file_id, file_name, round(bytes/(1024*1024),0) total_space from dba_data_files order by tablespace_name;

 确定数据文件位置后,执行命令: 

 alter database datafile ‘数据文件路径' resize 要增大的大小 

 例如:

SQL> alter database datafile '/home/oracle/oradata/SPS_DATA.DBF' resize 4000m

 ③ 设置表空间自动扩展  alter database datafile ‘要扩展地表空间' autoextend on next 扩展单元大小 maxsize 最大扩展大小  

例如:

SQL> alter database datafile '/home/oracle/app/oradata/snail/SPS_DATA.dbf' autoextend on next 100m maxsize 10000m

备注:方法可以结合使用,尤其当不确定导入文件最终大小时建议使用,如:

SQL> alter tablespace SPS_DATA add datafile '/home/oracle/app/oradata/snail/SPS_DATA02.dbf' size 2000m autoextend on next 200M maxsize 12000M;

对表空间扩充之后可再次执行3.步中查看表空间大小的sql,确认表空间扩充成功。

5. 创建临时表空间与数据表空间

 创建用户前必须要先创建临时表空间和数据库表空间两个表空间,否则用系统默认的表空间,会引起其他问题。 

①创建临时表空间  create temporary tablespace 临时表空间名 tempfile ‘临时表空间位置' size 临时表空间大小autoextend on next 100m maxsize 10240m extent management local;   

例如:

SQL> create temporary tablespace SPS_DATA_temp tempfile'/home/oracle/app/oradata/snail/SPS_DATA_temp.dbf' size 1024m autoextend on next 100m maxsize 10240m extent management local;

 ②创建数据表空间 

 参数大致同创建临时表空间 

 例如:

SQL> create tablespace SPS_DATA logging datafile'/home/oracle/app/oradata/snail/SPS_DATA01.dbf' size 1024m autoextend on next 100m maxsize 10240m extent management local;

6. 创建数据库用户并指定表空间

  该用户用于管理即将导入的数据,导入时也切换到该用户进行导入操作(如果用imp命令进行导入,最好此用户名与导出时采用的用户名为同样的用户名,不同的话可能还需要做映射),格式为:  

create user 用户名identified by 用户密码default tablespace 所指定的表空间名 temporary tablespace 临时表空间名;  

例如:

SQL> create user abc identified by ABC default tablespace SPS_DATA temporary tablespace SPS_DATA_temp;

7. 赋予用户权限

 因为要用该用户进行导入操作,故应给予用户的权限至少包括dba、IMP_FULL_DATABASE权限,也有人建议应与导出数据库数据时用户的权限一致。 

授权sql:(视具体情况而定)

grant dba,imp_full_database,exp_full_database,connect,resource,create session to 用户名;

 例如:

SQL> grant create user,drop user,alter user ,create any view ,drop any view,exp_full_database,imp_full_database,dba,connect,resource,read,write,create session to abc;

二、采用exp/imp命令

知识扩充: 数据泵导出导入(EXPDP和IMPDP)的作用 

1、实现逻辑备份和逻辑恢复。  

2、在数据库用户之间移动对象。  

3、在数据库之间移动对象  

4、实现表空间搬移。 

数据泵导出导入与传统导出导入的区别:  在10g之前,传统的导出和导入分别使用EXP工具和IMP工具,从10g开始,不仅保留了原有的EXP和IMP工具,还提供了数据泵导出导入工具EXPDP和IMPDP.使用EXPDP和IMPDP时应该注意的事项: 

EXP和IMP是客户端工具程序,它们既可以在客户端使用,也可以在服务器端使用。 

EXPDP和IMPDP是服务端的工具程序,他们只能在ORACLE服务端使用,不能在客户端使用 

IMP只适用于EXP导出文件,不适用于EXPDP导出文件;IMPDP只适用于EXPDP导出文件,而不适用于EXP导出文件。

1. 导出命令

 导出与导入分别都有三种方式: ①完全模式导出(导入):  将整个数据库内容导出,但是操作时需要有特殊权限,  exp 用户名/密码buffer=32000file=导出的目录 full=y   例如:

exp system/manager buffer=32000 file=d:iom.dmp full=yexp system/manager buffer=32000 file=d:iom.dmp full=y

 ②用户模式导出(导入) 

 将指定用户的所有对象进行导出,例如:

exp iom/iom  buffer=32000 file=d:iom.dmp owner=iom exp iom/iom buffer=32000 file=d:iom.dmp owner=iom

 ③表模式导出(导入)  

将用户的所有表数据进行导出,例如:

exp iom/iom  buffer=32000 file=d:iom.dmp owner=iom tables=(iom)exp iom/iom buffer=32000 file=d:iom.dmp owner=iom tables=(iom)

 备注:可以执行exp help=y、imp help=y查看帮助命令,以及执行exp或者imp查看对应版本号。

 导出步骤: 首先切换到oracle用户(数据库超级管理员)

[oracle@orac ~]$ su - oracle [oracle@orac ~]$ su - oracle

 根据所需要采用的导出模式进行导出

[oracle@orac~]$exp iom/iom file=iom.dmp log=oradb.log full=y compress=y direct=y [oracle@orac~]$exp iom/iom file=iom.dmp log=oradb.log full=y compress=y direct=y

  COMPRESS参数将在导出的同时合并碎块,尽量把数据压缩到initial的EXTENT里,默认是N,一般建议使用。DIRECT参数将告诉EXP直接读取数据,而不像传统的EXP那样,使用SELECT来读取表中的数据,这样就减少了SQL语句处理过程。一般也建议使用。不过有些情况下DIRECT参数是无法使用的。 其他参数可参照帮助命令,或者其他资料进行学习。在此不一一赘述。

2. 导入命令

 登录服务器,切换到oracle用户。

[oracle@orac ~]$ su - oracle[oracle@orac ~]$ su - oracle

 执行导入命令:  

导入时需要用准备工作中创建的新用户,如:用户名abc,密码ABC   imp 用户名/密码 file=dmp文件路径 log=输出日志路径full=y ignore=y;  

 例如:

[oracle@orac ~]$imp abc/ABC file=/home/oracle/iom.dmp log=/home/oracle/iom.log full=y ignore=y;[oracle@orac ~]$imp abc/ABC file=/home/oracle/iom.dmp log=/home/oracle/iom.log full=y ignore=y;

 温馨提示:采用数据泵导入过程经常会遇到问题,建议多查阅资料,总有方法解决。相信每一件事物都有它存在的必要性,问题只是暂时的,成功才是必然的!

三、采用第三方工具(以PLSQL为例)

1. 导出格式介绍

① Dmp格式:.dmp是二进制文件,可跨平台,还能包含权限,效率好, 

② Sql格式:.sql格式的文件,可用文本编辑器查看,通用性比较好,效率不如第一种,适合小数据量导入导出。尤其注意的是表中不能有大字段(blob,clob,long),如果有,会报错 

③ Pde格式:.pde格式的文件,.pde为PL/SQL Developer自有的文件格式,只能用PL/SQL Developer工具导入导出,不能用文本编辑器查看。 

备注: 虽然dmp格式为最优选,但是不容易实现,原因有两点:首先此格式需要安装oracle完整版,因为导出时需要选择对应exp.exe与imp.exe,而且导出时安装的版本要与要导出数据的数据库版本一致,同理导入时也要对应,否则会出现版本不一致的问题(查阅资料中介绍的,个人没有证实);其次此格式的导出经常会遇到导出过程一闪而过,但是导出不成功的情况,原因未知(可以查阅环境变量配置ORACLE_HOME配置正确,个人尝试多次,仍有问题,最后无奈选取导出为pde格式)。

2. 导出方法

登录plsql工具,所使用用户为源数据库有导出权限(exp_full_database,dba等)的用户。 ①导出建表语句(包括存储结构) 导出步骤tools ->export user object,选择要导出的对象,导出.sql文件,如下图:

等待导出完成

 ②导出数据文件  

导出步骤tools ->export tables,选择要导出的表及导出的格式进行导出。  

导出为dmp格式,如下图:

a422edc1c4fe403ee91314aad0a37043.png

导出为sql格式,如下图: 

2065fdda521d63ec1ac06c672e22123c.png

导出为pde格式,如下图: 

62a09681d57d46fd33b4d69ec69f2ce0.png

备注:采用第三方工具导出导入整个数据库的话,耗时较长,一定要有足够的时间来操作(数据量大的话需要好几个小时)

3. 导入方法

登录plsql工具,使用之前准备工作所创建的用户。 

步骤类似导出方法 

①导入建表语句  

导入步骤tools->import tables->SQL Inserts 导入.sql文件

②导入数据  

tools->import talbes,然后再根据导出的数据格式选择导入dmp文件,或者sql文件,或者pde文件。  

备注:导入之前最好把以前的表删除,当然导入另外数据库除外。     

另外导入时当发现进度条一直卡在一个点,而且导出的文件不再增大时,甚至是提示程序未响应,千万不要以为程序卡死了,这个导入导出就是比较缓慢,只要没有提示报错,或者导入完成就不要停止程序。

参考文献:

Oracle - 数据库的实例、表空间、用户、表之间关系: 

http://www.cnblogs.com/adforce/p/3312252.html

2.PL/SQL Developer导入导出数据库方法: 

http://jingyan.baidu.com/article/d5a880eb69ff7313f047cc5f.html

3.linux下创建oracle表空间: 

http://blog.sina.com.cn/s/blog_62192aed01018aep.html

4.plsql连接64位数据库及plsql导出表闪现错误:

http://201405221449.iteye.com/blog/2241714

5.oracle安装包官网下载: 

http://www.oracle.com/technetwork/topics/winsoft-085727.html

6.ORACLE 表空间扩展方法:

http://www.jb51.net/database/201110/109669.html

7.Exp/imp命令详解:

http://blog.csdn.net/caijing3210/article/details/7528788  

http://www.cnblogs.com/yugen/archive/2010/07/25/1784763.html  http://www.cnblogs.com/whsa/p/3975817.html

到此这篇关于浅谈入门级oracle数据库数据导入导出步骤的文章就介绍到这了,希望对大家的学习有所帮助,也希望大家多多支Python之眼。

最后:

小编是一名python开发工程师,这里有我自己整理了一套最新的python系统学习教程,包括从基础的python脚本到web开发、爬虫、数据分析、数据可视化、机器学习等。想要这些资料的可以关注小编,并在后台私信小编:“01”即可领取。非诚勿扰!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/527993.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux 使用ssr客户端_【第一期】基于 @vue/cli3 与 koa 创建 ssr 工程

什么是基于同构代码的 SSR 服务(Server-side rendering based on isomorphic code)首先,我们需要先明白什么是 spa (single page application),以及基于 vue 的 spa 是如何工作的,这里不展开,请参考:单页应用:https://…

读保护_混合ASIL系统中不同安全等级模块间的边界保护

01功能安全组件的软件开发针对ISO 26262对功能安全软件研发的要求,AUTOSAR将功能安全需求进行了具体拆分。当前的AUTOSAR规范囊括了诸多功能安全组件软件开发的需求概念。在AUTOSAR系统设计的架构中, 从系统功能设计到ECU功能实现,每个功能特…

android studio javah不是内部或外部命令,Android Studio 环境搭建参考,jdk10javac命令提示不是内部或外部命令...

https://blog.csdn.net/qq_33658730/article/details/78547789 win10下Android Studio和SDK下载、安装和环境变量配置http://yanmin99.com/ android-0基础从入门到精通环境变量ANDROID_HOMEE:\Program Files (x86)\Android\SdkJAVA_HOMEE:\Program Files\Java\jdk1.8.0_161TOMC…

starops 云效运维 文档_阿里云 SAE 携手云效助力「石家庄掌讯」持续交付、降本提效...

背景石家庄掌讯信息技术有限公司创立于2009年,是一家提供企业信息化咨询、创新型软件产品、电商代运营服务,标准化管理、快速发展的高新技术企业。当前公司正处于企业互联网市场突破转型重要阶段,希望将更多精力转移到业务创新,提…

setdata改数组里的值 微信小程序_今日艰难笔记redux小程序随记

redux的前身Flux https://zhuanlan.zhihu.com/p/38050036Flux的一整套抽象(action,dispatcher,store),在单向数据流的基础上可以提高应用的可维护性和代码的可预测性。然而,全局action多store的架构面对复杂的应用依然不能很好地解…

竞赛数据清洗缺失值_Kaggle 数据清洗挑战 Day 1 - 手把手教你五步处理缺失值

前些天报名参加了 Kaggle 的 Data Cleaning 5天挑战,5天的任务如下:Day 1: Handling missing valuesDay 2: Data scaling and normalizationDay 3: Cleaning and parsing datesDay 4: Fixing encoding errors (no more messed up text fields!)Day 5: Fi…

html5中行内样式写法,react怎么写行内样式?

react怎么写行内样式?下面本篇文章给大家介绍一下react 行内样式几种写法。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。react 行内样式几种写法法一这是评论列表组件1法二const title{color:"red",fontSize:3…

程序左上角的字_微信内测7.0.7新版本,小程序迎来大改动!

最近几个月来,微信就跟打了鸡血一样不断更新了多个版本上线多个新功能。此前7月末,微信安卓7.0.6带来了将收藏笔记,文件预览等页面设为浮窗的功能,目前最多支持5个文档或笔记设为浮窗。这不,距离微信7.0.6 for Android…

html 跑步比赛小游戏,疯狂趣味跑步竞赛3D

疯狂趣味跑步竞赛3D是一款跑酷类型的休闲游戏,游戏在整体画面上搭配了最新的技术,使得游戏画面看起来非常华丽,人物的建模也很可爱。玩家在游戏中可以在各种风格的跑道上进行比赛,还可以在线跟别的玩家进行匹配。喜欢这款游戏的快…

得到进程id_搞懂进程组、会话、控制终端关系,才能明白守护进程干嘛的?

守护进程概念:守护进程,也就是通常所说的Daemon进程,是Linux中的后台服务进程。周期性的执行某种任务或等待处理某些发生的事件。Linux系统有很多守护进程,大多数服务都是用守护进程实现的。比如:像我们的tftp&#xf…

w7计算机的收藏夹里弄出桌面,Win7电脑桌面的便签怎么弄出来?

原标题:Win7电脑桌面的便签怎么弄出来?可能很多人都不知道,作为常用的一款电脑桌面操作系统,Windows 7上除了有Txt记事本和Office办公文档外,还有便笺小工具呢!这款便笺小工具虽然很不起眼,但是…

native html5 区别,H5与Native优劣对比

即将启动爱奇艺商城(mall.iqiyi.com)移动端的native化。项目开始之前当然要梳理下为什么做native,究竟H5跟native比有什么劣势,而H5又为什么占比那么高并且有“Html5才是未来”的说法呢。下面简单理下对比。H5,即Html5,指第5代HTM…

html制作圆盘时钟,jquery+html5制作超酷的圆盘时钟表

自己封装的一个用HTML5jQuery写的时钟表代码:超酷数码钟表//引用的是在线jquery地址,如果不行请自行下载切换(function($){$.fn.drawClock function(options){var mainId $(this);//设置默认参数var defaultOptions {width: 300px,height: 300px,marg…

调用外部程序处理文件_Python使用内置方法、模块调用外部命令

导读Python内置调用外部命令:os.systemos.popenos.popen2os.popen3os.popen4commands模块subprocess模块在Python3中,将os.popen2、os.popen3、os.popen4、commands等模块方法移除所以不用花精力了解,可以绕过了os.system方法os.system("…

计算机软件类ui工资多少,ui设计师工资一般多少

ui设计师月薪大概多少,UI设计师的收入现处于中等水平,一般月薪5000~7000元,资深设计师的收入可上升至7000~10000元。ui设计师月薪大概多少,ui设计师工资有多少?,不清楚ui设计师工资有多少的伙伴可以看看。U…

大学计算机课第二章内容总结,第四周市政系《大学计算机基础》课程总结

本周大一的新生终于在漫长的等待、报到、军训之后开始了大学课程的学习,在《大学计算机基础》课程的学习中,其实只是需要大学确立一种新的学习思想:计算机是人类智慧的结晶,它给予我们这样一种工具,通过对它的使用&…

在maven项目中打开jsp_零基础在intellij中打开一个项目复制粘贴内容即可运行的java拼图...

我刚学java语言,在学习java简单的拼图游戏时发现网上有些居然要导入调试,而且网上有些说的调试方法不明不白,所以我就分享了我的可直接复制在新项目中的源码,如果要直接要搞好的话就可以用结尾的分享提取链接进行百度网盘获取(该项…

计算机考试报名无法弹出支付界面,教资报名支付页面不弹出怎么办 2021教师资格证报名入口网址...

2021教师资格证报名入口是中小学教师资格考试网站,教师资格证报名时间是1月14-17日,请大家请及时登陆教师资格证报名官网报名以防错过考试。点击进入:2021年教师资格考试报名入口教师资格证报名缴费进不了支付页面的话原因可能有以下几点&…

gcn在图像上的应用_GCN总结 - nxf_rabbit75 - 博客园

一、GCN简介GNN模型主要研究图节点的表示(Graph Embedding),图边结构预测任务和图的分类问题,后两个任务也是基于Graph Embedding展开的。目前论文重点研究网络的可扩展性、动态性、加深网络。谱卷积有理论支持,但有时候会受到拉普拉斯算子的…

mysql源码_MySql轻松入门系列——第一站 从源码角度轻松认识mysql整体框架图

一:背景1. 讲故事最近看各大技术社区,不管是知乎,掘金,博客园,csdn基本上看不到有小伙伴分享sqlserver类的文章,看来在国内大环境下是不怎么流行了,看样子我再写sqlserver是不可能再写了&#x…