Skip to content

oracle 12c/18c 关于升级和迁移的几种常见场景详细执行步骤

 

如下为可能会碰到的涵盖非CDB和PDB / CDB互相升级迁移的场景,针对11g,12c和18c适用,对应官方的详细执行步骤:

(11.2.0.3之后的版本适用)

 

  • 将非CDB迁移和转换为具有不同Endian操作系统的PDB 
    HTML 
    PDF 
  • 使用不同的Endian操作系统将非CDB迁移到新服务器,同版本
    HTML 
    PDF 
  • 使用不同的Endian操作系统和相同版本
    HTML 
    PDF 
  • 使用相同的操作系统将非CDB迁移到新服务器并升级(跨版本)
    HTML 
    PDF 
  • 使用相同的操作系统将非CDB迁移到新服务器并使用
    HTML 
    PDF 
  • 将PDB拔出,插入和升级到新的CDB 
    HTML 
    PDF 
  • 使用相同的操作系统将非CDB升级和转换为PDB 
    HTML 
    PDF 
  • 在同一系统上升级非CDB 
    HTML 
    PDF 
  • 在同一系统上并行升级PDB 
    HTML 
    PDF 

Adaptive Log File Sync Optimization in 12c

参数“_use_adaptive_log_file_sync”在11gR2中引入,用于控制是在线日志相关进程自适应同步的开启和关闭。
在11.2.0.1和11.2.0.2中,参数的默认值为false。从11.2.0.3开始,默认值已更改为true,“_use_adaptive_log_file_sync”是一个动态参数,可以在系统级别更改。

ALTER SYSTEM SET“_use_adaptive_log_file_sync”= <FALSE / TRUE> scope = <both / spfile / memory>;

该特性的原理可以参考MOS 1541136.1。当此特性被开启后,可以在awr中的other instance activity stats中的redo synch poll writes,redo synch polls观察到。

在12.1.0.2版本之前建议关闭该特性,项目中遇到不少关于此特性造成的性能问题。

 

已知的bug:

13707904

13074706

25178179

Oracle 发布 18.3.0.0!!!!!!!!!!!

2018年7月23日 Oracle发布了18.3.0.0的版本,经过测试和资料查验,可以理解这个版本为12.2.0.2,意思就是这个是12c的稳定版本,类似12.1.0.2,11.2.0.2。

Oracle确实是在做重大变革,更新的频率和速度明显提升

目前可以在官网下载到linux版本的18.3.0.0数据库,4.3g

 

点击此链接访问下载位置:

18c文档的链接:

18c new fewtures介绍链接:

How to recreate idl_ub1$,idl_char$,idl_ub2$,idl_sb4$.

近期遭遇一个客户误truncate idl_ub1$表,导致数据库关闭后无法启动,在受到支援请求后在1小时内解决了此问题,遭遇了此类问题的处理方式主要如下,

以upgrade方式打开数据库,并截断相关表

startup upgrade
truncate table idl_ub1$;
truncate table idl_char$;
truncate table idl_ub2$;
truncate table idl_sb4$;

接着执行utlirp和rmjvm两个脚本,并关闭数据库

@c:\oracle\product\10.2.0\db_1\rdbms\admin\utlirp
shutdown immediate
startup upgrade
@c:\oracle\product\10.2.0\db_1\javavm\install\rmjvm
shutdown immediate
exit

 

再次启动数据库后,设置监听为临时不可用状态并依据数据库组件状态运行相关脚本

startup upgrade
alter system set "_system_trig_enabled"=false scope=memory;

@c:\oracle\product\10.2.0\db_1\javavm\install\initjvm.sql
-- 如果xml已经安装执行此脚本
@c:\oracle\product\10.2.0\db_1\xdk\admin\initxml.sql
@c:\oracle\product\10.2.0\db_1\xdk\admin\xmlja.sql
@c:\oracle\product\10.2.0\db_1\rdbms\admin\catjava.sql
--

shutdown immediate
exit

 

启动数据库并执行ultrp修复失效对象,运行编译修复后,修复完成。

startup upgrade
@c:\oracle\product\10.2.0\db_1\rdbms\admin\utlrp
exit

SQLPLUS / AS SYSDBA
shutdown immediate
startup
execute utl_recomp.recomp_serial();
exit

Oracle sharding in 18c

Sharding是一种数据层架构,其中数据在独立数据库中水平分区。

每个数据库都托管在具有自己的本地资源(CPU,内存,闪存或磁盘)的专用服务器上。 在这种配置中的每个数据库称为碎片。 所有分片一起组成一个逻辑数据库,称为分片数据库(SDB)

水平分区涉及跨分片拆分数据库表,以便每个分片包含具有相同列但行的不同子集的表。以这种方式分割的表也称为分片

下图显示了跨三个分片水平分区的表。

图1-1跨越碎片的表格的水平分区

下面是图1-1的描述
横跨碎片的水平分区”的描述

Description of Figure 1-2 follows

Oracle sharding的架构

分片基于无共享硬件基础架构,它消除了单点故障,因为分片不共享物理资源,如CPU,内存或存储设备。碎片在软件方面也松散耦合; 他们不运行集群件。

碎片通常托管在专用服务器上。这些服务器可以是商用硬件或工程系统。分片可以在单实例或Oracle RAC数据库上运行。它们可以放置在本地,云端或混合本地和云配置中。

从数据库管理员的角度来看,SDB由多个数据库组成,这些数据库可以集体或单独管理。但是,从应用程序的角度来看,SDB看起来像一个数据库:这些分片中的分片数量和数据分布对数据库应用程序是完全透明的。

分片适用于适用于分片数据库体系结构的自定义OLTP应用程序。使用分片的应用程序必须具有明确定义的数据模型和数据分布策略(一致的散列,范围,列表或复合),主要使用分片键访问数据。一个分片键的实例包括customer_idaccount_no,或country_id

 

Oracle 18c关于sharding的资料链接:

 

目前我们正在帮一个客户解决大表的分布式分区问题,采用的oracle shaerding 技术正在测试中,后续分享完整的过程。