zoukankan      html  css  js  c++  java
  • Oracle解决exp导出文件过大的问题

    先由exp把数据卸出到文件系统, 产生一个.dmp文件, 然后必要时再由imp将数据装入数据库. 对于一般中小型数据库来说, 全数据库的exp所产生的dmp文件可能小于2GB, 但对稍大型的数据库, exp产生的数据动辄数十至上百个GB. 而现时多数操作系统为32位, 其文件系统允许的最大文件为2GB. 这样显然不能由文件系统存放exp产生的数据. 这是问题之一. 另一个问题是随着数据库的不断增大, exp所需时间越来越长以致实际上很难实施. 本文针对以上两个问题讨论相应对策.

    管道

    管道 是一种伪文件. 它存在于内存中, 用于快速I/O操作. 管道的缓冲区采用先进先出机制, 即写管道进程写到缓冲区头部而读管道进程读取管道尾部. 建立管道的命令为”mknod filename p".

    gzip命令

    名称

            gzip, gunzip, zcat -压缩或解压文件

    总览

            gzip [ -acdfhlLnNrtvV19 ] [-S suffix] [ name ...  ]

            gunzip [ -acfhlLnNrtvV ] [-S suffix] [ name ...  ]

            zcat [ -fhLV ] [ name ...  ]

    描述

    Gzip使用lempel - ziv编码减少指定文件的大小(LZ77)。在可能的情况下,每个文件都被一个扩展名替换.gz,同时保持相同的所有权模式,访问和修改时间。(默认扩展名对于VMS为-gz,对于MSDOS,OS /2 FAT,Windows NT FAT和Atari为Z。) 如果没有指定文件,或者文件名是“-”,则标准输入被压缩到标准输出。Gzip只会尝试压缩常规文件。特别是,它将忽略符号链接。

    如果压缩文件名对其文件系统太长,则gzip将其截断。Gzip试图只截断长度超过3个字符文件名称的部分。(部分是由点来分隔的。) 如果名称仅由小部分组成,最长的部分被截断。例如,如果文件名限制在14个字符,那么gzip.msdos.exe被压缩为gzi.msd.exe.gz。在没有限制文件名长度的系统上,名称不会被截断。

    。。。。。。

    选项

    -f --force

    强制压缩或解压,即使该文件有多个链接或相应的文件已经存在,或者将压缩的数据从终端读取或写入到终端。如果输入数据没有gzip识别的格式,并且如果选项--stdout也被给出,那么将输入数据复制到标准输出:让zcat表现为cat。

    数据流重定向

    标准输入(stdin):代码为0,使用<或<<;

    标准输出(stdout):代码为1,使用>或>>;

    标准错误输出(stderr):代码为2,使用2>或2>>

    解决方案

    1.建立命名管道

    mknod mypipe p

     

    2.结合exp和gzip将导出的dmp文件直接压缩

    exp $SWITCH_DBUSER/$SWITCH_DBPASS file=$HOME/file/expdp/mypipe tables=card_bin &

    gzip <$HOME/file/expdp/mypipe >$HOME/file/expdp/card_bin.gz

     

    如此即解决了直接导出dmp文件过大的弊端

    如何通过备份的数据进行恢复呢

    3.解压缩gz文件

    gunzip -c card_bin.gz > card_bin.dmp

    4.imp导入dmp文件

    imp $SWITCH_DBUSER/$SWITCH_DBPASS IGNORE=y file=card_bin.dmp full=y

    参考资料

    《man gzip》

    《鸟哥的Linux私房菜——基础学习篇》

    https://yq.aliyun.com/ziliao/115289

    http://blog.csdn.net/cnmilan/article/details/40592305

  • 相关阅读:
    < java.util >-- Set接口
    Codeforces 627 A. XOR Equation (数学)
    Codeforces 161 B. Discounts (贪心)
    Codeforces 161 D. Distance in Tree (树dp)
    HDU 5534 Partial Tree (完全背包变形)
    HDU 5927 Auxiliary Set (dfs)
    Codeforces 27E. Number With The Given Amount Of Divisors (暴力)
    lght oj 1257
    Codeforces 219D. Choosing Capital for Treeland (树dp)
    Codeforces 479E. Riding in a Lift (dp + 前缀和优化)
  • 原文地址:https://www.cnblogs.com/yanxin880526/p/8031966.html
Copyright © 2011-2022 走看看