Oracle 10g常见问题精选

一、怎样配置EM使其支持SSL 协议
  
  10G EM 中的OMS, DBConsole,Agent 都支持SSL 协议.
  

  具体操作:
  

  1. 如果没有环境变量ORACLE_SID,请先配置,或者直接敲入set ORACLE_SID=xxx (UNIX环境下请根据不同的shell类型使用不同的语法:setenv, export...)
  

  2. 键入 emctl secure ,可以看到全部的选项:
  
secure oms <sysman password> <registration password>
  

  [<hostname>] [-reset]
  
secure agent <registration password>
  
secure em
  
secure dbconsole <sysman password> <registration password>
  

  [<hostname>]
  
secure setpwd <sysman password> <registration password>
  
secure status [oms url]
  
secure lock | unlock
  

  3. 以配置oms为例
  
  3.1 先停掉所有与oms相关的 服务(opmnctl stopall)
  

  3.2 敲入: emctl secure oms,会让你输入registration password,然后系统会产生相关的证书文件如果一切顺利的话,系统会有提示配置成功的信息
  
  3.3 重新启动服务(opmnctl startall)
  缺省情况下,77774889这两个端口是可用的配置成secure 模式后,4888端口是支持SSL协议的$EM_HOME/sysman/config目录下的emoms.properties文件中可以看到配置信息
.
  

  3.4 检测oms是否已经运行在https协议下
  emctl secure status oms url
  

  注意: URL 要输入完整,
  例如
https://myserver:4888/em/upload/
  
  4. Agent, DBconsole的配置基本类似.
  

  5. 启动浏览器运行时,IE会弹出一个安装安全证书的窗口,按"确认".
  

  二、出现了问题,怎样解决
  
  以DB Control为例大致的步骤是这样的:
  

  1. emctl status dbconsole 查看db control 的状态
  
  2. $ORACLE_HOME/hostname_sid/sysman/log目录下查看相关日志(emoms.log,emagent.log)
  

  3. 检查配置文件 emd.properties,emoms.properties
  目录
: $ORACLE_HOME/hostname_sid/sysman/config
  

  4. 确保监听器工作正常: lsnrctl status
  

  5. 10G EM 使用的是配置文件中定义的连接串,而不是直接访问tnsnames.ora .
  目录
: $ORACLE_HOME/hostname_sid/sysman/config
  文件
: emoms.properties.
  参数
: oracle.sysman.eml.mntr.emdRepConnectDescriptor
  

  三、修改了监听端口怎样保证 DB Control 正常运行
  
  1. 修改 listener.ora tnsnames.ora 这两个文件:
  tnsnames.ora 中需要加入
:
  

  listener_1 =
  
(ADDRESS = (PROTOCOL = TCP)
  (HOST = xxxx)(PORT = 新的端口
))
  

  然后启动数据库:
  
SQL> show parameter local_listener ;
  
SQL> alter system set local_listener='listener_1' scope=spfile;
  

  重启数据库使得修改生效
  
  2. 修改 $ORACLE_HOME/hostname_sid/sysman/config
  下的emoms.properties文件
:
  oracle.sysman.eml.mntr.emdRepPort=新的端口

  oracle.sysman.eml.mntr.emdRepConnectDescriptor=(DESCRIPTION/= (ADDRESS_LIST /=(ADDRESS/=(PROTOCOL/=TCP)(HOST/=xxx)(PORT/=新的端口))) (CONNECT_DATA/= (SERVICE_NAME/=xxx)))
  

  3. 最后,还要修改 $ORACLE_HOME/hostname_sid/sysman/emd
  下的
targets.xml:
  <Property NAME="Port" value="新的端口
"/>
  

  4. 重新启动监听器和dbconsole 服务.
  

  5. 如果嫌上面的操作麻烦,可以用emca这个命令行工具:
  emca -h 查看所有可用的命令

  emca -r 跳过资料档案库的创建.
  

  四、怎样修改 DB Control 的服务端口
  
  缺省情况下, DB Control 的端口是5500, 可以参考下面的说明更改端口。
  
  如果用户想改变oms端口,必须改变以下三个文件,然后重启db control以使得改变生效:
  1.编辑$ORACLE_HOME/_/sysman/config/emoms.properties并改变以下参数:
  oracle.sysman.emSDK.svlt.ConsoleServerPort
  
oracle.sysman.emSDK.svlt.ConsoleServerHTTPSPort
  

  2.编辑$ORACLE_HOME/_/sysman/config/emd.properties并改变以下参数:
  
REPOSITORY_URL
  
emdWalletSrcUrl
  

  3.编辑$ORACLE_HOME/oc4j/j2ee/OC4J_DBConsole__/config/http-web-site.xml并改变以下参数:
  
web-site port
  

  五、如何使用"Automatic SGA Management"
  

  Automatic SGA Management  10G 引入的新特性之一,将初始化参数文件中与内存管理密切有关的几个参数抽取出来,交由数据库去自行管理(由新增加的参数SGA_TARGET来管理),在一定程序上能减轻DBA的负担.
  

  至于参数的合理性,还需要结合AWR Report 去验证.
  
SGA_TARGET = db_cache_size + db_nk_cache_size(n=2,4,...)
  
+ db_keep_cache_size + db_recycle_cache_size +
  
shared_pool_size + java_pool_size + large_pool_size + xxxx
  

  xxx: 是一个保留值,从目前的实验来看,基本是4M
  

  步骤:
  
1.
  
alter system set sga_target=300m scope=both
  
create pfile from spfile;
  
shutdown immediate;
  

  修改init.ora 文件,将这些参数的值设成0:
  
db_cache_size, shared_pool_size, java_pool_size,large_pool_size
  

  2. 启动SQLPLUS,以新的pfile文件启动数据库
  SQL> startup pfile='....'
  

  让我们来看看调整的结果:
  
SQL> select name, block_size, current_size from v$buffer_pool;
  
name block_size current_size
  

  KEEP 8192 204
  
SQL> Select pool, sum(bytes)/1024/1024 as "M bytes" from v$SGASTAT
  
group by pool;
  
pool M bytes
  

  java pool 4
  

  large pool 4
  

  shared pool 84
  

  205.002403
  
205.002403=buffer cache + log buffer + fixed sga + all others ...
  

  改动java pool的值
  SQL> alter system set java_pool_size=20M;
  

  SQL> select name, block_size, current_size,prev_size from v$buffer_pool;
  
name block_size current_size prev_size
  

  KEEP 8192 188 204
  
SQL> Select pool, sum(bytes)/1024/1024 as "M bytes" from v$SGASTAT
  
group by pool;
  
pool M bytes
  

  java pool 20
  

  large pool 4
  

  shared pool 84
  

  189.002403
  

  可以看出, db_cache_size的值已经被自动调小了.
  

  再把java pool 的值改回去
  SQL> alter system set java_pool_size=8M;
  
SQL> select name, block_size, current_size,prev_size from v$buffer_pool;
  

  name block_size current_size prev_size
  

  KEEP 8192 188 204
  

  SQL> select name, block_size, current_size,prev_size from v$buffer_pool;
  

  pool M bytes
  

  java pool 20
  
large pool 4
  
shared pool 84
  
189.002403
  

  这一次, db_cache_size的值没有变化 , JAVA_POOL_SIZE的值也没有变化
  
  修改large pool的值为16M
  
SQL> alter system set large_pool_size=16M;
  
System altered.
  

  SQL> select name,block_size,current_size,prev_size from v$buffer_pool;
  

  NAME BLOCK_SIZE CURRENT_SIZE PREV_SIZE
  

  DEFAULT 8192 176 188
  

  SQL> Select pool, sum(bytes)/1024/1024 as "M bytes" from v$sgastat group by pool;
  

  POOL M bytes
  

  java pool 20
  
large pool 16
  
shared pool 84
  
177.002403
  

  这次,db_cache_sizelarge_pool_size的值都变了
  
  同样,调大shared_pool_size, db_cache_size会自动减小.
  

  虽然db_nk_cache_size的值不会随着workload 的改变而自动调整我们还是可以看看手工改动db_nk_block_size 的情况
  SQL> alter system set db_2k_cache_size=4m;
  

  System altered.
  
SQL> select name,block_size,current_size,prev_size from v$buffer_pool;
  
NAME BLOCK_SIZE CURRENT_SIZE PREV_SIZE
  

  DEFAULT 8192 172 176
  

  DEFAULT 2048 4 0
  

  SQL> alter system set db_2k_cache_size=0;
  

  System altered.
  
SQL> select name,block_size,current_size,prev_size from v$buffer_pool;
  
NAME BLOCK_SIZE CURRENT_SIZE PREV_SIZE
  

  DEFAULT 8192 176 172
  

  SQL> alter system set db_2k_cache_size=8m;
  
System altered.
  
SQL> select name,block_size,current_size,prev_size from v$buffer_pool;
  
NAME BLOCK_SIZE CURRENT_SIZE PREV_SIZE
  

  DEFAULT 8192 168 176
  

  DEFAULT 2048 8 0
  

  结论手工调整db_nk_cache_size确实会影响原有的参数.
  

  最后说一点: SGA_TARGET参数与SGA_MAX_SIZE参数有密切关联,基本的原则就是前者的值不能大于后者的值.
  

  总结:设置了SGA_TARGET参数后,数据库会在这个范围内自行调整;但许多情况下怎样合理地设置这个参数仍是DBA需要考虑的问题他们 需要结合AWR Report等辅助的工具来分析.( 当然,我们可以根据Advisor的历史信息而确定一个比较合理的值)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值