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函数,他可以让其他函数在不需要做任何代码变动的前提下,增加额外的功能,装饰器的返回值也是一个函数对象. 装饰器的应用场景:比如插入日志,性能测试,事务处理, ...
随机推荐
- 利用navcat为mysql数据库单独的表赋权限及表结构同步
为mysql数据库单独的表赋权限 场景:考勤系统需要拿OA数据库td_oa中的flow_run和flow_run_data表中的数据做考勤计算 考勤系统只需要读取这两张表的数据,所以只需要开通一个单独 ...
- 图解修改Maven本地仓库存储路径
1 从Maven中心仓库下载到本地的jar包的默认存放在"${user.home}/.m2/repository"中,${user.home}表示当前登录系统的用户目录(如&quo ...
- Linux常用命令2(远程文件下载+查看文件内容)
一.远程文件下载的两种方法:ftp命令 + scp命令 ftp命令: 服务器若安装了ftp Server,另外一台Linux可以使用ftp的client程序来进行文件的远程拷贝读取下载和写入上载. 1 ...
- Python-css高级
1. 伪类和伪元素 1. 伪类 1. :link 2. :visited 3. :hover (重要) 4. :active 5. :focus(input标签获取光标焦点) 2. 伪元素 1. :f ...
- 100以内奇偶数(for循环)
- 步步为营-56-JQuery基础
jQuery本质还是封装好的js,只不过代码更简洁,而做的更好 使用JQuery选择器会返回一个jQuery对象,其本质是dom数组,jQuery对象可以调用JQuery方法. 1 选择器 1.1 基 ...
- 使用匿名内部类调用start方法
package chapter03;//类实现接口public class WD implements Runnable{//重写接口的方法 @Override public void run() { ...
- 集合List和ArrayList的示例
package chapter09; import java.util.ArrayList;import java.util.List; /* * List * ArrayList底层是数组 * 特点 ...
- Android使用帧动画内存溢出解决方法
Android使用帧动画内存溢出解决方法https://blog.csdn.net/daitu_liang/article/details/52336015https://blog.csdn.net/ ...
- AOJ 0009 Prime Number
题意:给出n,求不大于n的素数有多少个. 算法:先用线性时间复杂度的筛法打素数表,对于每个输入统计不超过的素数个数. #include <cstdio> int p[100010]; bo ...