haproxy和keepalived的个人理解

2016/05/16 21:35:48 No Comments

附参考文:http://weizhifeng.net/HA-with-HAProxy-and-KeepAlived.html

关于此两者,随便google一下都会有大量的文章,因此这里也不用介绍如何来进行安装和配置了。主要从一个整体方案的角度来描述什么要这样做,以及这样做所解决的问题。

所有的系统,都是先经历一个单台机器搞所有业务的时代,一个程序+一个mysql数据库,就可以满足开发及第一个版本上线的要求。随着,数据的增加以及业务的增长,这些应用就面临一个访问量的扩大以及扩展的问题。最简单的扩展就是水平扩展,原来由一个mysql增加为2个或多个,形成一个集群,这样最简单的能力就是提供更强的服务能力。如原来的访问量支持每秒1000,现在可以支持2000(理想值),相当于将服务能力分散到多个节点。
这里面涉及到多个问题,首先就是数据的相互备份,然后就是如何分配计算能力,外部如何来访问等。本文引入HaProxy和KeepAlived主要处理的就是一个外部访问问题。

在后面的介绍当中,假定有2个mysql,分别为mysqlA和mysqlB.

(more…)

redis中aof备份策略中的配置参数

2015/12/15 11:31:36 No Comments

在使用redis时,都会配置相应的存储策略,以保证redis并不会由于意外挂掉,在短时间内重启时数据不会消失。在当前的版本中,redis提供了bgsave和aof两种策略,本文主要描述了aof中的相关参数以及为什么这样是可以足够安全的。
本文的描述主要参考redis的conf文件以及各项网络

appendonly

开启aof特性,这个控制是否启用aof.

appendfilename

写入文件的文件名。开启aof之后,每条命令(除读之外的命令),均会写入到文件中,这里即实际写入的文件.

appendfsync

写入策略,默认值everysec,每秒写一次(调用flush)。另外两个值,always | no,分别表示每次redis写命令之外就写文件,和由操作系统保证。always对硬盘压力大,everysec是一个平衡值,no对硬盘压力最小,但调度由系统控制,丢失数据风险最大.

(more…)

在centos6.0上安装oracle 11g

2011/11/22 15:51:15 No Comments

oracle11g已经出来很久了,用了oracle 10g一段时间,正好也买了《Oracle Database 9i/10g/11g编程艺术》,所以就想安装oracle 11g,同时也顺便在会了之后,给客户机器升下数据库(原来的oracle 9i不知什么原因很慢,估计是安装时设置不正确)。

参考文章:
http://www.oracle-base.com/articles/11g/OracleDB11gR2InstallationOnEnterpriseLinux5.php 官方文章,在oracle-linux5上安装
http://www.iflym.com/index.php/linux-develop/fedora-15-install-oracle10g-in-gcc-4-6.html 如果在fedora15上安装oracle 10g

其实安装过程与上篇我在fedora 15中安装差不多,惟一的修改即是有些配置信息要变化。其中一个变化即是sysctl.conf文件的变化,原先应用于10g的配置已经不能再应用于11g 了,有些内核要求更大了,详细配置如下所示:

# 以下为安装oracle时修改
#每个信号对象集的最大信号对象数;系统范围内最大信号对象数;每个信号对象支持的最大操作数;系统范围内最大信号对象集数。
kernel.sem  =  250 32000 100 128
#最大共享内存段大小。
kernel.shmmax = 2147483648
#应用程序可使用的IPv4端口范围。
net.ipv4.ip_local_port_range = 9000 65500
#套接字接收缓冲区大小的缺省值
net.core.rmem_default = 1048576
#套接字接收缓冲区大小的最大值
net.core.rmem_max = 8388608
# 套接字发送缓冲区大小的缺省值
net.core.wmem_default = 262144
#套接字发送缓冲区大小的最大值
net.core.wmem_max = 2097152
fs.aio-max-nr = 2097152
fs.file-max = 13631488

主要是socket缓存区大小,oracle 11g要求更大了。其次即是对于文件限制等,oracle要求在/etc/security/limits.conf中增加以下内容:

oracle soft nproc 2047
oracle              hard    nproc   16384
oracle              soft    nofile  4096
oracle              hard    nofile  65536
oracle              soft    stack   10240

其次,在个人配置中,最好配置一些语言设置,让oracle 11g安装时使用英文(中文问题多,还有乱码),如下所示:

#追加语言设置为英文
export LANG=en_US.UTF-8

export PATH
#设置ORACLE_BASE
export ORACLE_BASE=/data/oracle
#设置ORACLE_HOME,一会安装的时候oracle就安装在这个目录下 
export ORACLE_HOME=$ORACLE_BASE/oracle11g
#oracle安装的sid
export ORACLE_SID=orcl
#追加其他path
export PATH=$PATH:$ORACLE_HOME/bin
#追加oracle的加载目录 
export LD_LIBRARY_PATH=$ORACLE_HOME/lib
#追加oracle客户端的语言设置
export NLS_LANG=AMERICAN_AMERICA.AL32UTF8

这样,应该就OK了,在安装时一路next就OK了。安装之后,就可以直接用了,相比oracle 10g好像更简单了。

Oracle 字符集的查看和修改(转)

2011/11/10 11:07:30 No Comments

转自:http://blog.csdn.net/tianlesoftware/article/details/4915223 作者:tianlesoftware
什么是Oracle字符集
Oracle字符集是一个字节数据的解释的符号集合,有大小之分,有相互的包容关系。ORACLE 支持国家语言的体系结构允许你使用本地化语言来存储,处理,检索数据。它使数据库工具,错误消息,排序次序,日期,时间,货币,数字,和日历自动适应本地化语言和平台。

影响Oracle数据库字符集最重要的参数是NLS_LANG参数。
它的格式如下: NLS_LANG = language_territory.charset
它有三个组成部分(语言、地域和字符集),每个成分控制了NLS子集的特性。
其中:
Language: 指定服务器消息的语言, 影响提示信息是中文还是英文
Territory: 指定服务器的日期和数字格式,
Charset:  指定字符集。
如:AMERICAN _ AMERICA. ZHS16GBK

从NLS_LANG的组成我们可以看出,真正影响数据库字符集的其实是第三部分。
所以两个数据库之间的字符集只要第三部分一样就可以相互导入导出数据,前面影响的只是提示信息是中文还是英文。

(more…)

vim简体中文教程(vimtutor)

2011/10/24 15:38:04 No Comments

本文是源自于在命令行下输入vimtutor并修改为简体中文的相关版本。

     vim 是一个具有很多命令的功能非常强大的编辑器。限于篇幅,在本教程当中
     就不详细介绍了。本教程的设计目标是讲述一些必要的基本命令,而掌握好这
     些命令,您就能够很容易将vim当作一个通用的万能编辑器来使用了。

     完成本教程的内容大约需要25-30分钟,取决于您训练的时间。

     每一节的命令操作将会更改本文。推荐您复制本文的一个副本,然后在副本上
     进行训练(如果您是通过"vimtutor"来启动教程的,那么本文就已经是副本了)。

     切记一点∶本教程的设计思路是在使用中进行学习的。也就是说,您需要通过
     执行命令来学习它们本身的正确用法。如果您只是阅读而不操作,那么您可能
     会很快遗忘这些命令的!

     好了,现在请确定您的Shift-Lock(大小写锁定键)还没有按下,然后按键盘上
     的字母键 j 足够多的次数来移动光标,直到第一节的内容能够完全充满屏幕。

(more…)

使用vimdiff比较两个文件并合并文件(转)

2011/10/22 20:54:39 No Comments

如果你工作在linux,如果你没有svn乌龟(那个可视化svn工具)来进行文件比较,如果你想进行两个文件的合并,请使用vimdiff。linux自带工具,比什么meld之类好多了。

本文转自 http://www.ibm.com/developerworks/cn/linux/l-vimdiff/,原文作者为 高 延斌

各种 IDE 大行其道的同时,传统的命令行工具以其短小精悍,随手可得的特点仍有很大的生存空间,这篇短文介绍了一个文本比较和合并的小工具:vimdiff。希望能对在 Unix/Linux 系统上进行开发的朋友有所帮助。

源程序文件(通常是纯文本文件)比较和合并工具一直是软件开发过程中比较重要的组成部分。现在市场上很多功能很强大的专用比较和合并工具,比如 BeyondCompare;很多IDE 或者软件配置管理系统,比如Eclipse, Rational ClearCase都提供了内建的功能来支持文件的比较和合并。

当远程工作在Unix/Linux平台上的时候,恐怕最简单而且到处存在的就是命令行工具,比如diff。可惜diff的功能有限,使用起来也不是很方便。作为命令行的比较工具,我们仍然希望能拥有简单明了的界面,可以使我们能够对比较结果一目了然;我们还希望能够在比较出来的多处差异之间快速定位,希望能够很容易的进行文件合并……。而Vim提供的diff模式,通常称作vimdiff,就是这样一个能满足所有这些需求,甚至能够提供更多的强力工具。在最近的工作中,因为需要做很多的文件比较和合并的工作,因此对Vimdiff的使用做了一个简单的总结。我们先来看看vimdiff的基本使用。

(more…)