centos安装oracle10及重启后的tns错误解决
最近两天晚上闲的一些时候,在开始在linux平台整一些东西,今天准备在下面安装一下oracle数据库,在网上也看到了很多高人的帖子,参考了他们的方法,然后把自己的操作过程记录下来,方便自己以后查阅同时也希望方便一下来我博客查阅的人。
操作系统我用的是linux,至于系统的安装过程我就不说了,linux的安装过程开发包和开发工具是必选的,安装oracle还需要老的软件开发工具,因此这个也得选上。
一,系统环境的准备工作
首先在终端下执行
rpm -q gcc make binutils openmotif setarch compat-db compat-gcc compat-gcc-c++ compat-libstdc++ compat-libstdc++-devel看看你的软件包是否安装完整,有提示没有安装的话,把需要的给补充安装上,可能安装完后还有提示如下,查阅 网上资料,据说是rpm包的bug,这个可以不用理会了。
package compat-gcc-c++ is not installed
package compat-libstdc++ is not installed
根据官方对oracle的需求如下:
所需最小 RAM 为 512MB,而所需最小交换空间为 1GB。对于 RAM 小于或等于 2GB 的系统,交换空间应为 RAM 数量的两倍;对于 RAM 大于 2GB 的系统,交换空间应为 RAM 数量的一到两倍。 我们可以通过下面的命令来查看当前系统的内存与虚拟内存:
# grep MemTotal /proc/meminfo
MemTotal: 2067248 kB
# grep SwapTotal /proc/meminfo
SwapTotal: 4096564 kB
Oracle 10g 软件还需要 2.5GB 的可用磁盘空间,而数据库则另需 1.2GB 的可用磁盘空间。/tmp 目录至少需要 400MB 的可用空间。我们可以通过下面的命令,来查看磁盘空间:
#df -h
配置 Linux 内核参数
Linux 内核非常出色。与大多数其他 *NIX 系统不同,Linux 允许在系统启动和运行时修改大多数内核参数。完成内核参数更改后不必重新启动系统。Oracle 数据库10g 需要以下所示的内核参数设置。其中给出的是最小值,因此如果您的系统使用的值较大,则不要更改它。
#vi /etc/sysctl.conf在尾端加入
kernel.sem = 250 32000 100 128# 信号量
fs.file-max = 65536 #linux分配的最大文件句柄数
net.ipv4.ip_local_port_range = 1024 65000 #端口号的范围(默认是1024~4999
net.core.rmem_default=262144
net.core.rmem_max=262144
net.core.wmem_default=262144
net.core.wmem_max=262144
再运行/sbin/sysctl -p应用上面的配置.
创建oracle用户帐户
接下来,创建用于安装和维护 Oracle 10g 软件的 Linux 组和用户帐户。用户帐户将称为 oracle,而组将称为 oinstall 和 dba。以 root 用户身份执行以下命令:
# /usr/sbin/groupadd oinstall
# /usr/sbin/groupadd dba
# /usr/sbin/useradd -m -g oinstall -G dba oracle
创建oracle安装目录
# mkdir -p /u01/app/oracle
# chown -R oracle:oinstall /u01/app/oracle
# chmod -R 775 /u01/app/oracle
为 oracle 用户设置 Shell 限制
在/etc/security/limits.conf文件中加入以下内容,以修改单个用户允许使用的进程和文件数量
#vi /etc/security/limits.conf 在尾端添加
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
#vi /etc/pam.d/login 在其中添加下面的代码:
session required /lib/security/pam_limits.so
#vi /etc/selinux/config 确保以下内容
SELINUX=disabled
因为oracle 10g不支持centos,所以修改CentOS 5的版本
#vi /etc/redhat-release
redhat-4
修改 Oracle 用户 .bash_profile
# su - oracle
$ vi ./.bash_profile
添加
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/10.2.0.1
export ORACLE_SID=orcl
export PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib
if [ $USER = "oracle" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
fi
二,开始安装
注销然后以oracle用户登录(如果你不重新登录而直接在终端中通过 “su – oracle” 切换到Oracle用户安装的话,可能会出现display设置错误的提示而无法安装)
打开一个终端,执行以下命令开始安装
#unzip 10201_database_linux32.zip
#cd database
#./runInstaller
如果你的安装过程中还出现错误的话,应该是还有一些包没打上,这时你不必终止安装过程,而是打开另一个终端,以root用户身份再去查检安装最前面 所说的那些包,如果这些包都装好了,再回到oracle安装程序,在出错提示框点击 “Retry” 即可继续安装,直到成功。
安装完后orcl数据库也已经启动。你可以在其它机器上配置netmanager测试一下是否能连接,如果其它机器没有装oracle客户端,也可以通过telnet命令测试一下1521端口是否可以连接
telnet 127.0.0.1:1521
如果进入黑屏,则基本上说明1521端口是通的,也就是说你的orale可以正常使用了。
如果不能连接,很可能是防火墙的问题。在服务器菜单中打开 “系统/管理/安全级别和防火墙”,然后添加1521端口。
重启后就出现ORA-12514: TNS:listener does not currently know of service requested in connect descriptor:
vi /usr/local/oracle/product/10.2.0.1/network/admin/listener.ora
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = E:\oracle\product\10.1.0\Db_1)
(PROGRAM = extproc)
)
)
改为:
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = E:\oracle\product\10.1.0\Db_1)
(PROGRAM = extproc)
)
(SID_DESC =
(GLOBAL_DBNAME= orcl)
(ORACLE_HOME = E:\oracle\product\10.1.0\Db_1)
(SID_NAME=orcl)
)
)