Execute Immediate代替了以前Oracle8i中DBMS_SQL package包。它解析并马上执行动态的SQL语句或非运行时创建的PL/SQL块.动态创建和执行SQL语句性能超前,Execute Immediate的目标在于减小企业费用并获得较高的性能,较之以前它相当容易编码。尽管DBMS_SQL仍然可用,但是推荐使用Execute Immediate,因为它获的收益在包之上。
Oracle 12c之前的数据库都是非CDB,从Oracle 12.1.0.2开始,不推荐使用非CDB体系结构,而是使用多租户架构。在多租户架构中,使用单个可插拔数据库(PDB)(也称为单租户或lone-PDB),可以不必支付多租户选项相关费用。 在标准版中,你不能无意中创建其他PDB;但在企业版中,你可能需要购买一些额外的许可证。 本文给出了一个例子,说明如何避免在Lone-PDB实例中创建多个用户定义的PDB。
Optimizer Statistics Advisor,统计信息 ,ORA-20001 , ORA-00932 ,12.2.0.1
关键字:Optimizer Statistics Advisor,统计信息 ,ORA-20001 ,ORA-4036,AUTO_STATS_ADVISOR_TASK
在使用Oracle多租户选件时,由于Container容器和PDB融合共存,则权限控制必将更加重要,在之前的文章中我们提到,Oracle 12.2 的 lockdown profile就是为了实现PDB中更为全面的权限控制。 我们在2016年『比特币事件』中,总结了:数据安全的十六大军规,其中有一条也明确提到最小权限守则,而且要真正实现权限管理。 SQL注入攻击的风险 我们来看看如果权限控制不当,可能遭遇到的数据库安全风险。根据最近披露的风险之一,通过SQL注入可能影响数据库的安全,以下问题影响到多租户的
Oracle 12c的多租户特性是Oracle Database历史上最重要的革新之一,在云时代这一特性展现出强大的整合威力。 基础简介 插接式数据库由一个使用 CDB(Container Datab
Oracle的多租户和MySQL,MSSQL的类似,把之前的一个实例对一个数据库的情形(RAC是多个实例对一个数据库)整合成了一个实例下可以挂多个数据库,并且定义为可插拔的,听起来很炫。就像在没有多租户特性之前,Oracle与MSSQL以及MySQL还是有很大的差异,因此对于Oracle的多租户也有一些不同的地方。本文主要描述Oracle 12c多租户架构。
描述: 目前一个12.2的库,数据库种有大量course: mutex X和course: mutex S等待事件,请问_cursor_obsolete_threshold这个参数有没有一个建议值,我查了最佳实践里好像没有,现在值默认是8192,11.2默认值为1024。
作者简介 李真旭 Oracle ACE 专家,拥有超过10年的 Oracle 运维管理使用经验,参与过众多移动、电信、联通、银行等大型数据库交付项目,具有丰富的运维管理经验,对 Oracle 数据库管
原文链接 https://blog.dbi-services.com/oracle-12c-cdb-metadata-a-object-links-internals/ 译者 周天鹏 温馨提示:这篇文章只适合那些想了解多租户环境下数据字典、元数据和对象链接相关技术内幕的geek群体!对于你日常运维数据库来说并没有什么太大用处。千万别再生产环境上这么搞,你可能会损毁你的数据字典。 在12c的CDB中,我们知道每个PDB都是独立的。但这些PDB为了能整合到一个CDB里,会共享一些公共资源。例如,CPU、内
设置多租户(又名“virtual mode”,“multi-wiki”或“farm mode”),可以允许在相同的XWiki实例上运行多个wiki(即在同一个JVM)。
PL/SQL是ORACLE对标准数据库语言的扩展,ORACLE公司已经将PL/SQL整合到ORACLE 服务器和其他工具中了,近几年中更多的开发人员和DBA开始使用PL/SQL,本文将讲述PL/SQL基础语法,结构和组件、以及如何设计并执行一个PL/SQL程序。
容器(container)是多租户体系结构中的数据或元数据的逻辑集合。CDB(containerdatabase)容器数据库在图形化创建实例时若勾选了“创建为容器数据库(C)”则会出现容器数据库称之为CDB,否则称之为 Non-CDB,如之前的 11g 数据库就称之为非容器数据库 Non-CDB,那么 PDB(Pluggable Database )在 CDB 下被称作可插拔数据库。19c 还可以选择创建为非容器数据库 Non-CDB,但 20c 以后则强制使用 CDB,不在支持非容器数据库了。
内容来源:2017 年 04 月 08 日,ITPUB管理版版主吕海波在“DBGeeK+PG数据库技术沙龙(4月杭州站)”进行《Oracle中最容易被忽略的那些实用特性》演讲分享。
Oracle 12c 中引入了一个新功能就是Oracle Multitenant,这个功能可以在多租户容器数据库中,创建并维护许多个可插拔数据库。Oracle Multitenant是Oracle企业版中需要额外付费的组件。然而,在所有Oracle版本中都可以在一个可插拔数据库中免费使用它。 多租户容器数据库(CDB)是指能够容纳一个或者多个可插拔数据库的数据库。容器是指CDB中的数据文件和元数据的集合。可插拔数据库是指可以通过克隆另一个数据库轻松创建的数据容器。如果有必要,也可将可插拔数据库从一个CDB传送到另一个CDB。 所有含有一组主数据文件和元数据的CDB都是根容器。每个CDB也会含有种子容器,它是用于创建其它可插拔数据库的模板。每个CDB都由一个根容器、一个种子容器和0个、1个或多个可插拔数据库构成。
墨墨导读:Oracle考虑到2020年我们的客户将面临前所未有的经济和业务中断。我们决定不将Database 20c Preview版本升级为General Availability。相反,我们将所有20c功能都合并到21c版本中,并使21c在我们的“自制数据库免费层”中可用,以便所有人都可以免费试用驱动新功能和增强功能。
在2020年2月14日,Oracle 正式宣布在 Oracle Cloud 发布 Database 20c 的预览版,同时发布了所有的官方文档。
在学校的时候虽说上过PL/SQL这门课,然并卵,只恨当时啊!工作关系,需要用到Oracle存储过程。我就简单看了一些教程,特此记录一下。
数据字典就是元数据的集合,比如创建的表,列,约束,触发器等等这些都是元数据,需要保存到数据库中。除此之外,Oracle自身的一些数据库对象,如目录,PL/SQL代码等等这些都是元数据,都需要存放在数据字典中。随着12c 容器数据的普及,Oracle数据字典发生了哪些变化呢,下文即是具体描述。
Camunda Platform 7 offers significant flexibility with regards to architecture, deployment options, programming languages and supported infrastructure. This document covers Camunda process engine implementation options, supported infrastructure specifications, hardware sizing and recommended database management systems.
Oracle就是这么牛,从外部文件导入到Oracle中有N种方法,想把Oracle的数据导出成通用文件的方法却不多,梳理下来大致有三种办法:
在2019年的Oracle OpenWorld 大会上,关于Oracle Database 20c 的新特性已经逐步呈现出来。
当我们需要将Non-CDB数据库类型更改为PDB数据库类型时,可以使用Cloning的方式将其复制到现有的CDB中,但是该方法需要将Non-CDB中的数据文件复制到新的目录中,除了Cloning的方式外我们还可以使用DBMS_PDB包来生成Non-CDB数据库的XML元数据文件,该XML元数据文件中描述了Non-CDB中的数据文件信息,可以使用XML文件将Non-CDB数据库附加为CDB中的PDB,通过该方式将Non-CDB数据库转换成CDB中的PDB,它的优点在于省去了复制Non-CDB数据文件的过程,但要求Non-CDB必须为12.1.0之上的版本,如果Non-CDB为12c之前的版本,需要将其升级到12c,另外需要我们提前创建一个CDB容器数据库,或者现有环境中已存在CDB容器数据库(将Non-CDB插入已存在的CDB中)。
今天遇到一个 OceanBase 数据库下 Oracle 租户的 PLSQL 分隔符问题,特来分享下。
摘要:大家都知道在SQL中使用绑定变量可以提高性能,但现代的CPU已经非常强大了,还有必要强调这点吗?
1.1 异常处理概念 1.1.1 预定义的异常处理 1.1.2 非预定义的异常处理 1.1.3 用户自定义的异常处理 1.1.4 用户定义的异常处理 1.2 异常错误传播 1.2.1 在执行部分引发异常错误 1.2.2 在声明部分引发异常错误 1.3 异常错误处理编程 1.4 在 PL/SQL 中使用 SQLCODE, SQLERRM异常处理函数 即使是写得最好的PL/SQL程序也会遇到错误或未预料到的事件。一个优秀的程序都应该能够正确处理各种出错情况,并尽可能从错误中恢复。任何ORACLE错误(报告为
函数是用于返回单个值的子程序。你必须在调用函数之前声明并定义一个函数。它可以在同一时间声明和定义, 也可以在同一块中先声明然后定义。
SQLT:SQLTXPLAIN,也被称为 SQLT,是由 Oracle 服务器技术中心- ST CoE 提供的工具。SQL main methods 输入一条 SQL 语句并输出一组诊断文件。这些文件通常用于诊断执行不良的 SQL 语句。SQL 连接到数据库并收集执行计划、基于成本的Optimizer CBO 统计信息、模式对象元数据、性能统计信息、配置参数和影响所分析SQL的性能的类似元素。对于 tuning SQL, SQLT 需要一定程度的专业知识才能最大限度地利用它。对于大多数问题,我们建议您首先使用 SQL 运行状况检查(SQLHC:SQL Health Check)检查查询,如果无法解决问题,则转到 SQLT。
异常(EXCEPTION)处理是用来处理正常执行过程中未预料到的事件,包括程序块的异常处理、预定义的错误和自定义错误。如果PL/SQL程序块一旦产生异常,而程序并没有指出如何处理,那么程序就会自动终止运行。
自己在学习Oracle是做的笔记及实验代码记录,内容挺全的,也挺详细,发篇博文分享给需要的朋友,共有1w多字的学习笔记吧。是以前做的,一直在压箱底,今天拿出来整理了一下,给大家分享,有不足之处还望大家批评指正。 PL/SQL定义:PL/SQL是由Oracle开发,专门用于Oracle的程序设计语言。 PL---Procedural Language. SQL—Structure QueryLanguage。PL/SQL包括过程化语句和SQL语句 PL/SQL的单位:块。 一个块中可以嵌套子块
在任何计算机语言(例如C/C++、Java、Pascal、SHELL等)中,都有各种控制语句(条件语句,循环结构,顺序控制结构等),在PL/SQL中也存在这样的控制结构。PL/SQL的流程控制语句包括如下三类:
Oracle的JOB分为两类,DBMS_JOB和DBMS_SCHEDULER,二者都可以完成定时任务。
Oralce 12c中的多租户数据库的启用,使得原来分布于多台服务器或者一台服务器上运行N多实例的情形需要进行整合。那就是将之前的N多非CDB数据库整合到CDB,原来的数据库将作为CDB数据库下一个PDB容器,各个PDB之间也可以通过快速dblink实现交互。常用的方法包括导出导入,DBMS_PDB包方式,以及GoldenGate复制方式等。本文主要描述使用DataPump方式实现迁移。
索引是若干数据行的关键字的列表,查询数据时,通过索引中的关键字可以快速定位到要访问的记录所在的数据块,从而大大减少读取数据的I/O次数,因此可以显著的提高性能
分析Oracle数据库日志文件(1) 一、如何分析即LogMiner解释 从目前来看,分析Oracle日志的唯一方法就是使用Oracle公司提供的LogMiner来进行, Oracle数据库的所有更改都记录在日志中,但是原始的日志信息我们根本无法看懂,而LogMiner就是让我们看懂日志信息的工具。从这一点上看,它和tkprof差不多,一个是用来分析日志信息,一个则是格式化跟踪文件。通过对日志的分析我们可以实现下面的目的: 1、查明数据库的逻辑更改; 2、侦察并更正用户的误操作; 3、执行事后审计;
相信大家都知道,当飞机发生事故后,人们进行搜救的时候,总是会寻找一个东西---被誉为空难“见证人”的黑匣子。它可以给调查人员提供证据,帮组他们了解事故的真相。 同样,作为业界最为强大的关系型数据库,Oracle数据库也提供了无与伦比的“黑匣子”功能--数据库故障诊断基础架构。通过这个架构设计,当发生问题或者严重错误时,数据库会自动为每一个事件/错误分配一个事件号/错误号,然后输出相关的日志文件,为问题预防、发生重大问题后的追溯原因和修复缺陷等提供重要线索和证据。
本系列以摘自《Database PL/SQL Language Reference》的PL/SQL代码例为主进行介绍。
在Oracle中,LogMiner是什么?其有哪些用途?请简述LogMiner的使用过程。
PL/SQL是Oracle数据库中的一种嵌入式语言,其功能强大,可以进行存储过程和函数的编写,帮助开发者快速高效地处理数据库操作。
Exception是一种PL/SQL标识符,当运行的PL/SQL块出现错误或警告,则会触发异常处理。为了提高程序的健壮性,可以在PL/SQL块中引
pl/sql(procedural language/sql)是Oracle在标准的sql语言上的扩展,pl/sql不仅允许嵌入Sql语言,还可以定义变量和常量,允许使用条件语句和循环语句,允许使用例外处理各种错误,这样使得它的功能变得更加强大。
SQL和PL/SQL: SQL 结构化查询语言(Structural Query Language),是用来访问和操作关系型数据库的一种标准通用语言,属于第四代语言(4GL)。可以方便的调用相应语句来去的结果,特点是非过程化,使用的时候不用指明执行的具体方法,不用关注实现的细节,但是某些情况下满足不了复杂业务流程的需求。 PL/SQL是 Procedure Language & Structured Query Language 的缩写。属于第三代语言(3GL),是一种过程化语言。PL/SQL是对SQL语言
在OraclePL/SQL语句块中exception的异常处理部分是非常重要的组成部分,它决定了在PL/SQL语句块内部可执行部分在发生异常错误时,程序是友好地提示:程序遇到某些错误而无法执行,还是抛出一堆难以理解的Oracle内部错误码。
在PL/SQL中,游标的使用分为两种,一种是显示游标,一种是隐式游标,显示游标的使用需要事先使用declare来进行声明,其过程包括
在微信群中有朋友提出一个问题:如何获得Oracle的TNS_ADMIN的变量值? TNS_ADMIN 是Oracle的一个环境变量,指向 SQL*Net 配置文件的位置。常见的配置文件有 sqlnet.ora 和 tnsnames.ora 等。 通常在 Windows 上,环境变量的设置类似如下: set TNS_ADMIN=%ORACLE HOME%\network\admin 在 Unix/ Linux 设置类似如下: export TNS_ADMIN=$ORACLE HOME/network/admi
在Oracle的11g版本中,统计信息为自动收集功能,在部署安装11g Oracle软件过程中,其中有一个步骤便是提示是否启动这个功能(默认是启用这个功能);且有时候在生产环境中,还会对一些对象做手动统计信息的搜集,如果新搜集的统计信息产生的执行计划在实际生产中不符和生产要求,则需继续使用原有的执行计划。
1、简介:pl/sql块由三个部分组成:定义部分、执行部分、例外处理部分,如下所示: declare: /*定义部分---定义常量、变量、游标、例外、复杂数据类型 begin /*执行部分---要执行的pl/sql语句---要执行的pl/sql语句和sql语句*/ exception /*例外处理部分---处理运行的错误 end; 2、下面通过实例了解pl/sql块 2.1、一个超级简单的pl/s
作者 姚崇 出品 沃趣技术 服务器主机提供IO、内存、CPU、存储空间等资源为数据库使用,Oracle使用Flex Diskgroup为数据库提供存储空间并做了相应的资源隔离。下面我们来看下Oracle是如何为不同的PDB做IO、内存、CPU限制的。 一、IO 资源隔离 12cR2中,引入了两个参数MAX_IOPS和MAX_MBPS来限制PDB的物理IO。这两个参数只作用于PDB,不对CDB和非多租户环境生效。另外,这两个参数不限制redo log的写入(LGWR进程)和buffercache脏块写
前段时间,需要从异地一个测试数据库中将测试数据(一张表)导入本地库,表数据量大约500万,字段160多个,开始用了exp/imp方式,速度奇慢,不能忍,于是转而使用expdp/impdp方式。
领取专属 10元无门槛券
手把手带您无忧上云