今天在Linux64位系统安装oracle数据库,折腾了一天,终于搞定了,现在把安装步骤梳理下,防止以后忘记:
(以下内容来自http://blog.163.com/junwu_lb/blog/static/1916798920117284537210/)
操作系统版本:red hat enterprises Linux 6.2 (santiago)
数据库版本:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
PL/SQL Release 11.2.0.1.0 - Production
CORE 11.2.0.1.0 Production
TNS for Linux: Version 11.2.0.1.0 - Production
NLSRTL Version 11.2.0.1.0 - Production
1、检查相应的rpm包的情况(等于或者高于下面版本)
rpm –qa | grep pagename(grep是搜索)
binutils-2.17.50.0.6
compat-libstdc++-33-3.2.3
compat-libstdc++-33-3.2.3 (32 bit)
elfutils-libelf-0.125
elfutils-libelf-devel-0.125
gcc-4.1.2
gcc-c++-4.1.2
glibc-2.5-24
glibc-2.5-24 (32 bit)
glibc-common-2.5
glibc-devel-2.5
glibc-devel-2.5 (32 bit)
glibc-headers-2.5
ksh-20060214
libaio-0.3.106
libaio-0.3.106 (32 bit)
libaio-devel-0.3.106
libaio-devel-0.3.106 (32 bit)
libgcc-4.1.2
libgcc-4.1.2 (32 bit)
libstdc++-4.1.2
libstdc++-4.1.2 (32 bit)
libstdc++-devel 4.1.2
make-3.81
numactl-devel-0.9.8.x86_64
sysstat-7.0.2
unixODBC-2.2.11
unixODBC-2.2.11 (32 bit)
unixODBC-devel-2.2.11
unixODBC-devel-2.2.11 (32 bit)
pdksh-5.2.14-1–这个包需要下载,安装前需要卸载掉ksh-20100621-6.el6包
rpm –e rpm -e ksh-20100621-6.el6
安装缺少的rpm包
rpm –ivh pagename(根据提示,如果缺少依赖包,也需要加上去)
2、添加组和用户
/usr/sbin/groupadd oinstall(添加oinstall组)
/usr/sbin/groupadd -g 502 dba(添加dba组)
/usr/sbin/useradd -u 502 -g oinstall -G dba oracle(添加用户oracle,主组oinstall,辅助组dba)
passwd oracle(修改oracle用户密码)
3、创建文件夹并修改组和用户所属关系和相关权限
mkdir -p /opt/oracle(创建文件u01/oracle)
chown -R oracle:oinstall /opt/oracle(使得/opt/oracle文件夹输入oracle用户和oinstall组)
chmod -R 775 /opt/oracle(修改u01文件夹访问权限)—可选(最好执行下)
4、添加/etc/hosts中dns解析信息
192.168.1.60 xifenfei
5、在/etc/security/limits.conf中添加用户限制信息
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
oracle hard stack 10240
6、修改或者添加/etc/sysctl.conf中信息
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 1048576
kernel.shmmax = 4294967295
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 = 1048586
net.ipv4.tcp_wmem = 262144 262144 262144
net.ipv4.tcp_rmem = 4194304 4194304 4194304
注意注释掉
# Disable netfilter on bridges.
#net.bridge.bridge-nf-call-ip6tables = 0
#net.bridge.bridge-nf-call-iptables = 0
#net.bridge.bridge-nf-call-arptables = 0
—/sbin/sysctl –p(重新加载这些参数,不用重启系统)
7、编辑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
–注意空格,在用户切换时使用su – username,这样才会加载后面的环境变量的配置信息(不要使用su username切换)
8、配置环境变量
注意:这步要在oracle用户下配置,我第一次就忘了这个问题,在root下面做的,安装完oracle之后,在oracle用户下不能启动sqlplus 、netca、dbca··等等··全都不能启动,纠结半天,才发现这个环境变量的配置有问题,重新配置后,正常了。
在oracle用户下的.bash_profile文件中添加下面信息
ORACLE_BASE=/opt/oracle
ORACLE_HOME=$ORACLE_BASE/oracle
ORACLE_SID=xff
PATH=$ORACLE_HOME/bin:$PATH
NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
export ORACLE_BASE ORACLE_HOME ORACLE_SID PATH NLS_LANG
以上是基本环境配置,到此,可以安装数据库了
将zip文件解压:unzip xx.zip /home/oracle(我忘记名字了,直接解压就是了,我给解压到了/home/oracle文件夹下)
在解压出来的文件夹下面
执行 runInstaller
之后出图形界面:
http://blog.163.com/junwu_lb/blog/static/1916798920117284537210/
这个博客里面很清楚,我就是给复制次:
输入技术支持账号,没有就跳过
出现警告信息,选择 是
选择 创建和配置数据库
选择 服务器类
选择 单实例数据库安装
选择 高级安装
添加中文语言支持
选择 企业版
安装路径,默认,下一步
保持默认,下一步
选择 一般用途/事务处理,下一步
数据库实例名,自定义即可,习惯用orcl,下一步
分配内存大小,推荐使用默认值,如果要调优,可以根据需求修改。下一步
选择 使用Unicode(AL32UTF8)(U),下一步
保持默认,下一步
保持默认,下一步
不启用自动备份,下一步
所有账户使用相同的口令,下一步
密码不符合复杂度要求,忽略警告信息,下一步
保持默认,下一步
点击 完成
安装进度显示
弹出的安装数据库的进度显示页面
点击 确定
以 root 用户执行以下两个脚本
/oracle/oraInventory/orainstRoot.sh
/oracle/app/product/11.2.0/dbhome_1/root.sh
执行完脚本后点击 确定
安装成功,点击关闭
到此,oracle database 11g R2安装完成。
安装完成之后,本机访问没有问题,但是远程无法访问,报ora-12560 : tns 协议适配器错误,查了资料说是防火墙配置问题 ,在root账户下输入
iptables -I INPUT -p tcp --dport 1521 -j ACCEPT --1521端口用于oracle
iptables -I OUTPUT -p tcp --dport 1521 -j ACCEPT --一进一出
iptables -A INPUT -p tcp --dport 1521 -j ACCEPT ---这个没搞懂到底啥意思··求高人解惑
iptables -A OUTPUT -p tcp --dport 1521 -j ACCEPT
iptables -I INPUT -p tcp --dport 1158 -j ACCEPT ---1158端口用于em
iptables -I OUTPUT -p tcp --dport 1158 -j ACCEPT ---同样一进一出
永久保存
service iptables save
然后 /etc/init.d/iptables restart 重启防火墙
当当当当···本来应该没问题的啊,远程一连接··报错··无监听器···我郁闷啊··无限郁闷ing 然后继续,去到%oracle_home/db/network/admin
中,这里面有listen.ora network.ora sqlnet.ora将 host改为IP地址,完了重启数据库和监听··大功告成!!终于搞定啦~~~