百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术教程 > 正文

oracle下使用oci快速卸载数据文件,12c的1017问题

mhr18 2024-09-17 23:16 19 浏览 0 评论

今天我们主要要讲的是利用oci卸载oracle12c数据库数据时遇到的-1017问题。

oracle可能是很多大型企业或者国有企业在以前都非常喜欢使用的一类数据库了

比较他的优点还是挺多的

那么今天我们就来说说oracle数据卸载问文本文件的相关使用体会吧

首先,大家一般都使用什么方式将oracle数据内容写入到文本文件呢?

对于将数据卸载,其实可能根据目标文件格式所使用的方法也有点不一样

常用的大概如下:

  1. 常见的dmp文件,也就是使用exp直接卸载为oracle可以识别的数据文件,再利用imp就可以装入

    eg:exp user/pw@orc file=/app/outfile.dmp

    eg:imp user/pw@orc file=/app/outfile.dmp full=y ignore=y

    也有远程的数据库导入导出,只需要在orc加上对应IP即可

    这里是比较常用的,就不做截图演示了

  2. 数据泵文件,也就是利用expdp卸载的文件,这有点权限问题,那就是需要使用到的数据库权限比exp更高

    eg:expdp user/pw@orc schemas=username dumpfile=expdp.dmp directory=dp_dir

    eg:impdp user/pw@orc schemas=username dumpfile=expdp.dmp directory=dp_dir

    当然,这里和exp/imp一样的,可以根据用户、表名、查询条件等方式导入导出,也可以使用parallel并行操作,或者一些日志、版本等参数设置

  3. 调用sqlplus,通过SQL*Net连接到另一主机上的数据库,并把结果用spool输出到文本文件

    这个也会是刚开始使用oracle并且少量数据导出时常用到的

    eg:spool /app/outfile.txt

    set echo off

    set feedback off

    set term off

    set heading off

    select owner||','||object_name from dba_objects;

    spool off

    不过这个由于有屏幕输出,效率不会特别高

    比如30万行数据,每行40字节,通过SQLplus需要110s,Java需要10s,Pro*C小于2s

  4. SQLldr应该也是很多程序猿比较喜欢使用的

    sqlldr是需要提前准备ctl文件的,这对于很多懒人来说其实也是有点抵触的,比如小编就不是很爱使用这个方式

    ctl的详细格式就不在这阐述了

    eg:sqlldr userid=user/pw@orc control=/app/outfile.txt

  5. 这个第五就是我们今天要重点推荐的:oci

    今天不详细介绍oci怎么用了,大概解释一下,目前使用oci导出文件,每一秒钟写入文本文件大概在50条记录,每条记录大概500字节,由于这两年一直处理大数据量的导入导出,故此偏爱使用oci

下面就来说说今天的主题,oci连接数据库时报出了-1017错误

如文章第一张图片所示,最后执行的程序是ociuldr.bin,这是利用C语言编写的,网上就有源码,里面调用的就是oracle提供的各种函数

最早使用oracle11g的各种版本都非常好使,在近两年使用oracle的12c也基本是没有问题,只要在编译时各种内部库都能正常找到即可

在2017年10月份,重新整了一台机器装了一个12c最新版本,应该是12.2.xx版本,也很正常,编译都没有问题,但让人摸不着头脑的时就这么发生了

就在调用oci提供的olog函数时失败,在网上查了很多,也没有找到具体原因,而且直接利用sqlplus user/pw是可以正常登陆哦,也能正常创建表删除表修改密码等

考虑了数据库安装时是否单实例,是不是cdb pdb

考虑了登陆密码大小写问题

也怀疑了是不是C程序里面有什么bug

查了oracle的各种配置表

想了是不是因为oracle没有client角色之类

也打印了很多的跟踪日志,都没能查到什么原因

最后求助oracle驻场工程师,哈哈,这还能解决不了吗?

看到这大家应该知道怎么解决了吧

最终就是因为oracle的12.1和12.2的区别,当调回12.1以后立马即可使用了,又重新回到了一秒钟50w条数据的时代了

好啦,今天就说到这吧,欢迎大家关注,若有什么问题,咱们可以一起探讨学习

本文为美丽的程序猿在头条平台首发

祝大家学习越快

相关推荐

Team IDE 集成管理工具

Team·IDE工具简介TeamIDE工具集成SSH、FTP、MySql、Redis、Zookeeper、Kafka、Elasticsearch等管理工具Team·IDE功能模块目录结...

MySQL大数据表处理策略,原来一直都用错了……

场景当我们业务数据库表中的数据越来越多,如果你也和我遇到了以下类似场景,那让我们一起来解决这个问题。数据的插入,查询时长较长后续业务需求的扩展,在表中新增字段,影响较大表中的数据并不是所有的都为有效数...

Java程序员你真的甘心只做增删改查吗

各位志同道合的朋友们大家好,我是一个一直在一线互联网踩坑十余年的编码爱好者,现在将我们的各种经验以及架构实战分享出来,如果大家喜欢,就关注我,一起将技术学深学透,我会每一篇分享结束都会预告下一专题最近...

Java后端开发除了增删改查还有什么?

后端的追求:接口稳定、架构合理、业务逻辑清晰、模块拆分合理、支持高并发等。软件本身归根到底都是由算法+数据结构构成的,进一步细化之后,其实就是通过一系列的增删改查操作,构成算法,对数据结构进行操作,赋...

基于shiro实现session持久化和分布式共享

前言本文写下session持久化和分布式共享基于shiro框架对session的管理机制来实现必要性一直处于登陆状态:你登陆微信不可能三天两头就让你重新登陆吧?而是一直处于登陆状态除非主动退出...

为啥工作那么多年,你还是只会增删改查?

你以为没有这样的感觉,工作中领导和同事都非常认可你的能力,但是你想更进一步,却不被认可。想出去看看,跳槽面试,却也是屡屡碰壁。面试的过程中,面试官问技术方案,明明心里很清楚,或者说印象还行,可就是说不...

Java程序员除了做增删改查还能干嘛?

就以Java后端开发为例,说说不同级别程序员干的事情。1初级开发,大概是有3年Java开发经验。22年底,上海,这批程序员如果学历是本科,薪资一般是8k到2w,当然如果能进好公司或互联网大厂,薪资能...

Java面试题及答案总结(2025版持续更新)

大家好,我是Java面试分享面对Java后端岗位的激烈竞争,掌握系统化的知识体系至关重要。本文整理了覆盖主流技术栈的高频面试题,助你高效备战,内容包含:Java基础、并发编程、Spring生态、数据库...

微服务架构之API网关——在微服务项目中的技术框架和用法实践

API网关技术实战在介绍了API网关的相关理论之后,大家可以了解到API网关的作用和优缺点,接下来将为大家介绍API网关在微服务项目中的技术框架和用法实践。Zuul网关其实API网关并不是很难的技术,...

带小白黑客入门,你也可以跟我们一起成为黑客大牛

小编这几天一直在做关于ssrf的实验,这篇文章可以带纯小白黑客入门。靶机ip地址:192.168.2.138查看靶机运行的redis服务。攻击机为ip192.168.2.112.用客户端redis-c...

Python最常见的170道面试题全解析答案(二)

60.请写一个Python逻辑,计算一个文件中的大写字母数量答:withopen(‘A.txt’)asfs:count=0foriinfs.read():ifi.isupper...

Spring Boot项目集成Redis,原来这么简单!

在现代软件开发的“快车道”上,SpringBoot无疑是许多开发者手中的“神兵利器”。它以其“约定大于配置”的理念,大大简化了Java应用的开发和部署过程,让开发者能够将更多精力聚焦于业务逻辑本身。...

Apache Commons Pool——优化你的java内存

大家好,我是吉森。我会持续分享一些开发技巧、经验和技术,如果你也热爱各种开发技术,欢迎关注我。今天我们继续介绍ApacheCommons工具包,今天的主角是:CommonsPool。简单地说,它是...

码农成长系列-基于WebSocket的后台消息提醒

场景描述当用户对app有某些业务操作时,需要将该操作友好地提醒给,有接收提醒权限的后台管理者。技术场景分析经分析,要实现上述业务,业务拆解后可能需要解决如下业务①.触发提醒待推送数据的监听②.提醒时接...

百度直播消息系统的实践和演进

导读:直播业务的核心功能有两个,一个是实时音视频推拉流,另一个是直播间消息流的收发。本文主要介绍百度直播服务内的消息服务系统的设计实践和演化。一、背景直播间内用户聊天互动,形式上是常见的IM消息流;...

取消回复欢迎 发表评论: