Oracle安装

1. 上传解压

下载Oracle源码并上传到目标机器。
本教程为无图形界面情况下静默安装Oracle,请暂时关闭Xshell的x11转发功能。
unzip linux.x64_11gR2_database_1of2.zip
unzip linux.x64_11gR2_database_2of2.zip

2. 基础配置

2.1 主机名和域名解析

[查看主机名]
hostname
localhost.localdomain
[更改主机名]
vi /etc/hostname
修改主机名后需重启主机方可生效
[设置本地域名解析]
vi /etc/hosts
192.168.0.1 AcroUC-node1.hbfec.com.cn
在文件末尾添加,一条域名解析一行,前面是IP,后面是域名,一个IP可以对应多个域名,相同的域名按最前面的IP解析

2.2 开放SELinux和防火墙端口

SELinux中Oracle端口是默认开放,如未开放可手动开放tcp/udp的1521/2483/2484端口
[添加SELinux开放端口]
semanage port -a -t http_port_t -p tcp或者udp Oracle端口
[开放防火墙端口]
firewall-cmd --zone=public --add-port=Oracle端口/tcp或者udp --permanent
[重载防火墙]
systemctl reload firewalld

2.3 安装依赖包

[更改目录所属用户和组]
chown -R oracle:oinstall /home/oracle
[更改目录可执行权限]
chmod -R 775 /home/oracle

3.3 将oracle使用者加入到sudo群组中

vi /etc/sudoers中找到root ALL=(ALL) ALL
并在下一行添加oracle ALL=(ALL) ALL

4. 配置系统环境

4.1 修改内核参数

vi /etc/sysctl.conf
修改、添加以下内容(可自由调整但不可小于下面的数值)

1
2
3
4
5
6
7
8
9
10
11
kernel.shmall = 2097152
kernel.shmmax = 1073741824
fs.aio-max-nr = 1048576
fs.file-max = 6815744
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 -p

4.2 修改用户限制文件

vi /etc/security/limits.conf并添加

1
2
3
4
5
oracle           soft    nproc           2047
oracle           hard    nproc           16384
oracle           soft    nofile          1024
oracle           hard    nofile          65536
oracle           soft    stack           10240
4.3 修改用户认证设置使用户限制文件生效

vi /etc/pam.d/login并添加

1
2
session required  /lib64/security/pam_limits.so
session required   pam_limits.so
4.4 修改系统环境变量

vi /etc/profile并添加

1
2
3
4
5
6
7
8
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

4.5 修改用户环境变量

vi /home/oracle/.bash_profile并添加
注意保持所有配置中SID的一致性

1
2
3
4
5
6
7
8
9
10
11
12
13
14
export ORACLE_BASE=/home/oracle
export ORACLE_HOME=/home/oracle/product
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
  umask 022
fi

[使用户环境变量生效]
source /home/oracle/.bash_profile
[查看用户环境变量]
su oracle
env

5. Oracle安装

5.1 修改安装文件目录执行权限

[将安装文件解压出的database目录移动到oracle目录]
mv database /home/oracle/database
[修改database目录所属用户和可执行权限]
chown -R oracle:oinstall /home/oracle/database
chmod -R 775 /home/oracle/database

5.2 编辑oracle数据库安装应答文件

/home/oracle/database/response中有db_install.rspdbca.rspnetca.rsp三个应答文件,分别为数据库安装文件、数据库实例创建文件和监听配置安装文件
vi db_install.rsp并修改如下几项
[安装类型-29行]
oracle.install.option=INSTALL_DB_SWONLY
[主机名-37行]
ORACLE_HOSTNAME=localhost.localdomain
[安装组-42行]
UNIX_GROUP_NAME=oinstall
[INVENTORY目录-47行]
INVENTORY_LOCATION=/home/oracle/inventory
[选择语言-78行]
SELECTED_LANGUAGES=zh_CN
SELECTED_LANGUAGES=en
[$ORACLE_BASE目录-83行]
ORACLE_HOME=/opt/oracle/product/112010/db_1
[$ORACLE_BASE目录-88行]
ORACLE_BASE=/opt/oracle
[Oracle版本-99行]
oracle.install.db.InstallEdition=EE
[DBA用户组-142行]
oracle.install.db.DBA_GROUP=dba
[OPER用户组-147行]
oracle.install.db.OPER_GROUP=oinstall
[数据库类型-160行]
oracle.install.db.config.starterdb.type=GENERAL_PURPOSE
[globalDBName]
oracle.install.db.config.starterdb.globalDBName=ORCL
[SID(注意保持所有配置文件中SID一致)-170行]
oracle.install.db.config.starterdb.SID=orcl
[自动管理内存的最小内存(M)-192行]
oracle.install.db.config.starterdb.memoryLimit=800
[设定所有数据库用户使用同一个密码-233行]
oracle.install.db.config.starterdb.password.ALL=oracle
[设置安全更新-385行]
DECLINE_SECURITY_UPDATES=true

5.3 Oracle安装

su oracle
cd /home/oracle/database
./runInstaller -silent -responseFile /home/oracle/response/db_install.rsp -ignorePrereq
[等待十分钟左右,如无错误,将出现如下提示:]
以下配置脚本需要以root用户的身份执行。
# /bin/sh
#要运行的Root脚本
/home/oracle/inventory/orainstRoot.sh
/home/oracle/product/root.sh
要执行配置脚本,请执行以下操作:
1.打开一个终端窗口
2.以”root身份登录
3.运行脚本
4.返回此窗口并按Enter键继续
[按照提示在新终端运行完脚本后,返回此终端,并按Enter键,会出现如下提示,安装成功]
Successfully Setup Software.

6. 配置Oracle监听

[编辑监听配置安装文件]
vi /home/oracle/database/response/netca.rsp并修改
[安装的类型]
INSTALL_TYPE=""custom""
[监听器数量]
LISTENER_NUMBER=1
[监听器的名称列表]
LISTENER_NAMES={"LISTENER"}
[监听器使用的通讯协议列表]
LISTENER_PROTOCOLS={"TCP;1521"}
[监听器启动的名称]
LISTENER_START=""LISTENER""
[使监听配置生效]
/home/oracle/product/bin/netca /silent /responseFile /home/oracle/database/response/netca.rsp
配置生效后会在/home/oracle/product/network/admin中生成listener.orasqlnet.ora文件
[通过netstat -tnulp|grep 1521可以查看1521端口正在监听]
tcp6 0 0 :::1521 :::* LISTEN 2112/tnslsnr

7. 创建数据库实例

7.1 编辑数据库实例创建文件

/home/oracle/database/response/dbca.rsp
参照实际情况,根据数据库建立方式选择,如下仅为示例
[版本号,不能更改]
RESPONSEFILE_VERSION ="11.2.0"
[数据库类型]
OPERATION_TYPE ="createDatabase"
[数据库名]
GDBNAME ="ORCL"
[SID名需与其它配置文件保持一致]
SID ="orcl"
[建库用的模板文件]
TEMPLATENAME ="General_Purpose.dbc"
[SYS管理员密码]
SYSPASSWORD ="oracle"
[SYSTEM管理员密码]
SYSTEMPASSWORD ="oracle"
[SYSMAN管理员密码]
SYSMANPASSWORD= "oracle"
[DBSNMP管理员密码]
DBSNMPPASSWORD= "oracle"
[数据文件存放目录]
DATAFILEDESTINATION =/home/oracle/oradata
[恢复数据存放目录]
RECOVERYAREADESTINATION=/home/oracle/flash_recovery_area
[字符集,建库后一般不能更改,所以要在建库前确定清楚]
CHARACTERSET ="ZHS16GBK"
[Oracle总内存,一般为物理内存的80%]
TOTALMEMORY ="1638"

7.2 创建数据库实例

/home/oracle/product/bin/dbca -silent -responseFile /home/oracle/database/response/dbca.rsp
[建库后进行实例进程检查]
ps -ef|grep ora_|grep -v grep
[查看监听状态]
/home/oracle/product/bin/lsnrctl status
[编辑启动和停止脚本,将ORACLE_HOME_LISTNER=$1修改为ORACLE_HOME_LISTNER=$ORACLE_HOME]
vi /home/oracle/product/bin/dbstart
vi /home/oracle/product/bin/dbstart
[编辑/etc/oratab文件,将orcl:/data/oracle/product/11.2.0:N中最后的N改为Y]
vi /etc/oratab

8. 设为服务开机自启

[编辑服务文件]
vi /usr/lib/systemd/system/oracle.service

1
2
3
4
5
6
7
8
9
10
11
12
[Unit]
Description=oracle
After=network.target

[Service]
Tbaseype=simple
ExecStart=/usr/bin/su - oracle -c "/home/oracle/product/bin/dbstart"
ExecStop=/usr/bin/su - oracle -c "/home/oracle/product/bin/dbshut"
RemainAfterExit=yes

[Install]
WantedBy=multi-user.target

[使服务开机自启]
systemctl enable oracle
[启动服务]
systemctl start oracle
[停止服务]
systemctl stop oracle