rethat4.8静默安装oracle11g

1.系统环境

操作系统:Red Hat 4.8.5-11
数据库:oracle11g

1.1查看系统版本

cat /proc/version
image.png

1.2 查看系统内存

 free –m  发现内存为8G内存
image.png

1.3 查看磁盘空间

 df –h
image.png

发现/app目录的空间较大,因此将数据库安装到此目录下
Ps:由于oracle的文件较大,加上需要给库数据预留空间,所以安装位置的空间必须大于8G;

2 安装前准备

2.1 创建用户和用户组(root)

groupadd oracle 添加用户组
groupadd dba    添加管理用户组
useradd oracle -g oracle 添加用户
usermod -a -G dba oracle
image.png

2.2 修改系统内核参数(root)

在/etc/sysctl.cnf 文件中增加以下内容:

fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 536870912
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

为使配置生效,执行sysctl –p(由于文本问题复制执行可能会报错,建议手敲)


image.png

2.3 修改oracle用户的shell属性(root)

vim /etc/security/limits.conf
增加以下内容:

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

2.4 修改修改用户验证选项(root)

vim /etc/pam.d/login
增加以下内容:(检查文件中是否已存在,如以存在退出即可)

session    required     pam_limits.so

2.5 修改环境(root)

vim /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

最后执行source /etc/profile 让配置生效即可

image.png

2.6 创建数据库的相应文件夹(oracle)

mkdir -p /app/oracle/app
mkdir -p  /app/oracle/app/oracle
mkdir -p  /app/oracle/app/oradata
mkdir -p  /app/oracle/app/oracle/product
mkdir -p  /app/oracle/app/oraInventory
image.png

配置环境变量vim ~/.bashrc,增加以下的内容:

export ORACLE_BASE=/app/oracle/app
export ORACLE_HOME=$ORACLE_BASE/oracle/product/11.2.0/db_1
export ORACLE_SID=orcl
export PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib

最后执行 source ~/.bashrc 使配置生效

image.png

2.7 oracle系统依赖检查以及安装依赖(root)

需要的依赖如下所示:
binutils-2.17.50.0.6
compat-libstdc++-33-3.2.3
elfutils-libelf-0.125
elfutils-libelf-devel-0.125
elfutils-libelf-devel-static-0.125
gcc-4.1.2
gcc-c++-4.1.2
glibc-2.5-24
glibc-common-2.5
glibc-devel-2.5
glibc-headers-2.5
kernel-headers-2.6.18
ksh-20060214
libaio-0.3.106
libaio-devel-0.3.106
libgcc-4.1.2
libgomp-4.1.2
libstdc++-4.1.2
libstdc++-devel-4.1.2
make-3.81
sysstat-7.0.2
unixODBC-2.2.11
unixODBC-devel-2.2.11
使用以下命令来查看所有的依赖是否全部包含:
rpm -q binutils compat-libstdc++ elfutils-libelf elfutils-libelf-devel elfutils-libelf-devel-static gcc gcc-c++ glibc glibc-common glibc-devel glibc-headers kernel-headers ksh libaio libaio-devel libgcc libgomp libstdc++ libstdc++-devel make sysstat unixODBC unixODBC-devel

执行命令后如下图所示可以看见缺少的依赖包(如服务器可以连接网络执行yum按照文档继续操作如不可连接网络,则需要下载如下缺少的依赖上传服务器安装后继续操作)

image.png

使用如下命令暗转缺少依赖包
yum install binutils compat-libstdc++ elfutils-libelf elfutils-libelf-devel elfutils-libelf-devel-static gcc gcc-c++ glibc glibc-common glibc-devel glibc-headers kernel-headers ksh libaio libaio-devel libgcc libgomp libstdc++ libstdc++-devel make sysstat unixODBC unixODBC-devel
来将所有的都更新一遍(没有的就安装)

image.png

image.png

image.png

安装后执行

rpm -q binutils compat-libstdc++ elfutils-libelf elfutils-libelf-devel elfutils-libelf-devel-static gcc gcc-c++ glibc glibc-common glibc-devel glibc-headers kernel-headers ksh libaio libaio-devel libgcc libgomp libstdc++ libstdc++-devel make sysstat unixODBC unixODBC-devel
检查看是否全部安装:
这里我们检查有一个安装包未安装成功:package compat-libstdc++ is not installed 摆渡一没有太大影响暂且先不管

image.png

3 正式安装(oracle)

3.1 解压数据库文件

将oracle11g的两个文件上传到一个目录下分别执行

unzip  p13390677_112040_Linux-x86-64_1of7.zip
unzip  p13390677_112040_Linux-x86-64_2of7.zip

解压完成以后会在当前目录下面有一个目录database

3.2配置db_install.rsp

进入到解压目录的response目录下面,修改
cd /app/oracle/package/database/response

vim db_install.rsp

修改一下参数,其中涉及到目录的需要根据自身实际情况进行修改

oracle.install.option=INSTALL_DB_SWONLY

ORACLE_HOSTNAME= localhost

UNIX_GROUP_NAME=oracle
###
INVENTORY_LOCATION=/app/oracle/app/oraInventory

SELECTED_LANGUAGES=en,zh_CN
###
ORACLE_HOME= /app/oracle/app/oracle/product/11.2.0/db_1

#ORACLE_BASE=/usr/local/oracle
ORACLE_BASE=/app/oracle/app

Password=Jufeng2010

Global database name=orcl

Sid=orcl

oracle.install.db.config.starterdb.memoryLimit=512

oracle.install.db.InstallEdition=EE

oracle.install.db.DBA_GROUP=dba

oracle.install.db.OPER_GROUP=oracle

oracle.install.db.config.starterdb.characterSet=AL32UTF8

oracle.install.db.config.starterdb.storageType=FILE_SYSTEM_STORAGE

oracle.install.db.config.starterdb.fileSystemStorage.dataLocation=/usr/local/oradata

oracle.install.db.config.starterdb.fileSystemStorage.recoveryLocation=/usr/local/recovery_data

DECLINE_SECURITY_UPDATES=true    //一定要设为true

db_install.rsp文件详解如下:

( 1. INSTALL_DB_SWONLY、 2. INSTALL_DB_AND_CONFIG、 3. UPGRADE_DB
选择安装类型:1.只装数据库软件 2.安装数据库软件并建库 3.升级数据库)
oracle.install.option=INSTALL_DB_SWONLY 
(指定操作系统主机名,通过hostname命令获得)
ORACLE_HOSTNAME= localhost

(指定oracle inventory目录的所有者,通常会是oinstall或者dba)
UNIX_GROUP_NAME=oracle
###
(指定产品清单oracle inventory目录的路径,如果是Win平台下可以省略)
INVENTORY_LOCATION=/app/oracle/app/oraInventory
(指定数据库语言,可以选择多个,用逗号隔开。选择en, zh_CN(英文和简体中文))
SELECTED_LANGUAGES=en,zh_CN
###
(设置ORALCE_HOME的路径)
ORACLE_HOME= /app/oracle/app/oracle/product/11.2.0/db_1
(设置ORALCE_BASE的路径)
#ORACLE_BASE=/usr/local/oracle
ORACLE_BASE=/app/oracle/app

Password=oracle

Global database name=orcl

Sid=orcl
指定Oracle自动管理内存的大小,最小是512MB
oracle.install.db.config.starterdb.memoryLimit=512

(# EE    : EnterpriseEdition                               
# SE    : Standard Edition                                 
# SEONE  Standard Edition One
# PE    : Personal Edition (WINDOWS ONLY)
#选择Oracle安装数据库软件的版本(企业版,标准版,标准版1),不同的版本功能不同
)
oracle.install.db.InstallEdition=EE
(指定拥有OSDBA、OSOPER权限的用户组,通常会是dba组)
oracle.install.db.DBA_GROUP=dba

oracle.install.db.OPER_GROUP=oracle
(#选择字符集。不正确的字符集会给数据显示和存储带来麻烦无数。#通常中文选择的有ZHS16GBK简体中文库,建议选择unicode的AL32UTF8国际字符集)
oracle.install.db.config.starterdb.characterSet=AL32UTF8
(自动备份,要求指定使用的文件系统存放数据库文件还是ASM
- FILE_SYSTEM_STORAGE
# - ASM_STORAGE)
oracle.install.db.config.starterdb.storageType=FILE_SYSTEM_STORAGE
(使用文件系统存放数据库文件才需要指定数据文件、控制文件、Redo log的存放目录)
oracle.install.db.config.starterdb.fileSystemStorage.dataLocation=/usr/local/oradata

oracle.install.db.config.starterdb.fileSystemStorage.recoveryLocation=/usr/local/recovery_data
(# False表示不需要设置安全更新,注意,在11.2的静默安装中疑似有一个BUG
# Response File中必须指定为true,否则会提示错误,不管是否正确填写了邮件地址)
DECLINE_SECURITY_UPDATES=true    //一定要设为true

3.3 安装数据库

进入cd /app/oracle/package/database
修改临时字符集便于安装

    export LANG=zh_CN.UTF-8;

执行

./runInstaller  -responseFile /app/oracle/package/database/response/db_install.rsp   -ignorePrereq  -silent
image.png

这里报错未设置交互区下面我们设置一下交互区:(root用户)
swap文件的制作,假设这里创建一个512MB大小的swap空间

$ sudo fallocate -l 512m /mnt/512MiB.swap
image.png
$ sudo chmod 600 /mnt/512MiB.swap

$ sudo dd if=/dev/zero of=/mnt/512MiB.swap bs=1024 count=524288

$ sudo chmod 600 /mnt/512MiB.swap

$ sudo mkswap /mnt/512MiB.swap

# 格式化

$ sudo swapon /mnt/512MiB.swap

# 加入到系统当中

要每次开机自动加载的话,编辑/etc/fstab文件

$ gksudo gedit /etc/fstab

在文件的结尾处加入这一行

/mnt/512MiB.swap  none  swap  sw  0 0

然后就可以啦。

再次执行命令安装:

./runInstaller  -responseFile /app/oracle/package/database/response/db_install.rsp   -ignorePrereq  -silent
image.png

3.4 安装完成以后,执行初始脚本

安装完成以后,需要执行以下两个脚本,必须以root来执行

/app/oracle/app/oraInventory/orainstRoot.sh
sh /app/oracle/app/oraInventory/orainstRoot.sh
image.png
/app/oracle/app/oracle/product/11.2.0/db_1/root.sh
image.png
##3.5 关联dbca.rsp
netca /silent /responsefile /app/oracle/package/database/response/dbca.rsp
image.png

3.6 修改dbca.rsp

修改/app/oracle/package/database/response/dbca.rsp
RESPONSEFILE_VERSION = "11.2.0"
OPERATION_TYPE = "createDatabase"
[CREATEDATABASE]
GDBNAME = "orcl"
SID = "orcl"
TEMPLATENAME = " General_Purpose.dbc "
SYSPASSWORD = "xxxxxxx"
SYSTEMPASSWORD = "xxxxxxx"
DATAFILEDESTINATION ="/data/oracle/app/oradata"
STORAGETYPE=FS
CHARACTERSET = "AL32UTF8"
DATABASETYPE = "MULTIPURPOSE"
AUTOMATICMEMORYMANAGEMENT = "FALSE"
TOTALMEMORY =8192

只需要修改以上的参数,其它的参数使用默认即可

3.7 让dbca生效

dbca -silent -responseFile /app/oracle/package/database/response/dbca.rsp
image.png

3.8 配置监听器

修改$ORACLE_HOME/network/admin目录下面的listener.ora、tnsnames.ora两个文件,修改后的文件内容如下

3.8.1 listener.ora

Ps:静默安装文件路径可能会有变化如:
/app/oracle/app/oracle/product/11.2.0/db_1/network/admin/samples
找到文件检就好。

LISTENER =
  (ADDRESS_LIST=
       (ADDRESS=(PROTOCOL=tcp)(HOST=10.43.47.25)(PORT=1521))
       (ADDRESS=(PROTOCOL=ipc)(KEY=PNPKEY)))
SID_LIST_LISTENER=
   (SID_LIST=
       (SID_DESC=
          (GLOBAL_DBNAME=orcl)
          (SID_NAME=orcl)                   
          (ORACLE_HOME=/app/oracle/app/oracle/product/11.2.0/db_1)
         )
       )

3.8.2 tnsnames.ora

Ps:静默安装文件路径可能会有变化如:
/app/oracle/app/oracle/product/11.2.0/db_1/network/admin/samples
找到文件体检就好。

 ORCL =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 10.20.69.224)(PORT =1521))
    (CONNECT_DATA =
      (SERVICE_NAME = orcl)
    )
  )

3.9 启动监听

lsnrctl start

image.png

启动成功,可以通过plsql工具登录了

Oracle启动监听方式如下:

方法1
在linux下重启oracle数据库及监听器:
方法1
用root以ssh登录到linux,打开终端输入以下命令:
cd $ORACLE_HOME #进入到oracle的安装目录 
dbstart #重启服务器 
lsnrctl start #重启监听器 
cd $ORACLE_HOME #进入到oracle的安装目录
dbstart #重启服务器
lsnrctl start #重启监听器
-----------------------------------
方法2:Sql代码
cd $ORACLE_HOME/bin #进入到oracle的安装目录 
./dbstart #重启服务器 
./lsnrctl start #重启监听器 
-----------------------------------
方法3:
(1) 以oracle身份登录数据库,命令:su – oracle 
(2) 进入Sqlplus控制台,命令:sqlplus /nolog 
(3) 以系统管理员登录,命令:connect / as sysdba 
(4) 启动数据库,命令:startup 
(5) 如果是关闭数据库,命令:shutdown immediate 
(6) 退出sqlplus控制台,命令:exit 
(7) 进入监听器控制台,命令:lsnrctl 
(8) 启动监听器,命令:start 
(9) 退出监听器控制台,命令:exit 
(10) 重启数据库结束
-----------------------------------

4 错误处理

启动时可能会有如下错误提示:

image.png

4.1 User is not a member of one or more of the chosen OS groups
本错误是因为oracle的安装用户没有dba属组,使用usermode –a –G xxx YYY,其中xxx是属组,YYY是用户名。添加完成后,使用groups来查询当前用户的所有属组。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容