热门标签 | HotTags
当前位置:  开发笔记 > 数据库 > 正文

Oracle12c新特点详述

Oracle12c新特点详述,可插拔数据库(PluggableDatabase,PDB),ASMGrid,管理功能的增强,维护、升级、恢复及数据泵等.

Oracle 12c新特点详述,可插拔数据库(Pluggable Database,PDB),ASMGrid,管理功能的增强,维护、升级、恢复及数据泵等.

1. Oracle 12c PDB新特点的优势

1) 可以把多个PDB集成进一个平台。

2) 可以快速提供一个新的PDB或一个已有PDB的克隆。

3) 通过拔插技术,可以快速把存在的数据库重新部署到一个新平台上。

4) 多个PDB数据库补丁或升级一次完成。

5) 通过把单个PDB拔插到较高版本的不同CDB,可以补丁或升级一个PDB。

6) 从同一个CDB中众多PDB中分离出某个PDB的内容。

7) 分离这些PDB应用管理员的责任。

2. 12c PDB新特点的功能

1) 在一个CDB中,你可以拥有很多PDB。

2) PDB和12.1之前版本的普通数据库是向后兼容的。

3) PDB对应用是透明的——你不需要改变客户端代码或数据库对象。

4) RAC中每个实例作为一个整体打开CDB(因此CDB和其中的PDB数据库版本都是相同的)。

5) 会话仅仅看到它自己连接的那个PDB。

6) 你可以从一个CDB拔出一个PDB,然后插入另一个CDB。

7) 你可以在同一个CDB或不同CDB间克隆PDB。

8) 资源管理器随着PDB的功能得以扩展。

9) 通过SQL语句实现了实体PDB的操作(创建,拔出,插入,克隆,清除,设置打开模式)。

10) 当连接到所谓的“根”(root)时,CDB管理员来执行这些操作。

11) 所有的PDB能被一次备份,但可以分别单独恢复。

3. 12c PDB的详解

1) 每个PDB有自己的私有数据字典用于用户创建的数据库对象;另一方面,CDB作为一个整体也包含Oracle提供系统的数据字典,其中,每个数据字典定义自己的命名空间。换句话说,有全局数据字典(CDB级)和本地数据字典(PDB级)。

2) 有新的分开的数据字典架构,该架构允许一个PDB被快速从一个CDB拔出并插入一个不同的CDB。

3) 每个PDB只能看到Oracle提供系统的只读定义。

4) 有全局数据库参数,也有本地数据库参数。PDB参数仅仅属于特定的PDB,并且拔出后,PDB参数也将保持不变。

5) 数据库用户可以是全局的(CDB)或本地的(PDB)。SYS和SYSTEM用户一开始就在两级DB中存在。如果你在CDB中创建了一个新用户,那么你在PDB中也能看到这个用户。在PDB中创建的用户只能在该PDB中使用。

6) 临时表空间可以是全局或本地的。

7) Redo日志和Undo表空间都是全局的(CDB级)。

8) Data Guard在CDB级作为一个整体发挥作用;RMAN调度的备份也作为一个整体在CDB级完成;任何时候,你可以只备份一个PDB。

9) 应用连接PDB时,不需做代码修改;系统管理员可以连接CDB;连接串中的服务名确定目标PDB。

10) PDB允许更加清晰的声明定义一个应用;一个PDB对同一个CDB里的其他PDB一无所知;每个PDB是个密闭的容器。这保证了新层面DB的独立和安全。

4. 连接到一个PDB

创建一个PDB时,一个服务也会被创建在该PDB内,并且,该服务被作为初始化容器。你可以通过下列语句显示目前的容器:

selectSys_Context('Userenv', 'Con_Name') "current container" from dual;

在12.1 SQL*Plus提示符下,你能用SHOW con_name来显式目前的容器。

在创建PDB时,也会启动服务。虽然服务的元数据被记录在PDB中,但名字和PDB名字是一样的。会话将被一个不能改变目前容器的用户创建。

客户端应用代码通常被设计成在代码外面确定连接描述信息。例如:代码也许使用TNS别名,允许在不改变代码的情况下改变连接串。

当然,在一个PDB中可以有多个服务。每个将表示它被定义为PDB初始目前容器。可以用常规方法创建、维护、清除PDB中另外的服务,但一定不要清除PDB中默认的服务。建立初始容器是一个PDB的会话的唯一方法是确定一个服务。

下面的例子中,看如何用容易的语法连接到Orale12c中被叫做“cdb1”的CDB,并且连接到其中一个PDB:

sqlplusSys/Sys@localhost:1521/cdb1 AS SYSDBA

CONNECTScott/tiger@localhost:1521/My_PDB

5. 创建并打开一个新的Oracle12c可插拔数据库(PDB)

现在,我们将要创建并打开一个名叫my_pdb新的可插拔数据库(PDB)。每个CDB都有一个叫做 PDB$Seed 的标准的PDB模板。我们实际是通过克隆该模板来创建一个新PDB。看下面例子:

sqlplussys/pass@localhost:1521/cdb1 as sysdba

create pluggable database My_PDB

admin user App_Admin identified by pass

file_name_cOnvert= ('/pdbseed/', '/my_pdb/');

“ file_name_convert”子句确定新文件名如何从模板库派生出来,这点和我们知道的rman差不多。在PDB创建期间,Oracle仅拷贝system和sysaux表空间的两个数据 文件,undo,redo等其余数据库文件是CDB全局的文件,并且它们属于特定的叫做CDB$Root的容器。

“admin user”子句是必须的,在扩展格式,给新用户赋予了权限和角色,该用户仅在my_pdb内可以创建新会话。

在创建完可插拔数据库后,新的PDB处于MOUNTED模式。在新PDB中创建一个新会话前,必须先打开它。因此,我们可以用下面的命令打开它:

alter pluggabledatabase My_PDB open;

6. 检查容器数据库(CDB)和可插拔数据库(PDB)文件

select con_id,tablespace_name, file_name

fromcdb_data_files

where file_Namelike '%/cdb1/pdbseed/%'

or file_Namelike '%/cdb1/my_pdb/%'

order by 1, 2;

CON_IDTablespace_Name File_Name

------------------ -------------------------------------------------

2 SYSAUX /home/oracle/oradata/cdb1/pdbseed/sysaux01.dbf

2 SYSTEM /home/oracle/oradata/cdb1/pdbseed/system01.dbf

3 SYSAUX /home/oracle/oradata/cdb1/My_PDB/sysaux01.dbf

3 SYSTEM /home/oracle/oradata/cdb1/My_PDB/system01.dbf

7. Open all Oracle 12c Pluggable Databases (PDB)

推荐阅读
  • 尽管PHP是一种强大且灵活的Web开发语言,但开发者在使用过程中常会陷入一些典型的陷阱。本文旨在列出PHP开发中最为常见的10种错误,并提供相应的预防建议。 ... [详细]
  • 基于Java的学生宿舍管理系统设计
    本论文探讨了如何利用Java技术设计和实现一个高效的学生宿舍管理系统。该系统旨在提高宿舍管理的效率,减少人为错误,同时增强用户体验。通过集成用户认证、数据管理和查询功能,系统能够满足学校宿舍管理的多样化需求。 ... [详细]
  • 本文介绍了MySQL数据库的安全权限管理思想及其制度流程,涵盖从项目开发、数据库更新到日常运维等多个方面的详细流程控制,旨在通过严格的流程管理和权限控制,有效预防数据安全隐患。 ... [详细]
  • 本文将详细介绍Docker的网络架构,包括Docker自带的几种网络模式及其创建方法,探讨容器间及容器与外部世界的通信方式。此外,还将简要介绍单主机环境下的容器网络配置。 ... [详细]
  • Go 通过 Map/Filter/ForEach 等流式 API 高效处理数据
    go,通过,map,filter,foreach,等,流,式,ap ... [详细]
  • API网关作为微服务架构中的关键组件,扮演着系统与外部世界交互的唯一接口角色。它不仅封装了系统的内部复杂性,还为不同客户端提供了个性化的API接口。本文将探讨API网关的重要性及其核心功能。 ... [详细]
  • 收割机|篇幅_国内最牛逼的笔记,不接受反驳!!
    收割机|篇幅_国内最牛逼的笔记,不接受反驳!! ... [详细]
  • 本文介绍了Kettle资源库的基本概念、类型及其管理方法,同时探讨了Kettle的不同运行方式,包括图形界面、命令行以及API调用,并详细说明了日志记录的相关配置。 ... [详细]
  • Pikachu SQL注入实战解析
    作为一名网络安全新手,本文旨在记录个人在SQL注入方面的学习过程与心得,以备后续复习之用。通过逐步深入的学习,力求掌握每个知识点后再向下一个挑战迈进。 ... [详细]
  • 本文探讨了亚马逊Go如何通过技术创新推动零售业的发展,以及面临的市场和隐私挑战。同时,介绍了亚马逊最新的‘刷手支付’技术及其潜在影响。 ... [详细]
  • 如何在Mac上安全地移除U盘或移动硬盘
    U盘和移动硬盘作为常见的数据存储与传输设备,在日常学习和工作中扮演着重要角色。为了保护这些设备中的数据不被损坏,正确地从Mac电脑上安全移除它们至关重要。 ... [详细]
  • 个人用户可借鉴的企业级三大安全准则
    在数字时代,个人数据安全变得尤为重要。本文将探讨三个来自企业实践的安全原则,这些原则不仅适用于企业,也能帮助个人用户提升自身的信息安全防护水平。 ... [详细]
  • 一款专为电脑维修店设计的U盘启动盘制作工具,支持多种操作系统安装与维护。 ... [详细]
  • 本文介绍了Java中实现多线程的两种基本方式:继承Thread类和实现Runnable接口。通过示例代码详细解析了线程的创建、启动以及线程的生命周期。同时,探讨了线程的执行顺序、线程安全及其实现方法。 ... [详细]
  • 深入解析晶体振荡器的工作机制及其应用
    本文详细介绍了晶体振荡器的工作原理及主要功能,探讨了其在电子设备中的重要作用,并解释了相关技术术语,旨在为读者提供全面的技术参考。 ... [详细]
author-avatar
欧阳3721_208
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有