拓扑园

  • O&M
    • Universal部署
    • PHP+VUE+Laravel相关
  • Oracle性能优化
  • Oracle项目案例
    • Oracle近期项目案例(目录)
    • Oracle实战问题解析(目录)
    • Oracle数据库名变更流程(2种方式)
    • Oracle数据库目录更换流程(使用Oracle的clone工具)
    • Oracle数据库迁移方案(目录)
    • 标准化文档系列
  • Oracle基础知识
    • LLL的Oracle培训(分类)
    • LLL的docker培训(分类)
    • 标准化文档系列--(分类)
    • Oracle核心经典分析(分类)
    • 图灵小队----(分类并包含以下文章)
    • --MySQL8.0/Oracle/Memcached/Redis等安装配置于RHEL/OL6/7/8.X系列-运行环境最优配置
    • --PG安装配置于RHEL/9X系列-运行环境最优配置
    • --自动维护任务详解-开启、关闭信息统计收集(统计信息)
    • --图灵小队—Oracle/PostgreSQL下创建一个用户测试表(自行定义数据行)
    • --图灵小队-Oracle存储过程导出表的明细_UTL_FILE(文章)
    • --图灵小队-Oracle数据库删除/卸载操作指南(文章)
    • --图灵小队-Oracle常用性能查询SQL语句(文章)
    • --图灵小队-Oracle数据库上线前检查(文章)
    • --图灵小队-Oracle常用SQL语句(文章)
    • --图灵小队—Linux/Oracle脚本/MySQL合集(持续更新)
    • --图灵小队-Oracle技巧记录(文章)
    • ADG
    • RAC
    • ASM
    • OGG
    • RMAN
    • EXPDP/IMPDP
    • 工厂数据导入导出系列
  • MySQL
    • MySQL数据库规范
    • MySQL项目案例
    • MySQL安装配置
    • MYSQL集群项目
    • MySQL常见处理
    • MySQL-Sysbench专题
    • MySQL-Percona Toolkit专题
  • Linux
    • Shell编程
    • kubernetes
    • docker
    • Linux
    • PHP
    • Nginx
    • haproxy
    • mail
    • 网站
    • 域名
    • 网址收藏
  • 数据中心
    • 新框架系统集合
    • 工作文档
    • EBS数据文件扩容
    • VMware虚拟化
    • EBS系列
    • 大数据
    • SVN
    • zabbix
    • SAP
    • 备份相关
    • FC交换机
    • SVN
  • K-Studing
    • D8-Python学习
    • Oracle/MySQl等面试题
    • LG-MySQL
    • LG-Docker/K8S
    • LG-PostgreSQL
    • LG-ORACLE_BBED
    • LG-ORACLE
    • LG-Elasticsearch(ES)+ELK
    • Oracle-19C-OCP
    • WERN_ORACLE培训
    • redis数据库
    • Nginx培训学习系列
  • 其他
    • 外研英语4年级下册-听力
    • 影视系列
    • 如何使用iTunes软件通过抓包下载旧版本的ios的app
天高任鸟飞
Oracle/MySQL数据库恢复/数据迁移/生产规范报告技术交流:TEL:18562510581(微信同号);加微信入群
  1. 首页
  2. Oracle项目案例
  3. Oracle数据库迁移方案
  4. 正文

迁移方案7-Oracle数据迁移4—一张7.5亿行的表(没有做分区,没有优化索引)进行优化测试,并用最短停机窗口迁移到新分区表—步骤3-生产库迁移方法2—expdp/impdp停机迁移(可回收空间)

2023年6月10日 983点热度 1人点赞 0条评论

目录

  • 一、迁移方法2—expdp/impdp停机迁移
    • 1、停库并重启
      • (1)将数据库置为非归档模式
    • 2、导出数据(全库/压缩共需要2小时-如果环境不好可能需要3小时)
      • (1)导出要求
      • (2)导出命令
    • 3、获取表(SFC_BROOKNER_PARAM_LOG)当前索引的DDL
      • (1)查看表(SFC_BROOKNER_PARAM_LOG)有哪些索引
      • (2)获取创建索引的DDL语句
    • 4、删除生产库所有schema为mesprd的相关信息
      • (1)查找mesprd相关的表空间
      • (2)删除这些表空间
    • 5、导入部分数据——耗时需要1-2个小时
      • (1)导入要求
      • (2)导入命令
    • 6、给表(SFC_BROOKNER_PARAM_LOG  创建表空间(用于存放分区表)
      • (1)给所有分区创建表空间
      • (2)创建表,并进行范围分区
    • 7、导入表SFC_BROOKNER_PARAM_LOG的数据—耗时20分钟-2小时
      • (1)导入要求
      • (2)配置parfile参数文件
      • (3)导入数据
    • 8、收集新表的统计信息—耗时:163秒
    • 9、创建本地分区索引或全局分区索引
      • (1)创建索引表空间
      • (2)时间列-datectime_reated的索引必须要创建(创建本地分区索引)
      • (2)其他组合索引(开发沟通索引重建问题,需提前沟通)
    • 10、更改为归档模式

迁移方案7-Oracle数据迁移4—一张7.5亿行的表(没有做分区,没有优化索引)进行优化测试,并用最短停机窗口迁移到新分区表—步骤3-生产库迁移方法2—expdp/impdp停机迁移(可回收空间)

一、迁移方法2—expdp/impdp停机迁移

如果需要收缩所有的表空间,需要根据此部分进行。

1、停库并重启

(1)将数据库置为非归档模式

(导入数据会产生大量的redo和archivelog)

$lsnrctl stop
shutdown immediate;
startup mount;
alter database noarchivelog;
archive log list;
alter databse open;

2、导出数据(全库/压缩共需要2小时-如果环境不好可能需要3小时)

(1)导出要求

导出mesprd下的所有对象和数据。

(2)导出命令

expdp mesprd/mes800 directory=BACKUP_MES dumpfile=expdp.dmp logfile=expdp.log full=y compression=all

3、获取表(SFC_BROOKNER_PARAM_LOG)当前索引的DDL

(1)查看表(SFC_BROOKNER_PARAM_LOG)有哪些索引

select * from user_indexes where table_name='SFC_BROOKNER_PARAM_LOG';
IDX_SFC_BROOKNER_PARAM_LOG
SYS_C0073069
SFC_BROOKNER_PARAM_LOG_IX2

(2)获取创建索引的DDL语句

select dbms_metadata.get_ddl('INDEX','SFC_BROOKNER_PARAM_LOG_IX2','MESPRD') from dual;
select dbms_metadata.get_ddl('INDEX','SYS_C0073069','MESPRD') from dual;
select dbms_metadata.get_ddl('INDEX','IDX_SFC_BROOKNER_PARAM_LOG','MESPRD') from dual;

4、删除生产库所有schema为mesprd的相关信息

(1)查找mesprd相关的表空间

select tablespace_name from user_tablespaces;

(2)删除这些表空间

drop tablespace mesprd including contents and datafiles;

5、导入部分数据——耗时需要1-2个小时

单通道2小时;

并行8通道50分钟-1小时。

(1)导入要求

导入除SFC_BROOKNER_PARAM_LOG,统计信息以外的所有数据和对象。

(2)导入命令

impdp mesprd/mes800 directory=backup_mes dumpfile=expdp.dmp logfile=expdp_imp.log exclude=statistics,table:\"in \(\'SFC_BROOKNER_PARAM_LOG\'\)\" schemas=mesprd

6、给表(SFC_BROOKNER_PARAM_LOG  创建表空间(用于存放分区表)

(1)给所有分区创建表空间

create tablespace TBSP_SFCBROOKPARAMLOG_2020 datafile '/oracle/app/oracle/oradata/mesorcl/SFC_BROOKNER_PARAM_LOG_partation_2020.dbf' size 1G autoextend on next 500M maxsize unlimited uniform size 1M logging extent management local segment space management auto;
create tablespace TBSP_SFCBROOKPARAMLOG_2021 datafile '/oracle/app/oracle/oradata/mesorcl/SFC_BROOKNER_PARAM_LOG_partation_2021.dbf' size 1G autoextend on next 500M maxsize unlimited uniform size 1M logging extent management local segment space management auto;
create tablespace TBSP_SFCBROOKPARAMLOG_2022 datafile '/oracle/app/oracle/oradata/mesorcl/SFC_BROOKNER_PARAM_LOG_partation_2022.dbf' size 1G autoextend on next 500M maxsize unlimited uniform size 1M logging extent management local segment space management auto;
create tablespace TBSP_SFCBROOKPARAMLOG_2023 datafile '/oracle/app/oracle/oradata/mesorcl/SFC_BROOKNER_PARAM_LOG_partation_2023_01.dbf' size 1G autoextend on next 500M maxsize unlimited uniform size 1M logging extent management local segment space management auto;
alter tablespace TBSP_SFCBROOKPARAMLOG_2023  add datafile '/oracle/app/oracle/oradata/mesorcl/SFC_BROOKNER_PARAM_LOG_partation_2023_02.dbf' size 1G autoextend on;
create tablespace TBSP_SFCBROOKPARAMLOG_2024 datafile '/oracle/app/oracle/oradata/mesorcl/SFC_BROOKNER_PARAM_LOG_partation_2024.dbf' size 1G autoextend on next 500M maxsize unlimited uniform size 1M logging extent management local segment space management auto;

(2)创建表,并进行范围分区

注:此处有主键,会创建一个主键索引,此索引是普通索引(全局非分区索引)。

 create table mesprd.sfc_brookner_param_log
( 
id varchar2(32) default sys_guid() not null enable, 
datetime_created date default sysdate not null enable, 
user_created varchar2(80) default 'sys' not null enable, 
datetime_modified date, 
user_modified varchar2(80), 
state char(1) default 'a' not null enable, 
enterprise_id varchar2(32) default '*' not null enable, 
org_id varchar2(32) not null enable, 
workcenter_code varchar2(80) not null enable, 
equipment_code varchar2(80) not null enable, 
param_code varchar2(80) not null enable, 
param_name varchar2(240) not null enable, 
param_point varchar2(240) not null enable, 
actual_value varchar2(2000), 
incident_desc varchar2(2000), 
bruckner_code varchar2(80) not null enable, 
is_recom char(1) default 'n' not null enable, 
primary key (id)
using index pctfree 10 initrans 2 maxtrans 255 compute statistics 
storage(initial 65536 next 1048576 minextents 1 maxextents 2147483645
pctincrease 0 freelists 1 freelist groups 1
buffer_pool default flash_cache default cell_flash_cache default)
tablespace mesprd_tbsp enable
) segment creation immediate 
pctfree 10 pctused 40 initrans 1 maxtrans 255 
nocompress logging
storage(initial 65536 next 1048576 minextents 1 maxextents 2147483645
pctincrease 0 freelists 1 freelist groups 1
buffer_pool default flash_cache default cell_flash_cache default)
partition by range(datetime_created)(
partition p_2020 values less than(to_date('2021/01/01','yyyy/mm/dd')) tablespace TBSP_SFCBROOKPARAMLOG_2020,
partition p_2021 values less than(to_date('2022/01/01','yyyy/mm/dd')) tablespace TBSP_SFCBROOKPARAMLOG_2021,
partition p_2022 values less than(to_date('2023/01/01','yyyy/mm/dd')) tablespace TBSP_SFCBROOKPARAMLOG_2022,
partition p_2023 values less than(to_date('2024/01/01','yyyy/mm/dd')) tablespace TBSP_SFCBROOKPARAMLOG_2023,
partition p_2024 values less than(to_date('2025/01/01','yyyy/mm/dd')) tablespace TBSP_SFCBROOKPARAMLOG_2024
);

7、导入表SFC_BROOKNER_PARAM_LOG的数据—耗时20分钟-2小时

(1)导入要求

只导表SFC_BROOKNER_PARAM_LOG相关内容,不导统计信息,不导索引。

(2)配置parfile参数文件

vi impdp_sfc_param_log_retain_all.par

(3)导入数据

单通:1:45:24小时

并行(8通道):16-20分钟

impdp impdp_sfc_param_log_retain_all.par

8、收集新表的统计信息—耗时:163秒

begin 
  dbms_stats.gather_table_stats(ownname => 'MESPRD', tabname => 'SFC_BROOKNER_PARAM_LOG'); 
end;

9、创建本地分区索引或全局分区索引

注意:主键列已经自行创建了索引。如下:

根据需要的列,创建分区索引。

(1)创建索引表空间

create tablespace ind_SFC_BROOKNER_PARAM_LOG datafile '/oracle/oradata2/ind_SFC_BROOKNER_PARAM_LOG_01.dbf' size 4000M autoextend on next 500M maxsize unlimited uniform size 1M logging extent management local segment space management auto;

(2)时间列-datectime_reated的索引必须要创建(创建本地分区索引)

如果要创建全局索引,麻烦一些,分区删除时,需要重新更新索引。使用本地分区索引则不会有此问题。不过全局也可解决,在删除分区时进行update也可以。

--create index sfc_broo_peralogindex on SFC_BROOKNER_PARAM_LOG(datetime_created) global tablespace ind_SFC_BROOKNER_PARAM_LOG; --153秒
create index sfc_broo_peralogindex on SFC_BROOKNER_PARAM_LOG(datetime_created) local tablespace ind_SFC_BROOKNER_PARAM_LOG;

(2)其他组合索引(开发沟通索引重建问题,需提前沟通)

10、更改为归档模式

$lsnrctl stop
shutdown immediate;
startup mount;
alter database archivelog;
archive log list;
alter databse open;

 

本作品采用 知识共享署名 4.0 国际许可协议 进行许可
标签: 暂无
最后更新:2024年4月12日

admin

这个人很懒,什么都没留下

打赏 点赞
< 上一篇
下一篇 >

COPYRIGHT © 2022 拓扑园. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang

鲁ICP备2021020523号

鲁ICP备2021020523号