日期:2014-05-17  浏览次数:20865 次

发个帖子,自己跟帖上传点学习笔记,请勿跟帖,谢谢
如题
------解决方案--------------------
兄弟你可以写在blog里面。每个注册用户都有blog的。。
反正你这事0分贴。。
别骂我啊。。
------解决方案--------------------
发吧,总结好阿。
------解决方案--------------------
说明下,我上班的地方开的是代理,不能发博客,总结的东西也带不出去的。
------解决方案--------------------
数据字典
-------------------------------------------------
数据字典包括以下内容:
1.所有数据库Schema对象的定义(表,视图,索引,聚簇,同义词,序列,过程,函数,包,触发器)
2.数据库的空间分配和使用情况
3.字段的缺省值
4.完整性约束信息
5.Oracle用户名称,角色,权限等信息
6.审计信息
7.其他数据库信息

数据字典有4部分组成:内部RDBMS(X$)表,数据字典表,动态性能(V$)视图,数据字典视图

X$表是Oracle数据库的核心部分,这些表用于跟踪内部数据库信息,维持数据库的正常运行

select * from x$kvit

数据字典表用以存储表,索引,约束以及其他数据库结构的信息,这些对象通常以$结尾

sql.bsq是非常重要的一个文件,改文件位于$ORACLE_HOME/rdbms/admin目录下

虽然Oracle并未提供直接的方法,在原对象存储位置被重新写入数据之前,truncate数据仍然是有办法恢复的

select value from v$diag_info where name = 'Default Trace File'

DBMS_METADATA

user_ 类视图包含了用户所拥有的相关对象信息,用户可以通过这个视图查询自己拥有的对象信息
all_  类视图包含了用户有权限访问的所有对象的信息
dba_  类视图包含了数据库所有相关对象的信息,用户需要select any table 权限才能访问
------解决方案--------------------
1.DBA_XXX    --数据库中的所有对象
    2.ALL_XXX    --当前用户可以访问的对象
        3.USER_XXX    --当前用户拥有的对象
        
常用数据字典视图
1.dict/dictionary
2.dict_columns
3.obj$/dba_objects/all_objects/user_objects
4.dba_source/all_source/user_source

动态性能(V$)视图记录了数据库运行时信息和统计数据,大部分动态性能视图被实时更新以反应数据库的当前状态

GV$视图开始被引入,其含义为Global V$.除了一些特例以外,每个V$视图都有一个对应的GV$视图存在

GV$视图的产生是为了满足OPS/RAC环境的需要,在OPS/RAC环境中,查询GV$视图返回所有实例信息,而每个V$视图是基于GV$视图,增加了INST_ID列的where条件限制建立,只包含当前连接实例信息

select view_definition from v$fixed_table

通常大部分用户访问的V$对象,并不是视图,而是指向V_$视图的同义词;而V_$视图是基于真正的V$视图(这个视图是基于X$表建立的)创建的。

在进行数据访问时,Oracle访问VIEW优先,然后是同义词

nomount阶段能够访问的视图
v$parameter,v$spparameter,v$sga,v$sgastat,v$bh,v$instance,v$option,v$version,v$process,v$session

mount阶段能够访问的视图
v$thread,v$controlfile,v$database,v$datafile,v$logfile,v$datafile_header

SQL语句中Oracle对于对象名的解析顺序
1.Oracle首先查看在发出命令的用户模式中是否存在表和视图
2.如果表或视图不存在,Oracle检查私有同义词是否存在
3.如果私有同义词存在,将使用这个同义词所引用的对象
4.如果私有同义词不存在,检查同名的公共同义词是否存在
5.如果公共同义词存在,将使用这个同义词所引用的对象
6.如果公共同义词不存在,则返回错误信息
------解决方案--------------------
竟然只能连续回复3次
------解决方案--------------------
通过rman的delete命令删除归档日志文件
-------------------------------------------------

1.su - oracle
2.rman
3.connect wisgrpt/wisgrpt
4.
  删除所有的归档文件
  run{
  allocate channel t1 type disk;
  delete force noprompt archivelog all;
  release channel t1; 
  }
  
  删除2006年9月15号23点12分22秒以前的所有归档日志
  run{
  allocate channel t1 type disk;
  delete force noprompt archivelog until time "to_date('2006-9-15 23:12:22','yyyy-mm-dd hh24:mi:ss')";
  release channel t1; 
  }
  
allocate channel t1 type disk  表示分配通道,通道的名称为t1