`
nvj454ye
  • 浏览: 10634 次
最近访客 更多访客>>
社区版块
存档分类
最新评论

oracle 载

 
阅读更多

oracle 载
2011年08月03日
  1、B数索引适合于唯一值较多字段的表结构,位图索引适合于唯一值较少字段的表结构;
  2、B数索引适合于OLTP,位图索引适合于OLAP;
  3、重建索引比重建索引块--锁定,并重建;
  4、创建索引是对象权限,不是系统权限;
  5、dba_sys_privs视图中保存的直接授予用户的系统权限;
  6、角色,角色,角色--简华权限管理,实现动态权限管理,可选择可用的权限!
  7、创建安全用户的步骤:
  a.创建角色 ;
  b.权限授予角色;
  c.角色授予用户;
  d.选择默认角色;
  e.启用|禁用角色;
  f.移除角色;
  g.删除角色。
  8、正常情况下,用户没有设置默认角色,连接后所有角色都是默认角色;
  9、RMAN备份、恢复更快,而且还能方便地进行块在线级恢复;
  10、Oracle容灾--Dataguard,两套数据库系统,基本原理:异地恢复;
  11、直接路径导出--快,因为省略了转换的发生(数据类型和字符集);
  12、在客户端:tnsnames.ora和sqlnet.ora,服务器端:listener.ora;
  13、监听器状态看到例程为unknow和ready的原因:动态注册导致,监听器启动时读文件,启动(unknow);动态注册的例程是ready;
  14、在LSNRCLT>下,输入show current_listener 可以查看当前的监听器,在多个监听器并存时,需要用show和set两个命令结合进行切换;
  15、10G中支持easy connnect,不需要配置本地服务名,可以直接使用完整的TCP/IP协议和连接字符串进行连接;
  16、主机命名方式相对于本地命名解析方式麻烦,且不支持一些高级应用,不推荐是;
  17、在配置监听的时候,配置service_name和instance_name意义是不一样的,前者是整个数据库服务器,数据库自动分配连接到哪个实例;后者直接连接实例。
  18、在共享模式下,如果没有dispatcher,将无法连接数据库;默认是专用模式,不需要有dispatcher;
  19、监听负载均衡,可以加上LOAD_BALANCE=yes,可以让每个会话随机地对监听器进行连接访问;
  20、调优:充分合理地利用资源+合理划分任务;
  21、在设计时,时间和空间上,将各种任务划分开;
  22、尽可能写出相同的代码,可以减少硬解析;
  23、调优的种类:
  a.预期式调优(系统设计);
  b.主动式调优(健康检查);
  c.被动式调优(用户抱怨);
  代码共享,减少硬解析:防止语句分配空间的不足而过去,防止碎片;
  2、IO优化:
  a.最小化数据访问(减少IO操作的设计、优化大规模访问数据的SQL、使用LMT代替DMT);
  b.均衡IO分布(数据文件放在RAID5,redo和控制文件放在磁盘或者RAID 1)
  c.合理使用临时表空间(8i为用户手动指定,9i指定缺省的全局临时表空间,10g使用临时表空间组);
  d.
  3、索引没有使用的三种情况:
  a.没有索引;
  b.有索引,但是SQL书写时不走索引;
  c.计算代价后,发现全表扫描比索引代价要小;
  4、RAID条带化最好是区大小的整数倍或者整数分之一;
  5、归档日志文件的配置:
  a.启用多归档进程归档多个文件;
  b.减少归档对重做日志的影响(将redo和arch文件分散在不同的磁盘);
  6、竞争的优化:
  a.锁存器latch(9i后,latch由数据库根据CPU数量自动管理);
  b.锁lock;
  c.回滚段(大事务和长事务都很明显);
  7、锁分DML锁(数据锁)--通常所指的锁,和DDL锁(字典锁);
  8、阻塞的会话能看到锁竞争,我们只关心锁竞争;
  9、回滚段的区中,每个区中只允许存在一个活动的事务;
  10、在进行数据导入时,commit=y,每导buffer中规定大小的数据,进行一次提交;sqlloader通过rows参数,没导入多少行就提交一次;
  11、shared pool使用的前提条件:代码是可共享的;
  12、如何绑定变量:更改语句;修改cursor_sharing(force|exact|similar),不建议使用强制的绑定变量;
  、数据冗余多了,拆分;不经常在一起访问的字段,拆分;
  2、应用对调优的影响很大,占一半以上;
  3、在调优实施时,最好分步进行,不能所有方法一并实施;
  4、块检查数:db_block_checking和db_block_checksum。关乎校验,避免逻辑块故障,关闭时会提高IO。
  5、statspack:能得出最××的SQL语句;
  6、10G的数据库信息收集新工具:awr,ADDM可以做分析;
  7、可以根据进程号来查询完整的SQL语句;
  8、最大的操作系统进程与数据库进程比:40/60;
  9、vmstat 看r值和b值,值应该小于或者等于CPU个数;pi高,说明内存不够;
  10、sppurge和sptrunc可以删除和清空statspack信息;
  11、statspack以短为宜;
  12、连续读等待时间太长--索引有问题;
  13、消耗CPU的动作:排序、硬解析、多表融合的对比等;
  14、等待事件信息在v$event_name视图中;
  15、等待事件:
  a.buffer busy waits
  b.db file parallel write--写得速度慢
  c.db file scattered read
  d.db file sequential read
  e.db file single write
  f.direct path read--临时数据和排序数据,都不在内存中排序
  g.enqueue--锁资源竞争
  h.free buffer waits--dbwr写脏数据不够快,db_cache不够大
  i.latch free--锁存器空间不足,调内存
  j.log buffer space--log buffer太小;LGWR写redolog失败或者慢;
  k.log file parallel write
  l.log file single write
  m.log file switch(archiving needed)
  n.log file switch(checkpoint incomplete)
  o.log file sync
  p.timer in sksawat(归档过慢)
  q.事务
  r....
  16、LRU队列和Dirty队列用来管理数据高速缓冲区的存储和数据操作;
  17、收集信息的时机;
  18、命中率高,不一定性能很好;还是要取决于等待事件;
  19、对于数据库告诉缓冲区,使用多池对不同类型(KEEP|Recycle|DEFAULT)的数据进行存放,能够提高效率;
  20、Free list管理着一个大的块,块中经常发生数据状态改变,将容易导致块竞争;
  extent--区,连续的数据库块,不能跨数据文件、segment--段,段不能跨表空间、建议让一张大表的数据跨文件;
  2、system表空间最好只存放数据字典表和系统回滚段;
  3、表空间创建后无法更改的参数:
  a.大文件表空间(一个表空间最大可以达到128T,但每个表空间只能单个文件组成)or小文件表空间--TB级数据库可以考虑大文件表空间?
  b.本地管理表空间or数据字典管理表空间?--推荐本地管理,9i开始。
  4、临时表空间文件创建时,命名为tempfile,而其它表空间文件命名为datafile,临时表空间不参与同步,数据字典dba_datafiles没有;
  5、初始创建临时表空间并不真正分配空间,只是写了做了个标记;
  6、表空间只读时,执行DDL操作,只有修改数据字典的能成功,对数据进行操作都不会成功;
  7、表空间的offline后,还是能对数据字典进行操作的;
  8、对数据文件进行resize的时候,只能将文件进行收缩,而不能整理,也就是说收缩到最后的数据空白记录开始处;如果需要,DBA可以分析数据文件的使用,然后进行收缩。
  9、10g开始将文件从表空间中删除,前提是此文件没有任何数据;
  10、段类型的种类很多,每种类型都有各自的特点。
  11、Oracle9i开始:SYSTEM和TMP表空间都必须以标准块为IO单位,其它表空间可以以非标准块为IO单位;为了适合不同的应用业务。
  12、数据块和文件块区别:前者无碎片,后者有碎片;
  13、块空间利用参数中PCTFREE:数据块中为update所预留的空间;剩余空间PCTUSED,块空间可用。
  14、自动段空间管理(ASSM)的限制:不能在包含LOB类型数据的表空间中使用;
  15、Cluster table是聚簇表,适合多表联合查询;
  16、创建小写或者保留关键字的对象,使用""引起来。
  17、drop table时加入purge。
  18、timestamp增加了date数据类型秒级的精度,最多支持到小数点后第九位,同时支持全球化特性,加入了时区的内容(with time zone);
  19、dbms_rowid包可以将rowid的物理地址进行转换;
  20、10g新特性:可以根据Segment Advisor的建议在业务繁忙其对松散的表进行收缩,减少锁表对表的影响;
  21、删除表的时候,索引、约束和触发器都会随之消失,删除的语句:drop table tablename cascade constranits;
  22、删字段在系统崩溃时在redo中是找不回来的;
  23、不想让用户看到表中某个字段、也不想删除,可以将字段标记为不可用,这个动作是不可逆的;
  24、回滚段--暂存事务中的原始数据,事务提交,暂存结束;
  25、回滚段的功能:
  a.事务回滚;
  b.事务恢复(在实例恢复时);
  c.读一致性;
  d.闪回查询(9i),利用回滚段中残留的事务内容。
  26、自动管理回滚段:每个实例使用独自的undo表空间;
  27、offline掉的undo段,在一段时间不用后,将自动删除,如果要用,online即可;
  28、undo_retention:数据在事务结束后保留的时间,单位为秒;
  29、undo_retention x undo信息产生速率(UPS x db_block_size) =undotbs大小;
  、DBWn写的条件(时机):超时发生具体指寻找缓存空间超时;RAC的ping发生(内存融合技术大大缓解);...
  2、LGWR写的条件(时机):因为每隔3秒、日志大小达到1M、达到三分之一满时都要写日志,所以LOG_Buffer一般设为1-3M,但是在大规模操作时,产生批量日志,LOG_BUFFER可能要调大些;
  3、临时表空间满:
  a、用光了,需要重新申请空间;
  b、分配光了,不需要重新申请空间,甚至可以是好的情况。
  4、临时表空间不能收缩吗???
  5、Ctrl+C中断的事务是异常结束,关闭窗口是正常结束;
  6、RMAN能备份spfile,不能备份pfile;
  7、alter system set parameter=×××,scope=×××,scope默认为both(文件和内存都修改),可选的为memory(只改内存)或spfile(只改文件);
  8、spfile文件中每一条记录前都有"*.",对于RAC来讲,在进行alter system set 命令时,加上sid=*,意味着所有实例都修改;在spfile文件中*.代表统一管理,而oracl代表单独管理;
  9、在nomount(已经分配了内存和进程)状态下,可以修改参数;创建数据库;创建(重建)控制文件;
  10、mount阶段(读取了控制文件信息),可以做recover(介质),也可以做备份(尤其是RMAN冷备份),归档和非归档模式的切换(必须)...
  11、在数据库未打开之前,只能使用sysdba身份才能连接数据库;因为数据字典dba_users对普通用户进行口令验证,数据库没开打之前,数据字典还未载入,所以普通用户身份都无法验证和登录;但是特权身份是用口令文件或者系统身份验证,所以可以连接访问;
  12、shutdown immeiate选项相对快,不等待事务和连接的中断,但是要回滚未完成的事务,断开连接,也许要等待时间;
  13、shutdown abort相当于数据库掉电,不推荐使用;
  14、alert日志可以改名或者删除,Oracle写日志进程如果找不到将会生成1个新的文件重新记录;
  15、bdump中的trc文件命名规则:SID+错误进程名+PID。
  16、udump中有用户跟踪的SQL语句,包括SQL的统计信息和执行计划,可用于SQL调优;
  17、alter session set SQL_TRACE=TRUE 可以开启会话级跟踪,执行DBMS存储过程(dbms_systemn.SET_SQL_TRACE_IN_SESSION)也可以;不建议在实例级开启(SQL_TRACE参数设为TRUE),影响性能。
  18、所有的TCP/IP连接都被Oracle认为是不安全的连接,必须进行口令文件认证;
  19、重建口令文件:orapwd file=123.ora password=change_on_install entries=10
  20、DB name和SID名通常一样,在RAC中可能不同;
  21、手动创建数据库失败可能的原因有:SQL脚本中有语法错误,要创建的文件存在(表空间文件Reuse可以解决),操作系统错误(没权限或者空间不足);
  22、ASM概念提出来后,可以使用OMF(Oracle Managed Files)来创建数据库--指定数据文件和日志文件的位置即可,取名默认、大小默认、自动扩展;
  23、ASM是Oracle自身的一个存储管理工具,拥有卷管理的功能,同时还拥有Oracle文件管理的功能,自动平衡磁盘IO,避免了从操作系统的误删除操作;
  24、数据字典信息是只读的对象,但是数据库的操作会影响数据字典内容的被动变化;
  基础表:数据库创建时自动创建;
  数据字典视图:基础表的简化、总结和格式化显示;
  25、数据字典DICTIONARY是数据字典的字典。desc dictionary:字典名称 字典描述。
  26、查询以DBA开头的数据字典:
  Select table_name from dict where table_name like "DBA%";
  27、在sqlplus状态下,要想编辑前一个已经执行的SQL语句,可以使用ED,修改后:wq!保存退出,l列出语句,用/运行编辑后的SQL语句;
  28、动态性能视图临时来自内存和控制文件的信息;
  29、控制文件可以dump出来,dump出来后,能够看到关于数据库的很多信息;
  30、PFILE和SPFILE多重镜像控制文件,在操作步骤上,需要注意,在修改参数和创建新的控制文件时步骤不一样;
  31、对于redolog的建议:
  a.足够多的组
  b.足够大的文件
  c.分布在不同的磁盘上
  32、可以强制执行检查点;
  33、inactive的redolog文件既不是当前的,而且检查点已经操作完成;current是当前正在使用的redolog文件;active不是当前的redolog文件,但是该日志相关的检查点还没完成;
  alter system checkpoint;
  34、fast_start_mttr_target参数,设置实例恢复最长时间,单位为秒,根据用户规定的时间,oracle自动将这个时间结合当前IO速度和其它参数做了转化(9i);在8i中是fast_start_io_target和log_checkpoint_interval两个参数一起决定的;10G开始根据数据库的运行情况自动调整,系统忙时保证性能;系统不忙时,保证恢复时间。
  35、alter database 一般是对控制文件的操作;alter system一般是对内存(参数文件)的操作;
  36、非OMF管理的redolog,在数据库中被删除后,操作系统并不会删除;
  37、alter database clear logfile group #;清除log日志;inactive的redolog损坏或者丢失后,只需要执行这个命令即可(重建或者清空那个日志文件)。因为不需要用到这个做实例恢复。
  如果数据库是归档模式,当时存在故障的redolog文件没有归档,加入unarchived选项;
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics