zoukankan      html  css  js  c++  java
  • oracle备份与恢复

    exp全库导出

    su - oracle

    exp 'user/"123456"@127.0.0.1:1521/orcl' full=y file=/home/oracle/orcl_full.dmp

    但是用exp常规导出会很慢,于是有加入Direct=y参数,但是可能会有异常,今天同事分享了一个案例

    数据库版本是Oracle 11G,使用exp导出数据,然后imp导入。

    IMP-00019: row rejected due to oracle error 1400
    IMP-00003: ORACLE error 1400 encountered
    ORA-01400: cannot insert NULL into ("HSVSDATA"."TFJYGH"."EN_LXSDS")

    从生产导一个属主到测试,使用了Direct=y导出,结果导入报如上错误,原因是如下:
    原因是11g的一个新特性:为了改善性能,对表新增非空且有缺省值列的时候,ORACLE不会全表更新,只是改了数据字典,这种情况下,exp如果加了参数direct=y导致了丢失了字段值.不会导出字段的缺省值,所以报错了。

    11g下的exp 还是别加direct=y 了。

    imp全库导入

    用imp导入数据使用ignore=y参数的话,如果表存在,那么会追加数据到表中。
    如果不限制ignore参数的话,系统默认是ignore=n,当遇到已经存在的表导入数据时会提示对象已存在的错误。我们要根据实际的需求来决定是否使用这个参数,有些人为了让导入的过程不出现错误而使用这个参数,我认为没有必要,这个参数要谨慎使用,否则数据库中多了很多重复数据都不知道什么原因。
  • 相关阅读:
    pat00-自测5. Shuffling Machine (20)
    Spiral Matrix
    Search in Rotated Sorted Array II
    Search in Rotated Sorted Array
    Best Time to Buy and Sell Stock II
    4Sum
    3Sum Closest
    3Sum
    MySQL存储过程、函数和游标
    Word Ladder
  • 原文地址:https://www.cnblogs.com/liqing1009/p/13440009.html
Copyright © 2011-2022 走看看