当前位置:首页 > 技术文章 > 正文内容

ORACLE导入导出

arlanguage2个月前 (03-19)技术文章11

本次操作使用的system用户登录

1、查看当前数据库表空间文件所在位置

select * from dba_data_files;

2、数据文件表空间所在位置创建表空间

create tablespace TEST_TS datafile 'xxxx:\ORCL\TEST_TS.DBF' size 512m autoextend on maxsize unlimited;

autoextend on 表示表空间自动扩展,如果表空间在满了之后,如果设置了on,则表空间会自动扩展

maxsize unlimited表示表空间最大值不设置上限,但需要注意,ORACLE管理的数据文件最大为32G,如果达到32G,即使设置了自动扩展,并且设置了maxsize unlimited,这时候ORACLE也不会再扩展,会报错。

3、创建用户

create user test_u --用户名
identified by test_u --密码
default tablespace TEST_TS --默认表空间,这里根据需要使用上边创建的表空间或者USERS表空间 
temporary tablespace temp -- 默认临时表空间
profile default --默认profile

4、为用户授权

grant imp_full_database,exp_full_database,resource,connect to test_u;

注意:如非特殊情况,为用户授权imp_full_database,exp_full_database,resource,connect即可满足大部分情况,不要授予用户dba权限。

5、imp导入

imp system/system@orcltest file=xxx:/TEST.DMP log=xxx:/TEST_IMP.log fromuser=test_u touser=test_u


6、exp导出

exp system/system@orcl file=xxx:/TEST.DMP log=xxx:/TEST.log owner=test_u

注意:

在使用exp导出时,由于ORACLE为了节省空间,如果表中的记录为0,则ORACLE不会为表分配空间,exp导出时,不会导出记录数为0的表,在导入后,会导致程序发生错误。

为解决这种情况,最好在导出前执行如下SQL:

select 'alter table '||table_name||' allocate extent;' from user_tables where num_rows=0;

查询的结果如下:

alter table ZX_NMRMS_BATCH allocate extent;

alter table ZX_GPCS_DIRECT_SUPPLY_DTL allocate extent;

alter table ZX_GPCS_DIRECT_SUPPLY_DOC allocate extent;

将查询结果的SQL,粘贴到数据库执行成功后,再导出数据库,即可避免上诉情况。

7、expdp导出

expdp/impdp是服务器命令,需要在oracle服务器上运行,是oracle10g版本开始支持的,之前版本的ORACLE不支持这两个命令

expdp system/system@orcl directory=data_pump_dir dumpfile=testXXXX.DMP log=test_exp.log schemas=TEST_U version=10.2.0.1.0

其中directory=data_pump_dir是system可以使用的directory,可以通过下面SQL查询,查看DATA_PUMP_DIR对应的目录在哪

select * from dba_directories;

这里的DATA_PUMP_DIR是ORACLE数据泵默认目录,可以看到对应的目录在D:\app/admin/orcl/dpdump/

Version参数:在目标数据库和源数据库版本不一致时,使用version参数,如果目标数据库比源数据库的版本低,例如目标数据库是10,而源数据库是11,则需要制定目标数据库的版本号;

其他情况可以不使用该参数。

8、impdp导入

首先先要建立表空间和用户,建立表空间和用户参考第一节,然后将导出的DMP文件拷贝到目标数据库的DATA_PUMP_DIR对应的目录中,查询SQL同上一小节,此处略。

impdp system/system@orcltest directory=DATA_PUMP_DIR dumpfile=testXXXX.DMP REMAP_SCHEMAS=test_u:test_u1 REMAP_TABLESPACE=test_ts:test_ts1

其中:

REMAP_SCHEMAS参数,用来处理导出用户和导入用户不一致的情况

REMAP_TABLESPACE参数,用来处理导出的表空间和导入的表空间不一致的情况

在ORACLE10g版本后推荐使用expdp/impdp命令导出导入数据库。

扫描二维码推送至手机访问。

版权声明:本文由AR编程网发布,如需转载请注明出处。

本文链接:http://www.arlanguage.com/post/3404.html

分享给朋友:

“ORACLE导入导出” 的相关文章

轻松搭建基于 Serverless 的 ThinkPHP 应用

ThinkPHP 是什么?ThinkPHP 是一个免费开源的,快速、简单的面向对象的轻量级 PHP 开发框架,是为了敏捷 WEB 应用开发和简化企业应用开发而诞生的。ThinkPHP 从诞生以来一直秉承简洁实用的设计原则,在保持出色的性能和至简代码的同时,更注重易用性。遵循 Apache2 开源许可...

【网络安全】关于PHP Study nginx解析高危漏洞的预警通报

网络安全近日,山石网科安全研究院监测发现PHPStudy Windows最新版本存在nginx解析漏洞,可以造成任意代码执行。一、漏洞情况phpStudy是一个PHP调试环境的程序集成包,该程序包集成最新的Apache+PHP+MySQL+phpMyAdmin+ZendOptimizer,一次性安装...

「每天一道面试题」Nginx 502错误原因和解决方法

Nginx 502错误原因和解决方法不管你是做运维还是做开发,哪怕你是游客,时不时会遇到 502 Bad Gateway 或 504 Gateway Time-out。出现这页面,把服务重启下,再实在不行重启下服务器,问题就解决了,特殊情况请继续阅读。状态码解释502 Bad Gateway:作为网...

php培训都学什么?有哪些课程?

PHP入门虽然比较容易简单,但是对于零基础学员来讲,想要学到精髓,并不是一件容易的事情,越到后面学起来越累,因此,最快最便捷的方法就是参加培训,不仅可以快速掌握入门,还能够学到精髓之处,那么PHP培训都有哪些课程?下面我们以六星教育的php培训课程为例来为大家讲解:第一阶段:动态网站开发的三个方面1...

nginx出现大量499响应码怎么办?

一、问题现象监控发现Nginx服务日志中出现较多的499状态码,499状态码在Nginx中代表的是客户端在服务端返回之前主动断开了连接,由于客户端设置的超时时间为2s,故到达2s未收到服务端响应客户端主动断开了连接造成了499响应码。二、可能的故障点服务器的问题,例如CPU使用率高,队列堵塞,导致无...

终于有人把Docker讲清楚了,Docker入门教程,原来这么简单...

Docker是一个使用Go语言开发的开源的应用容器引擎,让开发者可以打包他们的应用以及依赖到一个可移植的容器中,然后发布到任何流行的机器上。Docker的迅猛发展和全新理念,席卷了整个IT界,成为云时代的一颗新星。Docker的优势Docker相比于传统虚拟化方式具有更多的优势:docker启动快速...