在CentOS上安装Oracle11g

1,修改centos 的release文件以便oracle识别,并关闭SElinux
vi /etc/redhat-release
Red Hat Enterprise Linux AS release 5 (Taroon)

2,安装没有默认安装的一些包,在Oracle安装过程中会有些提示,但最好先装上。

binutils-2.17.50.0.6-2.el5
compat-libstdc++-33-3.2.3-61
elfutils-libelf-0.125-3.el5
elfutils-libelf-devel-0.125
gcc-4.1.1-52
gcc-c++-4.1.1-52
glibc-2.5-12
glibc-common-2.5-12
glibc-devel-2.5-12
glibc-headers-2.5-12
libaio-0.3.106
libaio-devel-0.3.106
libgcc-4.1.1-52
libstdc++-4.1.1
libstdc++-devel-4.1.1-52.e15
make-3.81-1.1
sysstat-7.0.0
unixODBC-2.2.11
unixODBC-devel-2.2.11

3,创建系统用户:
/usr/sbin/groupadd oinstall
/usr/sbin/groupadd dba
/usr/sbin/useradd -g oinstall -G dba oracle
passwd oracle

4,创建数据库安装目录,赋权:
mkdir -p /u01/app/oracle/product/  //设置oracle的安装目录
chown -R oracle:oinstall /u01  //设置安装目录所属的用户和组
chmod -R 775 /u01

5,修改系统参数:
vi /etc/sysctl.conf
在最末尾的地方加上:
kernel.shmall = 2097152 //固定大小为2M
kernel.shmmax = 2147483648 //一般设置为物理的一半
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
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

sysctl -p

6,修改系统limits.conf文件:
vi /etc/security/limits.conf 在末尾添加
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536

7,修改login配置
vi /etc/pam.d/login 在末尾添加
session required /lib/security/pam_limits.so
session required pam_limits.so

8,修改/etc/profile文件,在末尾添加
if [ $USER = “oracle” ]; then
if [ $SHELL = “/bin/ksh” ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
fi

9,修改Oracle用户的/home/oracle/.bash_profile 注意路径必须和安装目录一样
# User specific environment and startup programs

PATH=$PATH:$HOME/bin

export PATH
export ORACLE_BASE=/u01
export ORACLE_HOME=$ORACLE_BASE/app/oracle/product/11.2.0/dbhome_1
export ORACLE_HOME_LISTNER=$ORACLE_HOME
export ORACLE_SID=jmj
export PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib

10,解压缩文件,./runInstaller 即可,当然,也可以远程打开VNC进行安装。

11,设置Oracle开机启动,编写一个脚本:oracleinit.sh

在这个脚本之前,有一点点准备工作,需要将环境变量参数加入到启动停止脚本:dbstart dbshut
在dbstart 和 dbshut 找到此段话,在最前端
# First argument is used to bring up Oracle Net Listener
ORACLE_HOME_LISTNER=$1
//需要将此处的 ORACLE_HOME_LISTNER=$1 修改为 ORACLE_HOME_LISTNER=$ORACLE_HOME
------
#!/bin/bash
# description: Oracle11g Server
# processname: oraserver  

RETVAL=0
prog="oraserver"  

ORACLE_HOME=/app/oracle/product/11.2.1/dbhome/
if [ ! -f $ORACLE_HOME/bin/dbstart ]
then
    echo "Oracle11g cannot start:Cannot find dbstart..."
    exit
fi  

start() {
    echo "Starting Oracle11g Server..."
    su - oracle -c "$ORACLE_HOME/bin/dbstart"
    RETVAL=$?
    [ $RETVAL -eq 0 ] && touch /var/lock/subsys/$prog
    su - oracle -c "$ORACLE_HOME/bin/emctl start dbconsole"
    return $RETVAL
}
stop() {
    su - oracle -c "$ORACLE_HOME/bin/emctl stop dbconsole"
    echo "Stoping Oracle10g Server..."
    su - oracle -c "$ORACLE_HOME/bin/dbshut"
    RETVAL=$?
    [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/$prog
    return $RETVAL
}  

restart() {
echo "Restart Oracle11g Server"
stop
start
echo
}  

case "$1" in
  start)
        start
        ;;
  stop)
        stop
        ;;
  restart|reload)
        stop
        start
        RETVAL=$?
        ;;
  condrestart)
        if [ -f /var/lock/subsys/$prog ]; then
            stop
            start
            RETVAL=$?
        fi
        ;;
  status)
        status $prog
        RETVAL=$?
        ;;
  *)
        echo $"Usage: $0 {start|stop|restart|condrestart|status}"
        exit 2
esac  

exit $RETVAL
------

CentOS下安装Openvpn(含VPS)

前提:VPS已经打开tun/tap,装有iptables,openssl及openssl-devel,现在很多VPS尽量简化,编译器可能会需要安装gcc。

1,下载LZO和OpenVPN。
wget http://www.oberhumer.com/opensource/lzo … .04.tar.gz
wget http://openvpn.net/release/openvpn-2.1_rc22.tar.gz

2,安装,都使用默认路径,
./configure && make && make install
即可。

3,拷贝文件,初始化PKI。
cp -r /root/src/openvpn-2.1_rc22/easy-rsa/ /etc/openvpn/
cd /etc/openvpn/2.0/
export D=`pwd`
export KEY_CONFIG=$D/openssl.cnf
export KEY_DIR=$D/keys
export KEY_SIZE=1024
export KEY_COUNTRY=US
export KEY_PROVINCE=FL
export KEY_CITY=Taipei
export KEY_ORG=”Sun”
export KEY_EMAIL=”[email protected]
. /vars

4,创建CA。

./clean-all
./build-ca

5,签发服务器证书和客户端证书。
./build-key-server server
./build-key client1

6,生成Diffie Hellman。
./build-dh
若不能执行,则 openssl dhparam -out ./keys/dh1024.pem 1024

证书生成完毕,可以把keys目录打包下载到本地以供客户端使用,下面进行openvpn服务器配置,

7,修改配置文件,如需使用代理连接,例如穿过中国移动CMWAP网关,配置文件中应使用tcp proto。
mkdir /etc/openvpn/2.0/conf
cd /etc/openvpn/2.0/conf && vi server.conf
——
port 1194
proto udp
dev tun
ca /etc/openvpn/2.0/keys/ca.crt
cert /etc/openvpn/2.0/keys/server.crt
key /etc/openvpn/2.0/keys/server.key置
dh /etc/openvpn/2.0/keys/dh1024.pem
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
push “redirect-gateway def1 bypass-dhcp”
push “dhcp-option DNS 10.8.0.1″
push “dhcp-option DNS 8.8.8.8″
client-to-client
keepalive 10 120
comp-lzo
user nobody
group nobody
persist-key
persist-tun
status openvpn-status.log
verb 3
——

8,启动openvpn.
/usr/local/sbin/openvpn –config /etc/openvpn/2.0/conf/server.conf

9,设置iptables nat,下面的环节,独立主机和OpenVZ会有一些区别,但区别不大,下为独立主机例,OpenVZ需要把eth0替换成venet0。

独立主机一般输入
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
即可,部分OpenVZ VPS需要执行
iptables -t nat -A POSTROUTING -s 10.8.0.0/255.255.255.0 -j SNAT –to-source x.x.x.x
其中x.x.x.x是VPS的IP地址。
保存防火墙配置:
/etc/init.d/iptables save
/etc/init.d/iptables restart

10,设置转发参数。
检查当前参数:sysctl -a | grep forward
对比下列参数,若有为0的项目,使用
sysctl -w net.ipv4.ip_forward=1
类似命令修改。
——
net.ipv4.conf.tun0.mc_forwarding = 0
net.ipv4.conf.tun0.forwarding = 1
net.ipv4.conf.eth0.mc_forwarding = 0
net.ipv4.conf.eth0.forwarding = 1
net.ipv4.conf.virbr0.mc_forwarding = 0
net.ipv4.conf.virbr0.forwarding = 1
net.ipv4.conf.lo.mc_forwarding = 0
net.ipv4.conf.lo.forwarding = 1
net.ipv4.conf.default.mc_forwarding = 0
net.ipv4.conf.default.forwarding = 1
net.ipv4.conf.all.mc_forwarding = 0
net.ipv4.conf.all.forwarding = 1
net.ipv4.ip_forward = 1
——

11,服务端设置已经完成,客户端配置文件如下,其中,x.x.x.x是服务器对外的服务IP地址,ca.crt,client1.crt,client1.key是之前在服务器上生成的服务器证书,客户端证书和客户端密钥。
——
client
dev tun
proto udp
remote x.x.x.x 1194
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
cert client1.crt
key client1.key
ns-cert-type server
comp-lzo
verb 3
redirect-gateway def1
——