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)

相关推荐

  • 最新单机游戏排行榜,十大好玩的单机游戏有哪些

    技术最新单机游戏排行榜,十大好玩的单机游戏有哪些人人心中都有一个武侠江湖梦推荐几款高品质的武侠单机游戏最新单机游戏排行榜!对于国产单机游戏来说,2020年是一个国产单机大作云集的年度,其中尤以武侠类为甚,口碑爆棚的《天地

    生活 2021年10月26日
  • mysql​升级过程中的mysql Cannot add foreign key constraint错误怎么解决

    技术mysql​升级过程中的mysql Cannot add foreign key constraint错误怎么解决本篇内容介绍了“mysql升级过程中的mysql Cannot add foreign key con

    攻略 2021年12月4日
  • Python中实用却不常见的小技巧是什么呢

    技术Python中实用却不常见的小技巧是什么呢这期内容当中小编将会给大家带来有关Python中实用却不常见的小技巧是什么呢,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。“Talk is

    攻略 2021年10月25日
  • web设计模式中的单例模式是什么

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

    攻略 2021年11月15日
  • consumer自带函数式接口(console接口是常用接口吗)

    技术基于Consumer接口、Predicate接口初使用是怎样的这篇文章将为大家详细讲解有关基于Consumer接口、Predicate接口初使用是怎样的,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这

    攻略 2021年12月20日
  • 如何通过Oracle来辅助MySQL数据问题的恢复

    技术如何通过Oracle来辅助MySQL数据问题的恢复这篇文章将为大家详细讲解有关如何通过Oracle来辅助MySQL数据问题的恢复,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。今天琢

    攻略 2021年10月26日