注意事项:
a, 下载oracle软件不能用下载工具,如迅雷等。而是直接下载,否则会导致安装文件不完整会出现下面错误,如果以前安装过oracle也会出现这个问题。
b, Oracle11gR2有两个安装包,下载完后需要解压到同一个目录下面,否则会报下面的错误。
安装中出现的问题
1、运行./runInstaller出现中文汉字为方框
在/usr/lib/jvm/java-1.6.0/jre/lib/目录下建以下目录fonts/fallback,copy一种中文字体到些目录,并命名为zysong.ttf,安装时加-jreLoc参数
即可解决中文方框问题。
./runInstaller -jreLoc /usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0.x86_64/jre
2、运行netca时中文字体出现方框
拷贝zysong.ttf到$ORACLE_HOME/jdk/jre/lib/fonts/fallback目录下解决乱码。
3、利用dbca创建数据库时提示ORA-12532: TNS:invalid argument错误代码,是iptables没有开放1521端口,在iptables中添加以下条目-A INPUT -p tcp --dport 1521 -j ACCEPT解决问题。
4、运行sqlplus时中文为?错误
设置相应的环境变量NLS_LANG
exportNLS_LANG="SIMPLIFIED CHINESE_CHINA.ZHS16GBK"
并将写入oracle目录下的.bash_profile文件中。
安装
1、安装rhel5.7操作系统,自定义安装,把所有开发工具安装上,如:perl、gcc等的包安装上去。
2、设置rhel5的ip地址为固定ip
方法有几种,你可以选一种
1)修改接口配置文件
[root@ dba~]# vi/etc/sysconfig/network-scripts/ifcfg-eth0
# Advanced Micro Devices [AMD] 79c970[PCnet32 LANCE]
DEVICE=eth0
BOOTPROTO=static
BROADCAST=192.168.2.255
HWADDR=00:0C:29:D0:EC:04
IPADDR=192.168.2.60
IPV6INIT=yes
IPV6_AUTOCONF=yes
NETMASK=255.255.255.0
NETWORK=192.168.2.0
ONBOOT=yes
2)调用图形界面修改
[root@dba ~]#neat-tui
3、设置rhel5.7的主机名和对应关系
[root@dba ~]#vi /etc/sysconfig/network
NETWORKING=yes
NETWORKING_IPV6=yes
HOSTNAME=dba.test.com
GATEWAY=192.168.2.1
[root@dba ~]# vi /etc/hosts
192.18.200.10 dba.test.com
4、查看rhel5安装oracle11g所需要的安装软件包
执行下面的脚本,没有安装的包会列出来
#!/bin/bash
for i in binutils compat-libstdc++-33 \
elfutils-libelf elfutils-libelf-devel\
elfutils-libelf-devel-static gcc \
gcc-c++- glibc glibc-common \
glibc-devel glibc-header skernel-headers \
ksh libaio libaio-devel \
libgcc libgomp libstdc++- \
libstdc++-devel make-3.81 sysstat
do
rpm -q $i&>/dev/null || F="$F $i"
done ;echo $F;unset F
oracle官方列出的所有需要安装的软件列表
l binutils-2.17.50.0.6
l compat-libstdc++-33-3.2.3
l elfutils-libelf-0.125
l elfutils-libelf-devel-0.125
l elfutils-libelf-devel-static-0.125
l gcc-4.1.2
l gcc-c++-4.1.2
l glibc-2.5-24
l glibc-common-2.5
l glibc-devel-2.5
l glibc-headers-2.5
l kernel-headers-2.6.18
l ksh-20060214
l libaio-0.3.106
l libaio-devel-0.3.106
l libgcc-4.1.2
l libgomp-4.1.2
l libstdc++-4.1.2
l libstdc++-devel-4.1.2
l make-3.81
l sysstat-7.0.2
使用rpm –qa |grep *检查那些软件包
5、需要安装下面的软件包(挂载5.7光盘到/mnt目录并配置YUM,包在光盘Server目录下)
导入KEY
[root@dbaServer]# rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-*
安装kernel-xen
[root@dba ~]# yum install kernel-xen -y注意(必须用xen内核启动)
安装软件
l [root@oracle11g Server]# yum install libaio-devel -y
l [root@dba Server]# yum install -y sysstat
安装unixODBC软件包
l [root@dba Server]# yum -y install unixODBC
l [root@dba Server]# yum -y installunixODBC-devel
l [root@dba Server]# yum -y install unixODBC-kde
安装软件包
l [root@dba Server]# yum -y install libXp
l [root@dba Server]# yum -y install openmotif
l [root@dba Server]# yum -y install compat-db
6、环境配置
l [root@oracle Server]# groupadd -g 500 oinstall
l [root@oracle Server]# groupadd -g 501 dba
l [root@oracle Server]# usreadd -u 500 -g oinstall -G dba –m oracle
l [root@oracle Server]# passwd oracle
l Changing password for user oracle.
l New UNIX password:
l BAD PASSWORD: it is based on a dictionaryword
l Retype new UNIX password:
l passwd: all authentication tokens updatedsuccessfully.
l [root@oracle Server]# mkdir -p /u01/oracle
l [root@oracle Server]# chown -Roracle:oinstall /u01
l [root@oracle Server]# chmod -R 775 /oracle
l [root@oracle Server]# mkdir /orachivelog
l [root@oracle Server]# chown -Roracle:oinstall /orachivelog
l [root@oracle Server]# chmod -R 775/orachivelog
l [root@oracle Server]# mkdir -p /oradata
l [root@oracle Server]# chown -R oracle:oinstall/oradata
l [root@oracle Server]# chmod -R 775 /oradata
7、查看oracle用户的id
l [root@dba Server]# id oracle
l uid=500(oracle) gid=500(oinstall) groups=500(oinstall),501(dba)
l [root@dba]# id nobody
uid=99(nobody) gid=99(nobody) groups=99(nobody)
l [root@dba]#
8、检查磁盘空间和内存、swap是否满足安装要求
#df -h /dev/shm
#uname -m
9、系统参数设置
修改文件的说明
l /etc/sysctl.conf (修改内核参数)
l /etc/security/limits.conf (shell对oracle用户的限制)
l /etc/profile (系统相关的环境变量)
l /opt/oracle/.bash_profile (oracle用户相关的环境变量)
(1)、配置系统内核参数
在这个文件里添加下面/etc/pam.d/login
l session required /lib64/security/pam_limits.so
l session required pam_limits.so
(2)、在/etc/sysctl.conf文件内添加
l [root@oracle11g haibin]# vi /etc/sysctl.conf
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 2147483648
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576
也可能通过下面手工修改参数:
sysctl –a|grep sem|sed ‘s/32/100/2/’ >> /etc/sysctl.conf #将sysctl文件内容中的第2个32替换为100
sysctl –a|grep ip_local|sed –e ‘s/32768/9000’ –e ‘s/61000/65500’ >> /etc/sysctl.conf #-e表示后面跟的产命令,-e对多个命令操作
sysctl –a|grep rmem_d|sed ‘s/112640/262144’ >> /etc/sysctl.conf
sysctl –a|grep rmem_ma|sed ‘s/131071/4194304’ >> /etc/sysctl.conf
sysctl –a|grep wmem_ma|sed ‘s/131071/1048576’ >> /etc/sysctl.conf
sysctl –a|grep wmem_de|sed ‘s/112640/262144’ >> /etc/sysctl.conf
sysctl –a|grep file_m|sed ‘s/101146/ 6815744’ >> /etc/sysctl.conf
其它参数设置同上
l 修改 /etc/sysctl.conf内核配置文件,增加/修改以下项目,如没有自己添加
l kernel.shmall = 2097152 #内存页的数量,增加内存一般修改这个值
l kernel.shmmax = 2147483648 #应用能够向kernel审请的最大内存段2G,大小设置 >= oracle内存(sga_target)
l kernel.shmmni = 4096 #一个内存页的大小 默认4 ,一般不调这个值
l kernel.sem = 250 32000 100 128
kernel.sem = SEMMSL SEMMNS SEMOPM SEMMNI
SEMMSL Maximum number of semaphores per set
每个信号对象集的最大信号对象数;
SEMMNS Maximum number of semaphores system-wide
系统范围内最大信号对象数;
SEMOPM
每个信号对象支持的最大操作数;
SEMMNI Maximum number of semaphore identifiers
系统范围内最大信号对象集数。
其中 SEMMNS的值等于 SEMMSL*SEMMNI
l fs.file-max = 6815744#系统中所允许的文件句柄最大数目。
l net.ipv4.ip_local_port_range = 9000 65500 #应用程序可使用的IPv4端口范围。
l net.core.rmem_default = 262144 #套接字接收缓冲区大小的缺省值
l net.core.rmem_max = 4194304 #套接字接收缓冲区大小的最大值
l net.core.wmem_default = 262144 #套接字发送缓冲区大小的缺省值
l net.core.wmem_max = 1048576 #套接字发送缓冲区大小的最大值
(3)、/etc/security/limits.conf文件内添加下面内容
[root@oracle11g ]# vi /etc/security/limits.conf
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft stack 10240
(4)、oracle11g环境变量配置
在vi ~/bash_profile文件里添加
l [root@oracle oracle]# vi .bash_profile
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
# User specific environment and startup programs
export ORACLE_BASE=/u01/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0
export ORACLE_SID=ora11g
export PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
export ORACLE_HOME_LISTNER=$ORACLE_HOME
export ORACLE_BASE=/u01/oracle#BASE目录是所有的ORACLE产品的基本目录
export ORACLE_HOME=$ORACLE_BASE/product/10.2.0 #oracle数据库产品安装目录
export ORACLE_SID=ora10g #小于等于8,字母开头 由字母下划线和数字组成
export PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib #库文件的位置,可以不指定但是会报错
(5)在root用户下添加系统变量的参数
l vi /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
(6)修改默认kernel-xen启动
vi /boot/grup/grup.com
9、reboot
10、安装oracle软件
注销root使用oracle用户登录X-window执行安装命令 runInstaller
如果安装包再光盘介质上挂载后要离开光盘挂在位置绝对路径执行
因为安装程序会创建临时文件光盘是只读的不能创建临时文件
若当前桌面是root用su - oracle切换用户需要在切换前root执行 # xhost + 否则oracle用户不能连接root的桌面
执行/database/runInstaller
其它:
Oracle安装好后再修改一些参数,必免以后出错:
1,修改数据库支持最大文件个数
Alter system setdb_files=1500 scope=spfile;
2,修改数据库支持的processes数据(session也会自动调整)
Alter system setprocesses=1500 scope=spfile;
3, 修改写日志进程数量,根据cpu数量而定,一般设置为cpu的一半
Altersystem set db_writer_processes=6 scope=spfile;
优化数据库功能:
1,修改$ORACLE_HOME/sqlplus/admin/glogin.sql
添加setsqlprompt“_user’@'_connect_identifier->” ,sqlplus启动的时候会读取这个文件,这里是为了方便起见。
2, 查看密钥有效期
SELECT * FROM dba_profiles s WHERE s.profile='DEFAULT' AND resource_name='PASSWORD_LIFE_TIME PASSWORD';
如果上面执行结果显示为多少天,则执行下面sql调整为无限制
ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;
3,关闭数据库多次登录失败锁定帐户的功能,在Oracle11g默认配置下,如果单个帐户连续10次登录失败,系统将会锁定帐户,只能通过对帐户解锁。
SYS#ora11g> SELECT LIMIT FROM dba_profiles WHERE PROFILE='DEFAULT' AND RESOURCE_NAME='FAILED_LOGIN_ATTEMPTS';
LIMIT
--------------------------------------------------------------------------------
10
修改为无限制:
ALTER PROFILE DEFAULT LIMIT FAILED_LOGIN_ATTEMPTS UNLIMITED;
3,在Oracle11g中,创建数据库时默认会打开审计功能,默认的audit会记录session登录数据库的信息、数据库关闭/启动和用户授权等信息。大量审计记录有可能写满系统表空间,导致数据库异常。
SYS#ora11g> show parameter audit_trail;
NAME TYPE VALUE
---------------------------------------------------------- ------------------------------
audit_trail string DB
清除审请表数据:
SYS#ora11g> truncate table sys.aud$;
Table truncated.
关闭审计功能:
SYS#ora11g> alter system SETaudit_trail=NONE scope=spfile;
System alterd
#需要重启ORACLE生效
4,设置open_cursors,session_cached_cursors
SYS#ora11g>alter system set open_cursors=5000;
System altered.
SYS#ora11g>ALTER system SET session_cached_cursors=100 scope=spfile;
System altered.
5,开启force logging和supplemental log data
SYS@ora11g>SELECT FORCE_LOGGING,SUPPLEMENTAL_LOG_DATA_MIN FROM v$database;
FORCE_SUPPLEMENTAL_LOG
----------------------
NO NO
SYS@ora11g>ALTER DATABASE force logging;
Databasealtered.
SYS#ora11g>ALTER DATABASE ADD supplemental log DATA;
Databasealtered.
参考来自Oracle官档:http://docs.oracle.com/cd/E11882_01/install.112/e24326/toc.htm
===================================================================
版权所有,文章允许转载,但必须以链接方式注明源地址,否则追究法律责任! 谢谢合作!
QQ: 164798858@qq.com
Sina: weibo.com/kaijunfeng
Yahoo: fffygapl@yahoo.com.cn