数据泵对已经存在的表加载索引 imp 和impdp

本文涉及的产品
云原生数据仓库AnalyticDB MySQL版,基础版 8ACU 100GB 1个月
简介: 这里探讨了使用imp 和impdp对含有索引的表的导入的一点差别。 使用imp可以在表存在的情况下,不删除表,且导入表的数据和索引。 1)创建实验表cust(已存在) SQL> conn scott/yang已连接。

这里探讨了使用imp 和impdp对含有索引的表的导入的一点差别。

使用imp可以在表存在的情况下,不删除表,且导入表的数据和索引。

1)创建实验表cust(已存在)

SQL> conn scott/yang
已连接。
SQL> select * from cust;

        ID CUTNAME                                                             
---------- ----------                                                          
         1 JANE                                                                
         2 Jone                                                                
         3 TOM                                                                 
         4 yang                                                                 
         5 yangyi                                                              
         6 xiaonan                                                             
已选择6行。
SQL> create index indcust_id on cust(id);

索引已创建。
2)导出表

HOST exp scott/yang file=cust.dmp   tables=cust

连接到: Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
已导出 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集

即将导出指定的表通过常规路径...
. . 正在导出表                            CUST导出了           6 行
成功终止导出, 没有出现警告。

SQL> drop index indcust_id;
索引已删除

3)使用imp导入表

SQL> HOST imp scott/yang file=cust.dmp    tables=cust  ignore=y

连接到: Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

经由常规路径由 EXPORT:V11.01.00 创建的导出文件
已经完成 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集中的导入
. 正在将 SCOTT 的对象导入到 SCOTT
. 正在将 SCOTT 的对象导入到 SCOTT
. . 正在导入表                          "CUST"导入了           6 行
成功终止导入, 没有出现警告。
SQL> select * from cust;

        ID CUTNAME                                                             
---------- ----------                                                          
         1 JANE                                                                
         2 Jone                                                                
         3 TOM                                                                 
         4 yang                                                                 
         5  yangyi                                                              
         6 xiaonan                                                             
         1 JANE                                                                
         2 Jone                                                                
         3 TOM                                                                 
         4 yang                                                                 
         5 yangyi                                                                                                                      
         6 xiaonan                                                             
已选择12行。
SQL> select index_name from user_indexes
  2  where table_name='CUST';

INDEX_NAME                                                                     
------------------------------
                                                 
INDCUST_ID          

4)impdp的默认工作并非如此,监测到表存在时,impdp会跳过索引的创建                                                        

SQL> create table texp(id number,name varchar2(30));

表已创建。

SQL> insert into texp
  2  select rownum,tname
  3  from tab;
已创建9行。
SQL> commit;
提交完成。
SQL> create index indtexp_id on texp (id);
索引已创建。

5)导出表

expdp scott/yang  directory=dump dumpfile=scottexp.dp tables=texp

连接到: Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
启动 "SCOTT"."SYS_EXPORT_TABLE_01":  scott/******** directory=dump dumpfile=scotttexp.dmp tables=texp
正在使用 BLOCKS 方法进行估计...
处理对象类型 TABLE_EXPORT/TABLE/TABLE_DATA
使用 BLOCKS 方法的总估计: 64 KB
处理对象类型 TABLE_EXPORT/TABLE/TABLE
处理对象类型 TABLE_EXPORT/TABLE/INDEX/INDEX
处理对象类型 TABLE_EXPORT/TABLE/INDEX/STATISTICS/INDEX_STATISTICS
. . 导出了 "SCOTT"."TEXP"                              5.507 KB       9 行
已成功加载/卸载了主表 "SCOTT"."SYS_EXPORT_TABLE_01"
******************************************************************************
SCOTT.SYS_EXPORT_TABLE_01 的转储文件集为:
  F:\DUMP\SCOTTTEXP.DMP
作业 "SCOTT"."SYS_EXPORT_TABLE_01" 已于 23:29:38 成功完成


清除数据,并删除索引:
SQL> drop index indtexp_id;
索引已删除。
SQL> truncate table texp;
表被截断。

6)然后再导入表

impdp scott/yang  directory=dump dumpfile=scottexp.dp tables=texp
SQL> select count(*) from texp;

  COUNT(*)                                                                     
----------                                                                     
         9                                                                     
SQL> select index_name from user_indexes
  2  where table_name='TEXP';

未选定行

数据虽然导入了,但是索引没有创建。不过要解决这个问题也很简单,通过INCLUDE就可以解决这个问题:
SQL> truncate table texp;
表被截断。
impdp scott/yang directory=dump  dumpfile=scottexp.dp tables=texp table_exists_action=truncate include=index    

 连接到: Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
已成功加载/卸载了主表 "SCOTT"."SYS_IMPORT_TABLE_01"
启动 "SCOTT"."SYS_IMPORT_TABLE_01":  scott/******** directory=dump dumpfile=scotttexp.dmp tables=texp table_exists_action=truncate include=index
处理对象类型 TABLE_EXPORT/TABLE/INDEX/INDEX
处理对象类型 TABLE_EXPORT/TABLE/INDEX/STATISTICS/INDEX_STATISTICS
作业 "SCOTT"."SYS_IMPORT_TABLE_01" 已于 23:35:39 成功完成

SQL> select count(*) from texp;
  COUNT(*)                                                                     
----------                                                                     
         0                                                                
SQL> select index_name from user_indexes
  2  where table_name='TEXP';
INDEX_NAME                                                                     
------------------------------
                                                 
INDTEXP_ID    

 SQL> drop index indtexp_id;
索引已删除。

impdp  scott/yangdirectory=dump dumpfile=scotttexp.dmp tables=texp table_exists_action=truncate include=index include=table_data

连接到: Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
已成功加载/卸载了主表 "SCOTT"."SYS_IMPORT_TABLE_01"
启动 "SCOTT"."SYS_IMPORT_TABLE_01":  scott/******** directory=dump dumpfile=scotttexp.dmp tables=texp table_exists_action=truncate include=index include=table_data
处理对象类型 TABLE_EXPORT/TABLE/TABLE_DATA
. . 导入了 "SCOTT"."TEXP"                              5.507 KB       9 行
处理对象类型 TABLE_EXPORT/TABLE/INDEX/INDEX
处理对象类型 TABLE_EXPORT/TABLE/INDEX/STATISTICS/INDEX_STATISTICS
作业 "SCOTT"."SYS_IMPORT_TABLE_01" 已于 23:37:57 成功完成

最后检查一下是否成功
SQL> select count(*) from texp;
  COUNT(*)                                                                     
----------                                                                     
         9                                                                     
SQL> select index_name from user_indexes
  2  where table_name='TEXP';
INDEX_NAME                                                                     
------------------------------                                                 
INDTEXP_ID
                                                                     

 

相关实践学习
阿里云云原生数据仓库AnalyticDB MySQL版 使用教程
云原生数据仓库AnalyticDB MySQL版是一种支持高并发低延时查询的新一代云原生数据仓库,高度兼容MySQL协议以及SQL:92、SQL:99、SQL:2003标准,可以对海量数据进行即时的多维分析透视和业务探索,快速构建企业云上数据仓库。 了解产品 https://www.aliyun.com/product/ApsaraDB/ads
目录
相关文章
|
存储 弹性计算 固态存储
阿里云服务器ECS购买须知(备案、付费模式、实例规格等知识讲解)
本文介绍阿里云服务器ECS的备案、付费模式、实例规格、cpu与内存配置、镜像等知识,新手用户在购买阿里云服务器之前先了解这些知识,有助于我们选择适合自己的ECS云服务器。
1515 0
阿里云服务器ECS购买须知(备案、付费模式、实例规格等知识讲解)
|
数据处理
详细讲解ArcGIS中栅格计算器常用函数的使用
详细讲解ArcGIS中栅格计算器常用函数的使用
2426 1
|
存储 SQL Oracle
Oracle使用expdp/impdp实现全库导入导出的整体流程
Oracle的全库导入,首先一点必须先创建数据库,创建了数据库,才能往该数据库导入所有数据。相对来说,使用Oracle进行数据导入导出还很有些“麻烦”的,大多数资料上来就是......
13302 0
Oracle使用expdp/impdp实现全库导入导出的整体流程
|
9月前
|
数据库
【YashanDB 知识库】数据库一主一备部署及一主两备部署时,主备手动切换方法及自动切换配置
**数据库主备切换简介** 在数据库正常或异常情况下,实现主备切换至关重要。若配置不当,主节点故障将影响业务使用,尤其在23.2版本中。原因包括资源紧张或主节点异常。解决方法涵盖手动和自动切换: 1. **一主一备部署**: - **手动切换**:支持Switchover(同步正常时)和Failover(主库损坏时)。 - **自动切换**:启用yasom仲裁选主开关。 2. **一主两备部署**: - 默认最大保护模式,自动切换开启。 需检查并配置自动切换以确保高可用性。经验总结:一主一备默认关闭自动切换,需手动开启;一主两备默认开启。
|
网络协议 C# C++
关于 C#调用一个C/C++dll库运行时实现多个应用(静态变量区分) 的解决方法
关于 C#调用一个C/C++dll库运行时实现多个应用(静态变量区分) 的解决方法
关于 C#调用一个C/C++dll库运行时实现多个应用(静态变量区分) 的解决方法
|
存储 弹性计算 安全
阿里云服务器ECS产品知识及购买和使用常见问题及答案汇总
本文总结了阿里云用户在购买和使用阿里云服务器中的一些常见的问题,包括什么是云服务器ECS,特性与优势,应用场景,基本概念,使用限制等众多问题,适合新手用户全方位了解阿里云服务器,并根据自己的需求选择自己满意的云服务器。
阿里云服务器ECS产品知识及购买和使用常见问题及答案汇总
|
存储 缓存 芯片
STM32--USART串口
STM32--USART串口
400 0
|
弹性计算 安全 关系型数据库
2023年购买阿里云服务器、注册域名、备案及绑定教程参考(图文教程)
本文根据阿里云2023年的云服务器购买和注册域名及备案等相关政策和活动,为大家展示了2023年阿里云服务器的购买流程,域名注册、绑定以及备案教程,全文以图文教程形式为大家展示具体细节及注意事项,以供新手用户参考。
3629 1
2023年购买阿里云服务器、注册域名、备案及绑定教程参考(图文教程)
|
弹性计算
阿里云ecs和域名的购买,绑定,备案教程
本文包含了阿里云ecs和域名的购买,绑定,备案教程,需要在阿里云购买ecs和域名并备案的用户参考,通过此文您可以了解在阿里云购买ecs、域名并如何做备案的大致流程。 一.阿里云ECS的购买流程1.注册阿里云2.登录阿里云进入阿里云系统,选择-产品-云服务器ECS 3.点击立即购买4.选择ECS云服务器所在地域,实例规格,地域,如果您是新手用户不知道如何选择,推荐参考阿里云帮助中心:①.地域和可用区(教您选择地域)。
12056 0
|
存储 JSON 前端开发
multi-agent:多角色Agent协同合作,高效完成复杂任务
随着LLM的涌现,以LLM为中枢构建的Agent系统在近期受到了广泛的关注。Agent系统旨在利用LLM的归纳推理能力,通过为不同的Agent分配角色与任务信息,并配备相应的工具插件,从而完成复杂的任务。