dmp恢复缺表 oracle_oracle dmp恢复缺表 - CSDN
精华内容
参与话题
  • Oracle导出的dmp文件缺少处理办法

    千次阅读 2019-05-13 09:24:55
    这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、...

    1、问题

    Oracle导出的dmp文件,再导入到新建的数据库用户下面会发现缺少好几张表,检查之后是因为导出dmp文件的时候没有做空表处理,导致那些没有数据的表并没有成功导出

    2、解决办法

    查询一个数据库用户下有多少张表:select count(*) from user_tables ;
    查询一个数据库用户下的空表:select table_name from user_tables where NUM_ROWS=0;
    (1)初次创建用户和表空间的时候执行:alter system set deferred_segment_creation=false;
    (2)在导出之前执行:Select 'alter table '||table_name||' allocate extent;' from user_tables where num_rows=0;
    将查询出来的结果复制到SQL窗口执行下
    在这里插入图片描述

    展开全文
  • Linux/Unix shell 自动导出Oracle数据库

    万次阅读 2013-02-07 12:32:01
    使用shell脚本实现对Oracle数据库的监控与管理将大大简化DBA的工作负担,如常见的对实例的监控,监听的监控,告警日志的监控,以及数据库的备份,AWR report的自动邮件等。本文给出Linux 下使用 shell 脚本来实现...

           使用shell脚本实现对Oracle数据库的监控与管理将大大简化DBA的工作负担,如常见的对实例的监控,监听的监控,告警日志的监控,以及数据库的备份,AWR report的自动邮件等。本文给出Linux 下使用 shell 脚本来实现数据库自动导出。

           Linux Shell以及导入导出的相关参考:
            Linux/Unix shell 脚本中调用SQL,RMAN脚本
            Linux/Unix shell sql 之间传递变量
            Linux/Unix shell 调用 PL/SQL
            Linux/Unix shell 监控Oracle实例(monitor instance)
            Linux/Unix shell 监控Oracle监听器(monitor listener)
            Linux/Unix shell 监控Oracle告警日志(monitor alter log file)
            数据泵 EXPDP 导出工具的使用
            数据泵IMPDP 导入工具的使用
            导入导出 Oracle 分区表数据
            expdp impdp中 exclude/include 的使用
            使用 Oracle Datapump API 实现数据导出

     

    1、自动导出Oracle数据库shell脚本

    # +-------------------------------------------------------+
    # +    Export database by schema every day                |
    # +    Author : Robinson                                  |
    # +    Blog   : http://blog.csdn.net/robinson_0612        |
    # +    Usage  :                                           | 
    # +         expdb.sh $ORACLE_SID                          |
    # +-------------------------------------------------------+
    #
    #!/bin/bash 
    # --------------------
    # Define variable
    # --------------------
    
    if [ -f ~/.bash_profile ]; then
    . ~/.bash_profile
    fi
    
    if [ -z "${1}" ];then
        echo "Usage: "
        echo "      `basename $0` ORACLE_SID"
        exit 1
    fi
    
    ORACLE_SID=$1;                 export ORACLE_SID 
    DT=`date +%Y%m%d`;             export DT
    TIMESTAMP=`date +%Y%m%d_%H%M`
    MAIL_LIST="robinson.chen@12306.com"; export MAIL_LIST
    MAIL_DIR=/users/robin/dba_scripts/sendEmail-v1.56
    MAIL_FM='oracle@szdb.com'
    LOG_DIR=/users/robin/dba_scripts/custom/log
    LOG_FILE=$LOG_DIR/expdb_${ORACLE_SID}_${TIMESTAMP}.log
    DUMP_FILE=EXP_${ORACLE_SID}_${DT}.dmp
    DUMP_LOG=EXP_${ORACLE_SID}_${DT}.log
    DUMP_DIR=/u02/database/${ORACLE_SID}/BNR/dump
    RETENTION=1
    
    # ------------------------------------------------------------------------
    #  Check the target database status, if not available send mail and exit
    # ------------------------------------------------------------------------
    
    db_stat=`ps -ef | grep pmon_$ORACLE_SID | grep -v grep| cut -f3 -d_`
    if [ -z "${db_stat}" ]; then
        MAIL_SUB=" $ORACLE_SID is not available on `hostname` before try to export data  !!!"
        $MAIL_DIR/sendEmail -u $MAIL_SUB -f $MAIL_FM -t $MAIL_LIST -m $MAIL_SUB 
        exit 1
    fi;
    
    # ------------------------------------
    #  Check the dumpfile exist or not
    # ------------------------------------
    
    if [ -s "${DUMP_DIR}/${DUMP_FILE}" ]; then
        MAIL_SUB=" The dump file ${DUMP_FILE} exists for ${ORACLE_SID} on `hostname`, exit !!!!"
        $MAIL_DIR/sendEmail -u $MAIL_SUB -f $MAIL_FM -t $MAIL_LIST -m $MAIL_SUB
        exit 1
    fi
    
    echo "`date`" >>$LOG_FILE
    echo "The hostname is :`hostname`">>$LOG_FILE
    echo "The database is :${ORACLE_SID}">>$LOG_FILE
    echo "  Start to export data ..............." >>$LOG_FILE
    
    # --------------------------------------
    #  Start to export data
    # --------------------------------------
    
    expdp \'\/ as sysdba\' directory=db_dump_dir dumpfile=${DUMP_FILE} logfile=${DUMP_LOG} schemas=goex_admin #parallel=3
    RC=$?
    
    echo " ">>$LOG_FILE
    cat ${DUMP_DIR}/${DUMP_LOG} >>$LOG_FILE
    echo " ">>$LOG_FILE
    echo "------------------------- End of the log file ------------------------">>$LOG_FILE
    
    flag=`cat ${DUMP_DIR}/${DUMP_LOG} | grep -i "successfully completed"`
    
    if [ "${RC}" -eq 0 ] && [ -n "${flag}" ];then
        MAIL_SUB=" Export database ${ORACLE_SID} finished successful on `hostname`  !!!"
        $MAIL_DIR/sendEmail -u $MAIL_SUB -f $MAIL_FM -t $MAIL_LIST -o message-file=$LOG_FILE
    else
        MAIL_SUB=" Export database ${ORACLE_SID} failed on `hostname`  !!!"
        $MAIL_DIR/sendEmail -u $MAIL_SUB -f $MAIL_FM -t $MAIL_LIST -o message-file=$LOG_FILE
    fi
    
    # ------------------------------------------------
    # Removing files older than $RETENTION parameter 
    # ------------------------------------------------
    
    find ${LOG_DIR} -name "expdb*.*" -mtime +$RETENTION -exec rm {} \;
    find ${DUMP_DIR} -name "EXP*" -mtime +$RETENTION -exec rm {} \;
    
    exit
    
    

    2、补充说明
    a、该脚本实现了基于schema的数据库导出,如果要整个导出数据库,需要修改导出部分代码
    b、导出的dump文件的格式为EXP_$ORACLE_SID_yyyymmdd.dmp,EXP_$ORACLE_SID_yyyymmdd.log
    c、由于每天仅导出一次,所以对上面文件的命名使用了yyyymmdd,如果多次导出应考虑修改代码或文件名格式
    d、注意导出命令中转义字符的使用
    e、使用了sendEmail邮件发送程序来发送邮件。参阅:不可或缺的 sendEmail
    f、该脚本在Oracle 10g测试可用,Oracle 11g待测
    g、要实现自动导出,当然是将其部署到crontab,此不赘述

     

    3、更多参考

    有关Oracle RAC请参考
        
    使用crs_setperm修改RAC资源的所有者及权限
         使用crs_profile管理RAC资源配置文件
         RAC 数据库的启动与关闭
         再说 Oracle RAC services
         Services in Oracle Database 10g
         Migrate datbase from single instance to Oracle RAC
         Oracle RAC 连接到指定实例
         Oracle RAC 负载均衡测试(结合服务器端与客户端)
         Oracle RAC 服务器端连接负载均衡(Load Balance)
         Oracle RAC 客户端连接负载均衡(Load Balance)
         ORACLE RAC 下非缺省端口监听配置(listener.ora tnsnames.ora)
        
    ORACLE RAC 监听配置 (listener.ora tnsnames.ora)
         配置 RAC 负载均衡与故障转移
         CRS-1006 , CRS-0215 故障一例 
        
    基于Linux (RHEL 5.5) 安装Oracle 10g RAC
        
    使用 runcluvfy 校验Oracle RAC安装环境

    有关Oracle 网络配置相关基础以及概念性的问题请参考:
        
    配置非默认端口的动态服务注册
        
    配置sqlnet.ora限制IP访问Oracle
         Oracle 监听器日志配置与管理
        
    设置 Oracle 监听器密码(LISTENER)
         配置ORACLE 客户端连接到数据库

    有关基于用户管理的备份和备份恢复的概念请参考
        
    Oracle 冷备份
         Oracle 热备份
         Oracle 备份恢复概念
         Oracle 实例恢复
         Oracle 基于用户管理恢复的处理
         SYSTEM 表空间管理及备份恢复
         SYSAUX表空间管理及恢复
         Oracle 基于备份控制文件的恢复(unsing backup controlfile)

    有关RMAN的备份恢复与管理请参考
        
    RMAN 概述及其体系结构
         RMAN 配置、监控与管理
         RMAN 备份详解
         RMAN 还原与恢复
         RMAN catalog 的创建和使用
         基于catalog 创建RMAN存储脚本
         基于catalog 的RMAN 备份与恢复
         RMAN 备份路径困惑
         使用RMAN实现异机备份恢复(WIN平台)
         使用RMAN迁移文件系统数据库到ASM
         linux 下RMAN备份shell脚本
         使用RMAN迁移数据库到异机

    有关ORACLE体系结构请参考
        
    Oracle 表空间与数据文件
         Oracle 密码文件
         Oracle 参数文件
         Oracle 联机重做日志文件(ONLINE LOG FILE)
         Oracle 控制文件(CONTROLFILE)
         Oracle 归档日志
         Oracle 回滚(ROLLBACK)和撤销(UNDO)
         Oracle 数据库实例启动关闭过程
         Oracle 10g SGA 的自动化管理
         Oracle 实例和Oracle数据库(Oracle体系结构) 

    展开全文
  • 昨天在导入一个dmp,发现特慢,一个2G的dmp,导了1个小时都没导完,查看了... import执行导入时,省会将export的dmp统计信息导入,当数据库的对像(,分区,索引)比较多的情况下,要将这些统计信息导入将花费比较长
            昨天在导入一个dmp,发现特慢,一个2G的dmp,导了1个小时都没导完,查看了一下等待的SQL,大部份是在执行导入数据库对像的统计信息。记忆中import是可以设置不导入统计信息的。于是查询了一下官方文档,并做了一些测试,总结如下。
    
             import执行导入时,缺省会将export的dmp统计信息导入,当数据库的对像(表,分区,索引)比较多的情况下,要将这些统计信息导入将花费比较长的时间。
            如果统计信息不太重要的数据库,如测试数据库或只是为了查找一些表数据的数据库,可以先不导入统计信息,等数据导入完成后,空闲时间再重新生成统计信息。
           oracle import可以设置导入时数据库统计信息如何处理,具体可以设置statistcs参数.statistics参数官方说明如下:
     STATISTICS
    缺省值:ALWAYS
     说明:指定导入时关于数据库统计信息如何处理
    有如下选项:
     ALWAYS
    总是导入数据库统计信息.
    NONE
    不导入数据库统计信息.
     SAFE
    当dmp中统计住处没有问题时导入数据库统计信息,如果有问题,则重新生成统计信息.
     RECALCULATE
    总是重新生成统计信息.
     
    官方原文:
    STATISTICS
    Default: ALWAYS
     Specifies what is done with the database optimizer statistics at import time.
    The options are:
     ALWAYS
    Always import database optimizer statistics regardless of whether or not theyare questionable.
     NONE
    Do not import or recalculate the database optimizer statistics.
     SAFE
    Import database optimizer statistics only if they are not questionable. If they arequestionable, recalculate the optimizer statistics.
     RECALCULATE
    Do not import the database optimizer statistics. Instead, recalculate them onimport.
     注:SAFE选项本人没有测试出来,把统计信息强制设置成偏差很大都没有效果,不太清楚什么是有问题的统计信息。
             本人在PC机上用import导入一个dmp时,dmp才2G,但dmp数据库的对像数有26000,如果按普通导入估计要1小时以上,不导入统计信息只花了约13分钟. 以上数据在oracle10.2.0.1 windows2003平台上测试通过。
            Oracle9.2 对于STATISTICS参数好像有bug,设置了没作用,总是会导入统计信息,但是可以设置ANALYZE=NO/YES来选择是否导入统计信息。
     
    ORACLE -EXP /IMP
    table
         exp icdmain/icd rows=y indexes=n compress=n buffer=65536 feedback=100000 volsize=0 file=exp_icdmain_table_yyyymmdd.dmp log=exp_icdmain_table_yyyymmdd.log tables=icdmain.commoninformation,icdmain.serviceinfo,icdmain.dealinfo
    2) recover all table
         imp icdmain/icd fromuser=icdmain touser=icdmain rows=y indexes=n commit=y buffer=65536 feedback=100000 ignore=y volsize=0 file=exp_icdmain_table_yyyymmdd.dmp log=imp_icdmain_table_yyyymmdd.log
    3) recover some table of all table
         imp icdmain/icd fromuser=icdmain touser=icdmain rows=y indexes=n commit=y buffer=65536 feedback=100000 ignore=y volsize=0 file=exp_icdmain_table_yyyymmdd.dmp log=imp_icdmain_table_yyyymmdd.log tables=commoninformation,serviceinfo
         

    2 user model
    1) backup all someone's object
         exp icdmain/icd rows=y indexes=n compress=n buffer=65536 feedback=100000 volsize=0 owner=icdmain file=exp_icdmain_user_yyyymmdd.dmp log=exp_icdmain_user_yyyymmdd.log
    2) recover all someone's object
         imp icdmain/icd fromuser=icdmain touser=icdmain rows=y indexes=n commit=y buffer=65536 feedback=100000 ignore=y volsize=0 file=exp_icdmain_user_yyyymmdd.dmp log=imp_icdmain_user_yyyymmdd.log
    3) recover some table of all someone's object
         imp icdmain/icd fromuser=icdmain touser=icdmain rows=y indexes=n commit=y buffer=65536 feedback=100000 ignore=y volsize=0 file=exp_icdmain_user_yyyymmdd.dmp log=imp_icdmain_user_yyyymmdd.log tables=commoninformation,serviceinfo


    3 full model
    1)backup the full db for all
        exp system/manager rows=y indexes=n compress=n buffer=65536 feedback=100000 volsize=0 full=y inctype=complete file=exp_fulldb_yyyymmdd.dmp log=exp_fulldb_yyyymmdd.log
    2)backup the full db for zengliang
        exp system/manager rows=y indexes=n compress=n buffer=65536 feedback=100000 volsize=0 full=y inctype=incremental file=exp_fulldb_zl_yyyymmdd.dmp log=exp_fulldb_zl_yyyymmdd.log
    3)recover all date for full backup
        imp system/manager rows=y indexes=n commit=y buffer=65536 feedback=100000 ignore=y volsize=0 full=y file=exp_fulldb_yyyymmdd.dmp log=imp_fulldb_yyyymmdd.log
    4)recover all date for zengliang backup
        imp system/manager rows=y indexes=n commit=y buffer=65536 feedback=100000 ignore=y volsize=0 full=y inctype=restore file=exp_fulldb_zl_yyyymmdd.dmp log=imp_fulldb_zl_yyyymmdd.log



    EXPDP/IMPDP
    1\expdp
    1)select * from dba_directories;
    2)create or replace directory data_dump_dir as '目的路径(如d:\)';
    3)grant read,write on directory data_dump_dir to user_name;
    4)expdp
    user/pwd@service_name full=y dumpfile=full_db.dmp logfile=full_db.txt;
    expdp
    user/pwd@service_name dumpfile=tablespace.dmp logfile= ts.log  
       tablespace=ts_name1,ts_name2;
    expdp
    user/pwd@service_name dumpfile=schema.dmp logfile=schema.txt
       schema=user_name1,user_name2
    expdp
    user/pwd@service_name dumpfile=table.dmp logfile=table.txt
       table=table1,table2
    2\impdp


    EXPDP 和 IMPDP

    Oracle Database 10g引入了最新的数据泵(Data Dump)技术,使DBA或开发人员可以将数据库元数据(对象定义)和数据快速移动到另一个oracle数据库中.

    数据泵导出导入(EXPDP和IMPDP)的作用

    1,实现逻辑备份和逻辑恢复.

    2,在数据库用户之间移动对象.

    3,在数据库之间移动对象

    4,实现表空间搬移.


    数据泵导出导入与传统导出导入的区别

    在10g之前,传统的导出和导入分别使用EXP工具和IMP工具,从10g开始,不仅保留了原有的EXP和IMP工具,还提供了数据泵导出导入工具EXPDP和IMPDP.使用EXPDP和IMPDP时应该注意的事项;

    EXP和IMP是客户段工具程序,它们既可以在可以段使用,也可以在服务段使用.

    EXPDP和IMPDP是服务端的工具程序,他们只能在ORACLE服务端使用,不能在客户端使用

    IMP只适用于EXP导出文件,不适用于EXPDP导出文件;IMPDP只适用于EXPDP导出文件,而不适用于EXP导出文件.

    数据泵导出包括导出表,导出方案,导出表空间,导出数据库4种方式.

    EXPDP命令行选项

    1. ATTACH

    该选项用于在客户会话与已存在导出作用之间建立关联.语法如下

    ATTACH=[schema_name.]job_name

    Schema_name用于指定方案名,job_name用于指定导出作业名.注意,如果使用ATTACH选项,在命令行除了连接字符串和ATTACH选项外,不能指定任何其他选项,示例如下:

    Expdp scott/tiger ATTACH=scott.export_job

    2. CONTENT

    该选项用于指定要导出的内容.默认值为ALL

    CONTENT={ALL | DATA_ONLY | METADATA_ONLY}

    当设置CONTENT为ALL 时,将导出对象定义及其所有数据.为DATA_ONLY时,只导出对象数据,为METADATA_ONLY时,只导出对象定义

    Expdp scott/tiger DIRECTORY=dump DUMPFILE=a.dump

    CONTENT=METADATA_ONLY

    3. DIRECTORY

    指定转储文件和日志文件所在的目录

    DIRECTORY=directory_object

    Directory_object用于指定目录对象名称.需要注意,目录对象是使用CREATE DIRECTORY语句建立的对象,而不是OS 目录

    Expdp scott/tiger DIRECTORY=dump DUMPFILE=a.dump


    建立目录:

    CREATE DIRECTORY dump as ‘d:dump’;

    查询创建了那些子目录:

    SELECT * FROM dba_directories;

    4. DUMPFILE

    用于指定转储文件的名称,默认名称为expdat.dmp

    DUMPFILE=[directory_object:]file_name [,….]

    Directory_object用于指定目录对象名,file_name用于指定转储文件名.需要注意,如果不指定directory_object,导出工具会自动使用DIRECTORY选项指定的目录对象

    Expdp scott/tiger DIRECTORY=dump1 DUMPFILE=dump2:a.dmp

    5. ESTIMATE

    指定估算被导出表所占用磁盘空间分方法.默认值是BLOCKS

    EXTIMATE={BLOCKS | STATISTICS}

    设置为BLOCKS时,oracle会按照目标对象所占用的数据块个数乘以数据块尺寸估算对象占用的空间,设置为STATISTICS时,根据最近统计值估算对象占用空间

    Expdp scott/tiger TABLES=emp ESTIMATE=STATISTICS

    DIRECTORY=dump DUMPFILE=a.dump


    6. EXTIMATE_ONLY

    指定是否只估算导出作业所占用的磁盘空间,默认值为N

    EXTIMATE_ONLY={Y | N}

    设置为Y时,导出作用只估算对象所占用的磁盘空间,而不会执行导出作业,为N时,不仅估算对象所占用的磁盘空间,还会执行导出操作.

    Expdp scott/tiger ESTIMATE_ONLY=y NOLOGFILE=y

    7. EXCLUDE

    该选项用于指定执行操作时释放要排除对象类型或相关对象

    EXCLUDE=object_type[:name_clause] [,….]

    Object_type用于指定要排除的对象类型,name_clause用于指定要排除的具体对象.EXCLUDE和INCLUDE不能同时使用

    Expdp scott/tiger DIRECTORY=dump DUMPFILE=a.dup EXCLUDE=VIEW

    8. FILESIZE

    指定导出文件的最大尺寸,默认为0,(表示文件尺寸没有限制)

    9. FLASHBACK_SCN

    指定导出特定SCN时刻的表数据

    FLASHBACK_SCN=scn_value

    Scn_value用于标识SCN值.FLASHBACK_SCN和FLASHBACK_TIME不能同时使用

    Expdp scott/tiger DIRECTORY=dump DUMPFILE=a.dmp

    FLASHBACK_SCN=358523

    10. FLASHBACK_TIME

    指定导出特定时间点的表数据

    FLASHBACK_TIME=”TO_TIMESTAMP(time_value)”

    Expdp scott/tiger DIRECTORY=dump DUMPFILE=a.dmp FLASHBACK_TIME=

    “TO_TIMESTAMP(’25-08-2004 14:35:00’,’DD-MM-YYYY HH24:MI:SS’)”


    11. FULL

    指定数据库模式导出,默认为N

    FULL={Y | N}

    为Y时,标识执行数据库导出.

    12. HELP

    指定是否显示EXPDP命令行选项的帮助信息,默认为N

    当设置为Y时,会显示导出选项的帮助信息.

    Expdp help=y

    13. INCLUDE

    指定导出时要包含的对象类型及相关对象

    INCLUDE = object_type[:name_clause] [,… ]

    14. JOB_NAME

    指定要导出作用的名称,默认为SYS_XXX

    JOB_NAME=jobname_string

    15. LOGFILE

    指定导出日志文件文件的名称,默认名称为export.log

    LOGFILE=[directory_object:]file_name

    Directory_object用于指定目录对象名称,file_name用于指定导出日志文件名.如果不指定directory_object.导出作用会自动使用DIRECTORY的相应选项值.

    Expdp scott/tiger DIRECTORY=dump DUMPFILE=a.dmp logfile=a.log

    16. NETWORK_LINK

    指定数据库链名,如果要将远程数据库对象导出到本地例程的转储文件中,必须设置该选项.

    17. NOLOGFILE

    该选项用于指定禁止生成导出日志文件,默认值为N.

    18. PARALLEL

    指定执行导出操作的并行进程个数,默认值为1

    19. PARFILE

    指定导出参数文件的名称

    PARFILE=[directory_path] file_name

    20. QUERY

    用于指定过滤导出数据的where条件

    QUERY=[schema.] [table_name:] query_clause

    Schema用于指定方案名,table_name用于指定表名,query_clause用于指定条件限制子句.QUERY选项不能与CONNECT=METADATA_ONLY,EXTIMATE_ONLY,TRANSPORT_TABLESPACES等选项同时使用.

    Expdp scott/tiger directory=dump dumpfiel=a.dmp

    Tables=emp query=’WHERE deptno=20’

    21. SCHEMAS

    该方案用于指定执行方案模式导出,默认为当前用户方案.

    22. STATUS

    指定显示导出作用进程的详细状态,默认值为0

    23. TABLES

    指定表模式导出

    TABLES=[schema_name.]table_name[:partition_name][,…]

    Schema_name用于指定方案名,table_name用于指定导出的表名,partition_name用于指定要导出的分区名.

    24. TABLESPACES

    指定要导出表空间列表

    25. TRANSPORT_FULL_CHECK

    该选项用于指定被搬移表空间和未搬移表空间关联关系的检查方式,默认为N.

    当设置为Y时,导出作用会检查表空间直接的完整关联关系,如果表空间所在表空间或其索引所在的表空间只有一个表空间被搬移,将显示错误信息.当设置为N时,导出作用只检查单端依赖,如果搬移索引所在表空间,但未搬移表所在表空间,将显示出错信息,如果搬移表所在表空间,未搬移索引所在表空间,则不会显示错误信息.


    26. TRANSPORT_TABLESPACES

    指定执行表空间模式导出

    27. VERSION

    指定被导出对象的数据库版本,默认值为COMPATIBLE.

    VERSION={COMPATIBLE | LATEST | version_string}

    为COMPATIBLE时,会根据初始化参数COMPATIBLE生成对象元数据;为LATEST时,会根据数据库的实际版本生成对象元数据.version_string用于指定数据库版本字符串.


    调用EXPDP

    使用EXPDP工具时,其转储文件只能被存放在DIRECTORY对象对应的OS目录中,而不能直接指定转储文件所在的OS目录.因此,使用EXPDP工具时,必须首先建立DIRECTORY对象.并且需要为数据库用户授予使用DIRECTORY对象权限.

    CREATE DIRECTORY dump dir AS ‘D:DUMP’;

    GRANT READ, WIRTE ON DIRECTORY dump_dir TO scott;

    1,导出表

    Expdp scott/tiger DIRECTORY=dump_dir DUMPFILE=tab.dmp TABLES=dept,emp

    2,导出方案

    Expdp scott/tiger DIRECTORY=dump_dir DUMPFILE=schema.dmp

    SCHEMAS=system,scott

    3.导出表空间

    Expdp system/manager DIRECTORY=dump_dir DUMPFILE=tablespace.dmp

    TABLESPACES=user01,user02

    4,导出数据库

    Expdp system/manager DIRECTORY=dump_dir DUMPFILE=full.dmp FULL=Y

    使用IMPDP

    IMPDP命令行选项与EXPDP有很多相同的,不同的有:

    1,REMAP_DATAFILE

    该选项用于将源数据文件名转变为目标数据文件名,在不同平台之间搬移表空间时可能需要该选项.

    REMAP_DATAFIEL=source_datafie:target_datafile

    2,REMAP_SCHEMA

    该选项用于将源方案的所有对象装载到目标方案中.

    REMAP_SCHEMA=source_schema:target_schema

    3,REMAP_TABLESPACE

    将源表空间的所有对象导入到目标表空间中

    REMAP_TABLESPACE=source_tablespace:target:tablespace

    4.REUSE_DATAFILES

    该选项指定建立表空间时是否覆盖已存在的数据文件.默认为N

    REUSE_DATAFIELS={Y | N}

    5.SKIP_UNUSABLE_INDEXES

    指定导入是是否跳过不可使用的索引,默认为N

    6,SQLFILE

    指定将导入要指定的索引DDL操作写入到SQL脚本中

    SQLFILE=[directory_object:]file_name

    Impdp scott/tiger DIRECTORY=dump DUMPFILE=tab.dmp SQLFILE=a.sql

    7.STREAMS_CONFIGURATION

    指定是否导入流元数据(Stream Matadata),默认值为Y.

    8,TABLE_EXISTS_ACTION

    该选项用于指定当表已经存在时导入作业要执行的操作,默认为SKIP

    TABBLE_EXISTS_ACTION={SKIP | APPEND | TRUNCATE | FRPLACE }

    当设置该选项为SKIP时,导入作业会跳过已存在表处理下一个对象;当设置为APPEND时,会追加数据,为TRUNCATE时,导入作业会截断表,然后为其追加新数据;当设置为REPLACE时,导入作业会删除已存在表,重建表病追加数据,注意,TRUNCATE选项不适用与簇表和NETWORK_LINK选项

    9.TRANSFORM

    该选项用于指定是否修改建立对象的DDL语句

    TRANSFORM=transform_name:value[:object_type]

    Transform_name用于指定转换名,其中SEGMENT_ATTRIBUTES用于标识段属性(物理属性,存储属性,表空间,日志等信息),STORAGE用于标识段存储属性,VALUE用于指定是否包含段属性或段存储属性,object_type用于指定对象类型.

    Impdp scott/tiger directory=dump dumpfile=tab.dmp

    Transform=segment_attributes:n:table

    10.TRANSPORT_DATAFILES

    该选项用于指定搬移空间时要被导入到目标数据库的数据文件

    TRANSPORT_DATAFILE=datafile_name

    Datafile_name用于指定被复制到目标数据库的数据文件

    Impdp system/manager DIRECTORY=dump DUMPFILE=tts.dmp

    TRANSPORT_DATAFILES=’/user01/data/tbs1.f’


    调用IMPDP

    1, 导入表

    Impdp scott/tiger DIRECTORY=dump_dir DUMPFILE=tab.dmp

    TABLES=dept,emp


    Impdp system/manage DIRECTORY=dump_dir DUMPFILE=tab.dmp

    TABLES=scott.dept,scott.emp REMAP_SCHEMA=SCOTT:SYSTEM

    第一种方法表示将DEPT和EMP表导入到SCOTT方案中,第二种方法表示将DEPT和EMP表导入的SYSTEM方案中.

    注意,如果要将表导入到其他方案中,必须指定REMAP SCHEMA选项.


    2,导入方案

    Impdp scott/tiger DIRECTORY=dump_dir DUMPFILE=schema.dmp

    SCHEMAS=scott


    Impdp system/manager DIRECTORY=dump_dir DUMPFILE=schema.dmp

    SCHEMAS=scott REMAP_SCHEMA=scott:system

    3,导入表空间

    Impdp system/manager DIRECTORY=dump_dir DUMPFILE=tablespace.dmp

    TABLESPACES=user01

    4,导入数据库

    Impdp system/manager DIRECTORY=dump_dir DUMPFILE=full.dmp FULL=y

     
     
    展开全文
  • 原因可能是 缺少的 数据为空 解决办法 1.用以下这句查找空并生成执行命令 select 'alter table '||table_name||' allocate extent;' from user_tables where num_rows=0; 2.将查询结果的内容导出,执行...

    原因可能是 缺少的表 数据为空

    解决办法

    1.用以下这句查找空表并生成执行命令
    select 'alter table '||table_name||' allocate extent;' from user_tables where num_rows=0;

    2.将查询结果的内容导出,执行导出的语句。

    3.然后再用exp的方式去导出数据库,就可以完整的导出包括空表的数据库

    展开全文
  • SQL,在这里我理解成SQL Server。...排行第四的DB2(属IBM公司),与Oracle的定位和架构非常相似,就不赘述了。 如果要说明三者的区别,首先就要从历史入手。Oracle:中文译作甲骨文,这是一家传奇的公司,有一个传...
  • ORACLE数据库傻瓜手册

    千次阅读 2010-04-15 10:24:00
    Oracle傻瓜手册 Oracle8以8.1.5为界分为普通版本和internet版本。普通版版本号8.0.x,接触较多的是8.0.5;internet版版本号包括8.1.5(Release 1),8.1.6(Release 2),8.1.7(Release 3)。普通版简称Oracle 8,...
  • Oracle安装的一些问题收集[转]

    千次阅读 2007-01-24 16:39:00
    Oracle安装的一些问题收集[转] Posted on 2006-06-16 15:21 小草 阅读(3788) 评论(1) 编辑 收藏 引用 网摘 所属分类: 数据库技术 <!--...
  • Oracle Stream Replication技术

    万次阅读 2017-12-06 09:41:16
    Stream 是Oracle 的消息队列(也叫Oracle Advanced Queue)技术的一种扩展应用。 Oracle 的消息队列是通过发布/订阅的方式来解决事件管理。流复制(Stream replication)只是基于它的一个数据共享技术,也可以被...
  • 排行第四的DB2(属IBM公司),与Oracle的定位和架构非常相似,就不赘述了。 如果要说明三者的区别,首先就要从历史入手。 Oracle:中文译作甲骨文,这是一家传奇的公司,有一个传奇的大老板Larry Ellision。 ...
  • ORACLE傻瓜手册

    千次阅读 2006-02-13 12:44:00
    转自 http://www.freebsdchina.org/forum/viewtopic.php?t=1739&view=next&sid=efce60572a492cfeeae49d4986e82de21 安装所有参见内容...1.1 通用设置文件系统swap创建文件系统时应考虑Oracle对swap的需要,大约每个orac
  • sybase基础知识(新手必看)

    万次阅读 2011-09-21 09:03:56
    第一讲 Sybase基础知识 一、客户/服务器体系结构 Sybase是一种建立在客户/服务器体系结构上的数据库管理系统。 ●什么是客户/服务器体系结构?...从硬件角度看,客户/服务器体系结构是指将某项任务在两台或多台...
  • ORACLE在用户及权限管理上有许多新的概念和特性。 & 说明: 对用户及权限的管理需要进入SQL*Plus交互工具。每一个SQL语句后要以分号“;”结束。退出交互工具命令为:quit SQL命令语句及可选项不区分...
  • oracle streams技术详解

    千次阅读 2014-10-20 18:10:51
    Stream 是Oracle 的消息队列(也叫Oracle Advanced Queue)技术的一种扩展应用。 Oracle 的消息队列是通过发布/订阅的方式来解决事件管理。流复制(Stream replication)只是基于它的一个数据共享技术,也可以被...
  • Oracle安装的一些问题收集

    千次阅读 2009-10-12 15:16:00
    比如在安装的时候如果有中文的路径则会出现类似这样的提示:加载数据库时出错:areasQueries Oracle的系统要求 企业版:CPU 最低PENTIUM 200M 推荐 PENTIUMIII 1G以上 内存 最低128M 推荐 512M 硬盘空间 ...
  • Oracle安全全接触

    千次阅读 2008-10-06 11:35:00
    Oracle数据库更是凭借其性能卓越,操作方便灵活的特点,在数据库的市场中已经占据了一席之地。但是同样随着网络技术的不断进步,数据信息的不断增加,数据安全已经不再是以前的“老生长谈”,也更不是以前书本上...
  • 客户环境概览 2结点RAC(旧) 共享存储(旧) 2结点RAC(新) 共享存储(借用,中转数据使用,用完后需归还)   实施方案: 由于只更换服务器不更换共享存储,所以需要先在新服务器+新共享存储上搭建完RAC环境,...
  • Sybase基础知识(新手必看)

    千次阅读 2015-03-12 18:28:40
    第一讲 Sybase基础知识 一、客户/服务器体系结构 Sybase是一种建立在客户/服务器体系结构上的数据库管理系统。 ●什么是客户/服务器体系结构?...从硬件角度看,客户/服务器体系结构是指将某项任务在两台或多台...
  • sql server

    千次阅读 2012-03-23 01:14:56
    sql server 作者:Sanle 来源:博客园 发布时间:2006-04-27 13:06 阅读:3402 次 原文链接 [收藏]  ...1.清空日志:DUMP TRANSACTION 库名 WITH NO_LOG  ...2.截断事务日志:BACKUP LOG 数据库名 WITH NO_...
  • 机器学习干货贴

    万次阅读 2016-10-02 01:58:28
    1.Kaggle Ensembling Guide 摘要:Creating ensembles from submission files Voting ensembles. Averaging Ra... 2.[导读]Machine Learning Theory 摘要:机器学习相关理论,Machine Learning Theory - Part 1: ...
  • ORACLE甚而,PL/SQL基础

    千次阅读 2011-01-19 16:44:00
    Oracle PL/SQL语言基础 PL/SQL是ORACLE对标准数据库语言的扩展,ORACLE公司已经将PL/SQL整合到ORACLE 服务器和其他工具中了,近几年中更多的开发人员和DBA开始使用PL/SQL,本文将讲述PL/SQL基础语法,...
1 2 3 4 5 6
收藏数 108
精华内容 43
热门标签
关键字:

dmp恢复缺表 oracle