oracle优化设计


查找数据文件:select tablespace_name,file_name ,bytes from
dba_data_files;
Whenever the database is altered, the control file should be backed up.
Backing it up in a human readable format: 备份在D:/temp/path中 
alter database backup controlfile to trace as 'd:/temp/path';
Backing it up in a binary format:
alter database backup controlfile to 'd:/temp/path';
对已经创建完成的数据文件可以用ALTER DATABASE … AUTOEXTEND 、RESIZE 来改变数据文件的大小。
控制文件可用下面命令查到:
select name,value from v$parameter where name like 'control_files';
重做日志文件可以名下面命令查到:
select * from v$logfile;
Oracle 系统的数据块(block)和区间(extent)及段(segment)存在一种关系。了解它们的关系对于管理和优化都有好处,Oracle 系统在创建表空间时将数据文件格式化成若干个Oracle 块;每个Oracle 块是Oracle 系统处理的最小单位;块的大小在安装系统时确定,可以选择“自定义安装”来设置大小; 块的大小一旦确定下来就不能改动;块的大小可以从2k 至64k 不等;
块的大小可以用下面命令查到
select name,value from v$parameter where name like 'db_block_size';
分配给对象(如表)的任何连续块叫区间
区间也叫扩展,因为当它用完已经分配的区间后,再有新的记录插入就必须在分配新的区
间(即扩展一些块),大小有next决定;
一个对象所用去多少区间可用下命令查到:
select segment_name,tablespace_name,count(*) from dba_extents
having count(*)>1 group by segment_name,tablespace_name;
段是指占用数据文件空间的通称,或数据库对象使用的空间的集合;
段使用同表空间中的若干Oracle 块(可以位于不同数据文件中)。
CREATE TABLE abc ( empno number(4),ename varchar2(20),sal number(9,2))
TABLESPACE users storage(initial 500k next 256k pctincrease 0);
段被分配=初始区间=500k;当开始的500k 用完后就再分配256k; 此时段=500k+256k;
如果所分配的区间又用完后,就再分配256k
[b]共享池[/b]高速缓存的使用效率取决于命中率。命重率高表示不需要从硬盘读数据。但是这样的
情况是很不现实的。
查询执行次数和失效次数:
select sum(pins) pins, sum(reloads) reloads from v$librarycache;
如果 ratio = ( reloads / pins ) * 100 大于 1 或更大。就需要加大共享池的大小。
查询用户可以获得gets(找到对象 )次数和getmisses(高速缓存失效)的次数:
select sum(gets) gets , sum(getmisses) getmisses
from v$rowcache;
如果 ratio = ( getmisses / gets ) * 100 大于 10%,就要考虑加大SHARED_POOL_SIZE 参数值。
查询数据高速缓冲区的命中率
select name, value from v$sysstat
where name in ('consistent gets','db block gets','physical reads' ) ;
如果 ratio = 1- ( physical reads / ( db block gets + consistent gets ) ) 低于 70%。 则应该加大
INITsid.ORA 文件中的DB_BLOCK_BUFFERS 参数值。
要设置数据库为归档方式,可以有两种方法:
ALTER SYSTEM ARCHIVE LOG START;
或在INITsid.ORA 文件中设置 LOG_ARCHIVE_START=true 并重启动数据库实例。
应用程序死锁
故障现象:
警告日志出现错误信息
应用程序事务失败(该事务由Oracle 执行回滚)
可能的故障原因:
1) 应用程序包涉及到非默认锁机制,例如对不同的代码程序随意使用显示表级锁或者非法锁定顺序。这里指modul_a 先锁定 Row_1/table_1,然后锁定row_1/table_2 ,相反Modul-b 要锁定row_1/table_2,然后锁定 row-1/table-1,当Modul-a 与modul-b 并发执行时,可能导致死锁。
2) Oracle Bug。
DBA 常用参数说明
下面给出管理员常用的参数的说明。其它未提到的参数请参见后面的附录。

跟踪文件路径(BACKGROUND_DUMP_DEST)
参数类型 :字符型。
语法 :BACKGROUND_DUMP_DEST = {pathname | directory}
参数类 :动态。范围= ALTER SYSTEM 。
默认值 :与操作系统有关
值的范围 : 任何有效的路径。
BACKGROUND_DUMP_DEST 指定后台进程(如LGWR, DBWn 等)产生的跟踪文件的路
径。警告文件也记录在该路径下。警告文件的默认名为ALERT_sid.LOG。这些文件增长比较
慢,但要求用户要周期性删除这些文件。

在缓冲区驻留对象(BUFFER_POOL_KEEP)
参数类型: 字符串
语法: BUFFER_POOL_KEEP = {integer |
(BUFFERS: integer [, LRU_LATCHES: integer] ) }
这里 integer是缓冲区数,和LRU锁存器的数
参数类: 静态
默认值:无

BUFFER_POOL_KEEP 可以使你在DB_BLOCK_BUFFERS 下作为保留缓冲池来驻留对象。你
也可以用分配一个LRU的一部分(用DB_BLOCK_LRU_LATCHES )
可以指定5种格式,比如简单的:
BUFFER_POOL_KEEP = 5
或指定缓冲区的组合项和LRU锁存器,如:
BUFFER_POOL_KEEP = (BUFFERS: 400 [, LRU_LATCHES:3] )

版本兼容(COMPATIBLE)
参数类型: 字符串
语法: COMPATIBLE = release_number
参数类: 静态
默认值: 8.0.0
值的范围:默认为当前发行的版本。
并行服务器: 多个实例必须有相同的版本。

控制文件路径(CONTROL_FILES)
参数类型: 字符串
语法: CONTROL_FILES = filename [, filename [...] ]
参数类: 静态
默认值: 操作系统有关
值的范围:1到8个文件名
并行服务器: 多个实例必须有相同的版本。
每个有一个控制文件,它包括一些数据库的实体(如名字,建立的邮戳、数据文件和日志文
件的位置等)。CONTROL_FILES指定一个或多个控制文件名(用豆号来隔开)。

CPU 个数(CPU_COUNT)
参数类型: 整数
参数类: 静态
默认值: 有Oracle系统自动设置
值的范围:0 到 n
一般由Oracle安装程序自动设置。CPU_COUNT指定CPU的个数。Oracle使用此参数设置
LOG_SIMULTANEOUS_COPIES的默认值。单个CPU时CPU_COUNT为1。根据经验,你可以
修改SIMULTANEOUS_COPIES 为CPU个数的两倍。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值