windows 下 cmd 命令行登录 oracle 数据库方法。直接就登录进来了。
今天一个开发的同事找到我,说有个问题想咨询一下我,突然想起他昨天让我帮他处理一个工单,他这么一问我才想起来还没做,结果他说是另外一件事,说有个开 发测试的环境,数据库报04031的错误,想让我帮忙看看是怎么回事,这种问题刚好就找对了。首先开发测试环境,访问量不高,业务量不大,环境也要简单很 多,出现这个问题,让我能够唯一觉得可能的原因就是sga设置太小了。当然带着这个想法也让另外一个同事去现场看看问题,如果问题确实要复杂一些,那我们 再采取其它的措施,当然解决不了问题也没关系,权当是给新同事的一次历练吧。
net.ipv4.ip_local_port_range = 9000 65500
关于Linux系统的HugePages与Oracle数据库优化,可以参考熊爷之前的文章,相关概念介绍的非常清晰:
在学习Oracle内存结构的时候,发现一个问题:我的虚拟机Oracle环境参数文件中设置的sga_target=960M,但是在启动数据库时候,显示分配的Total System Global Area为1002127360 bytes(955.7M),那么问题就来了,为什么会不一致?相差的4.3M去干什么了?
1.从oracle 11.1开始oracle提供了通过MEMORY_TARGET参数实现自动SGA和PGA自动管理的功能,从此版本开始不再需要明确设置SGA_TARGET及PGA_AGGREGATE_TARGET,这个被支持在linux、windows、solaris、hpux、aix。
在 Linux 中大页分为两种: Huge pages (标准大页) 和 Transparent Huge pages(透明大页)。
熊军(老熊) 云和恩墨西区总经理 Oracle ACED,ACOUG核心会员 PC Server发展到今天,在性能方面有着长足的进步。64位的CPU在数年前都已经进入到寻常的家用PC之中,更别说是更高端的PC Server;在Intel和AMD两大处理器巨头的努力下,x86 CPU在处理能力上不断提升;同时随着制造工艺的发展,在PC Server上能够安装的内存容量也越来越大,现在随处可见数十G内存的PC Server。正是硬件的发展,使得PC Server的处理能力越来越强大,性能越来越高。而在稳定性
HugePages是通过使用大页内存来取代传统的4kb内存页面,使得管理虚拟地址数变少,加快了从虚拟地址到物理地址的映射以及通过摒弃内存页面的换入换出以提高内存的整体性能。尤其是对于8GB以上的内存以及较大的Oracle SGA size,建议配值并使用HugePage特性。本文基于x86_64 Linux下来描述如何配值 HugePages。 有关HugePages的特性请参考:Linux HugePage 特性
今天没有注意所用的数据库是建立在32位的Windows上的,看到内存有8G,就马上将Oracle的SGA改为5G了,结查重起Oracle时马上报 out of memory的错。
最近收到报警,某一个服务器的swap空间有些紧张,查看这台服务器上有两个备库数据库实例,当然负载还是很低的。但是目前来看,内存已经所剩无几,所以自然而然会用到swap,而且swap也看起来紧张了,从设计的角度来看,这种方式还是有很大的隐患,一旦需要切换,这台服务器还是很有可能出现oom-killer的情况,也就意味着宕机。所以从小从大来看这个报警都不能掉以轻心。 使用top查看的情况如下,可以看到swap已经很紧张了,剩余内存不到300M了。 top - 13:46:44 up 973 days, 3:0
Oracle 不同平台的数据库安装指导为我们部署Oracle提供了一些系统参数设置的建议值,然而建议值是在通用的情况下得出的结论,并非能完全满足不同的需求。使用不同的操作系统内核参数将使得数据库性能相差甚远。本文描述了linux下几个主要内核参数的设置,供参考。
PostgreSQL的默认最大连接数是100个,但是这个参数可以在服务器启动时进行设置。如果您想增加最大连接数,您还需要同时增加shared_buffers和kernel.shmmax的值,以提高数据库的缓存能力和性能。但是,增加连接数也会消耗更多的内存,所以您应该根据您的系统资源和应用需求来合理调整这个参数。如果您的应用需要大量的连接,您可以考虑使用pg_bouncer等工具来进行连接池管理。
HugePages是Linux内核2.6+集成的一个功能,可以允许管理大于4KB的页。
MEMORY_TARGET参数在Oracle 11g被引进,主要是用于控制Oracle对于系统内存的使用,首次将SGA与PGA整合到一起实现自动管理。一旦设置了MEMORY_TARGET参数值,Oracle会根据需要自动调整SGA与PGA以合理的分配及使用内存。但如果MEMORY_TARGET设置不当,就容易引起ORA-00845,因为MEMORY_TARGET与/dev/shm(tempfs)息息相关,本文即是对由此引发问题的描述。
HugePage,就是指的大页内存管理方式。与传统的4kb的普通页管理方式相比,HugePage为管理大内存(8GB以上)更为高效。本文描述了什么是HugePage,以及HugePage的一些特性。
今天发现自己搭建的rac服务器上内存有128G,而sga只配了4G,pga也只有4G,需要设置大一点。由于这两台服务器上除了数据库没有别的应用,因此我给sga配了80G,给pga配了10G,奇怪是重启数据库时报以下错误:
最近由于session数量增加,需要调整session,也就是要调整process参数。看是比较简单的一个问题,却遭遇了ORA-27300,ORA-27301。因为这个涉及到了有关内核参数kernel.sem的修改。下面是其具体描述。 1、故障现象 OS版本:SUSE Linux Enterprise Server 10 SP3 (x86_64) - Kernel \r (\l) DB版本: SQL*Plus: Release 10.2.0.3.0 - Production 需求:Processes参数由1000修改到2000 SQL> startup pfile=/u02/database/MRDB/initMRDB.ora; ORA-27154: post/wait create failed ORA-27300: OS system dependent operation:semget failed with status: 28 ORA-27301: OS failure message: No space left on device ORA-27302: failure occurred at: sskgpcreates 2、故障的分析与解决 #起初咋一看还以为空间不够呢,如下,显然不是空间的问题,其次有个很重要的表示"semget" SQL> ho df -h Filesystem Size Used Avail Use% Mounted on /dev/sda3 1.8T 826G 885G 49% / udev 32G 116K 32G 1% /dev /dev/sda1 99M 9.5M 85M 11% /boot #后台日志如下 Tue Aug 5 18:07:22 2014 Starting ORACLE instance (normal) Tue Aug 5 18:07:22 2014 Errors in file /u02/database/MRDB/udump/mrdb_ora_30366.trc: ORA-27154: post/wait create failed ORA-27300: OS system dependent operation:semget failed with status: 28 ORA-27301: OS failure message: No space left on device ORA-27302: failure occurred at: sskgpcreates #Google了一些文章,描述的是需要调整内核参数kernel.sem,也就是信号量的问题 v2012db02u:~ # grep kernel.sem /etc/sysctl.conf kernel.sem = 1250 32000 100 256 #这个是当前的值 信号量设置示例 SEMMSL应该设置为服务器中实例中具有最大的PROCESSES参数+10,例如,当最大的PROCESSES参数为5000时,SEMMSL应设置为5010。 SEMMNS参数应设置为SEMMSL*SEMMNI,接上例SEMMSL为5010,SEMMNI的值一般为128,则SEMMNS参数应为(5010*128)=641280。 SEMOPM参数应设置与SEMMSL参数相同,接上例此处应设置为5010 因此对于信号量建议做如下设置 sysctl -w kernel.sem="5010 641280 5010 128" #关于这个参数的具体描述及设置可以参考:Linux 内核参数优化(for oracle) #由于当前服务器存在N个实例,因此给了一个比较大的值,生产环境应慎重修改,如下 v2012db02u:~ # vi /etc/sysctl.conf v2012db02u:~ # sysctl -p ........... kernel.sem = 7000 1792000 7000 256 ........... #再次启动,狂汗.... SQL> startup pfile=/u02/database/MR/initMR.ora; ORA-00064: object is too large to allocate on this O/S (1,5150880) v2012db02u:~ > oerr ora 00064 00064, 00000, "object is too large to allocate on this O/S (%s,%s
ASMM(Automatic Shared Memory Management,自动共享内存管理)是Oracle 10g引入的概念。通过使用ASMM,就不需要手工设置相关内存组件的大小,而只为SGA设置一个总的大小,Oracle的MMAN进程(Memory Manager Process,内存管理进程)会随着时间推移,根据系统负载的变化和内存需要,自动调整SGA中各个组件的内存大小。ASMM的SGA中包含的组件及对应参数如下表所示:
该系列专题为2018年4月OCP-052考题变革后的最新题库。题库为小麦苗解答,若解答有不对之处,可留言,也可联系小麦苗进行修改。
之前分享过一篇博文,是一条sql语句"导致"的数据库宕机,上次是另有原因,这次真碰到一个案例,而且是在重要的环境上,希望大家引以为戒。 数据库是基于Linux64的版本,版本是11.2.0.2.0,已经打了最新的psu. 数据库的访问用户数大约在1000左右,当时查看服务器的cpu已经是100%了,有大约10个进程都是cpu 100%,数据库逻辑读也是超高,一秒钟大约是接近百兆的情况,sga是12G,已用了sga的自动管理(sga_target=0), 查看内存组件时发现buffer_cache已经有shr
在SGA中每一个单独的组件究竟需要多少内存呢?在Oracle 10g 中可以自动化管理大多数SGA参数。
近日在某客户现场进行巡检,发现有一个系统在进行sqlplus / as sysdba登录的时候特别缓慢。多次测试,最长时间可以达到近10s才能成功登录。此时,对主机的CPU、内存、IO以及网络等参数进行查看,发现使用率均不高,远远没有达到瓶颈,且在登录之前和登录之后,所有操作均非常顺滑,没有任何卡顿。因此,判断该系统就是在sqlplus登录的时候才可能出现卡顿。
ORA-00821: Specified value of sga_target 4096M is too small, needs to be at least 5504M 译文:sga_target 参数 4096M 的指定值太小,需要至少为 5504M
作者介绍: 姜刚 云和恩墨技术顾问 2017年3月加入云和恩墨,熟悉shell、perl脚本等。 为了加深对ORACLE数据库结构的了解,我们今天从C语言的角度,讲解如何使用C语言直接访问SGA。 基于的事实: 1、数据库启动后会分配共享内存(在ORACLE中称为System Global Area[SGA]) 2、数据库中X$开头的表都是内存映射表 3、在Linux/Unix下提供了C的Lib库可以访问共享内存(shmat,shmdt,shmget等) 以GV$SESSION_WAIT为例 查看GV$S
镜像大概21G左右,解压后大约50G左右,所以请保留充足的空间,至少100G才能运行(不说了,Oracle的产品就是这么耗磁盘空间,耗内存)。执行过程如下:
环境:RHEL5.5 + Oracle 10.2.0.4 此错误一般是因为数据库的初始化参数文件的内存设置不当导致。本例是因为操作系统参数设置问题导致。
前面介绍了Oracle的基本参数,从这节开始讲其他的参数,参数从v$parameter中提取
前几天生产环境需要做服务器的扩容,把原本64G的内存扩到了128G.然后调整了一些其他的kernel参数,在此基础上需要调整sga的大小,以便分配更多的缓存。 环境是11gR2的RAC环境,这时候rac有一个明显的优点就显现出来了,就是没有downtime。一个实例一个实例的改动,调整kernel,db参数都很方便管理。 所在的每个服务器只有一个oracle_home,各有两套rac环境在同一个unix账户下。所以我启停数据库的时候也是一套环境一套环境的来。反正节点也不多。 我先是按照要求把sga调整了一下
oracle各个版本间的主要技术更新 oracle 8 增加数据库创建和存储对象 oracle 8i 整体性能提升 oracle9i 实施应用集群 oracle 10g 支持网格计算 oracle 11g 自我调整 自我管理 oracle后缀中的字母含义: i : 包含internet部署的新功能 g: 专注于新兴的网格计算模型 c: 云服务 cloud oracle中数据库与实例的概念 数据库:信息的物理存储。数据库是物理的,由存储在磁盘中的文件组成 实例:服务器上运行的软件,提供了对数据库的信息的访问
前阵子的alert日志获得了所需堆尺寸的大小超出指定阙值的提示,即Heap size 80869K exceeds notification threshold (51200K)。从Oracle 10.2.0.2之后该阙值已经增加到了50MB。通过LRU算法理论上来说应该是足够的。这个问题是由于SGA中碎片太多,一时间无法找到容纳当前语句于是抛出该提示信息。需要注意的是此时数据库并没有给出ora-04031错误提示。下面给出具体的描述。
系统配置:Linux CentOS 5、Oracle Enterprise Edition Release 10.2.0.1.0、表级单向流复制 问题现象:流复制失效,源表更新,目标表没有更新 排错过程:
--==========================================
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/wzy0623/article/details/53924087
最近测试环境的连接数老是不够用,session/process 都相应的从5000提到了8000,但还是不够,而且还是不断有新环境需要增加。最后根据评估,session数需要50000左右 根据粗略的计算来说,process也需要调整,按照如下的公式. sessions=(1.1*process+5) 把semmns做了大幅度的调整,从32000调到了70000 > cat /proc/sys/kernel/sem 250 32000 100 256 > sysctl -a |grep
最近的UAT数据库迁移,由于是多个DB需要迁移到同一台机器,一部分完成后,启动后续数据库碰到了ORA-27102错误,提示内存超出,查看系统可用内存,远大于需要启动数据库的sga和pga,究竟是怎么一回事呢?如果你也碰到类似错误,不妨往下看。
最近周四的一篇文字中的分享引起了部分同学的注意,私信我,并问了一些问题,这里挑拣了 红旗迎东风(希望名字没有敲错)同学的问题。他的问题主要是围绕 POSTGRESQL buffer 与 os cache 之间的关系,展开的。
在Oracle中,内核参数kernel.shmall、kernel.shmall、kernel.shmmni和kernel.sem分别代表什么含义?
Oracle内存结构主要分共享内存区与非共享内存区,共享内存区主要包含SGA(System Global Area,系统全局区),非共享内存区主要由PGA(Program Global Area,程序全局区)组成,如下图所示:
oracle11g新出参数 MEMORY_MAX_TARGET 和 MEMORY_TARGET 进行自动管理PGA 和SGA 称之为 自动化内存管理(Automatic Memory Management,AMM) MEMORY_MAX_TARGET :MEMORY_TARGET所能设定的最大值。非动态可调 MEMORY_TARGET :操作系统上 Oracle 所能使用的最大内存值。动态参数,MEMORY_TARGET 是PAG 和SGA的总和.memory_target 为 0 是手动管理,非0为自动管理 sga_max_size : sga_max_size 是sga的最大值 sga_target : sga_target 是自动和手段管理 sga_target 为0 是手动管理,非0 是自动管理
oracle11g新出参数 MEMORY_MAX_TARGET 和 MEMORY_TARGET 进行自动管理PGA 和SGA 称之为 自动化内存管理(Automatic MemoryManagement,AMM)
Oracle数据库资源管理器(资源管理器)现在可以在多租户容器数据库(CDB)中管理可插入数据库(PDBs)之间的内存使用。这一特性有助于在CDB中维护所有PDBs的性能,确保所有的PDBs都不会占用更多资源,从而导致其他PDBs上的资源紧缩。
关于内存的配置,是最影响 Oracle性能的配置。内存还直接影响到其他两个重要资源的消耗: CPU 和 IO.
情况是这样的,有一套测试数据库所在的主机在最近几个月,每个月都会重启一至两次,由于数据库配置了开机自启动,且每次重启时间都比较短暂,便没有得到重视。最近由于测试人员的反馈,每当主机重启后呢会导致大片的测试应用由于断连导致无法使用,每次都需要重启应用才会好。那么我们就需要介入认真排查一下问题所在了,恰巧最近一次的重启时间为 11 月 10 日 18:29 左右,需要针对此问题分析 os 重启原因。
最近有网友对Oracle SGA内存自动管理特性不是很清楚,可能是由于当时翻译的 Oracle 10g SGA 的自动化管理 比较生涩,下面依旧是针对这个问题给出在Oracle 10g环境中描述,并给出示例以便更好的理解。
墨墨导读:本文出自墨天轮“每日一练”专栏,此专栏已连更84天,欢迎关注https://www.modb.pro/topic/26446(复制到浏览器中打开或者点击“阅读原文”直达),本文主要描述的是实例优化中内存ASMM管理方式
结果出错了。经过查找资料,发现11g新增了个参数MEMORY_TARGET,其大小等于PGA+SGA,当sga的大小大于MEMORY_TARGET就会报如上错误。
领取专属 10元无门槛券
手把手带您无忧上云