Suse 11 sp4 安装Oracle 11g

  • 环境信息

suse 11 sp4 64位 企业版
配置:
虚拟机,1U4CORE,4GB内存,100GB存储(实际可用空间20GB)

  • linux环境配置修改

在安装oracle之前,需要先对linux 的内核参数做一些调整。

首先修改 /etc/security/limits.conf 配置文件
在末尾增加

#oracle software
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536

修改 /etc/pam.d/login 配置文件

在末尾增加

#oracle software
session required /lib/security/pam_limits.so
session required pam_limits.so

修改 /etc/sysctl.conf 配置文件,增加

fs.file-max = 6815744
fs.aio-max-nr = 1048576
kernel.shmall = 2097152
kernel.shmmax = 2147483648
ernel.shmmni = 4096
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default = 4194304
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max=1048576

【一些参数可以通过以下命令获取】

cat /proc/sys/kernel/sem
cat /proc/sys/kernel/shmall
cat /proc/sys/kernel/shmmax
cat /proc/sys/kernel/shmmni
cat /proc/sys/net/core/rmem_default
cat /proc/sys/net/core/wmem_default
cat /proc/sys/net/core/wmem_max
cat /proc/sys/net/ipv4
cat /proc/sys/fs/file-max
cat /proc/sys/net/ipv4/ip_local_port_range

安装oracle 需要至少 4GB 的swap 交换空间,而作者的环境只有2GB,所以需要增加swap 大小
在/tmp 目录下创建一个 swap 目录,使用dd 命令生成一个3GB 的文件

mkdir /tmp/swap ; 
cd /tmp/swap ;
dd if=/dev/zero of=swapfree bs=1M count=3072 ;

创建swap

mkswap swapfree

将 swapfree 文件增加到 系统的swap 交换空间上

swapon swapfree

增加开机时加载 sysctl 相关参数

/sbin/chkconfig boot.sysctl on

立即生效

/sbin/sysctl -p

修改 /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
  • 解决oracle 依赖包

在使用zypper 命令前,应该先确保安装的ISO 文件被添加到zypper 安装源上,如果读者不知道如何操作,可以参考以下博客:

zypper install gcc-32bit
zypper install gcc-c++
zypper install libaio-devel
zypper install libaio-devel-32bit
zypper install libstdc++43-devel-32bit
zypper install libstdc++-devel-4.3
zypper install sysstat-8.1.5
  • 创建oracle 系统用户

创建系统用户组和用户

groupadd oracle
useradd -g oracle -m oracle

修改oracle 用户密码

passwd oracle

切换oracle 用户,然后创建一些初始目录 

cd /home/oracle
mkdir app
mkdir app/oracle
mkdir app/data
mkdir app/product

安装oracle 11g

 读者可以直接从oracle 的官方网站下载安装包,下载完全免费,不需要导出找下载连接。

官网地址:http://www.oracle.com/technetwork/database/enterprise-edition/downloads/index.html

作者是将 linux.x64_11gR2_database_1of2.zip 和 linux.x64_11gR2_database_2of2.zip 两个压缩文件都是以oracle 用户的权限上传到 /home/oracle 目录下。

解压zip 文件

unzip linux.x64_11gR2_database_1of2.zip
unzip linux.x64_11gR2_database_2of2.zip

进入database 目录,执行runInstaller 程序。

这里需要提醒读者,oracle 11g 安装一定需要图形化界面,另外用户一定要在oracle 用户下登陆图形化界面执行 runInstaller 程序,否则将会出现“无法使用命令 /usr/bin/xdpyinfo 自动检查显示器颜色” 错误

安装的过程都是图形界面,这里作者没有每个步骤截图,但是大家可以参考以下博客进行操作

http://www.cnblogs.com/zhangyongli2011/archive/2012/04/04/2431953.html

 安装即将结束时,runInstaller 程序会弹出一个窗口,让用户在之后使用root 权限执行以下两个文件

将系统用户切换为root,在shell中继续执行,执行完以下两个脚本后,oracle部署就基本结束

sh /home/oracle/app/oracle/product/11.2.0/dbhome_1/root.sh
sh /home/oracle/app/oraInventory/orainstRoot.sh 
  • 将 oracle 的执行命令和配置相关环境变量到oracle 用户中

系统 oracle 用户下创建bash_profile 文件

vi ~/.bash_profile

增加以下内容

export ORACLE_BASE=/home/oracle/app
export ORACLE_HOME=${ORACLE_BASE}/oracle/product/11.2.0/dbhome_1
export ORACLE_HOME_LISTNER=${ORACLE_HOME}
export ORACLE_SID=orcl
export PATH=${PATH}:${ORACLE_HOME}/bin
export LD_LIBRARY_PATH=${ORACLE_HOME}/lib:/usr/lib
export DISPLAY=:0.0

设置 DISPLAY 参数环境变量,用户可以通过以下命令查看

who

例如作者在shell 中执行 who 命令显示

oracle   :0           2017-08-22 13:53
oracle   pts/1        2017-08-22 13:54 (:0.0)
oracle   pts/2        2017-08-22 14:13 (:0.0)

则在 ~/.bash_profile 中增加

export DISPLAY=:0.0

让该配置实时生效

source ~/.bash_profile
  • 新建oracle 数据库

在系统 root 用户下执行

xhost local:oracle non-network local connections being added to access control list

再切换回 oracle 用户执行,注意,此时的图形化界面依然是使用 oracle 用户登录的

dbca

 图形化界面上出现oracle 新建database 的窗口,点击“next”后,弹出以下界面,直接选择“continue”

 

选择”create database“,点击”next“

选择”custom database“,点击”next“

填写”orcl“,点击”next“

不勾选任何选项,直接点击”next“

设置密码,用户按照自己的喜好进行设置,该密码为oracle 管理员账户的密码,即“system”和 “sys” 用户的密码。

数据库存储位置,默认就好

不指定”快速恢复归档“

 

忽略多余的模块

内存分配和选择字符集,这里作者选择使用”utf8“

最后一个步骤,直接点击”next“和下一页的“finish”

出现以下窗口则证明创建成功。

  •  设置监听及本地网络服务

在oracle 用户下执行 netca 命令,启动设置网络监听的设置窗口 (图形化界面的登陆用户依然是oracle)

选择新建一个监听服务,允许别的oracle客户端可以连接到本地的oracle 数据库服务。

 

选择端口,默认为“1521

设置完成,点击“next”

设置本地网络服务名(充当oracle 客户端,连接别的oracle 服务器)

 输入数据库的实例名,填写”orcl

填写oracle 服务端 机器名,此处可以填写hostname ,也可以填写 ip 地址,由于作者机器ip 可能会发生变化,所以此处作者使用 HOSTNAME 代替。

在作者的环境中,HOSTNAME=chen, 并且 /etc/hosts 文件中包含 ip 地址和 hostname 的映射关系

连接测试

点击”change login“, 更换连接数据库服务其的账号

用户名填写“system”,密码填写上面创建 database 时的密码

如果能出现“Connecting ... Test successful"则代表设置成功,点击”next“

为我们本地网络服务起一个名字,作者填写“orcl_ic"

 

选择”finish“ 结束设置

  •  设置开机自启动

新建一个  /etc/init.d/after.local 脚本,该脚本为开机后最后执行的步骤脚本,如果该文件已经存在,则直接打开即可

增加以下内容,包含关闭系统放火墙、开启oracle 监听和 oracle 数据库服务

#!/bin/bash


/sbin/SuSEfirewall2 stop
su oracle -lc "/home/oracle/app/oracle/product/11.2.0/dbhome_1/bin/lsnrctl start"
su oracle -lc "/home/oracle/app/oracle/product/11.2.0/dbhome_1/bin/dbstart"

修改 /etc/oratab 文件 (在oracle 用户下操作)

将老的内容

orcl:/home/oracle/app/oracle/product/11.2.0/dbhome_1:N

修改为以下内容,保存退出

orcl:/home/oracle/app/oracle/product/11.2.0/dbhome_1:Y

分别修改 /home/oracle/app/oracle/product/11.2.0/dbhome_1/bin/dbstart (80行) 和 /home/oracle/app/oracle/product/11.2.0/dbhome_1/bin/dbshut (50行)文件

将以下代码注释
#ORACLE_HOME_LISTNER=$1

修改

ORACLE_HOME_LISTNER=${ORACLE_HOME}

参考博客:

http://www.cnblogs.com/zhangyongli2011/archive/2012/04/04/2431953.html

http://www.itexamprep.com/cn/oracle/soft/2011/0505/2027.html

http://blog.csdn.net/luoxia0805/article/details/24887723

http://www.cnblogs.com/Anonymous-1/p/4996326.html

http://blog.sina.com.cn/s/blog_5de102fb0101dr8b.html

原文地址:https://www.cnblogs.com/chenfool/p/7411626.html