Oracle数据库数据恢复、性能优化

找回密码
注册
搜索
热搜: 活动 交友 discuz
发新帖

131

积分

1

好友

13

主题
1#
发表于 2012-2-20 10:26:23 | 查看: 6086| 回复: 12
[oracle@rad64-oracle10 ~]$ id oracle
uid=501(oracle) gid=501(oinstall) 组=501(oinstall),502(dba)
[oracle@rad64-oracle10 ~]$ uname -a
Linux rad64-oracle10 2.6.32-71.el6.x86_64 #1 SMP Wed Sep 1 01:33:01 EDT 2010 x86_64 x86_64 x86_64 GNU/Linux
[oracle@rad64-oracle10 ~]$ sqlplus '/as sysdba'

SQL*Plus: Release 10.2.0.1.0 - Production on Mon Feb 20 18:21:32 2012

Copyright (c) 1982, 2005, Oracle.  All rights reserved.

Connected to an idle instance.

SQL> startup
ORA-27125: unable to create shared memory segment
Linux-x86_64 Error: 1: Operation not permitted
SQL>


经查询需要:
echo 502  > /proc/sys/vm/hugetlb_shm_group
但是这样重启机器就没有了,每次startup都需要进行这个操作
想弄明白为什么在其他机器上就没有这个问题那?望斑竹解答
2#
发表于 2012-2-20 10:49:48
action plan:

1.  cat /etc/sysctl.conf
2.  su - oracle; ulimit -a
3.  strings spfile$SID.ora or  init$SID.ora

回复 只看该作者 道具 举报

3#
发表于 2012-2-20 11:12:06
[root@rad64-oracle10 ~]# cat /etc/sysctl.conf |grep -v ^#|grep -v ^$
net.ipv4.ip_forward = 0
net.ipv4.conf.default.rp_filter = 1
net.ipv4.conf.default.accept_source_route = 0
kernel.sysrq = 0
kernel.core_uses_pid = 1
net.ipv4.tcp_syncookies = 1
net.bridge.bridge-nf-call-ip6tables = 0
net.bridge.bridge-nf-call-iptables = 0
net.bridge.bridge-nf-call-arptables = 0
kernel.shmmax = 536870912
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
fs.file-max = 205914
net.ipv4.ip_local_port_range = 1024 65000
net.core.rmem_default=4194304
net.core.rmem_max=4194304
net.core.wmem_default=262144
net.core.wmem_max=262144
[root@rad64-oracle10 ~]# su - oracle
[oracle@rad64-oracle10 ~]$ ulimit -a
core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 6072
max locked memory       (kbytes, -l) 64
max memory size         (kbytes, -m) unlimited
open files                      (-n) 1024
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 10240
cpu time               (seconds, -t) unlimited
max user processes              (-u) 2047
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited
[oracle@rad64-oracle10 ~]$ strings /home/oracle/app/product/10.2.0/dbs/spfileora10.or
strings: '/home/oracle/app/product/10.2.0/dbs/spfileora10.or': No such file
[oracle@rad64-oracle10 ~]$ strings /home/oracle/app/product/10.2.0/dbs/spfileora10.ora
ora10.__db_cache_size=109051904
ora10.__java_pool_size=4194304
ora10.__large_pool_size=4194304
ora10.__shared_pool_size=67108864
ora10.__streams_pool_size=0
*.audit_file_dest='/home/oracle/app/admin/ora10/adump'
*.background_dump_dest='/home/oracle/app/admin/ora10/bdump'
*.compatible='10.2.0.1.0'
*.control_files='/home/oracle/app/oradata/ora10/control01.ctl','/home/oracle/app/oradata/ora10/control02.ctl','/home/oracle/app/oradata/ora10/control03.ctl'
*.core_dump_dest='/home/oracle/app/admin/ora10/cdump'
*.db_block_size=8192
*.db_domain=''
*.db_file_multiblock_read_count=16
*.db_name='ora10'
*.db_recovery_file_dest='/home/oracle/app/flash_recovery_area'
*.db_recovery_file_dest_size=2147483648
*.dispatchers='(PROTOCOL=TCP) (SERVICE=ora10XDB)'
*.job_queue_processes=10
*.open_cursors=300
*.pga_aggregate_target=61865984
*.processes=150
*.remote_login_passwordfile='EXCLUSIVE'
*.sga_target=185597952
*.undo_management='AUTO'
*.undo_tablespace='UNDOTBS1'
*.user_dump_dest='/home/oracle/app/admin/ora10/udump'
[oracle@rad64-oracle10 ~]$

帮主帮忙看看吧,多谢了

回复 只看该作者 道具 举报

4#
发表于 2012-2-20 12:24:17
[oracle@rad64-oracle10 ~]$ ulimit -a
core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 6072
max locked memory       (kbytes, -l) 64
max memory size         (kbytes, -m) unlimited
open files                      (-n) 1024
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 10240
cpu time               (seconds, -t) unlimited
max user processes              (-u) 2047
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited


正确的 ulimit -a 输出

[oracle@vrh2 ~]$ ulimit -a
core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 31606
max locked memory       (kbytes, -l) 50000000
max memory size         (kbytes, -m) unlimited
open files                      (-n) 131072
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 8192
cpu time               (seconds, -t) unlimited
max user processes              (-u) 131072
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited
[oracle@vrh2 ~]$

回复 只看该作者 道具 举报

5#
发表于 2012-2-20 12:33:54
斑竹的意思是:
max locked memory :这个字段的值不对吗?

回复 只看该作者 道具 举报

6#
发表于 2012-2-20 13:15:56
多谢斑竹,是因为max locked memory这个字段值的问题
修改/etc/security/limits.conf
加上
oracle  soft    memlock -1
oracle  hard    memlock -1
但是为什么其他机器就不用加这个参数而这个机器就需要加那?

回复 只看该作者 道具 举报

7#
发表于 2012-2-20 14:25:58

回复 6# 的帖子

其他机器上的 sga_target 和 memlock分别是多少?

回复 只看该作者 道具 举报

8#
发表于 2012-2-20 14:37:04
[oracle@rad64-oracle11 ~]$ ulimit -a
core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 5384
max locked memory       (kbytes, -l) 64
max memory size         (kbytes, -m) unlimited
open files                      (-n) 1024
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 10240
cpu time               (seconds, -t) unlimited
max user processes              (-u) 2047
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited
这是另外一台可以正常启动机器的配置

回复 只看该作者 道具 举报

9#
发表于 2012-2-20 14:38:26
[oracle@rad64-oracle11 ~]$ strings /home/oracle/app/product/11.2.0/dbs/spfileora11.ora
ora11.__db_cache_size=125829120
ora11.__java_pool_size=4194304
ora11.__large_pool_size=4194304
ora11.__oracle_base='/home/oracle/app'#ORACLE_BASE set from environment
ora11.__pga_aggregate_target=0
ora11.__sga_target=272629760
ora11.__shared_io_pool_size=0
ora11.__shared_pool_size=130023424
ora11.__streams_pool_size=0
*._memory_imm_mode_without_autosga=FALSE
*._shared_io_pool_size=0
*.audit_file_dest='/home/oracle/app/admin/orcl11g/adump'
*.audit_trail='db'
*.compatible='11.2.0.0.0'
*.control_files='/home/oracle/app/oradata/orcl11g/control01.ctl','/home/oracle/app/flash_recovery_area/orcl11g/control02.ctl'
*.db_block_size=8192
*.db_cache_size=113246208
*.db_domain='us.oracle.com'
*.db_name='orcl11g'
*.db_recovery_file_dest='/home/oracle/app/flash_recovery_area'
*.db_recovery_file_dest_size=5218762752
*.diagnostic_dest='/home/oracle/app'
*.dispatchers='(PROTOCOL=TCP) (SERVICE=ora11XDB)'
*.java_pool_size=4194304
*.large_pool_size=4194304
*.memory_max_target=314572
*.open_cursors=300
*.pga_aggregate_target=0
*.processes=150
*.remote_login_passwordfile='EXCLUSIVE'
*.sga_target=272629760
*.shared_pool_size=0
*.streams_pool_size=0
*.undo_tablespace='UNDOTBS1'
[oracle@rad64-oracle11 ~]$

这是参数文件的结果

回复 只看该作者 道具 举报

10#
发表于 2012-2-20 14:50:18
*.memory_max_target=314572? 为什么这个值设置了, 而且又这么小?

回复 只看该作者 道具 举报

11#
发表于 2012-2-20 15:22:27
[oracle@rad64-oracle11 ogg]$ sqlplus "/as sysdba"

SQL*Plus: Release 11.2.0.1.0 Production on Mon Feb 20 23:03:21 2012

Copyright (c) 1982, 2009, Oracle.  All rights reserved.


Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

SQL> show parameter memory

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
_memory_imm_mode_without_autosga     boolean     FALSE
hi_shared_memory_address             integer     0
memory_max_target                    big integer 300M
memory_target                        big integer 0
shared_memory_address                integer     0
SQL> select 300*1024 from dual;

  300*1024
----------
    307200

SQL> show parameter sga

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
_memory_imm_mode_without_autosga     boolean     FALSE
lock_sga                             boolean     FALSE
pre_page_sga                         boolean     FALSE
sga_max_size                         big integer 300M
sga_target                           big integer 260M
SQL>

为啥会显示成314572?难道在设置参数的时候不能直接300M?

回复 只看该作者 道具 举报

12#
发表于 2012-2-20 16:50:50
问题实例  10g 使用 ASMM ,ASMM 调用内存时使用 .传统的sys V 使用的共享内存shm接口


正常实例  11g  设置了 memory_max_target                    big integer 300M  , 但是没设置 memory_target 。 这会导致 oracle实例 调用内存时使用 POSIX风格的共享内存管理借口;  不建议 用 memory_max_target >0 & memory_target =0 这样的使用组合

回复 只看该作者 道具 举报

13#
发表于 2012-2-21 10:08:09
非常感谢版主的解答!!!

回复 只看该作者 道具 举报

您需要登录后才可以回帖 登录 | 注册

QQ|手机版|Archiver|Oracle数据库数据恢复、性能优化

GMT+8, 2024-11-15 01:52 , Processed in 0.055067 second(s), 21 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部
TEL/電話+86 13764045638
Email service@parnassusdata.com
QQ 47079569