SGA和PGA内存管理
Oracle实例中的内存使用分为两类:程序全局区(program global area, PGA)和系统全局区(system global area, SGA)。前者专门供每个会话使用,后者由所有Oracle进程共享。Oracle使用的所有内存都是虚拟内存。Oracle进程无法确定所连接的内存是在RAM中,还是已经交换到磁盘。交换会削弱性能,应予避免。 一...
Oracle体系结构概述
以下是Oracle体系结构的概览 更详细的一张结构图如下 Oracle服务器由Oracle实例和Oracle数据库两大部分组成。 Oracle实例是一种数据库访问机制,主要由内存结构和进程结构组成。内存结构主要包括系统全局区(System Global Area,...
对定义者权限和调用者权限的理解
对于PL/SQL存储过程的调用来说,具有两种权限控制方式:定义者权限和调用者权限。定义者权限表示用户在执行PL/SQL代码的时候,是否有权访问代码中所涉及的对象如表等,是根据创建该PL/SQL的用户是否拥有对其访问权来决定的,而调用者权限则是根据执行该PL/SQL的用户是否具有对其中涉及的对象的访问权来决定是否可访问的。...
SQL函数
SQL函数分单行函数、多行函数(或叫组函数)。 字符函数: lower 转小写upper 转大写initcap 首字母大写,其余小写,以单词为单位initcap('we-are-chinese') We Are Chinese concat 两个字符串的连接,...
Oracle序列
序列的创建 createsequence [schema.]sequencename[increment by number][start with number][maxvalue number | nomaxvalue][minvalue number | nominvalue][cycle | nocycle][cache number| nocache][order | noorder] incrementby:递增数,默认为1。st...
Oracle多表插入语句
多表插入语句用于一次性有选择的将数据分别插入到多张表中。多表插入包含以下几种:无条件insert all有条件insert all有条件insert first 以下用Oracle内置的示例用户scott和表emp来测试其用法:sqlplusscott/tigerselect * from emp; &nbs...
创建存储过程编译无效对象
有时候我们需要自己编写代码实现对无效对象的编译,以下存储过程可以完成该工作。 具有DBA角色的用户在编译和执行该存储过程前需要显示授予以下权限:grant select ondba_objects to dis;grant execute ondbms_registry_sys to dis;grant execute onutl_recomp to dis; 以下是...
等效DESC查询
以下SQL查询等效于DESC命令col name for a20col typefor a20col nullablefor a10coldefaults for a10colcomments for a50select a.column_namename, data_type || decode(data_type, &nbs...
在PL/SQL中执行操作系统命令
首先创建java sourcecreateor replace and compile java source named execsyscmd asimport java.io.*;publicclass ExecSysCmd{ public static String exec_cmd(String args){ Runtime run = Runtime.getRuntime(); &n...
Oracle传输表空间(TTS)
数据泵导出/导入的变体是表空间传输功能。通过这一功能,可以将整个表空间和其内容从一个数据库复制到另一个数据库。基本步骤如下:使源表空间只读使用Data Pump导出描述表空间和内容的元数据将数据文件和Data Pump导出文件复制到目标系统使用Data Pump导入元数据使源和目标上的表空...
Oracle约束
一、约束的种类 not null:非空约束unique:唯一约束,需要索引支持,没有索引会自动创建,但列允许多个NULL,NULL不在其索引中primarykey:主键约束,实质是unique + not null,需要索引支持,没有索引会自动创建foreignkey:外键约束,定义在子表上,对应父表的主键,允许多个NULLcheck...
创建HR演示模式
先将附件的10个sql文件放入这个路径中:%ORACLE_HOME%\demo\schema\human_resources Script NameDescriptionhr_analz.sqlCollects statistics on the tables in the schem...
Oracle闪回数据归档
从Oracle11g开始,提供了一个这样的功能:闪回数据归档(Flashback DataArchive)。通过这一功能,Oracle数据库可以将UNDO数据进行归档,从而提供全面的历史数据查询,也因此引入一个新的概念:Oracle TotalRecall,即Oracle全面回忆。闪回数据归档可以和我们一直熟悉的日志归档类比,日志归档记录的是REDO的历史状态...
Oracle闪回删除
闪回删除是通过将DROP命令映射到RENAME命令实现的,因而不是真正将表删除,而是将表重命名为一个系统生成的名称,以后当活动对象需要存储空间时才可能真正删除它。如果存储空间没有被重用,那么可以将对象重命名回原来的名字而还原。如果没有提供此功能,在删除一个表后还原它的唯一方法就是执行不完整恢复,恢复到删除之...
Oracle闪回数据库
闪回数据库就像给数据库增加了倒带按钮的功能,它将当前的数据库视为起点,然后在时间上顺序回退所有的工作,直到回退到设定的时间点。最终结果就好像执行了不完整恢复,位于闪回点之后的所有工作将丢失。 闪回数据库只能恢复用户逻辑错误,如果遇到物理损坏或介质丢失,如丢失数据文件,则闪回技术不适用,...
Oracle闪回查询
闪回查询允许查询过去某个时间点的数据库,它可以借助于一条select语句或通过将会话临时回退到过去以使其所有查询都针对先前版本的数据库来进行。此功能可以用来查看在提交一组事务之前表的数据状态。半小时之前的表的状态是怎样的呢?通过闪回查询,可以找出数据对比。利用它还可以选取过去一段时间内一个行的所有版...
通过触发器禁止模式对象的DDL操作
创建触发器,禁止对RMES模式对象的DDL操作create or replace triggerrmes.tri_ddl_deny before create or alter or drop or truncate ondatabase-- 禁止对RMES模式对象的DDL操作 declare my_errnum number := -20001; my_errmsg varchar2(100) := 'You have noper...
使用外部表访问警告日志文件
Oracle外部表技术增强了Oracle数据库和外部数据源进行交互的能力,方便了Oracle对外部数据的访问。对于DBA来说,最常见的一个例子就是可以使用外部表来访问警告日志文件或其他跟踪文件。以下例子说明了外部表的用途。 首先需要创建一个Oracle目录11g目录路径createor replace directory alert_dir ...
library cache pin等待事件的模拟
librarycache pin是用来管理library cache的并发访问的。pin一个object会引起相应的heap被载入内存(如果此前没有被加载),pins可以在Null、Share、Exlusive这三种模式下获得,可以认为pin是一种特定形式的锁。当library cache pin等待事件出现时,通常说明该pin被其他用户以非兼容模式持有,它一般发生在编译或重新编...
识别和修复无效对象
一、无效对象的识别和编译 1、识别无效对象 col object_name for a30select object_name,object_type from dba_objects where owner = 'CMES' and status='INVALID'; 2、编译单个无效对象 语法:alter 对象类型 对象名称 compile; 如重新编译某个...