2007年09月03日

关于sybase的配置-(数据库慢的请留意)

说明:数据库性能慢的主要原因有两个
       1)数据库服务配置不合理
       2)应用程序不合理
       遇到数据库性能下降时通常先检查数据库服务配置方面有没有可以改善的,修改之后再观察一段时间,如果性能没有改善的话就要分析应用程序上有没有可以调整的地方:索引是否合理,sql语句是否优化等。
      
本篇主要分析数据库服务的配置:

问题分析:
小型机硬件:rp2470双机、CPU700M*2、内存512M*6
以下是现场发过来的主要配置情况:
lock scheme                 datapages  //datapages锁模式是性能最差的锁,一般不用
number of locks                300000  //通常不需要配置太多的锁10万就够了
max memory                     500000  //物理内存3G,配给sybase的为1G明显不合理
number of open indexes           4000  //通常2000        
number of open objects           4000  //通常2000
number of user connections        300  //
number of worker processes          0  //多cpu要打开相应工作进程数
procedure cache size           154800  //存储过程缓存不要超过100M
total data cache size          453699  //明显该值太小
allocate max shared memory          0  //打开sybase占用内存的开关
max online engines                  2          
number of engines at startup        2           

问题处理:
建议先调整以下配置
sp_configure "max memory",1150000              //sybase占用2.3G内存
sp_configure "allocate max shared memory",1
sp_configure "user log cache size",4096        //用户日志缓存用来缓存客户段信息 
sp_configure "procedure cache size",50000      //100M存储过程缓存
sp_configure "number of worker processes",2

备份sybase主目录下的***.cfg

sp_cacheconfig "default data cache","1G"       //配置缺省数据缓存1G
sp_cacheconfig "default data cache", "cache_partition = 2"
reboot sybase服务

备份sybase主目录下的***.cfg

sp_cacheconfig "tempdb_cache","400M"     //由于内存较充裕,通常会分配一部分内存给tempdb,提高查询的速度
sp_bindcache "tempdb_cache","tempdb"     //绑定400M的内存给tempdb
reboot sybase服务

上述操作如无法启动sybase服务则可以将备份的***.cfg替换当前的配置文件,重新boot sybase服务

总结:
sybase 11.9.2 & 12.0 & 早期版本的配置通常为以下几项:
total memory                   //定义sybase 服务能够使用的物理内存
number of lock                 //定义锁的数目
number of open database        //打开的数据库个数,缺省是12个,数据库数目超过12个时要调整该值
number of devices              //数据库的设备数,缺省是10,通常是不够的,需要调整
number of user connections     //用户连接数,根据需要设置,通常一个用户数消耗100K的内存
这个版本的数据库缓存、日志缓存、过程缓存是不用手工配置的

sybase 12.5版本的配置通常为以下几项:
lock scheme                  //锁模式,sybase推荐使用缺省(allpages),但是一些并发操作多的表(temp_telebill)要使用行锁(datarows),减少被锁现象
number of locks              //通常不需要配置太多的锁10万就够了
max memory                   //sybase服务能够使用的物理内存,通常配置成物理内存的70%~80%,上例内存是3G,配给sybase的为1G明显不合理
allocate max shared memory   //打开sybase占用内存的开关
number of open indexes       //通常2000,该值配置过低时会在日志中报该值不够,最终导致性能缓慢        
number of open objects       //通常2000,该值配置过低时会在日志中报该值不够,最终导致性能缓慢
number of user connections   //用户连接数,根据实际需求来配置,盲目多配会浪费内存
procedure cache size         //存储过程缓存不要超过100M,用来缓存过程的编译代码。
number of open database      //打开的数据库个数,缺省是12个,数据库数目超过12个时要调整该值
number of devices            //数据库的设备数,缺省是10,通常是不够的,需要调整
user log cache size          //日志缓存用来保留客户端连接信息的,每个连接都会生成一个user log cache size大小的cache,该值缺省为2K,主机内存充裕时可以配成4K。

在12.5及以后的版本中都要手工的配置default data cache,缺省为8M,几乎所有的用户操作都是在这个缓存中进行的,如果不优化的话严重影响数据库性能。
优化的方法是把尽可能多的内存配置给default data cache ,即:’max memory’-'所有其他内存消耗(用户数,锁数等)’-‘少许预留内存’=default data cache。
sp_cacheconfig "default data cache","1G"       //配置缺省数据缓存1G
sp_cacheconfig "default data cache", "cache_partition = 2"

关于cpu的配置
max online engines            //sybase 使用的cpu的个数       
number of engines at startup  //激活cpu的个数 
number of worker processes   //多cpu要打开相应工作进程数

 

                                     hmw
                                     2004-11-8

Swap分区tip(摘自Redhat官方文档)
Swap should equal 2x physical RAM for up to 2 GB of physical RAM, and then 1x physical RAM for any amount above 2 GB, but never less than 32 MB.

Using this formula, a system with 2 GB of physical RAM would have 4 GB of swap, while one with 3 GB of physical RAM would have 5 GB of swap. Creating a large swap space partition can be especially helpful if you plan to upgrade your RAM at a later time.

Tip
  If your partitioning scheme requires a swap partition that is larger than 2 GB, you should create an additional swap partition. For example, if you need 4 GB of swap, you should create two 2 GB swap partitions. If you have 4 GB of RAM, you should create three 2 GB swap partitions. Red Hat Enterprise Linux supports up to 32 swap files.

For systems with really large amounts of RAM (more than 32 GB) you can likely get away with a smaller swap partition (around 1x, or less, of physical RAM).

 

翻译 :当物理内存小于2G时,swap大小为物理内存的2倍。超过2G的部分,swap大小跟物理内存相等。

也即是

x<= 2G的部分, y=2x

x>2G   的部分,  y=x

利用这个法则,2G物理内存需要4G swap,而3G物理内存则需要5G swap。如果你打算添加内存的话,创建一个大些的swap区是很有帮助的。

Tip
如果按照分区计划,你的swap区超过2GB,那么应该创建另外的swap分区。
比如,你需要4GB的swap的分区,应该创建2个2GB的swap分区。

如果有4GB的物理内存,则应该创建3个2GB的swap分区。

Redhat EL支持多达32个swap文件。

分析:2GB的物理内存 需要swap 2×2GB=4GB,
超过2GB的2GB 需要swap 1×2GB=2GB。
总共6G,每个swap分区2G,所以是3个2GB的swap分区

对于超过32G物理内存的,使用小于等于物理内存容量的swap区会更好。
 

增加交換分區的方法:

1.查看一下/etc/fstab确定目前的分区
2.swapoff /dev/hd**
3.free 看一下是不是停了.
4.fdisk 删了停掉的swap分区
5.重新用FDISK建一个新的SWAP分区
6.mkswap /dev/hd**把新的分区做成swap
7.swapon /dev/hd**打开swap
8.修改/etc/fstab

linux中增加swap分区文件的步骤方法:

1、检查当前的分区情况(使用free -m或cat /proc/swaps ):
 [root@db2 root]# free -m
              total       used       free     shared    buffers     cached
 Mem:          1006         84        922          0         11         38
 -/+ buffers/cache:         35        971
 Swap:            0          0          0
 [root@db2 root]#

2、增加交换分区文件及大小:
检查没有swap,下面就需要增加:
判定新交换文件的大小,将大小乘以1024来判定块的大小。例如,大小为64MB的交换文件的块大小为65536,在 shell 提示下以根用户身份键入以下命令,其中的 count 等于想要的块大小。

 [root@db2 root]# dd if=/dev/zero of=/home/swap bs=1024 count=1024000
 1024000+0 records in
 1024000+0 records out
 [root@db2 root]#

使用以下命令来设置交换文件:
 [root@db2 root]# mkswap /home/swap
 Setting up swapspace version 1, size = 1023996 KiB
 [root@db2 root]#

3、启用交换分区文件:
要立即启用交换文件而不是在引导时自动启用,使用以下命令:
 [root@db2 root]# swapon /home/swap

检查增加后的交换情况:
 [root@db2 root]# free -m
              total       used       free     shared    buffers     cached
 Mem:          1006        994         12          0          4        929
 -/+ buffers/cache:         60        946
 Swap:          999          0        999
 [root@db2 root]#
 
要在引导时启用,编辑 /etc/fstab 文件来包含以下行(/home/swap               swap                    swap    defaults        0 0 ):
 [root@db2 root]# vi /etc/fstab
 LABEL=/                 /                       ext3    defaults        1 1      
 LABEL=/boot             /boot                   ext2    defaults        1 2      /home/swap               swap                    swap    defaults        0 0
        none                    /dev/pts                devpts  gid=5,mode=620  0 0     
        none                    /proc                   proc    defaults        0 0     
        none                    /dev/shm                tmpfs   defaults        0 0     
        LABEL=/usr              /usr                    ext3    defaults        1 2     
        /dev/sda5               swap                    swap    defaults        0 0     
        /dev/cdrom              /mnt/cdrom              iso9660 noauto,owner,kudzu,ro 0 0
        /dev/fd0                /mnt/floppy             auto    noauto,owner,kudzu 0 0  
        /home/swap               swap                    swap    defaults        0 0  
系统下次引导时,它就会启用新建的交换文件         
再次检查添加后的情况:
 [root@db2 oracledb]# free -m                                            
                     total       used       free     shared    buffers     cached
        Mem:          1006        979         27          0          6        917
        -/+ buffers/cache:         54        952                                
        Swap:          999          0        999                                
        [root@db2 oracledb]#                                  

前段时间发现本blogPostshow所在的服务器经常宕机,经检查日志发现是大量的MT的mt-xsearch.cgi以及mt.cgi进程造成系统内存溢出,我开始一直以为是MT本身的程序有缺陷或者是cgi程序太消耗系统资源,于是没有深入追究。

在今天的一次宕机时,我正好远程登录在服务器上,而且开着top,宕机后,我发现系统的swap分区被全部消耗殆尽(0k free),难道宕机是因为服务器的swap分区太小的原因?当初安装系统的时候,因为内存只有1G,所以我在分区时只给swap分区分了2G的空间,现在看来3G的内存空间不够Postshow的应用了,只有再增加一部分swap空间。

我安装系统时并没有使用LVM,所以无法动态调整分区大小,只好用另外一种方式来增加swap空间了。

首先,新建一个空白文件:

dd if=/dev/zero of=/var/swapfile bs=1024 count=2097152

然后格式化成swap格式:

mkswap /var/swapfile

加载swap文件:

swapon /var/swapfile

编辑/etc/fstab,增加如下内容:

/var/swapfile none swap sw 0 0

然后查看一下:

#swapon -s
Filename Type Size Used Priority
/dev/sda2 partition 2008116 22940 -1
/var/swapfile file 2097144 2049384 -1

ok,已经起效果了:)

5,安装oracle补丁
当你从 Oracle 9iR2 光盘执行 runInstaller 时,会出现错误信息:
Error occurred during initialization of VM
Unable to load native library:
/tmp/OraInstall2003-10-25_03-14-57PM/jre/lib/i386
/libjava.so symbol _libc_wait, version GLIBC_2.0 not
defined in file libc.so.6 with link time reference
为了解决 _libc_wait 符号问题,
从http://oss.oracle.com/projects/compat-oracle/files/RedHat/ 下载补丁
compat-libcwait-2.0-2.i386.rpm compat-oracle-rhel4-1.0-5.i386.rpm.为了应用这个补丁,可以运行:
$su – root
# cd /orasetup
#ls compat*.rpm
compat-libcwait-2.0-2.i386.rpm compat-oracle-rhel4-1.0-5.i386.rpm
# rpm -Uvh compat*.rpm
Preparing… ########################################### [100%]
 1:compat-libcwait-2.0-2.i386.rpm ##################################### [ 50%]
 2:compat-oracle-rhel4-1.0-5.i386.rpm#################################### [100%]
四,开始安装oracle9iR2
(一)开始安装:
1.以oracle用户登录系统,进行Oracle的安装:
 $ cd Disk1
 $ ./runInstaller过一会儿就会出现Oracle的安装界面
2.一步一个脚印安装下去就行了!
3,安装完后打补丁:
切换到root:#su – root 首先安装 opatch.
#cd /orasetup
#unzip p2617419_210_GENERIC.zip
Archive: p2617419_210_GENERIC.zip
creating: OPatch/
creating: OPatch/docs/
inflating: Opatch/docs/FAQ
……
inflating: README.txt
#export PATH=$PATH:/orasetup/OPatch:/sbin
(修改PATH时要要包括解压缩出来的Opatch 和 sbin目录)
# unzip p3238244_9204_LINUX.zip
# cd 3238244
# opatch apply

如果提示HOME变量错误可执行语句:
#export ORACLE_BASE=/u01/app/oracle
#export ORACLE_HOME=/u01/app/oracle/product/9.2.0.4
出现success的提示就全部安装成功.

补丁打完后,还要relinked一个.mk文件,切换到oracle用户窗口
cd $ORACLE_HOME/network/lib
make –f ins_oemagent.mk install
之后就可以启动Agent服务了.

4, 最后执行 #dbca 建oracle数据库
21,点击OK,然后退出即可,正常登陆并启动数据库的操作。
[oracle@oracle oracle]$ lsnrctl start
[oracle@oracle oracle]$ sqlplus /nolog
SQL*Plus: Release 9.2.0.4.0 – Production on Sat Mar 12 22:58:53 2005
Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.
SQL>; connect / as sysdba
Connected.
SQL>; shutdown immediate 关闭数据库
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL>; startup; 启动数据库
ORACLE instance started.
Total System Global Area 236000356 bytes
Fixed Size 451684 bytes
Variable Size 201326592 bytes
Database Buffers 33554432 bytes
Redo Buffers 667648 bytes
Database mounted.
Database opened.

5, 数据库创建完成后,修改/etc/oratab,把boss那一行最后的N改成Y,然后执行dbstart启动数据库数据库可能无法启动,报告Can’t find init file …的错误,需要复制一个初始化文件:
cp /u01/app/oracle/admin/oradb/pfile/init.ora.* /u01/app/oracle/product/9.2.0/dbs/initoradb.ora
重新执行dbstart就可以了。
为了方便管理,可以写一个启动脚本ora9i:
以root身份进入,编写以下脚本:

#!/bin/bash
#start and stop the oracle instance
# chkconfig –level 5 –add ora9i
#chkconfig: 345 91 19
# description: starts the oracle listener and instance

export ORACLE_HOME="/u01/app/oracle/product/9.2.0.4"
export PATH=$ORACLE_HOME/bin ORACLE_HOME/Apache/Apache/bin PATH
export ORACLE_OWNER="oracle"
export ORACLE_SID=oradb

if [ ! -f $ORACLE_HOME/bin/dbstart -o ! -d $ORACLE_HOME ]
then
 echo "oracle startup:cannot start"
 exit 1
fi

case "$1" in
start)
 #startup the listener and instance
 echo -n "oracle startup: "
 su – $ORACLE_OWNER -c "$ORACLE_HOME/bin/lsnrctl start"
 su – $ORACLE_OWNER -c $ORACLE_HOME/bin/dbstart
 touch /var/lock/subsys/oracle
 echo "finished"
 ;;
stop)
# stop listener, apache and database
 echo -n "oracle shutdown:"
 su – $ORACLE_OWNER -c "$ORACLE_HOME/bin/lsnrctl stop"
 su – $ORACLE_OWNER -c $ORACLE_HOME/bin/dbshut
 rm -f /var/lock/subsys/oracle
 echo "finished"
;;
reload|restart)
 $0 stop
 $0 start
;;
*)
 echo "Usage: ora9i [start|stop|reload|restart]"
 exit 1

esac
exit 0

存为ora9i后,然后用chmod a+x ora9,即可在以后以root身份运行/etc/rc.d/init.d/ora9i start |stop 来管理oracle的启动和停止了。如果要将这个脚本加入到系统中使其可开机运行,那么要运行以下命令:chkconfig –level 3(或者是5) –add ora9i
或者以root用户执行如下命令:
#cp /orasetup/ora9i /etc/rc.d/init.d/
#chmod a+x /etc/rc.d/init.d /ora9
#cd /etc/rc.d/rc5.d
#ln -s /etc/rc.d/init.d/ora9i S99ora9i
#cd /etc/rc.d/rc0.d
#ln -s /etc/rc.d/init.d/ora9i K99ora9i
也可自启动oracle9i!
或者可在/etc/rc.d/rc.local中加入如下:
su – oracle -c "/u01/app/oracle/product/9.2.0.4/bin/lsnrctl start"
su – oracle -c "/u01/app/oracle/product/9.2.0.4/bin/dbstart start"

6,
关于数据库删除重新安装的问题:
 把ORACLE安装目录删除及/etc/ora*.*删除就行了
#rm –f /etc/ora*.*
7,关于在LINUX中运行管理软件
#oemapp

原文章是从chinaunix论坛上看到的。按照这篇文档肯定能够将oracle9204安装到RedHat AS4上。在实际操作过程中我也总结了一些经验,并在文档中作了注释。
原文地址:http://bbs.chinaunix.net/viewthread.php?tid=591185&extra=page%3D1%26filter%3Ddigest
RedHat AS 4.0最新安装Oracle9204手记
Linux as 2.6.9-15.ELsmp
注释1:在安装RedHat AS 4.0时我选择了下列软件:
X window system
Gnome Desktop Environment
Editors
Graphical Internet
Server Configuration Tools
Web Server
Mail Server
Windows File Server
DNS Name Server
FTP Server
Network Servers
Legacy Network Server
Development Tools
Xsoftware Development
GNome Software Development
Legacy Software Development
Administration Tools

一,解压缩Oracle9204的安装文件
1. Oracle 9iR2 (9.2.0.4)
(1) 简化过程(以oracle登录,释放安装文件,使用更少的磁盘空间,速度更快)
在安装LINUX时最好分一个区/orasetup,这样一来即使系统坏了,也只是重装系统,而无须重新拷贝数据库安装文件.
zcat ship_9204_linux_disk1.cpio.gz | cpio –idmv &&
zcat ship_9204_linux_disk2.cpio.gz | cpio –idmv &&
zcat ship_9204_linux_disk3.cpio.gz | cpio –idmv
(2) 解包和解压过程中,自动创建了3个包含安装文件的目录:
 Disk1
 Disk2
 Disk3
之后就可以安装Oracle9iR2了。
二,安装前的检查和准备工作;
1, 查看这些开发包是否已安装;
安装需要的软件包和补丁包:
p4198954_21_linux.zip 在运行 runInstaller 之前打.
p3238244_9204_LINUX.zip 修复agent错误的补丁.
p2617419_210_GENERIC.zip 打3238244补丁所需要的补丁.
compat-db-4.1.25-9
compat-gcc-32-3.2.3-47.3
compat-gcc-32-c++-3.2.3-47.3
compat-oracle-rhel4-1.0-3
compat-libcwait-2.0-1
compat-libgcc-296-2.96-132.7.2
compat-libstdc++-296-2.96-132.7.2
compat-libstdc++-33-3.2.3-47.3
gcc-3.4.3-9.EL4
gcc-c++-3.4.3-9.EL4
gnome-libs-1.4.1.2.90-44
gnome-libs-devel-1.4.1.2.90-44
libaio-devel-0.3.102-1
libaio-0.3.102-1
make-3.80-5
openmotif21-2.1.30-11
xorg-x11-deprecated-libs-devel-6.8.1-23.EL
xorg-x11-deprecated-libs-6.8.1-23.EL
其中compat-oracle-rhel4和compat-libcwait可以在如下网站:
http://oss.oracle.com/projects/compat-oracle/files/RedHat/
# rpm -qa | grep ‘compat’
注释2:在按照注释1所选择的软件包将操作系统安装完毕后,上面所列举的软件中有一部分已经安装完毕。具体列表如下:
compat-libgcc-296-2.96-132.7.2
compat-libstdc++-33-3.2.3-47.3
compat-db-4.1.25-9
compat-libstdc++-296-2.96-132.7.2
compat-gcc-32-3.2.3-47.3
compat-gcc-32-c++-3.2.3-47.3
gcc-3.4.3-9.EL4
gcc-c++-3.4.3-9.EL4
gnome-libs-1.4.1.2.90-44.1
make-3.80-5
xorg-x11-deprecated-libs-devel-6.8.1-23.EL
xorg-x11-deprecated-libs-6.8.1-23.EL

注释3:由于rpm包的依存性,没有安装的软件包最好按照下列的顺序进行安装:
libaio-0.3.102-1
libaio-devel-0.3.102-1
openmotif21-2.1.30-11
compat-oracle-rhel4-1.0-3
compat-libcwait-2.0-1
glib-devel-1.2.10-15.i386.rpm
ORBit-devel-0.5.17-14.i386.rpm
Gtk+-devel-1.2.10-33.i386.rpm
Imlib-devel-1.9.13-23.i386.rpm
gnome-libs-devel-1.4.1.2.90-44
其中绿颜色字体表示的软件包是安装gnome-libs-devel-1.4.1.2.90-44前必须安装的。我安装完系统后没有这四个软件。

三,创建数据库安装的准备工作;
1,创建user/group;
#groupadd dba
#groupadd oinstall
#useradd oracle -g oinstall -G dba
#passwd oracle
2,建立oracle安装文件夹;
# mkdir -p /u01/app/oracle/product/9.2.0.4
# mkdir /u01/cwdata
# chmod 777 /u01/cwdata
# chown oracle.dba /u01/cwdata
# chown oracle.dba /orasetup
# chmod 777 /orasetup
# chown -R oracle.dba /u01/app/oracle/product/9.2.0.4
# chmod -R 777 /u01/app/oracle/product/9.2.0.4
2, 配置环境变量;
 以root用户登录,设置root用户的环境打开.bash_profile文件,将如下内容加入:
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=/u01/app/oracle/product/9.2.0.4
export PATH=$PATH:$ORACLE_HOME/bin:$ORACLE_HOME/Apache/Apache/bin
export ORACLE_OWNER=oracle
export ORACLE_SID=oradb
使用Oracle用户登陆:
#su – oracle
$vi .bash_profile
以下是配置文件的内容(其中红色字体为添加的内容)
# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
 . ~/.bashrc
fi

# User specific environment and startup programs

PATH=$PATH HOME/bin
#ORACLE_BASE 可以定位到盘阵上/data
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=/u01/app/oracle/product/9.2.0.4
export PATH=$PATH ORACLE_HOME/bin ORACLE_HOME/Apache/Apache/bin
export ORACLE_OWNER=oracle
export ORACLE_SID=oradb
export ORACLE_TERM=xterm
export LD_ASSUME_KERNEL=2.4.19
export THREADS_FLAG=native
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH ORACLE_HOME/lib
export NLS_LANG=”American_america.zhs16gbk”
# export NLS_LANG="SIMPLIFIED CHINESE_CHINA.ZHS16GBK"
export ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data
export DISPLAY=:0
export LANG=en_US
export GDM_LANG= en_US
export LC= en_US
export PATH
unset USERNAME
4, 设置系统参数;
#su – root切换到root用户
a) 修改#vi /etc/sysctl.conf, 以下是配置文件的内容(其中红色字体为添加的内容):
# Kernel sysctl configuration file for Red Hat Linux
#
# For binary values, 0 is disabled, 1 is enabled. See sysctl( and
# sysctl.conf(5) for more details.

# Controls IP packet forwarding
net.ipv4.ip_forward = 0

# Controls source route verification
net.ipv4.conf.default.rp_filter = 1

# Controls the System Request debugging functionality of the kernel
kernel.sysrq = 0

# Controls whether core dumps will append the PID to the core filename.
# Useful for debugging multi-threaded applications.
kernel.core_uses_pid = 1
kernel.shmmax = 536870912 / 268435456
kernel.shmmni = 4096
kernel.shmall = 2097152
kernel.sem = 250 32000 100 128
fs.file-max = 65536
net.ipv4.ip_local_port_range = 1024 65000
修改后运行#sysctl –p命令使得内核改变立即生效;
译者注:一般情况下可以设置最大共享内存为物理内存的一半,如果物理内存是 2G,则可以设置最大共享内存为 1073741824,如上;如物理内存是 1G,则可以设置最大共享内存为 512 * 1024 * 1024 = 536870912;以此类推。)
建议永久地增加 shmmax 设置。
sem 4个参数依次为SEMMSL(每个用户拥有信号量最大数);SEMMNS(系统信号量最大数);SEMOPM(每次semopm系统调用操作数);SEMMNI(系统辛苦量集数最大数).Shmmax 最大共享内存,官方文档建议是内存的1/2,Shmmni 最小共享内存 4096KB.Shmall 所有内存大小

B) 设置oracle对文件的要求:
编辑文件:#vi /etc/security/limits.conf 加入以下语句:
oracle    soft    nofile    65536
oracle    hard    nofile   65536
oracle    soft    nproc    16384
oracle    hard    nproc    16384


C) gcc降级
#su – root
#mv /usr/bin/gcc /usr/bin/gcc34
#ln –s /usr/bin/gcc32 /usr/bin/gcc
#mv /usr/bin/g++ /usr/bin/g++34
#ln –s /usr/bin/g++32 /usr/bin/g++

2006年08月24日

【牡羊座】两只口袋
   别人的缺点犹如眼中大梁,但请先看看镜中的自己是什么样。

   普罗米修斯创造了人,又在他们每人脖子上挂了两只口袋,一只装别人的缺点,另一只装自己的。他把那只装别人缺点的口袋挂在胸前,另一只则挂在背后。因此人们总是能够很快地看见别人的缺点,而自己的却总看不见。
   这故事说明人们往往喜欢挑剔别人的缺点,却无视自身的缺点。

【金牛座】寡妇与母鸡
   累积财富固然重要,但别忘记自己手上有多少筹码可以失去。

    有个寡妇养着一只母鸡,母鸡每天下一个蛋。她以为多给鸡喂些大麦,就会每天下两个蛋。于是,她就每天这样喂,结果母鸡越来越肥,每天连一个蛋也不下了。
   这故事说明,有些人因为贪婪,想得到更多的利益,结果连现有的都失掉了。

【双子座】马与马夫
    在生存这件事上,只有花言巧语是救不了任何人的

    从前,有个马夫偷偷把喂马的大麦卖掉了,但仍每天给马擦洗,用梳子梳理马毛。马对马夫说道:“如果你真心想要我长得美,就不要再卖掉喂我的大麦了。”
    这是说,那些虚情假意的人用花言巧语和小恩小惠去贿赂别人,却把别人最必需的东西夺走了。

 【巨蟹座】蚂蚁与推粪虫
    未雨绸缪这个成语,无须强记,只是一种生活态度。

   夏天,别的动物都悠闲地生活,只有蚂蚁在田里跑来跑去,搜集小麦和大麦,给自己贮存冬季吃的食物。推粪虫惊奇地问他为何这般勤劳。蚂蚁当时什么也没说。
   冬天来了,大雨冲掉了牛粪,饥饿的推粪虫,走到蚂蚁那里乞食,蚂蚁对他说:“喂,伙计,如果当时在我劳动时,你不是批评我,而是也去做工,现在就不会忍饥挨饿了。”
   这是说,尽管风云变化万千,未雨绸缪的人都能避免灾难。

【狮子座】徒劳的寒鸦
   外表的炫丽固然重要,却不比内在的丰厚更为实际。

    宙斯想要为鸟类立一个王,指定一个日期,要求所有鸟全都按时出席,以便选他们之中最美丽的鸟王。所有鸟都跑到河里去梳洗打扮。寒鸦知道自己没一处漂亮,便来到河边,捡起所有鸟脱落下的羽毛,小心翼翼地全插在自己身上,再用胶粘住。指定的日期到了,所有的鸟都一齐来到宙斯面前。宙斯一眼就看见花花绿绿的寒鸦,在群鸟之中显得格外漂亮,准备立他为王。其他的鸟十分气愤,纷纷从寒鸦身上拔下本属于自己的羽毛。于是,寒鸦身上美丽的羽毛一下全没了,又变成了一只丑陋的寒鸦了。
    借助别人的东西可以得到美的假象,但那本不属于自己的东西被剥离时,就会原形毕露。

【处女座】山震
  有时候,不是所有征兆都必然指向悲剧的结局的。

   有一次,一座大山发生了大震动,震动发出的声音就像大声的呻吟和喧闹。许多人云集在山下观看,不知发生了什么事。当他们焦急地聚集在那里,担心看到什么不祥之兆时,仅看见从山里跑出一只老鼠。
   这是说庸人多自扰。

【天秤座】狐狸和葡萄
    为了要平衡自己的不平衡,常常发展出很多似是而非的藉口。

   饥饿的狐狸看见葡萄架上挂着一串串晶莹剔透的葡萄,口水直流,想要摘下来吃,但又摘不到。看了一会儿,无可奈何地走了,他边走边自己安慰自己说:“这葡萄没有熟,肯定是酸的。”
   这就是说,有些人能力小,做不成事,就藉口说时机未成熟。

 【天蝎座】小男孩与蝎子
  会螫人的,是天性,弄不清楚状况的,只能自叹活该。

    有个小孩在城墙前捉蚱蜢,一会儿就捉了许多。忽然看见一只蝎子,他以为也是蚱蜢,便着两手去捕捉他。蝎子举起他的毒刺,说道:“来吧,如果你真敢这样做,就连你捉的蚱蜢也会统统失掉。”
   这故事告诫人们,要分清楚好人和坏人,用不同的态度对待他们。

 【射手座】老猎狗
   年轻不是用来挥霍的东西,生老病死是人生不可抗拒的规则

   一条老猎狗年轻力壮时从未向森林中任何野兽屈服过,年老后,在一次狩猎中,遇到一头野猪,他勇敢地扑上去咬住野猪的耳朵。由于他的牙齿老化无力,不能牢牢地咬住,野猪逃跑了。主人跑过来后大失所望,痛殴他一顿。年老的猎狗抬起头来说:“主人啊!这不能怪我不行。我的勇敢精神和年轻时是一样的,但我不能抗拒自然规律。从前我的行为受到了你的称赞,现在也不应受到你的责备。”
   生老病死都是不可抗拒的规律。

【摩羯座】站在屋顶的小山羊与狼
  时机创造了一个人的荣耀与财富,却不会是唯一的依恃

    小山羊站在屋顶上,看见狼从底下走过,便谩骂他,嘲笑他。狼说道:“啊,伙计,骂我的不是你,而是你所处的地势。”
   这故事说明,地利与天机常常给人勇气去与强者抗争。

【水瓶座】公鸡和宝玉
   抱着捡石头心态的,永远不知道拥有是怎么一回事。

    一只公鸡在田野里自己和母鸡们寻找食物。他发现了一块宝玉,便对宝玉说:“若不是我,而是你的主人找到了你,他会非常珍惜地把你捡起来;但我发现了你却毫无用处。我与其得到世界上一切宝玉,倒不如得到一颗麦子好。”
    这是说自己需要的东西才是真正珍贵的。

 【双鱼座】狼与鹭鸶
  相信别人是好的,但要确定那个人真的值得信任。

    狼误吞下了一块骨头,十分难受,四处奔走,寻访医生。他遇见了鹭鸶,谈定酬金请他取出骨头,鹭鸶把自己的头伸进狼的喉咙里,叼出了骨头,便向狼要约定的酬金。狼回答说:“喂,朋友,你能从狼嘴里平安无事地收回头来,难道还不满足,怎么还要讲报酬?”
    这故事说明,对坏人行善的报酬,就是认识坏人不讲信用的本质。

//=======================================

    世界上只有两种东西最可贵。一种是得不到的。一种是已失去的。
    学习为所失去的感恩,也接纳失去的事实,不管人生的得与失,总是要让自已的生命充满了亮丽与光彩,不再为过去掉泪,努力活出自己的精彩.

今天在网上看到这样一个故事:

  有一个青年背着一个大包裹,千里迢迢跑来找无际大师。
  他痛苦地说:“大师,我是那样的孤独、痛苦、寂寞,长期的跋涉让我疲倦到极点。为什么我还是不能找到心中的太阳?找到快乐?”
  大师问青年:“你的包裹中装的是什么?”
  青年答到:“它对我可重要了。里面是我每一次跌倒时的痛苦,每一次受伤后的哭泣,每一次孤寂时的烦恼……靠着它,我才能走到您这儿来。”
  无际大师听后,把青年带到一条河边,并与他一同坐船过了河。
  上岸后,大师对青年说:“你扛了船赶路吧。”
  青年很惊讶:“船那么沉,我扛得动吗?”
  大师微笑着对青年说:“是的,你扛不动。你要明白,过河时,船是有用的。但过了河,我们就要放下船赶路。否则,它会变成我们的包袱。”
  听罢此话,青年豁然。

  人生在世,有太多的东西放不下:功名、金钱、爱情、事业……这些对于我们都是很重要的,看得过重,太过放不下,反而成为了前进的包袱,会压得人喘不过气来,觉得生命是如此沉重。

  痛苦、孤独、寂寞、灾难、眼泪…..使生命得到升华。经历这些,才会成长,人生才更丰富。须臾不忘,就成了人生的包袱。让前进的脚步沉沉,感觉路是那样难行,甚至会不视路边的风景,只见阴云不见阳光。

  人活着就要赶路,背着包袱是走,放下包袱也是走,所以还是放下包袱,让沉重的步伐变得轻松愉悦,让阴郁的心情变得明朗,让生命不再那么沉重。

    放下,是一条解脱之道!学会放下,生活过得简简单单,你会发现,其实快乐是无处不在的!

                           脆弱

    很多时侯我们为适应别人而失掉自己的本色,其实那只是一种脆弱。

                                                              ——题记

                                  纯真年代

凡是认识我的人都说我很傻,因为我总是把自己的东西送给别人。与其他小孩打架后,只要看见别人哭,总会想方设法的逗他笑,尽管我知道那不是我的错。小时侯的我总希望所有的孩都和我一样幸福,所以我总是把所有好东西与别人分享。妈妈说我心眼太实总有一天会吃亏,可我却不理会妈妈的劝告,因为我相信好东西要大家分享才算是好东西。

                                    灰色

我总是把这个世界想得太过于完美,忘了这世界上还有一种东西叫“嫉妒”。

在一个阳光明媚的下午,好友离开了我,没留下一句话,走了。我不在乎,因为我相信我并没有做错什么,我依旧向以前那样活得坦荡荡。

我错了,我忘了这个世界上有一种东西叫谣言。好友开始无中生有,到处散播谣言。我没有做过任何辩解,我相信身正不怕影子斜。可是周围的人都渐渐的离我而去,她们在孤立我,为的就只是那几句不真实的谣言。

我开始反思我自己,真得是我做错了什么,才会弄成这样的吗?

                                 很久不心痛了

我变了,变得麻木了,变得冷漠了。我不再为那件事而苦苦寻找答案了。我每天冷眼看着那群人对我的指指点点,一点感觉都没有了。我再也不会把好东西与别人分享,再也不会安慰落泪的孩子。我只会在别人伤心时狠狠的挖苦他,在别人需要帮助时,冷眼旁观,暗中使坏。我要让大家看看什么是真正的坏女孩。我的成绩在急剧下降,面对老师的指责,母亲的眼泪,我没有任何感觉。我在一步步走入一个无底洞。

                                     回归

“啪”一声清脆的响声,父亲新买回的梳妆镜从我的手中掉落在地。我呆呆地忘着地上的碎片,看着那上面大大小小,目光呆滞的自己。很久很久以来我一直在想着同一个问题:究竟是好友改变了我,还是我自己在有意识地改变着自己?我冲着镜中的自己笑了笑,那笑容好苦。

 坐在书桌前,打开日记本,一行字映入眼帘:生命是脆弱的,脆弱的生命需要我们去爱护。是啊,生命原本脆弱,可这么久以来我究竟在做些什么?我用恶毒的话语打击着别人,让她们以为我是坚强的,其实那本身就是一种脆弱。报复的本身带来的不是胜利的快感,而是阵阵刺痛,以及报复后的愧疚感。我用了一种多么愚蠢的方法来伪装自己,而结果则只是让原本脆弱的生命变得更加脆弱。原来我一直在追求着一个虚伪的完美。

 外面阳光明媚,走出屋子,直视太阳。很久以来,我都没有直视太阳的勇气,而今天我敢。阳光刺痛了我的双眼,在我闭眼的那一刹那,往事闪过我的脑海,一个稚嫩的声音在我的耳边回荡:好东西要大家分享才算是好东西。

    我笑了,我依然纯真。

螃蟹、猫头鹰和蝙蝠去上恶习补习班。数年过后,它们都顺利毕业并获得博士学位。不过,螃蟹仍横行,猫头鹰仍白天睡觉晚上活动,蝙蝠仍倒悬。

  心理点评:这是黄永玉大师的一个寓言故事,它的寓意很简单:行动比知识重要。用到心理健康中,这个寓言也发人深省。
  心理学的知识堪称博大精深。但是,再多再好的心理学知识也不能自动帮助一个人变得更健康。其实,我知道的一些学过多年心理学的人士,他们学心理学的目的之一就是要治自己,但学了这么多年以后,他们的问题依旧。
  之所以出现这种情况,一个很重要的原因是,他们没有身体力行,那样知识就只是遥远的知识,知识并没有化成他们自己的生命体验。

  我的一个喜欢心理学的朋友,曾被多名心理学人士认为不敏感,不适合学心理学。但事实证明,这种揣测并不正确。他是不够敏感,但他有一个非常大的优点:知道一个好知识,就立即在自己的生命中去执行。这样一来,那些遥远的知识就变成了真切的生命体验,他不必“懂”太多,就可以帮助自己,并帮助很多人。

  如果说,高敏感度是一种天才素质,那么高行动力是更重要的天才素质。

  这个寓言还可以引申出另一种含义:不要太指望神秘的心理治疗的魔力。最重要的力量永远在你自己的身上,奥秘的知识、玄妙的潜能开发、炫目的成功学等等,都远不如你自己身上已有的力量重要。我们习惯去外面寻找答案,去别人那里寻找力量,结果忘记了力量就在自己身上。

  切记:别人的知识不能自动地拯救你。
  如果一些连珠的妙语打动了你,如果一些文字或新信条启发了你。那么,这些别人的文字和经验都只是一个开始,更重要的是,你把你以为好的知识真正运用到你自己的生命中去。

  犹太哲学家马丁·布伯的这句话,我一直认为是最重要的:
  你必须自己开始。假如你自己不以积极的爱去深入生存,假如你不以自己的方式去为自己揭示生存的意义,那么对你来说,生存就将依然是没有意义的。

“影子真讨厌!”小猫汤姆和托比都这样想,“我们一定要摆脱它。”然而,无论走到哪里,汤姆和托比发现,只要一出现阳光,它们就会看到令它们抓狂的自己的影子。   
    不过,汤姆和托比最后终于都找到了各自的解决办法。汤姆的方法是,永远闭着眼睛。托比的办法则是,永远待在其他东西的阴影里。

    心理点评: 这个寓言说明,一个小的心理问题是如何变成更大的心理问题的。 
    可以说,一切心理问题都源自对事实的扭曲。什么事实呢?主要就是那些令我们痛苦的负性事件。

  因为痛苦的体验,我们不愿意去面对这个负性事件。但是,一旦发生过,这样的负性事件就注定要伴随我们一生,我们能做的,最多不过是将它们压抑到潜意识中去,这就是所谓的忘记。  
   但是,它们在潜意识中仍然会一如既往地发挥作用。并且,哪怕我们对事实遗忘得再厉害,这些事实所伴随的痛苦仍然会袭击我们,让我们莫名其妙地伤心难过,而且无法抑制。这种疼痛让我们进一步努力去逃避。   
    发展到最后,通常的解决办法就是这两个:要么,我们像小猫汤姆一样,彻底扭曲自己的体验,对生命中所有重要的负性事实都视而不见;要么,我们像小猫托比一样,干脆投靠痛苦,把自己的所有事情都搞得非常糟糕,既然一切都那么糟糕,那个让自己最伤心的原初事件就不是那么疼了。   

    白云心理医院的咨询师李凌说,99%的吸毒者有过痛苦的遭遇。他们之所以吸毒,是为了让自己逃避这些痛苦。这就像是躲进阴影里,痛苦的事实是一个魔鬼,为了躲避这个魔鬼,干脆把自己卖给更大的魔鬼。   
    还有很多酗酒的成人,他们有过一个酗酒而暴虐的老爸,挨过老爸的不少折磨。为了忘记这个痛苦,他们学会了同样的方法。   
    除了这些看得见的错误方法外,我们人类还发明了无数种形形色色的方法去逃避痛苦,弗洛伊德将这些方式称为心理防御机制。太痛苦的时候,这些防御机制是必要的,但糟糕的是,如果心理防御机制对事实扭曲得太厉害,它会带出更多的心理问题,譬如强迫症、社交焦虑症、多重人格,甚至精神分裂症等。   

    真正抵达健康的方法只有一个———直面痛苦。直面痛苦的人会从痛苦中得到许多意想不到的收获,它们最终会变成当事人的生命财富。规划利用好现有的能力远比挖掘所谓的潜能更重要。”   

    切记:阴影和光明一样,都是人生的财富。   
  一个最重要的心理规律是,无论多么痛苦的事情,你都是逃不掉的。你只能去勇敢地面对它,化解它,超越它,最后和它达成和解。如果你自己暂时缺乏力量,你可以寻找帮助,寻找亲友的帮助,或寻找专业的帮助,让你信任的人陪着你一起去面对这些痛苦的事情。   
  美国心理学家罗杰斯曾是最孤独的人,但当他面对这个事实并化解后,他成了真正的人际关系大师;美国心理学家弗兰克(见本报1月7日的《每一次磨难都是生命的财富》)有一个暴虐而酗酒的继父和一个糟糕的母亲,但当他挑战这个事实并最终从心中原谅了父母后,他成了治疗这方面问题的专家;日本心理学家森田正马曾是严重的神经症患者,但他通过挑战这个事实并最终发明出了森田疗法……他们生命中最痛苦的事实最后都变成了他们最重要的财富。你,一样也可以做到。