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)

相关推荐

  • SpringBoot应用程序使用Gradle配置脚本中的版本号

    技术SpringBoot应用程序使用Gradle配置脚本中的版本号 SpringBoot应用程序使用Gradle配置脚本中的版本号在Gradle构建系统时设置了项目的版本号,使用SpringBoot开发

    礼包 2021年12月16日
  • 如何进行Docker Swarm 集群环境搭建及弹性服务部署

    技术如何进行Docker Swarm 集群环境搭建及弹性服务部署如何进行Docker Swarm 集群环境搭建及弹性服务部署,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能

    攻略 2021年12月10日
  • 书写高质量SQL的30条建议分别是哪些

    技术书写高质量SQL的30条建议分别是哪些书写高质量SQL的30条建议分别是哪些,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。前言小编将结合实例demo,阐

    攻略 2021年11月30日
  • css如何设置单词内字母的间距

    技术css如何设置单词内字母的间距本篇内容介绍了“css如何设置单词内字母的间距”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有

    攻略 2021年11月15日
  • 中国标志性建筑,中国最著名的建筑有哪些

    技术中国标志性建筑,中国最著名的建筑有哪些中国有名的建筑有很多,如故宫、敦煌莫高窟,曲阜孔庙、孔林、孔府,武当山古建筑群,周口店北京人遗址,西安秦始皇陵及兵马俑坑,敦煌莫高窟,曲阜孔庙、孔林、孔府,武当山古建筑群,承德避

    生活 2021年10月27日
  • 如何理解解WCF契约应用

    技术如何理解解WCF契约应用本篇文章给大家分享的是有关如何理解解WCF契约应用,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。现在我们来具体实现一个WCF契约

    攻略 2021年11月16日