在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
oracle数据库数据导入导出步骤(入门) 说明: 一、导入前准备工作(在目标数据库操作) 知识补充: 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; 即可得到当前数据库的表空间情况,如下图: 也可以通过第三方工具登录数据库执行上述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; 确定数据文件位置后,执行命令: SQL> alter database datafile '/home/oracle/oradata/SPS_DATA.DBF' resize 4000m 注意:此法在增大存在表数据的表空间时会报错,提示增加失败,建议用下一种方法 ② 增加数据文件的个数 SQL> alter tablespace SPS_DATA add datafile '/home/oracle/app/oradata/snail/SPS_DATA02.dbf' size 2000m ③ 设置表空间自动扩展 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. 创建临时表空间与数据表空间 创建用户前必须要先创建临时表空间和数据库表空间两个表空间,否则用系统默认的表空间,会引起其他问题。 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; 注意:如果是执行4.步之后,即表空间为扩充而来而不是新建的,则不需要创建数据表空间(但是临时表空间还需要创建——个人观点) 6. 创建数据库用户并指定表空间 该用户用于管理即将导入的数据,导入时也切换到该用户进行导入操作(如果用imp命令进行导入,最好此用户名与导出时采用的用户名为同样的用户名,不同的话可能还需要做映射),格式为: SQL> create user abc identified by ABC default tablespace SPS_DATA temporary tablespace SPS_DATA_temp; 7. 赋予用户权限 因为要用该用户进行导入操作,故应给予用户的权限至少包括dba、IMP_FULL_DATABASE权限,也有人建议应与导出数据库数据时用户的权限一致。 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命令 知识扩充: 1. 导出命令 导出与导入分别都有三种方式: exp 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 tables=(iom) 备注:可以执行exp help=y、imp help=y查看帮助命令,以及执行exp或者imp查看对应版本号。 导出步骤: [oracle@orac ~]$ su - oracle 根据所需要采用的导出模式进行导出 [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 ~]$imp abc/ABC file=/home/oracle/iom.dmp log=/home/oracle/iom.log full=y ignore=y; 温馨提示:采用数据泵导入过程经常会遇到问题,建议多查阅资料,总有方法解决。相信每一件事物都有它存在的必要性,问题只是暂时的,成功才是必然的! 三、采用第三方工具(以PLSQL为例) 1. 导出格式介绍 ① Dmp格式:.dmp是二进制文件,可跨平台,还能包含权限,效率好, 2. 导出方法 登录plsql工具,所使用用户为源数据库有导出权限(exp_full_database,dba等)的用户。
等待导出完成 ②导出数据文件
导出为sql格式,如下图:
导出为pde格式,如下图:
备注:采用第三方工具导出导入整个数据库的话,耗时较长,一定要有足够的时间来操作(数据量大的话需要好几个小时) 3. 导入方法 登录plsql工具,使用之前准备工作所创建的用户。 参考文献: 1.Oracle - 数据库的实例、表空间、用户、表之间关系: 到此这篇关于浅谈入门级oracle数据库数据导入导出步骤的文章就介绍到这了,更多相关oracle数据库数据导入导出步骤内容请搜索极客世界以前的文章或继续浏览下面的相关文章希望大家以后多多支持极客世界! |
请发表评论