Focus On Oracle

Installing, Backup & Recovery, Performance Tuning,
Troubleshooting, Upgrading, Patching

Oracle Engineered System


当前位置: 首页 » 技术文章 » ASM

在18c中通过ASM Flex DiskGroup克隆PDB

截止到Oracle 18c,Oracle ASM DiskGroup有5中类型,包括External、Normal、High、Flex、Extended(在12.2中,用于Extend RAC)。在asmcmd lsdg的输出中,对于FLEX DiskGroup的磁盘组,Req_mir_free_MB和Usable_file_MB的值不适用,值始终未0。


在Oracle Database 12cR2中引入了面向数据库存储管理(database-oriented storage management)的概念,并引入了一种称为Flex DiskGroup的新型磁盘组。在Flex DiskGroup中,属于一个数据库(可以是Non-CDB或pdb)的所有文件,我们称之为“File Group”。File Group逻辑上包含了与单个数据库关联的文件。其中数据库的冗余是在File Group上设置的,有三个级别的冗余(HIGH, MIRROR, and UNPROTECTED),其中UNPROTECTED就类似于EXTERNAL。我们可以通过修改File Group的属性(ALTER DISKGROUP DATA MODIFY FILEGROUP PNONCDB SET 'datafile.redundancy' = 'HIGH')来改变数据库的冗余。

在oracle 18c中,还有一个新特性就是通过Oracle ASM Flex DiskGroup做基于时间点的PDB克隆,需要具体下面的条件

1.只支持FLEX和EXTENDED磁盘组类型
2.数据库是18.1以上的版本
3.磁盘组属性 COMPATIBLE.ASM,COMPATIBLE.RDBMS必须是18.0及以上
4.目前只支持在同一容器下的PDB的clone,对非容器数据库暂时还不支持
创建Flex磁盘组的语句
CREATE DISKGROUP DATA FLEX REDUNDANCY  DISK '/dev/oracleasm/disks/OHS3' SIZE 20480M
 DISK '/dev/oracleasm/disks/OHS4' SIZE 20480M
 QUORUM  DISK '/dev/oracleasm/disks/OHS5' SIZE 20480M
 ATTRIBUTE 'compatible.asm'='18.0.0.0','compatible.advm'='18.0.0.0','au_size'='4M';

我们还可以将Normal或High类型的磁盘组转化为Flex类型

SQL> CREATE DISKGROUP NORMALTOFLEX NORMAL REDUNDANCY
  DISK '/devices/diskm*'
  ATTRIBUTE 'au_size'='4M',
    'compatible.asm' = '18.0', 
    'compatible.rdbms' = '18.0',
    'compatible.advm' = '18.0';

Diskgroup created.

SQL> ALTER DISKGROUP normaltoflex CONVERT REDUNDANCY TO FLEX;

Diskgroup altered.

SQL> SELECT name, type FROM V$ASM_DISKGROUP WHERE name = 'NORMALTOFLEX';

NAME                           TYPE
------------------------------ ------
NORMALTOFLEX                   FLEX

下面的试验是把pdb1克隆到pdb3,下面是截图

用grid用户执行下面的步骤
sqlplus / as sysasm
alter diskgroup set attribute 'compitable.rdbms='18.0';

用数据库用户执行下面的步骤
sqlplus / as sysdba
alter session set container=pdb1;
alter pluggable database pdb1 prepare mirror copy pdbcopy;

conn / as sysdba
create pluggable database pdb3 from pdb1 using mirror copy pdbcopy;
alter pluggable database pdb3 open;

用grid用户执行下面的步骤
sqlplus / as sysasm
alter diskgroup data add quotagroup ohsqg set quota = 200g;
alter diskgroup data move filegroup pdbcopy to ohsqg;
alter diskgroup data modify filegroup pnoncdb set 'redundancy' = 'unprotected';


修改ASM的compitable.rdbms版本为18.0

创建基于pdb1的mirror copy,copy的名字为pdbcopy(自定义的名字)

注意:在创建pdb3时,您可能会得到一个ORA-59003错误。这表明副本还没有准备好被分割。如果是的话,等几分钟再试一次。

下面是做prepare mirror copy pdbcopy时的ASM日志信息

创建quota group,来限制File Group(也就是数据库pdb3)的使用量,这一步是可选的


我们还可以修改File Group的冗余类型

通过chfg命令来修改,和通过命令行是一样的

alter diskgroup DATA modify filegroup PNONCDB set 'redundancy'='unprotected' ;

FileGroup的参考手册

Command Description

chfg

Modifies a file group in a disk group based on an XML configuration file or script.

chqg

Modifies a quota group in the disk group.

lsfg

List file groups in a disk group.

lsqg

Lists the quota groups in a disk group.

mkfg

Creates a file group in a disk group based on an XML configuration file or script.

mkqg

Adds a quota group to the disk group.

mvfg

Moves a file group in a disk group to the specified quota group.

rmfg

Removes an existing file group from a disk group.

rmqg

Drops a quota group from a disk group.

修改FileGroup冗余类型

修改File Group时对应的ASM alert日志



Reference
https://docs.oracle.com/en/database/oracle/oracle-database/18/ostmg/mirroring-diskgroup-redundancy.html
https://docs.oracle.com/en/database/oracle/oracle-database/18/ostmg/asm-filegroups.html
https://docs.oracle.com/en/database/oracle/oracle-database/18/ostmg/asmcmd-filegroup-commands.html


关键词:clone pdb oracle asm 

相关文章

Oracle数据库优化方面资料
Oracle Database 19c在优化方面有哪些新特性
Oracle Database 20c云端预览版发布了
Oracle 19c新特性之RAC Automatic Failback Service
Install Oracle RAC Database 19c Step by Step
Oracle DataGuard feature and workshop
如何使用Autoupgrade升级RAC数据库
Oracle PDB升级/迁移实践
关于Java的那些事
容器数据库(CDB)和可插拔数据库(PDB)概述
Vagrant with oracle
Install Oracle Database 19c on X86
Top