- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章Oracle 管道 解决Exp/Imp大量数据处理问题由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
先由exp把数据卸出到文件系统, 产生一个.dmp文件, 然后必要时再由imp将数据装入数据库. 对于一般中小型数据库来说, 全数据库的exp所产生的dmp文件可能小于2GB, 但对稍大型的数据库, exp产生的数据动辄数十至上百个GB. 而现时多数操作系统为32位, 其文件系统允许的最大文件为2GB. 这样显然不能由文件系统存放exp产生的数据. 这是问题之一. 另一个问题是随着数据库的不断增大, exp所需时间越来越长以致实际上很难实施. 本文针对以上两个问题讨论相应对策. 我们以UNIX为例首先看看怎么样超越2GB限制. 这需利用UNIX的通用技术, 如管道(named pipe), 数据拷贝工具dd以及数据压缩(compress). 下面分别讨论这几种技术. ·管道 是一种伪文件. 它存在于内存中, 用于快速I/O操作. 管道的缓冲区采用先进先出机制, 即写管道进程写到缓冲区头部而读管道进程读取管道尾部. 建立管道的命令为”mknod filename p". ·dd 允许我们从一个设备拷贝数据到另一个设备. ·compress 为UNIX数据压缩工具. 实施exp之前, 我们可先检查所产生dmp文件的大小. 以下步骤既可实现, 1. 生成管道: $ mknod /tmp/mypipe p 2. exp结果输出到该管道 $ exp file=/tmp/mypipe <...其它exp选项> & 3. 读取管道并把结果输出到管道, 只为查看数据量: $ dd if=/tmp/mypipe of=/dev/null 结果返回exp (.dmp)文件大小, 单位为块(512 bytes). 现在我们可以着手讨论具体方法, 1. 文件压缩 2. 直接exp到磁带 3. 综合方法 首先看文件压缩方法. 利用文件压缩我们可尽量避免dmp文件大小超过2GB限制. 我们利用UNIX的管道技术, 具体步骤如下, 1. 启动compress进程, 使之从管道读取数据并输出到磁盘文件. $ mknod /tmp/exp_pipe p $ compress < /tmp/exp_pipe > export.dmp.Z & 2. exp到管道. $ exp file=/tmp/exp_pipe ... & imp时情况类似. 再看看直接exp到磁带上的方法. $ exp file=/dev/rmt/0m volsize=4G $ imp file=/dev/rmt/0m volsize=4G 最后看看exp到裸设备上的方法, $ exp file=/dev/rdsk/c0t3d0s0 volsize=4G imp类似.以上方法都可使我们避免2GB限制. 下面讨论怎么样缩短exp索需时间的问题. 目前多数用户会采用exp到磁带的方法只因没有足够的剩余硬盘空间. 而整个exp过程所花时间的大部分都在写磁带上. 通过我们上面对UNIX工具的讨论, 我们可以做到先exp到管道, 再将管道数据压缩后输出到磁带上. 这样写磁带的数据量可大大减少, 从而在相当程度上缩短写磁带时间. 另外从Oracle内部角度讲, 从7.3版开始, Oracle允许用户做direct path export, 即跳过Oracle $ make -f $ORACLE_HOME/rdbms/lib/oracle.mk expst $ make -f $ORACLE_HOME/rdbms/lib/oracle.mk impst 以上步骤产生的可执行文件expst (exp single task)和impst与exp/imp用法完全相同. 使用它们比使用exp/imp可节省多至30%的时间. 但在使用它们时千万要注意一点, 即一定要保证在使用expst/impst时不能有任何其他用户在使用Oracle数据库, 否则数据库会产生不可预知的后果甚至毁坏. A:昨天在网上一个朋友问我,如何导入一个通过pipe导出并压缩过的文件,我特意做了一次试验: Oracle的导出和导入不能直接引用标准的输出和输入,但通过unix pipe可是实现,通过管道可以加快exp/imp速度 通过管道导出数据 1.通过mknod -p建立管道 mknod /home/exppipe p --在目录/home下建立一个管道exppipe 注意参数p 2.通过exp和gzip导出数据到建立的管道并压缩 exp test/test@orcl file=/home/exppipe & gzip < /home/exppipe > exp.dmp.gz 3.导出成功完成之后删除建立的管道 rm -rf /home/exppipe 根据我的测试,压缩导出文件只是普通大小的十分之一 通过管道导入生成的文件 1.建立管道 mknod /home/exppipe p 2.导入生成的压缩文件 imp system/passwd@orcl file=/home/exppipe fromuser=test touser=macro & gunzip < exp.dmp.gz > /home/exppipe 这样就导入成功,之后删除管道 3.删除管道 rm /home/exppipe 以上总结,PiPe真不错,能加快速度,同时还可以避免单个文件大于2G的限制.
最后此篇关于Oracle 管道 解决Exp/Imp大量数据处理问题的文章就讲到这里了,如果你想了解更多关于Oracle 管道 解决Exp/Imp大量数据处理问题的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
解释 我的应用程序基本上使用带有代表建筑物的多边形叠加层的 map View ,以及注释。为此,它导入了一个名为 Annotation 的自定义类,该类在点击注释时处理弹出详细信息,这意味着它存储建筑
我有一个数据处理问题,我想计算两支球队在不同比赛中的进球数差异。数据如下所示: matchId teamId eventSec 1 2799331 6718 443.55984
如下所示: ? 1
我想知道 cocoa 是否有默认的数据存储方式。如果是,那是什么?我的意思是 Rails 默认使用 sqlite... 此外,我正在寻找有关如何使用它的教程...例如获取数据并将其显示到 ListVi
我正在使用 HTML5 创建在线游戏。我将使用 JSON 字符串通过 Websockets 通信数据,因此典型的字符串将包含被调用的操作以及随之而来的数据: {action: "chat", user
我需要按特定列对一组 csv 行进行分组,并对每个组进行一些处理。 JavaRDD lines = sc.textFile ("somefile
我有一个情况: 基本上有 3 个模块,分别命名为“A”、“B”、“C”。每个模块都涉及多线程。 模块“A”获取高速数据(20ms)并发送。模块“B”的一个线程启动。 模块“B”提取相关数据并执行一些位
我正在处理有关城镇和城镇内区域的 MySQL 数据库中的一些数据。 数据库看起来像这样 ID | NAME 1 | Manchester 2 | Manchester/North 3 | Man
当我注册用户时,我得到一个状态代码 200 和一个 token :“”返回 JSON。如果用户已经存在,那么我会得到状态代码 200 和 html 响应而不是 JSON。我应该如何处理这个问题。提前致
我有一个应用程序,我从网络上下载大量资源,并对每个资源进行一些处理。我不希望这项工作发生在主线程上,但它非常轻量级且优先级较低,因此所有这些工作都可以真正发生在同一个共享工作线程上。这似乎是一件好事,
我目前正在与一家小公司合作,该公司将其所有应用程序数据存储在 AWS Redshift 集群中。我的任务是对该 Redshift 集群中的数据进行一些数据处理和机器学习。 我需要做的第一个任务是根据一
简介 有些 post 的请求参数是 json 格式的,这个前面发送post 请求里面提到过,需要导入 json模块处理。现在企业公司一般常见的接口因为json数据容易处理,所以绝大多数返回数据也是
1.数组的处理: 1.1 数组的创建和初始化: 1.arrary()函数创建数组,默认情况下0元素是数组的第一个元素, count()和sizeof()函数获得数
我正在尝试将 CKEditor 与 AngularJS 结合使用,用于具有数据绑定(bind)的 WYSIWYG 编辑器,一切似乎都运行良好。极端的可配置性对我们的需求匹配有很大帮助。 我们现在面临表
我正在对负样本和正样本进行文本二元分类任务,我想包括以下所有内容: 处理数据..(例如标记化) 特征选择,例如 Chi2 应用随机投影,因为我有一个大型稀疏矩阵(n_samples:974,n_fea
数据与我在 Pandas 系列: data = ["1. stock1 (1991)", "3. stock13 (1993)", "5. stock19 (1999)", "89. stock
1.字符串的定义与显示 定义:通过””,''来标志 显示:echo()和print(),但print()具有返回值值,1,而echo()没有,但echo比print()要快,
1.正则表达式基础知识 含义:由普通字符和(a-z)和一些特殊字符组成的字符串模式 功能:有效性验证。 替换文本。 从一个字符串提取一个子字符串。&n
我想知道是否可以在我的 Cost Explorer 中发现这个成本背后的资源,按使用类型分组我可以看到它是数据处理字节,但我不知道哪个资源会消耗这个数量数据的。知道如何在 CloudWatch 上发现
我有一个 Json 字符串。我想从该 Json 字符串中获取值。 这是我的 json 字符串{“纬度”:“22.5712854”},{“经度”:“88.4266847”} 我只需要使用 TSQL 查询
我是一名优秀的程序员,十分优秀!