Oracle 12c R2版本 Application Containers的特性是什么

技术Oracle 12c R2版本 Application Containers的特性是什么本篇文章给大家分享的是有关Oracle 12c R2版本 Application Containers的特性是什么,小编觉得挺实

本文是关于Oracle 12c R2应用程序容器的特性。边肖觉得很实用,所以分享给大家学习。希望你看完这篇文章能有所收获。让我们和边肖一起看看。

在Oracle数据库12c R2版本中,Oracle带来了应用程序容器的新功能,它增强了原来的多租户功能。在CDB根容器中,可以创建一个名为应用程序根的容器,它类似于CDB根,并且可以在其中创建依赖于应用程序根的多个应用程序pdb。

“应用程序”

在应用程序容器特性下还有另一个概念,叫做“应用程序”。我们可以把“Application”理解为一个区域,“Application”只能在Application根目录下创建,在这里可以创建表、视图、函数等公共对象。然后,可以在应用程序数据库中使用同步同步命令,以实现将“应用程序”中的公共对象共享给应用程序数据库。

在本文中,通过创建“应用程序根/PDBs”和“应用程序”,我们将向您介绍应用程序容器的特性。在第二篇文章中,我们将向您介绍“应用程序”中的应用程序常见对象,并通过实验让您更直观地了解它们。

创建应用程序根

Root类似于普通的PDB创建语句,其中需要指定“作为应用程序容器”子句。

让我们先设置db_create_file_dest。

创建一个名为qdatacon1的应用程序根。

名为qdatacon1的应用程序根已成功创建。您可以检查它是否是应用程序根DBA _ pdbs。应用程序根字段为是。

打开QDatacon1

请注意,在使用应用程序容器功能时,有必要使用数据文件的OMF管理方法。虽然在没有OMF管理的情况下仍然可以成功创建应用程序根和应用程序pdb,但是当表空间包含在“应用程序”中时,在同步应用程序pdb中的“应用程序”时会报告错误ORA-01537,并且“应用程序”中的表空间不能同步到应用程序pdb中。

应用程序根的基本管理与普通PDB基本相同,包括应用程序根的克隆/拔出/插件/插件等。但是要注意作为应用程序容器的使用。

当然,如果您想拔出应用程序根并将其作为普通PDB插入CDB,那么请将其删除。

应用程序容器子句就可以了。

创建应用程序数据库

创建应用程序PDB时,它必须连接到相应的应用程序根目录,而不是CDB根目录。当它连接到应用程序根目录时,只需要以与普通PDB相同的方式创建它,并且不需要额外的子句。创建的PDB既是相应应用程序根中的应用程序PDB。

切换到应用程序根目录以创建应用程序PDB:qdcpdb1,然后切换到CDB

当通过show pdbs在CDB$root中显示时,应用程序PDB和普通PDB之间没有区别。

您可以通过cdb_pdbs视图查看应用程序PDB属于哪个应用程序根。

成功创建PDB应用程序后,可以使用同步命令将其与应用程序根目录中定义的应用程序同步。

更改可插入数据库应用程序所有同步;

应用程序

文章开头提到“应用”可以理解为一个区域,“应用”只能在Application root中创建和管理。

在“应用程序”的维护命令中,安装、修补、升级和卸载可能是最常用的命令。下面简要介绍三个命令。

安装应用程序

使用带有begin install子句的alter pluggable数据库时打开。

始一个“Application”的安装,这里可以理解为一个区域的开始,当安装完成后在Application PDB中使用sync命令同步相应的“Application”将会被自动安装在本PDB内。

这样我们开始了一个qdcon1_reg1的“Application”,使用end install命令封闭qdcon1_reg1,

可以通过dba_applications视图查看,已经安装的Application

Application安装完成后,可以在该Application root下的Application PDB中使用sync命令来进行同步,如下:

查看dba_applications视图,确认qdcon1_reg1是否已经安装

可以看到qdcon1_reg1已经安装完成,安装完成后qdcon1_reg1中的公共对象会以特定的方式被共享到相应的Application PDB中,

表tdata已经被共享到qdcpdb1中。

在Application root中可以通过dba_app_pdb_status视图,查看Application被安装到哪些Application PDB中

Patch an Application

在上面的小结中,当我们使用end install子句将“Application”封闭后,如果想再次在“Application”中创建对象(table/view/packages/sequence等),以及对“Application”内已经存在的对象进行alter操作时,我们可以使用patch子句对现有的“Application”进行修补操作。

如下示例,开始一个patch,并且在application内创添加表以及更改现存表的表结构:

删除Application内的表

删除失败

结束patch

查看patch信息

在qdcpdb1中同步qdcon1_reg1

tdata的表结构与texte表均同步完成

Upgrade an Application

对“Application”我们可以使用patch来对其进行修补操作,但修补操作只限添加/更改等,无法对已经存在“Application”中的公共对象进行删除操作,如果我们想对公共对象进行删除操作,可以使用UPGRADE子句对现有的“Application”进行升级,在升级的过程中,Oracle会首先自动创建Application root的Clone版本,Clone版本创建完成后,Application PDBs将指向Clone版本的Application root,“Application”将继续执行升级操作,升级完成之后,Application root的Clone版本将继续被保留,并且为不同步“Application”的Application PDB提供服务,同步“Application”后的Application PDB将指向升级后的Application root。

升级现有的qdcon1_reg1:F1956732192_4_1即为qdatacon1的clone版本

删除tdata表,并且创建新表tmeta:

结束升级,并查看版本信息

在qdcpdb1中同步qdcon1_reg1

tdata被删除/tmeata的创建已同步到qdcpdb1中。

Uninstall an Application

“Application”的卸载后并不会从数据字典中将该“Application”删除,它会被标记为UNINSTALL,以便“Application”不可以进行upgrade/patch/uninstall等操作,当uninstall命令发出后,需要将该“Application”中包含的对象全部删除。

uninstall同样会产生clone版本的Application root

删除对象且结束uninstall

因为对象并没有全部删除,导致end uninstall失败,下面继续drop用户和表空间:

查看被uninstall的qdcon1_reg1状态

在qdcpdb1中查看公共对象情况

表texte是extended data-linked方式,数据存储在Application root的qdata_tbs中,因为qdata_tbs已经被删除,所以在qdcpdb1中查询时报错,而tmeta为metadata-linked方式,数据存储在本地,所以可以在未做同步时可以查询。

同步qdcon1_reg1

同步完成。

以上就是Oracle 12c R2版本 Application Containers的特性是什么,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注行业资讯频道。

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/84802.html

(0)

相关推荐

  • mysql数据库备份恢复且保留新数据(mysql数据库的备份还原是怎么做的)

    技术mysql数据库增量数据恢复的方法是什么本篇内容介绍了“mysql数据库增量数据恢复的方法是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大

    攻略 2021年12月21日
  • Spring Cloud Gateway的断路器(CircuitBreaker)功能

    技术Spring Cloud Gateway的断路器(CircuitBreaker)功能 Spring Cloud Gateway的断路器(CircuitBreaker)功能欢迎访问我的GitHub
    h

    礼包 2021年11月19日
  • C#基础语法之-泛型

    技术C#基础语法之-泛型 C#基础语法之-泛型泛型:一共7个知识点
    1.引入泛型,延迟声明
    2.如何声明和使用泛型
    3.泛型的好处和原理
    4.泛型类,泛型方法,泛型接口,泛型委托
    5.泛型约束
    6.协变

    礼包 2021年12月18日
  • 聚焦近义词,“盯着”的近义词是什么

    技术聚焦近义词,“盯着”的近义词是什么见、视、瞧、瞥、瞄、目、相、窥、探、扫、白、瞪、望、盼、眺、睇、睨。“看”的口语化俗语,普通话有“瞧”、“瞅”等,粤语则是“睇”。“睇”字在香港随处听到,用的频率比“看”多百倍!其实

    生活 2021年10月30日
  • spark调优汇总(spark调优最佳配置)

    技术如何理解spark调优中的高层通用调优如何理解spark调优中的高层通用调优,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。一,并行度集群

    攻略 2021年12月17日
  • sqlite select语句(sql中select的功能)

    技术SQLite中的SELECT子句如何使用表达式这篇文章将为大家详细讲解有关SQLite中的SELECT子句如何使用表达式,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。SQLite中

    攻略 2021年12月18日