v$instance如何生成
参考:http://www.itpub.net/thread-1284858-1-1.html
1.ORACLE 先创建的x$ 表即RDBMS的内部表
2.然后在X$表的基础上创建了GV$ 视图。
GV$视图是为了满足OPS环境的需要即集群环境的需要
3.接着根据GV$视图创建了 V$视图,其实就是加了一个
instance number的过滤条件。基本每个v$视图都对应一个GV$视图。
4.然后ORACLE又根据GV$视图创建了GV_$视图。随即创建了V_$视图。
(注意是有区别的,下划线__)
5.然后根据V_$视图创建了同义词。
因此我们平时访问的动态性能视图都是同义词。
这些工作其实是创建数据库的时候由一个脚本来实现的,$ORACLE_HOME/rdbms/admin/catalog.sql
这个脚本里你可能会发现如下语句:
create or replace view v_$fixed_table as select * from v$fixed_table;
create or replace public synonym v$fixed_table for v_$fixed_table;
create or replace view gv_$fixed_table as select * from gv$fixed_table;
create or replace public synonym gv$fixed_table for gv_$fixed_table;
通过v_$视图,ORACLE把用户跟v$视图隔离开了。
以v$instance为例。
1.查询dba_objects 知,v$instance是同义词
SELECT * FROM Dba_OBJECTS WHERE OBJECT_name='V$INSTANCE'
2.查询dba_synonyms,可知道他是V_$INSTANCE表的同义词
SELECT * FROM dba_synonyms WHERE synonym_name='V$INSTANCE'
3.查看v_$instance的创建语句,
SELECT * FROM dba_views
WHERE view_name=upper('V_$INSTANCE')
发现它是有v$instance创建的.
4.查看v$instance创建语句。
SELECT * FROM v$fixed_view_definition WHERE view_name =upper('v$instance')
select INSTANCE_NUMBER , INSTANCE_NAME , HOST_NAME , VERSION ,
STARTUP_TIME , STATUS , PARALLEL , THREAD# , ARCHIVER ,
LOG_SWITCH_WAIT , LOGINS , SHUTDOWN_PENDING, DATABASE_STATUS,
INSTANCE_ROLE, ACTIVE_STATE, BLOCKED
from GV$INSTANCE
where inst_id = USERENV('Instance')
发现它是根据gv$instance创建的,只是加了一个inst_id的过滤条件。
5.继续查看gv$instance的创建语句
SELECT * FROM v$fixed_view_definition WHERE view_name =upper('v$instance')
发现它是由X$内部表创建的。
select ks.inst_id,ksuxsins,ksuxssid,ksuxshst,ksuxsver,ksuxstim,
decode(ksuxssts,0,'STARTED',1,'MOUNTED',2,'OPEN',3,'OPEN MIGRATE','UNKNOWN'),
decode(ksuxsshr,0,'NO',1,'YES',2,NULL),ksuxsthr,
decode(ksuxsarc,0,'STOPPED',1,'STARTED','FAILED'),
decode(ksuxslsw,0,NULL,2,'ARCHIVE LOG',3,'CLEAR LOG',4,'CHECKPOINT',5,'REDO GENERATION'),
decode(ksuxsdba,0,'ALLOWED','RESTRICTED'),decode(ksuxsshp,0,'NO','YES'),
decode(kvitval,0,'ACTIVE',2147483647,'SUSPENDED','INSTANCE RECOVERY'),
decode(ksuxsrol,1,'PRIMARY_INSTANCE',2,'SECONDARY_INSTANCE','UNKNOWN'),
decode(qui_state,0,'NORMAL',1,'QUIESCING',2,'QUIESCED','UNKNOWN'),
decode(bitand(ksuxsdst, 1), 0, 'NO', 1, 'YES', 'NO')
from x$ksuxsinst ks, x$kvit kv, x$quiesce qu
where kvittag = 'kcbwst'
select INSTANCE_NUMBER , INSTANCE_NAME , HOST_NAME , VERSION ,
STARTUP_TIME , STATUS , PARALLEL , THREAD# , ARCHIVER ,
LOG_SWITCH_WAIT , LOGINS , SHUTDOWN_PENDING, DATABASE_STATUS,
INSTANCE_ROLE, ACTIVE_STATE, BLOCKED
from GV$INSTANCE
where inst_id = USERENV('Instance')
v$instance如何生成的更多相关文章
- 【ORM】--FluentNHibernate之AutoMapping详解
上篇文章详细讨论了FluentNHibernate的基本映射的使用方法,它的映射基本用法是跟NHibernate完全一样的,首先要创建数据库链接配置文件,然后编写Table的Mappin ...
- C#中成员初始化顺序
http://blog.csdn.net/huangcailian/article/details/25958967 一.成员初始化整体顺序 1.成员赋值初始化先于构造函数: 2.成员赋值初始先从子类 ...
- 序列化和反序列化的几种方式(DataContractSerializer)(二)
DataContractSerializer 类 使用提供的数据协定,将类型实例序列化和反序列化为 XML 流或文档. 无法继承此类. 命名空间: System.Runtime.Serializati ...
- Linux/Unix shell 自动发送AWR report(二)
观察Oracle数据库性能,Oracle自带的awr 功能为我们提供了一个近乎完美的解决方案,通过awr特性我们可以随时从数据库提取awr报告.不过awrrpt.sql脚本执行时需要我们提供一些交互信 ...
- 自定义Template,向其中添加新的panel
参考网站:https://www.devexpress.com/Support/Center/Example/Details/E2690 思路: 新建一个DefaultTemplate: ...
- Django(九)上:ModelForm操作
一.内容回顾 Model - 数据库操作 - 验证 class A(MOdel): user = email = pwd = Form - class LoginForm(Form): email = ...
- python 全栈开发,Day116(可迭代对象,type创建动态类,偏函数,面向对象的封装,获取外键数据,组合搜索,领域驱动设计(DDD))
昨日内容回顾 1. 三个类 ChangeList,封装列表页面需要的所有数据. StarkConfig,生成URL和视图对应关系 + 默认配置 AdminSite,用于保存 数据库类 和 处理该类的对 ...
- python 全栈开发,Day115(urlencode,批量操作,快速搜索,保留原搜索条件,自定义分页,拆分代码)
今日内容前戏 静态字段和字段 先来看下面一段代码 class Foo: x = 1 # 类变量.静态字段.静态属性 def __init__(self): y = 6 # 实例变量.字段.对象属性 # ...
- python 全栈开发,Day114(装饰器,排序规则,显示列,添加按钮,定制ModelForm,自定义列表页面,自定制URL)
一.装饰器 装饰器本质上就是一个python函数,他可以让其他函数在不需要做任何代码变动的前提下,增加额外的功能,装饰器的返回值也是一个函数对象. 装饰器的应用场景:比如插入日志,性能测试,事务处理, ...
随机推荐
- nagios系列(一)centos6.5环境部署nagios服务端
nagios软件安装包存放目录:/home/oldboy/tools nagios服务安装目录:/usr/local/nagios 1.配置yum源 echo "------ step 1: ...
- CentOS6.5编译安装Nginx1.8.1+MySQL5.5.48+PHP5.2.17+xcache3.2+ZendOptimizer-3.3.9
一.安装Nginx: 1.解决依赖关系 编译安装nginx需要事先需要安装开发包组"Development Tools"和 "Development Libraries& ...
- Ex 6_21 最小点覆盖问题_第八次作业
子问题定义: 对于图中的每个结点,有两种状态,即属于最小点覆盖和不属于最小点覆盖,定义minSet[i][0]表示结点i属于点覆盖,并且以i为根的树的最小点覆盖的大小.minSet[i][1]表示点i ...
- Java多线程中wait语句的具体使用技巧
Java多线程在使用的时候会有很多语句需要我们具体的学习,在这其中wait()就是其中的一个.当然我们需要不断的努力学习才能掌握这一个语句的应用,下面的代码会对你学习Java多线程有所帮助. clas ...
- how to detect circles and rectangle?
opencv中对圆检测的函数为:HoughCircles(src_gray,circles,CV_HOUGHT_GRADIENT,1,src_gray.cols/8,200,100,0,0) circ ...
- JNI和NDK
作者:十岁的小男孩 QQ:929994365 心之安处即是吾乡 前言 本文试图通过解答以下三个问题来达到学习JNI和NDK的目的.是什么?有什么用?怎么用?文章内容前三节来自下面第一个链接的博主共享, ...
- 【【C++ Primer 第15章】 虚析构函数
学习资料 • C++中基类的析构函数为什么要用virtual虚析构函数 虚析构函数 1. 正文 直接的讲,C++中基类采用virtual虚析构函数是为了防止内存泄漏.具体地说,如果派生类中申请了内存空 ...
- 用两个int值实现读写锁
private int readcount = 0; private int writecount = 0; public void lockread() throws InterruptedExce ...
- thinkphp注册验证
在model中新建一个UserModel //覆盖原本的设置 //一次性获得全部验证错误 protected $patchValidate = true; //实现表单项目验证 //通过重写父类属性_ ...
- [NOI2012]骑行川藏(未完成)
题解: 满分又是拉格朗日啥的 以后再学 自己对于n=2猜了个三分 然后对拍了一下发现是对的