图2-1可以说是标准的生产库环境,处处体现了冗余,有效防止了单点故障。这就是HA(高可用)
redis适合放一些频繁使用,比较热的数据,因为是放在内存中,读写速度都非常快,一般会应用在下面一些场景,排行榜、计数器、消息队列推送、好友关注、粉丝。
熊军(老熊) 云和恩墨西区总经理 Oracle ACED,ACOUG核心会员 PC Server发展到今天,在性能方面有着长足的进步。64位的CPU在数年前都已经进入到寻常的家用PC之中,更别说是更高端的PC Server;在Intel和AMD两大处理器巨头的努力下,x86 CPU在处理能力上不断提升;同时随着制造工艺的发展,在PC Server上能够安装的内存容量也越来越大,现在随处可见数十G内存的PC Server。正是硬件的发展,使得PC Server的处理能力越来越强大,性能越来越高。而在稳定性
Oracle正在考虑将JEP 248包含到Java 9的JEP列表中,即在服务器配置中将G1作为默认垃圾收集器。该决定在Java社区引发了一些争论,许多人都认为并发标记和扫描(CMS)收集器可能更合适
Oracle是目前最流行的客户/服务器(CLIENT/SERVER)或B/S体系结构的数据库之一,而序列是一个计数器,它并不会与特定的表关联,通过创建Oracle序列和触发器实现表的主键自增。序列一般是用来填充主键和计数的,不占用磁盘空间,占用内存。本期我们重点来讲述一下Oracle序列。
临时表空间是Oracle数据库的重要组成部分,尤其是对于大型的频繁操作,如创建索引、排序等等都需要在临时表空间完成来减少内存的开销。当然对于查询性能要求较高的操作应尽可能的避免在磁盘上完成这些操作。
与其他RDBMS软件一样,Oracle数据库是建立在SQL之上的,SQL是一种标准化的编程语言,数据库管理员、数据分析师和其他IT专业人员使用它来管理数据库并查询存储在其中的数据。Oracle软件与PL/SQL绑定,PL/SQL是Oracle开发的一种实现,它为标准SQL添加了一组专有的编程扩展,这是RDBMS供应商的常见做法。Oracle数据库还支持用Java编程,用PL/SQL或Java编写的程序可以从其他语言调用。
服务器就是一个软件,任何电脑只需要安装上了服务器软件, 我们的电脑就可以当做一台服务器了.
oracle分两块,oracle数据库软件和oracle数据库。oracle数据库软件位置通过以下命令可以找到:
1、Oracle是大型的数据库而Mysql是中小型数据库;Mysql是开源的,Oracle是收费的,且价格昂贵。
这两年见证了公司从600人发展到1200+的过程,虽然公司在安全投入上还算慷慨,但是人员编制有严格要求,一个人的安全部只能把精力放在基础/重点工作上。其中防病毒这块也是两年前才正式部署了企业版防病毒软件,推广过程中也遇到了很多阻力及各种奇葩的安全理念(比如生产服务器我不敢装防病毒,万一瘫了怎么办;领导的电脑,防病毒还是别装吧,装了会很慢),这期间也遇到多起病毒木马事件,每次我都会借助安全事件,狠狠的推一把防病毒软件,目前为止,已经实现所有PC和Windows服务器防病毒软件的百分百覆盖。现将几起病毒木马的处理过程整理一下跟大家分享,本系列偏向于实战。
通常我们在自己电脑上搭建项目环境时,都免不了要安装Oracle。不管你硬件多强悍,都会发现,Oracle服务一旦启用,内存立马吃紧。笔者内存8G,启动一个VS,启动一个Eclipse,启动一个虚拟机,开一个Tomcat,再开一个PL/SQL,内存基本就耗去了一大半。再启用Oracle服务,内存马上飙升五六百兆,程序便会频繁出现假死。
排名前三名的数据库只有 MySQL 开源,并从 DB-Engines排行榜中可以看出,MySQL 几乎和 Oracle 持平,逐渐成为了世界上最主流的数据库,所以我们使用 MySQL 进行学习。
对于一个数据库系统来说,假设这个系统没有运行,我们所能看到的和这个数据库相关的无非就是几个基于操作系统的物理文件,这是从静态的角度来看,如果从动态的角度来看呢,也就是说这个数据库系统运行起来了,能够对外提供服务了,那就意外着数据库系统启动了自己的一个实例,综合以上2个角度,Oracle如何定义上述描述呢?
数据库是与应用程序实现信息交互的数据存储、管理软件,并且存储数据的也都可以称为数据库。在以前没有使用数据库的时候,只能够自己写数据的存储方案。
例如我的虚拟机虚拟出50g的硬盘,实际上我的本机的磁盘空间只用了5g。其余的都是虚拟出来的。
在从root用户切换到oracle用户时,碰到了ulimit: open files: cannot modify limit: Operation not permitte的提示信息。字面意思来看即是打开文件受到了限制。同一服务器上,如仅有一个Oracle单实例且数据文件较少的情形应该不会出现该情形。多实例可能会碰到这个情况。由于多个实例都为Oracle用户所有,因此Oracle用户可操作的文件数为所有实例文件数的总和,超出了限制就收到错误提示。
最近这些天有一台服务器总是会收到剩余swap过低的告警。 邮件内容大体如下: ############ ZABBIX-监控系统: ------------------------------------ 报警内容: Lack of free swap space on ora_test_s2_yangjr@10.127.2.xxxx ------------------------------------ 报警级别: PROBLEM ------------------------------------
i. 发现有个进程CPU使用率居然700%,COMMAND 是一些随机的字符串组成,完了~ 中标了;第一想到就是“沙雕”它,kill 命令给我上。
MYSQL 8 已经上线一段时间了,每个数据库系统的内存方面都有自己的特点,MYSQL的内存的特点,下面总结了一些同学们经常会问的一些内存方面的问题.
一.SQL语言的使用 1.IN 操作符 用IN写出来的SQL的优点是比较容易写及清晰易懂,这比较适合现代软件开发的风格。 但是用IN的SQL性能总是比较低的,从Oracle执行的步骤来分析用IN的SQL与不用IN的SQL有以下区别: ORACLE试图将其转换成多个表的连接,如果转换不成功则先执行IN里面的子查询,再查询外层的表记录,如果转换成功则直接采用多个表的连接方式查询。 由此可见用IN的SQL至少多了一个转换的过程。一般的SQL都可以转换成功,但对于含有分组统计等方面的SQL就不能转换了。
所有数据库包括Oracle的sql优化都是针对程序员的,而不是针对dba的,第一,尽量防止模糊,明确指出,即用列名代替*,第二,在where语句上下工夫。第三多表查询和子查询,第四尽量使用绑定。
1、vCenter是vSphere基础物理架构的核心,提供访问控制、性能监控和配置共享功能。可以将多台esxi主机资源集中并共享,充当esxi主机的中心管理员。 2、必须的三大组件: 1)vCenter single sign-on(SSO):身份验证服务 2)vCenter inventory Service:清单服务:存储vCenter的应用程序和清单数据 3)vSphere Web vClient:web管理工具:使用web浏览器通过vCenter管理esxi主机的应用程序,所有5.0以上新增的功能
对于一门技术的学习,尤其是像Oracle database这种知识体系极其庞杂的技术来讲,从宏观上了解其体系结构是至关重要的。同时,个人认为,未必是专业DBA人员才需要了解其体系结构(固然对于数据库专业人员来讲,这些都是必备知识了),一般的技术人员如果对其有较深入的了解,也是大有益处的,毕竟技术思想很多时候都是相通的嘛。本文就从不同维度,如Oracle的内存结构,进程结构,存储结构等方面做相应描述。
微软已经发布了众所期待的 SQL Server 2012,让我们来看看这个新版给我们带来了什么激动人心的功能吧。
今天中午,开发测试环境的MySQL服务报了一个too many connections的错误,从问题上看,可能是连接池被打满了,导致所有的连接都不可用了。
数据库的体系结构是指数据库的组成、工作过程、以及数据库中数据的组织与管理机制,要了解Oracle数据库的体系结构,必须理解Oracle系统的主要组件和重要概念。
接触到 JDBC 的 Fetch Size 这个属性缘起一个性能问题,项目中需要将一个有千万级数据量的表中的记录导出到文件中去。按照正常的路数,先初始化连接;接着写好 SQL 语句,比如SELECT * FROM DIM_USERS;然后启动查询,拿到 ResultSet,最后遍历 ResultSet 将每行记录输出到文件中去。可在接下来的测试中,发现性能并不理想,在表中数据量小的时候,执行速度尚可接受,可是在进行大数据量压力测试的时候,发现代码往往要执行40分钟以上,这在实际生产环境上是万万不可接受的。
Oracle RAC One Node是Oracle Database 11.2引入的Oracle数据库企业版的一个选项。它为单实例Oracle数据库提供了增强的高可用性,可以保护计划内和计划外的停机时间。 本文来自Oracle白皮书翻译 Oracle RAC One Node有以下优点: 增强Oracle数据库的可用性 为Oracle数据库整合提供便利(提供对多租户的支持) 方便进行数据库虚拟化 Oracle RAC One Node还允许客户对其数据库部署和管理进行标准化,整合数据库存储,如果需要,可
虽然最近亚马逊在迁离Oracle的数据库,使用Aurora PostgreSQL导致Prime Day促销日出现故障,但这似乎并不影响Amazon Aurora 数据库的推进,并且亚马逊一直在说Amazon Aurora兼容MySQL和PostgreSQL,是一种将数据库迁移到云的优秀工具。可见其要脱离Oracle的决心。而SAP也做出了同样的事情,在以前的SAP ERP系统里,SAP一直使用着别人的数据库,比如Oracle,后来SAP推出了HANA内存数据库,在S/4 HANA系列版本中,成功的使用了自己研发的数据库。可以看出这两家企业都想离开Oracle,所以合作是必然的事。
本小节以几道真题为例,简单讲解与SHELL有关的面试题。在实际工作中,要写的SHELL脚本要复杂得多。
PGA,即程序全局区(Program Global Area),是Oracle体系机构的重要组成部分。Oracle 数据库对系统内存的总开销即是PGA+SGA。SGA主 要由库缓存(共享SQL区和PL/SQL区)和数据字典缓存组成。而PGA包含客户端连接服务器所派生的服务器进程的集合,每个服务器进程都拥有存放 数据和控制信息的私有内存区域。客户端进程和服务器端进程一一对应,由服务器端进程完成用户的请求,并将数据返回给客户端进程。
一、如果知道一个文件名称,怎么查这个文件在 Linux下的哪个目录,如:要查找 tnsnames.ora文件
Web服务器也称为WWW (WORLD WIDE WEB)服务器、HTTP服务器,其主要功能是提供网上信息浏览服务。
在企业业务信息化之后,企业业务依赖于各种应用系统,应用系统又依赖于各种IT资源。当IT资源出现故障或性能下降时,会导致应用宕机或性能下降,进而影响企业业务产出。资源监控就是对那些可能影响IT资源服务能力的各种技术性能参数进行全面监控,以便提前发现问题隐患并预警,帮助企业将故障消灭于萌芽状态之中。
Oracle19c 作为长期支持的大版本,是很多公司和个人选择的主流数据库版本,很多公司新上线的系统也都是以 19C 为主,也有很多企业渐渐地迁移数据库到19C,11204 版本已经逐渐退出了舞台。下面对 Oracle 19C版本遇到的几个最主要的问题做个简单介绍。
学习是一个循序渐进的过程,从面到点、从宏观到微观,逐步渗透,各个击破,对于Oracle, 怎么样从宏观上来理解呢?先来看一个图,这个图取自于教材,这个图对于从整体上理解ORACLE 的体系结构组件,非常关键。
这是之前的一个死锁案例: 一个多线程死锁案例,如何避免及解决死锁问题? 如程序中发生这样的死锁问题该如何排查呢?我们可以使用java自带的jstack命令进行排查。 1、先在服务器运行上面的死锁的例子,让程序陷入死锁。 2、使用jps、ps -ef | grep java查看当前java进程的pid,严重情况下可以使用top命令查看当前系统cpu/内存使用率最高的进程pid。 这里我们的死锁的pid是:3429,这里程序很简单,虽然程序死锁,没有占用很多资源。 3、使用top -Hp 3429命令
在Windows 操作系统下安装Oracle 9i时会安装很多服务——并且其中一些配置为在Windows 启动时启动。在Oracle 运行在Windows 下时,有些服务可能我们并不总是需要但又害怕停止了服务会影响使用。在这里这篇文章对Oracle常用服务的作用进行了整理,确保我们可以有选择性地停止不需要的服务。另外,还列出了基本上所有的Oracle服务极其作用,这部分可以当作索引使用。在Oracle数据库中最常用的两个服务分别是:OracleService<SID>服务、Oracle<HOME_NAME>TNSListener服务。
在使用大量literal SQL的系统中,shared pool随时间推移会产生大量碎片进而导致并发能力的下降。Flushing shared pool能够使得很多小块碎片合并,所以经常能够在一段时间内恢复系统的性能。清空之后可能也会产生短暂的性能下降(补充:因为需要做第一次的硬解析),因为这个操作同时也会把没造成shared pool碎片的共享SQL也清除了。清空shared pool的命令是:
SESSION是服务器为客户端创建的一个会话,存储用户的相关信息,用以标识用户身份等。在单服务器环境下是不需要考虑会话的一致性的问题的,但是在集群环境下就会出现一些问题,假如一个用户在登录请求时负载均衡到了A服务器,A服务器为其分配了SESSION,下次请求数据时被分配到了B服务器,此时由于B服务器不存在此用户的SESSION,此用户会被重定向到登录页面,这种情况是不合理的业务逻辑,所以需要维护SESSION的一致性。
前面提到了一个使用jstack的shell脚本,通过命令可以很快地定位到指定线程对应的堆栈信息。
性能视图V$开头 V$SYSTEM_EVENT 正在等待的资源的系统信息 V$SESSION_EVENT 会话累计发生的等待事件 V$SESSION_WAIT 会话正在等待或者曾经等待的详细时间信息 V$SESSION 正在等待或者曾经等待的会话信息 V$METRICNAME 查看高速缓存命中率 Oracle数据库IO规划原则: 1 利用磁盘分段技术将IO分散在多个轴中进行 2 利用表空间直接隔离和定位各种类型的IO 3 将redo日志及其镜像放置在两个最不忙的设备上 4 将系统开销均匀地分摊到可用的磁盘驱
来源:分布式实验室 译者:黄亮 至今,Java仍旧是用来构建Web应用的最流行编程语言之一 —— 但是它不得不面对诸如Go,Python和TypeScript等新语言的严峻挑战。
导读:手上有一个测试服务器,内存是8G,最近开始搭起微服务的软件架构,单个Spring Boot 服务内存占用有点大,比如一个RocketMq的消费者服务(单独运行的服务),启动占用了 500M 内存,导致我后面想运行其他服务,内存不够,触发了 Linux 的 OOM - Killer 机制
* 定义:awr报告是oracle 10g下提供的一种性能收集和分析工具,它能提供一个时间段内整个系统资源使用情况的报告,通过这个报告,我们就可以了解一个系统的整个运行情况,这就像一个人全面的体检报告。 如何分析: * 在看awr报告的时候,我们并不需要知道所有性能指标的含义,就可以判断出问题的所在,这些性能指标其实代表了oracle内部实现,对oracle理解的越深,在看awr报告的时候,对数据库性能的判断也会越准确 * 在看性能指标的时候,心里先要明白,数据库出现性能问题,一般都在三个地方,io,内存,cpu,这三个又是息息相关的(ps:我们先假设这个三个地方都没有物理上的故障),当io负载增大时,肯定需要更多的内存来存放,同时也需要cpu花费更多的时间来过滤这些数据,相反,cpu时间花费多的话,有可能是解析sql语句,也可能是过滤太多的数据,到不一定是和io或内存有关系了 * 当我们把一条sql送到数据库去执行的时候,我们要知道,什么时候用到cpu,什么时候用到内存,什么时候用到io 1. cpu:解析sql语句,尝试多个执行计划,最后生成一个数据库认为是比较好的执行计划,不一定是最优的,因为关联表太多的时候,数据库并不会穷举所有的执行计划,这会消耗太多的时间,oracle怎么就知道这条数据时你要,另一个就不是你要的呢,这是需要cpu来过滤的 2. 内存:sql语句和执行计划都需要在内存保留一段时间,还有取到的数据,根据lru算法也会尽量在内存中保留,在执行sql语句过程中,各种表之间的连接,排序等操作也要占用内存 3. io:如果需要的数据在内存中没有,则需要到磁盘中去取,就会用到物理io了,还有表之间的连接数据太多,以及排序等操作内存放不下的时候,也需要用到临时表空间,也就用到物理io了 这里有一点说明的是,虽然oracle占用了8G的内存,但pga一般只占8G的20%,对于专用服务器模式,每次执行sql语句,表数据的运算等操作,都在pga中进行的,也就是说只能用1.6G左右的内存,如果多个用户都执行 多表关联,而且表数据又多,再加上关联不当的话,内存就成为瓶颈了,所有优化sql很重要的一点就是,减少逻辑读和物理读
作者:eygle 出处:http://www.eygle.com/blog 日期:October 28, 2005 本文链接:http://www.eygle.com/archives/2005/10/howto_control_10goem.html
前几天生产环境需要做服务器的扩容,把原本64G的内存扩到了128G.然后调整了一些其他的kernel参数,在此基础上需要调整sga的大小,以便分配更多的缓存。 环境是11gR2的RAC环境,这时候rac有一个明显的优点就显现出来了,就是没有downtime。一个实例一个实例的改动,调整kernel,db参数都很方便管理。 所在的每个服务器只有一个oracle_home,各有两套rac环境在同一个unix账户下。所以我启停数据库的时候也是一套环境一套环境的来。反正节点也不多。 我先是按照要求把sga调整了一下
领取专属 10元无门槛券
手把手带您无忧上云