博客
关于我
Oracle-impdp 按照用户导出,导入后发现存在部分索引不存在,缺失索引是关联其它用户创建的?
阅读量:445 次
发布时间:2019-03-06

本文共 962 字,大约阅读时间需要 3 分钟。

在使用Oracle数据泵(impdp)进行数据导出和导入时,用户可能会遇到部分索引缺失的问题,特别是当这些索引是由其他用户创建的。以下是对此问题的详细分析和解决方案:

  • 问题背景

    • 用户在进行数据泵导出(expdp)和导入(impdp)操作时,发现导入的表中存在部分索引缺失。
    • 这些缺失的索引是由其他用户(如SYS)创建的,而不是导入用户自己创建的。
  • 测试步骤分析

    • 测试环境为11G单实例,用户创建了表system.test1system.test2,并为test_usr用户授予了select权限。
    • 创建了两个索引:test_usr.ind_object_idtest_usr.ind_object_id2,分别在test1test2表中。
    • 使用expdp导出数据时,指定了INCLUDE=index选项,以确保索引被导出。
    • 使用impdp导入时,同样指定了INCLUDE=index选项,以确保索引被正确导入。
  • 问题原因分析

    • 导出选项的问题:虽然expdp中使用了INCLUDE=index选项,但这可能不足以确保所有索引都被正确导出,尤其是当索引是由其他用户创建时。
    • 导入选项的问题:在impdp导入时,如果没有正确指定INCLUDE=index,或者没有处理表空间和权限,可能会导致索引无法被正确创建。
    • 表空间和权限问题:确保导入时的表空间和权限设置正确,以允许索引的创建。
  • 解决方案

    • 正确配置导入选项:在impdp导入时,确保使用INCLUDE=index选项,以处理所有索引。
    • 检查表空间和权限:确认导入时的表空间和权限设置正确,避免索引创建时出现权限不足的问题。
    • 验证导出数据完整性:确保在expdp导出时,所有相关的DML和DDL语句都被正确导出,尤其是索引的创建语句。
    • 处理系统用户的索引:如果索引是由系统用户创建的,确保在导入时系统用户有足够的权限来创建这些索引。
  • 优化建议

    • impdp导入时,使用``选项来确保所有相关的表和索引都被正确导入。
    • 定期进行测试,验证导入后的数据完整性,尤其是索引是否存在。
    • 检查和更新表空间的大小和参数,确保索引能够被正确创建和使用。
  • 通过以上分析和解决方案,可以有效地解决在使用Oracle数据泵导入时索引缺失的问题,确保所有必要的索引都被正确导入和创建。

    转载地址:http://colyz.baihongyu.com/

    你可能感兴趣的文章
    php 返回html字符串长度限制,记一次js中和php中的字符串长度计算截取的终极问题和完美...
    查看>>
    php 阿里云oss 上传回调
    查看>>
    PHP 面向对象 final类与final方法
    查看>>
    php+JQ+EasyUI自动加载数据
    查看>>
    php+sql server根据自增序号id区间查询第几条到第几条的数据
    查看>>
    php--------获取当前时间、时间戳
    查看>>
    Redis使用场景举例
    查看>>
    php--正则表达式
    查看>>
    php--防止sql注入的方法
    查看>>
    PHP-CGI Windows平台远程代码执行漏洞复现(CVE-2024-4577)
    查看>>
    php-cgi耗尽报502错误
    查看>>
    php-cgi(fpm-cgi) 进程 CPU 100% 与 file_get_content...
    查看>>
    PHP-DI/Invoker 开源项目使用教程
    查看>>
    php-fpm与Nginx运行常见错误说明
    查看>>
    php-fpm比php成为apache模块好在哪
    查看>>
    php-fpm超时时间设置request_terminate_timeout分析
    查看>>
    php-fpm进程数优化
    查看>>
    PHP-GD库-分类整理
    查看>>
    php-laravel框架用户验证(Auth)模块解析(一)
    查看>>
    php-laravel框架用户验证(Auth)模块解析(三)登录模块
    查看>>