低代码前端开发平台,sem优化案例,管理咨询行业的理解,微信小程序免费模板直接套用正如标题一样#xff0c;本文内容主要介绍了浅谈入门级oracle数据库数据导入导出步骤#xff0c;文章通过步骤解析介绍的非常详细#xff0c;对大家的学习或者工作具有一定的参考学习价值#xff0c;需要的朋友们下面随着小编来一起学习学习吧#xff01;#xff01;本文内容主要介绍了浅谈入门级oracle数据库数据导入导出步骤文章通过步骤解析介绍的非常详细对大家的学习或者工作具有一定的参考学习价值需要的朋友们下面随着小编来一起学习学习吧oracle数据库数据导入导出步骤(入门)说明1.数据库数据导入导出方法有多种可以通过exp/imp命令导入导出也可以用第三方工具导出如PLSQL2.如果熟悉命令建议用exp/imp命令导入导出避免第三方工具版本差异引起的问题同时效率更高但特别注意采用命令时要注意所使用的用户及其权限等细节。3.在目标数据库导入时需要创建与导出时相同的用户名(尽量一致)并赋予不低于导出时用户的权限同时还需创建与原数据库相同的表空间名若本地数据库已存在相同的表空间则只能进行表空间扩充。一、导入前准备工作(在目标数据库操作)知识补充 表空间 Oracle数据库是通过表空间来存储物理表的一个数据库实例可以有N个表空间一个表空间下可以有N张表。 表空间(tablespace)是数据库的逻辑划分每个数据库至少有一个表空间(称作SYSTEM表空间)。为了便于管理和提高运行效率可以使用一些附加表空间来划分用户和应用程序。例如USER表空间供一般用户使用RBS表空间供回滚端使用。一个表空间只能属于一个数据库。1. 登录服务器 用Xshell或者secureCRT工具都可2. 查询磁盘空间是否足够大 执行df -h或者df -H命令进行查询若可用空间不足则更换新的目标环境再继续其他操作。[oracleorac ~]$ df -h3. 查询表空间详情 ①使用终端登录依次执行命令 在/home/oracle/app/oradata 目录下新建一个文件夹后面创建表空间需要用到该路径不唯一根据目标数据库存放数据文件位置而定。[oracleorac ~]$ /home/oracle/app/oradata [oracleorac ~]$ mkdir snail ②登录数据库(注意/与as之间要有空格)[oracleorac ~]$ 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_nameb.tablespace_name order by ((a.bytes-b.bytes)/a.bytes) desc;即可得到当前数据库的表空间情况如下图 也可以通过第三方工具登录数据库执行上述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 用户名/密码buffer32000file导出的目录 fully 例如exp system/manager buffer32000 filed:iom.dmp fullyexp system/manager buffer32000 filed:iom.dmp fully ②用户模式导出(导入) 将指定用户的所有对象进行导出例如exp iom/iom buffer32000 filed:iom.dmp owneriom exp iom/iom buffer32000 filed:iom.dmp owneriom ③表模式导出(导入) 将用户的所有表数据进行导出例如exp iom/iom buffer32000 filed:iom.dmp owneriom tables(iom)exp iom/iom buffer32000 filed:iom.dmp owneriom tables(iom) 备注可以执行exp helpy、imp helpy查看帮助命令以及执行exp或者imp查看对应版本号。 导出步骤: 首先切换到oracle用户(数据库超级管理员)[oracleorac ~]$ su - oracle [oracleorac ~]$ su - oracle 根据所需要采用的导出模式进行导出[oracleorac~]$exp iom/iom fileiom.dmp logoradb.log fully compressy directy [oracleorac~]$exp iom/iom fileiom.dmp logoradb.log fully compressy directy COMPRESS参数将在导出的同时合并碎块尽量把数据压缩到initial的EXTENT里默认是N一般建议使用。DIRECT参数将告诉EXP直接读取数据而不像传统的EXP那样使用SELECT来读取表中的数据这样就减少了SQL语句处理过程。一般也建议使用。不过有些情况下DIRECT参数是无法使用的。 其他参数可参照帮助命令或者其他资料进行学习。在此不一一赘述。2. 导入命令 登录服务器切换到oracle用户。[oracleorac ~]$ su - oracle[oracleorac ~]$ su - oracle 执行导入命令 导入时需要用准备工作中创建的新用户如用户名abc密码ABC imp 用户名/密码 filedmp文件路径 log输出日志路径fully ignorey; 例如[oracleorac ~]$imp abc/ABC file/home/oracle/iom.dmp log/home/oracle/iom.log fully ignorey;[oracleorac ~]$imp abc/ABC file/home/oracle/iom.dmp log/home/oracle/iom.log fully ignorey; 温馨提示采用数据泵导入过程经常会遇到问题建议多查阅资料总有方法解决。相信每一件事物都有它存在的必要性问题只是暂时的成功才是必然的三、采用第三方工具(以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格式如下图导出为sql格式如下图 导出为pde格式如下图 备注采用第三方工具导出导入整个数据库的话耗时较长一定要有足够的时间来操作(数据量大的话需要好几个小时)3. 导入方法登录plsql工具使用之前准备工作所创建的用户。 步骤类似导出方法 ①导入建表语句 导入步骤tools-import tables-SQL Inserts 导入.sql文件②导入数据 tools-import talbes然后再根据导出的数据格式选择导入dmp文件或者sql文件或者pde文件。 备注导入之前最好把以前的表删除当然导入另外数据库除外。 另外导入时当发现进度条一直卡在一个点而且导出的文件不再增大时甚至是提示程序未响应千万不要以为程序卡死了这个导入导出就是比较缓慢只要没有提示报错或者导入完成就不要停止程序。参考文献Oracle - 数据库的实例、表空间、用户、表之间关系 http://www.cnblogs.com/adforce/p/3312252.html2.PL/SQL Developer导入导出数据库方法 http://jingyan.baidu.com/article/d5a880eb69ff7313f047cc5f.html3.linux下创建oracle表空间 http://blog.sina.com.cn/s/blog_62192aed01018aep.html4.plsql连接64位数据库及plsql导出表闪现错误http://201405221449.iteye.com/blog/22417145.oracle安装包官网下载 http://www.oracle.com/technetwork/topics/winsoft-085727.html6.ORACLE 表空间扩展方法http://www.jb51.net/database/201110/109669.html7.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”即可领取。非诚勿扰