v$database:数据库的信息,如数据库名,创建时间等。
v$instance 实例信息,如实例名,启动时间。
v$parameter 参数信息,select * from v$parameter where name like '%name' ----> show parameter name(sqlplus中执行)
v$process 运行的进程的信息,如PID,SPID,以及进程的名字,如SMON,PMON在UNIX的进程名称,在windows中会看到类似ORACLE.EXE (PMON)这样的线程名字.
v$mystat 本session的SID号等信息..知道了SID后可以通过查询session相关的信息.
v$session 连接到数据库的session相关的信息,如机器名,客户端程序名称,PID(UNIX)等.
如通过 select distinct(sid) from v$mystat;得到SID后,
可以得到这个session的相关信息,如为这个session服务的后台进程的地址(PADDR) select * from v$session where sid=157
得到PADDR后可以得到后台进程的信息:select * from v$process where addr = '3424E3BC'
v$controlfile 控制文件的位置信息,可以在nomount阶段查看,但没有数据.数据库在mount后这个视图才有数据.
v$controlfile_record_section控制文件里的配置信息.
v$datafile 数据文件的位置信息,数据库在mount后这个视图才能被查看.数据库打开是检查里面的CHECKPOINT_CHANGE#(从控制文件得来)是否和v$datafile_header的一致.
v$datafile_header 数据文件头信息.是从数据文件头读取的,在做恢复的时候每当一个归档日志应用之后,CHECKPOINT_CHANGE#都可以看到变化.
select dbms_flashback.get_system_change_number from dual
v$logfile 日志文件的位置信息,数据库在mount后这个视图才能被查看.
V$INSTANCE_RECOVERY:实例恢复时和重做日志有关的信息,FAST_START_MTTR_TARGET:实例恢复的时间限制,oracle将这个时间换算成
redo blocks数量,当log buffer中未写入log file的redo block数量超过这个值,就会触发增量检查点。
(这和数据库加载文件的顺序有关系,数据库startup nomount时根据参数文件加载控制文件,startup mount后,根据控制文件加载数据文件和日志文件)
v$log: 日志的的信息,比如当前用的是那一个日志组。
v$sga_dynamic_components SGA各个内存块的信息,如java 池的大小,共享池的大小,数据缓冲区(在10G中是根据数据块的大小有不同的缓冲区的,如DEFAULT 2K buffer cache放数据块是2k的,DEFAULT 4K buffer cache放数据块是4k的)
v$pwfile_users 数据库中具有sysdba,sysoper权限的用户。
v$rollstat 回退段信息,USN回退段的编号,XACTS活动的事务数量。回退段可以从dba_rollback_segs 查看。
v$transaction 活动事务信息,如对应的回退段(XIDUSN)是哪一个等。
v$sql:执行过的SQL语句。
v$lock:那些session占用了什么样的锁,在申请什么样的锁,该session是否阻塞了别的session。
v$locked_object哪些对象被锁住了。
v$session_wait 查看session等待信息:select * from v$session_wait where wait_class != 'Idle'看目前还在等待的session,如被阻塞的session。
v$session_wait_history:session等待的历史信息,只保存离目前最近的10条记录。
v$active_session_history:活动session(等待的或者在使用CPU)的历史信息,每一秒统计一次信息。每隔一小时会记录到磁盘,从dba_hist_active_sess_history可以看到。执行db_1RDBMSADMINashrpt.sql可以生成报告。
v$statistics_level:那些advisor被打开了以及advisor做统计时候从那些view取统计信息.
v$sga_dynamic_components:SGA各个模块的动态统计信息.
v$log在线日志的信息,那一组是正在使用的,开始使用时候的SCN.
v$archived_log 归档日志的信息,从那个SCN开始到那个SCN结束归档到了那一个文件.
v$backup 那个表空间处于热备份模式.alter tablespace xx begin backup的时候会把对应的SCN记录下来.
v$statname 数据库动态都统计那些信息,有信息名称和ID,一般和v$sesstat联合使用.
v$sesstat 一些动态统计信息的值,如user commits,opened cursors current,redo size等等,
select name,value from v$sesstat,v$statname
where v$statname.STATISTIC#=v$sesstat.STATISTIC# and v$statname.name like '%redo size%' and SID=115
和falshback相关的
v$flashback_database_logfile flashback的日志文件相关的信息,Oldest_flashback_scn / Oldest_flashback_time : 这两列用来记录可以恢复到最早的时点 .
v$flashback_database_log:日志使用的情况
v$flashback_database_stat: flashback统计信息.
上面三个视图在alter database flashback on才有数据.
flashback_transaction_query
v$nls_valid_values 可以用的语言,国家和编码设置,alter session set nls_language=american;
v$parameter_valid_values 可以设置的参数值
v$sga:sga内存的信息,select sum(value)/1024/1024 from v$sga通常=sga_max_size或者sga_target
v$sga_dynamic_free_memory:sga未分配的内存。
v$bh DB buffer里缓存的数据块信息。
设置客户端编码
NLS_LANG=AMERICAN_AMERICA.ZHS16GBK,三部分,AMERICAN语言,提示信息,AMERICA国家影响日期格式,ZHS16GBK编码。
查看服务器编码 select name,value$ from props$ where name ='NLS_CHARACTERSET';
『以dba_和v$开头的通常都是视图。dba_开头的里面的信息通常是静态的,信息在文件中(但是并不代表里面的信息不变化)。v$开头的信息通常是动态的,来自控制文件和内存中的信息』
dba_data_files(v$datafile )数据文件信息,里面不包括临时表空间对应的文件的信息,,dba_tablespaces(v$tablespace)表空间信息,dba_tables表信息, dba_segments段信息,dba_extents区信息。
dba_segments:那些段保存到了那个表空间,占用了多大空间等.
select * from dba_segments where segment_name='TEST'
select * from dba_segments where tablespace_name='USERS'
select * from dba_segments where owner='YORKER'
dba_users 用户信息,如默认表空间。dba_roles:系统里定义的角色,如DBA(注意与sysdba的区别),CONNECT等。和用户相关的还有一个视图dba_profiles:数据库中定义的profile信息,profile是指登录尝试次数,密码过期时间限制等,该用户可以有多少个session,空闲多久可以把该用户断掉,可以在create user时候指定。
dba_sys_privs :什么样的用户或者角色授予了什么样的系统权限。
dba_tab_privs看什么样的用户或者角色授予了什么样的对象权限。
dba_role_privs,用户或者角色被授予了什么样的角色。通过角色授予的权限要重新登录才能起作用。
权限传递:系统权限被收回,传递的权限不收回,对象权限被收回,传递的权限也收回。
dba_constraints 约束的信息. 表级约束Primary(P),Foreign key(R),Unique(U),Check. 列级约束Not null(可以认为是check约束的一种,在dba_constraints 的constraint_type和check约束相同,都为'C').还有对于NOT NULL的ALTER TABLE语句建立约束与其他四种(alter table tb add constraints...)是不同的:ALTER TABLE tb MODIFY col_name NOT NULL.
dba_priv_audit_opts:数据库打开了那些权限审计. aduit create session;. aduit create session whenever not successful;
dba_obj_audit_opts:数据库打开了那些对象审计.audit select on tb[by session/access].
dba_stmt_audit_opts:数据库打开的语句审计 audit table by userA
dba_audit_trail审计的信息视图,一部分信息正是从表aud$的审计信息查询出来的,表aud$只能以sysdba权限看.
dba_fga_audit_trail 保存的是通过dbms_fga.add_policy 创建的细粒度审计的审计信息.
dba_common_audit_trail保存的是创建的标准和细粒度审计的类型信息.
dba_rollback_segs 数据库回退段的信息。
dba_hist_wr_control awr(auto workload repository)生成数据库负载信息的控制信息,保留时间,统计频率。 dbms_workload_repository .modify_snapshot_settings(retention=>1440,interval=>30)修改控制。
dba_hist_snapshot:数据库运行snapshot的历史信息,根据dba_hist_wr_control的控制信息自动生成,可以通过dbms_workload_repository .create_snapshot生成。
利用db_1RDBMSADMINawrrpt.sql可以生成数据库运行报告。db_1RDBMSADMINawrrpt.sqladdmrpt.sql可以生成与之对应的诊断建议报告。
dbms_workload_repository.create_baseline可以选择某从某个snapshot到另外一个之间(这段时间DB运行良好)创建baseline来做为以后数据库运行信息的比较基准.
dba_hist_baseline保存的snapshot基准信息.
dba_thresholds 发生警告的上限值.如表空间用了多少报警.后台进程MMON会监视这些信息.
dba_outstanding_alerts 最近10条警告信息. dba_alert_history 警告的历史信息.
表:
system_privilege_map,系统权限信息,如经常用到的sysdba和sysoper都是系统权限。还有像CREATE TABLESPACE,DROP TABLESPACE等,要注意的是drop table不是系统权限,drop any table是系统权限。UNLIMITED TABLESPACE权限不能授予给角色,也就意味着DBA角色的用户也需要单独额外授予UNLIMITED TABLESPAC权限。
数据库的这些视图,表定义可以在下面的视图中查到:
select * from dict
select * from dict_columns
select * from v$fixed_table
select * from v$fixed_view_definition
SELECT '*TABLE: ' || TABLE_NAME, COMMENTS
FROM ALL_TAB_COMMENTS
WHERE OWNER = 'SYS'
AND TABLE_NAME = 'USER_SYNONYMS'
UNION
SELECT 'COL: ' || COLUMN_NAME, COMMENTS
FROM ALL_COL_COMMENTS
WHERE OWNER = 'SYS'
AND TABLE_NAME = 'USER_SYNONYMS' ;