美文网首页
Module-Oracle技术文档

Module-Oracle技术文档

作者: SuperScfan | 来源:发表于2020-02-02 10:20 被阅读0次

    Oracle技术文档.md

    tags: Oracle

    环境说明:

    • Oracle11g
    • CentOS6.10/CentOS7.5

    功能(可选-建议操作)

    Oracel exp 导出空表数据

    TODO 寻找更好导出空表的方法

    问题原因:

    由于Oracle11g新特性,当表无数据时,不分配segment,以节省空间。而导出时只会导出已分配segment的表

    解决步骤:

    第一步: 修改系统配置

    设置deferred_segment_creation参数

    SQL> show parameter deferred_segment_creation 
    NAME                                 TYPE        VALUE 
    ------------------------------------ ----------- ------------------------------ 
    deferred_segment_creation            boolean     TRUE 
    SQL> alter system set deferred_segment_creation=false; 
    系统已更改。
    SQL> show parameter deferred_segment_creation 
    NAME                                 TYPE        VALUE 
    ------------------------------------ ----------- ------------------------------ 
    deferred_segment_creation            boolean     FALSE
    

    注意: 该值设置后对以前导入的空表不产生作用,仍不能导出,只能对后面新增的表产生作用。如需导出之前的空表,只能使用后续方法。

    **第二步: **处理空表

    方法1: 批量处理空表

    -- 首先使用下面的sql语句查询一下当前用户下的所有空表
    select table_name from user_tables where NUM_ROWS=0 or num_rows is null;
    
    然后用一下SQL语句执行查询
    -- select 'alter table '||table_name||' allocate extent;' from user_tables where num_rows=0 or num_rows is null;
    
    -- 查询结果如下所示..
    alter table TBL_1 allocate extent;
    alter table TBL_2 allocate extent;
    alter table TBL_3 allocate extent;
    alter table TBL_4 allocate extent;
    -- 执行上面语句即可
    

    方法2: insert一行,再rollback就产生segment了

    该方法是在在空表中插入数据,再删除,则产生segment。导出时则可导出空表。

    参考链接: Oracle导出空表

    Oracle数据导入导出

    Oracle导入导出命令

    # 导出数据
    exp fdm/qwe1234@192.168.100.165:1521/newfdm file=20190514_newfdm.db owner=fdm
    # 导入前需要删除原有数据库所有表+序列
    imp fdm/qwe123 file=/home/oracle/20190514_newfdm.db fromuser=fdm touser=fdm DESTROY=Y
    

    导出日志查看.配置 <导出空表数据> 后即可导出空表 xxx 0行

    [oracle@WOM ~]$ exp fdm/qwe123@192.168.172.70:1521/fdm file=fdm.db owner=fdm
    Export: Release 11.2.0.1.0 - Production on 星期三 10月 23 17:09:59 2019
    Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.
    连接到: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
    With the Partitioning, OLAP, Data Mining and Real Application Testing options
    已导出 UTF8 字符集和 AL16UTF16 NCHAR 字符集
    服务器使用 AL32UTF8 字符集 (可能的字符集转换)
    
    即将导出指定的用户...
    . 正在导出 pre-schema 过程对象和操作
    . 正在导出用户 FDM 的外部函数库名
    . 导出 PUBLIC 类型同义词
    . 正在导出专用类型同义词
    . 正在导出用户 FDM 的对象类型定义
    即将导出 FDM 的对象...
    . 正在导出数据库链接
    . 正在导出序号
    . 正在导出簇定义
    . 即将导出 FDM 的表通过常规路径...
    . . 正在导出表              ASSISTANT_ANALYSIS导出了           0 行
    . . 正在导出表               BACK_MINING_MODEL导出了           5 行
    . . 正在导出表        BACK_MINING_MODEL_ENTITY导出了          38 行
    . . 正在导出表                         WEB_LOG导出了        1463 行
    . 正在导出同义词
    . 正在导出视图
    . 正在导出存储过程
    . 正在导出运算符
    . 正在导出引用完整性约束条件
    . 正在导出触发器
    . 正在导出索引类型
    . 正在导出位图, 功能性索引和可扩展索引
    . 正在导出后期表活动
    . 正在导出实体化视图
    . 正在导出快照日志
    . 正在导出作业队列
    . 正在导出刷新组和子组
    . 正在导出维
    . 正在导出 post-schema 过程对象和操作
    . 正在导出统计信息
    导出成功终止, 但出现警告。
    

    相关文章

      网友评论

          本文标题:Module-Oracle技术文档

          本文链接:https://www.haomeiwen.com/subject/stoxxhtx.html