Red Hat下安装oracle
--用户是oracle 组是 oinstall
groupadd oinstall
groupadd dba
useradd oracle -g oinstall -G dba
--文件设置
mkdir -P /u01/oracle
chown -R oracle:oinstall /u01
chmod -R 775 /u01/oracle
--网络都要一致
/etc/hosts
/etc/sysconfig/network
/etc/sysconfig/network-scripts/sys_eth0
--需要设置 selinux=disabled
/etc/selinux/config
1. 修改/etc/sysctl.conf,加入以下内容:
#kernel.core_uses_pid = 1
kernel.shmall = 2097152
kernel.shmmax = 2147483648
kernel.shmmni = 4096
#semaphores:semmsl,semmns,semopm,semmni
kernel.sem = 250 32000 100 128
fs.file-max = 65536
net.ipv4.ip_local_port_range = 1024 65000
net.core.rmem_default = 8388608
net.core.rmem_max = 8388608
net.core.wmem_default = 262144
net.core.wmem_max = 262144
结束后,执行
sysctl -p
2、设置Shell Limits(系统资源限制)提高软件的运行效率
a. 修改/etc/security/limits.conf,加入内容
oracle soft nproc 16384
oracle hard nproc 16384
oracle soft nofile 65536
oracle hard nofile 65536
3. 修改/etc/pam.d/login,加入内容
#对64位系统这条不需要
session required /lib/security/pam_limits.so
session required pam_limits.so
4. 修改/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
5.添加环境变量在 /home/oracle/.bash_profile
ORACLE_BASE=/u01
ORACLE_HOME=$ORACLE_BASE/oracle
ORACLE_SID=whc11g
PATH=$ORACLE_HOME/bin:$PATH
export ORACLE_BASE ORACLE_HOME ORACLE_SID
--补全
alias sqlplus='rlwrap sqlplus'
alias rman='rlwrap rman'
--乱码问题
NLS_LANG="SIMPLIFIED CHINESE"_CHINA.ZHS16GBK
export NLS_LANG
export LANG=zh_CN
export NLS_DATE_FORMAT='YYYY-MM-DD HH24:MI:SS'
export NLS_TIMESTAMP_FORMAT='yyyy-mm-dd HH24:MI:SSXFF'
export NLS_TIMESTAMP_TZ_FORMAT='yyyy-mm-dd HH24:MI:SSXFF TZR'
--重点
如果 NLS_LANG="SIMPLIFIED CHINESE"_CHINA.ZHS16GBK 乱码不能解决
把NLS_LANG中后面的字符集ZHS16GBK修改成AL32UTF8
--启动 startup MEMORY_TARGET not supported on this system报错解决
1.增加内存
在oracle 11g中新增的内存自动管理的参数MEMORY_TARGET,它能自动调整SGA和PGA,这个特性需要用到/dev/shm共享文件系统,而且要求/dev/shm必须大于MEMORY_TARGET,如果/dev/shm比MEMORY_TARGET小就会报错
解决方案
1.初始化参数MEMORY_TARGET或MEMORY_MAX_TARGET不能大于共享内存(/dev/shm),为了解决这个问题,可以增大/dev/shm
如:
# mount -t tmpfs shmfs -o size=7g /dev/shm
2.为了确保操作系统重启之后能生效,需要修改/etc/fstab文件
shmfs /dev/shm tmpfs size=7g 0
3.如果/dev/shm没有挂载也会报上面的错,所认需要确保已经挂载
oracle@aaaprod-db ~]$ df -h
……
tmpfs 16G 8.9G 7.2G 56% /dev/shm
……
下面为一次操作的记录
[root@aaaprod-db ~]# cat /etc/fstab | grep tmpfs
tmpfs /dev/shm tmpfs defaults,size=8g 0 0
[root@aaaprod-db ~]#
[root@aaaprod-db ~]# mount -o remount,size=16G /dev/shm
[root@aaaprod-db ~]#
[root@aaaprod-db ~]# cat /etc/fstab | grep tmpfs
tmpfs /dev/shm tmpfs defaults,size=8g 0 0
[root@aaaprod-db ~]# vi /etc/fstab
/dev/rootvg/LogVol02 / ext3 defaults 1 1
/dev/rootvg/LogVol01 /tmp ext3 defaults 1 2
/dev/rootvg/lvol0 /ebao ext3 defaults 1 2
/dev/rootvg/lvol1 /backup ext3 defaults 1 2
LABEL=/boot /boot ext3 defaults 1 2
tmpfs /dev/shm tmpfs defaults,size=16g 0 0
devpts /dev/pts devpts gid=5,mode=620 0 0
sysfs /sys sysfs defaults 0 0
proc /proc proc defaults 0 0
/dev/rootvg/LogVol00 swap swap defaults 0 0
"/etc/fstab" 10L, 769C written
[root@aaaprod-db ~]# df -h|grep shm
tmpfs 16G 0 16G 0% /dev/shm
SQL> startup
ORACLE instance started.
Total System Global Area 9420095488 bytes
Fixed Size 2236248 bytes
Variable Size 2315255976 bytes
Database Buffers 7046430720 bytes
Redo Buffers 56172544 bytes
Database mounted.
Database opened.
SQL> exit