Linux静默安装Oracle11g数据库

472次阅读
没有评论

共计 7295 个字符,预计需要花费 19 分钟才能阅读完成。

Linux静默安装Oracle11g

一、配置安装环境

Oracle11g需要提前安装好JDK环境,这里就不演示安装JDK了

1、关闭防火墙

systemctl status firewalld.service  #查看firewalld防火墙状态

systemctl stop firewalld.service   #关闭firewalld防火墙

systemctl disable firewalld.service  #禁止开机使用firewalld防火墙

 

2、修改CentOS系统标识

由于Oracle默认不支持,所以需要修改文件:/etc/redhat-release

将文件内容替换为:redhat-7

 

3、修改内核参数

修改文件:/etc/sysctl.conf添加以下内容:

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

修改完后,启用新的配置:sysctl -p

 

4、安装Oracle依赖包

# yum包管理
sudo yum -y install binutils compat-libstdc+±33 elfutils-libelf elfutils-libelf-devel gcc gcc-c++ glibc glibc-common glibc-devel glibc-headers ksh libaio libaio-devel libgcc libstdc++ libstdc++ -devel make sysstat

# apt包管理
sudo apt-get -y install binutils libaio1 libaio-dev libc6-dev libcap-dev libstdc++6 libstdc++6-4.4-dev gcc g++ make sysstat

 

5、创建用户以及组

groupadd oinstall                #创建安装oracle程序用户组 
groupadd dba                     #创建DBA用户组
useradd -g dba -m oracle         #创建用户oracle 并加入到dba组
usermod -a -G oinstall oracle    #将用户oracle加入到oinstall组
passwd oracle                    #修改用户oracle的密码

Linux静默安装Oracle11g数据库

id oracle

Linux静默安装Oracle11g数据库

 

6、创建安装目录

mkdir -p /data/oracle                     #创建oracle主目录
mkdir -p /data/inventory                  #创建oralce配置目录
mkdir -p /data/src                        #创建oracle压缩包解压目录
chown -R oracle:oinstall /data/oracle     #修改目录权限
chown -R oracle:oinstall /data/inventory              
chown -R oracle:oinstall /data/src
ll /data                                  #查看目录权限

Linux静默安装Oracle11g数据库

 

7、修改oracle用户的安全性能设置

修改文件:/etc/security/limits.conf在文件最后一行前,追加以下内容:

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

Linux静默安装Oracle11g数据库

 

8、修改用户环境变量

修改文件:/home/oracle/.bashrc追加以下内容:

export PATH
export ORACLE_BASE=/data/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1
export ORACLE_SID=orcl
export ORACLE_UNQNAME=orcl
export PATH=$ORACLE_HOME/bin:/usr/sbin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export LANG=C
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK

修改完后立即启用:

source /home/oracle/.bashrc

 

9、上传并解压Oracle11g安装包

unzip linux.x64_11gR2_database_1of2.zip -d /data/src/
unzip linux.x64_11gR2_database_2of2.zip -d /data/src/
chown -R oracle:oinstall /data/src/
ll /data/src/

Linux静默安装Oracle11g数据库

 

10、关闭selinux并重启

修改文件:/etc/selinux/config关闭SELINUX

SELINUX=disabled

重启

reboot

 

 

二、安装配置Oracle

1、安装主程序

切换到oracle用户,完成后续操作,su oracle

输入hostname查看主机名

Linux静默安装Oracle11g数据库

编辑数据库安装文件  /data/src/database/response/db_install.rsp

oracle.install.option=INSTALL_DB_SWONLY                # 安装类型
ORACLE_HOSTNAME=oracle.server                             # 主机名称输入
UNIX_GROUP_NAME=oinstall                                     # 安装组
INVENTORY_LOCATION=/data/inventory                           # INVENTORY目录
SELECTED_LANGUAGES=en,zh_CN                                  # 选择语言
ORACLE_HOME=/data/oracle/product/11.2.0/db_1                 # oracle_home
ORACLE_BASE=/data/oracle                                     # oracle_base
oracle.install.db.InstallEdition=EE                          # oracle版本
oracle.install.db.DBA_GROUP=dba                              # dba用户组
oracle.install.db.OPER_GROUP=oinstall                        # oper用户组
oracle.install.db.config.starterdb.type=GENERAL_PURPOSE      # 数据库类型
oracle.install.db.config.starterdb.globalDBName=orcl         # globalDBName
oracle.install.db.config.starterdb.SID=orcl                  # SID
oracle.install.db.config.starterdb.characterSet=ZHS16GBK     # 默认数据库编码
oracle.install.db.config.starterdb.memoryLimit=800           # 自动管理内存的最小内存(M)
oracle.install.db.config.starterdb.password.ALL=oracle11g  # 设定所有数据库用户使用同一个密码
DECLINE_SECURITY_UPDATES=true                                # 设置安全更新

 

安装命令:

/data/src/database/runInstaller -silent -responseFile /data/src/database/response/db_install.rsp -ignorePrereq

Linux静默安装Oracle11g数据库

漫长的等待.............(时间的话看机器性能咯)

当出现如下画面时候,请照做

Linux静默安装Oracle11g数据库

要执行配置脚本,请执行以下操作:

  1. 打开一个终端窗口
  2. 以"root"身份登陆
  3. 运行脚本
    /data/inventory/orainstRoot.sh
    /data/oracle/product/11.2.0/db_1/root.sh
  4. 返回此窗口并按"Enter"键继续

Oracle主程序就安装完啦。

 

2、配置监听程序

编辑监听配置文件:/data/src/database/response/netca.rsp
修改以下参数:

INSTALL_TYPE=""custom""               # 安装的类型
LISTENER_NUMBER=1                     # 监听器数量
LISTENER_NAMES={"LISTENER"}           # 监听器的名称列表
LISTENER_PROTOCOLS={"TCP;1521"}       # 监听器使用的通讯协议列表
LISTENER_START=""LISTENER""           # 监听器启动的名称

执行该命令,初始化监听

/data/oracle/product/11.2.0/db_1/bin/netca /silent /responseFile /data/src/database/response/netca.rsp

Linux静默安装Oracle11g数据库

如果报错运行不了出现异常信息:

UnsatisfiedLinkError exception loading native library: njni11
java.lang.UnsatisfiedLinkError: /data/oracle/product/11.2.0/db_1/lib/libnjni11.so: libclntsh.so.11.1: cannot open shared object file: No such file or directory
java.lang.UnsatisfiedLinkError: jniGetOracleHome
        at oracle.net.common.NetGetEnv.jniGetOracleHome(Native Method)
        at oracle.net.common.NetGetEnv.getOracleHome(Unknown Source)
        at oracle.net.ca.NetCALogger.getOracleHome(NetCALogger.java:230)
        at oracle.net.ca.NetCALogger.initOracleParameters(NetCALogger.java:215)
        at oracle.net.ca.NetCALogger.initLogger(NetCALogger.java:130)
        at oracle.net.ca.NetCA.main(NetCA.java:404)

Error: jniGetOracleHome
Oracle Net Services configuration failed.  The exit code is 1

执行下方命令解决:

cp /data/oracle/product/11.2.0/db_1/inventory/Scripts/ext/lib/libclntsh.so.11.1 /data/oracle/product/11.2.0/db_1/lib

查看监听程序是否运行

netstat -tnulp | grep 1521
Linux静默安装Oracle11g数据库

关于监听的启动和关闭

开启监听:/data/oracle/product/11.2.0/db_1/bin/lsnrctl start

关闭监听:/data/oracle/product/11.2.0/db_1/bin/lsnrctl stop

 

3、创建数据库实例

编辑数据库实例文件:/data/src/database/response/dbca.rsp
修改以下参数:

RESPONSEFILE_VERSION ="11.2.0"                             # 不要变哦
OPERATION_TYPE ="createDatabase"                           # 操作为创建实例 
GDBNAME ="orcl"                                            # 数据库名
SID ="orcl"                                                # 实例名
TEMPLATENAME = "General_Purpose.dbc"                       # 建库用的模板文件
SYSPASSWORD = "oracle"                                     # SYS管理员密码
SYSTEMPASSWORD = "oracle"                                  # SYSTEM管理员密码
SYSMANPASSWORD= "oracle"                                   # SYSMAN密码
DBSNMPPASSWORD= "oracle"                                   # DBSNMP密码
DATAFILEDESTINATION =/data/oracle/oradata                  # 数据文件存放目录
RECOVERYAREADESTINATION=/data/oracle/flash_recovery_area   # 恢复数据存放目录
CHARACTERSET ="ZHS16GBK"                                   # 字符集
NATIONALCHARACTERSET= "AL16UTF16"                          # 字符集
TOTALMEMORY ="1638"                                        # 物理内存按情况进行配置

如果需要创建其他实例,复制一份实例文件,修改好库名和实例名称以及内存大小执行下方命令即可,只需要把实例文件名改成备份的文件即可。

 

创建实例命令:

/data/oracle/product/11.2.0/db_1/bin/dbca -silent -responseFile /data/src/database/response/dbca.rsp

Linux静默安装Oracle11g数据库

 

查看实例是否运行

ps -ef | grep ora_ | grep -v grep

Linux静默安装Oracle11g数据库

修改启动和关闭实例的程序
修改文件:

/data/oracle/product/11.2.0/db_1/bin/dbstart
/data/oracle/product/11.2.0/db_1/bin/dbshut

 

ORACLE_HOME_LISTNER=$1

修改为:ORACLE_HOME_LISTNER=/data/oracle/product/11.2.0/db_1

 

启动或者关闭实例

启动实例:/data/oracle/product/11.2.0/db_1/bin/dbstart

关闭实例:/data/oracle/product/11.2.0/db_1/bin/dbshut

 

三、收尾工作

1、配置开机自启动

root用户模式下:

chmod +x /etc/rc.d/rc.local

修改文件 /etc/rc.d/rc.local

在文件最后追加以下内容

su oracle -lc "/data/oracle/product/11.2.0/db_1/bin/lsnrctl start"
su oracle -lc "/data/oracle/product/11.2.0/db_1/bin/dbstart"

设置数据库实例自启动,修改/etc/oratab

orcl:/data/oracle/product/11.2.0:N

修改为,设置实例开机自启动

orcl:/data/oracle/product/11.2.0:Y

 

2、定时备份

如果有做服务器快照,可以忽略这一步!!!

编辑Oracleautobackup.sh脚本文件,输入以下内容:

#!/bin/bash
# 设置数据库账号密码
username=databasename
password=password
# 设置备份数据
dbname=asset
# 设置连接信息
sid=127.0.0.1/databasename
# 设置时间
Ymd=`date +%Y%m%d%H%M%S`
# 设置备份路径
bakdir=/data/oracle/backup/
connect=$username/$password@$sid
# 设置备份文件名
backupfile=$bakdir$dbname'_backup_'$Ymd

su - oracle -c "/data/oracle/product/11.2.0/db_1/bin/exp $connect file=$backupfile.dmp owner=$dbname"
su - oracle -c "7za a $backupfile.7z $backupfile.dmp"
su - oracle -c "rm -rf $backupfile.dmp"

echo 备份完成,备份文件在$backupfile.7z

这里使用的是7zip压缩,需要安装7zip依赖包:

# yum包管理方式
sudo yum install epel-release
sudo yum install p7zip
# apt包管理方式
sudo apt install p7zip-full p7zip-rar

添加到Linux定时任务中

首先查看crond服务是否在运行,输入systemctl status crond

Linux静默安装Oracle11g数据库

running则继续下一步,若为灰色则执行systemctl start crond启动该服务,centos系统默认开启该服务。

crontab命令: -l 查看定时任务

crontab -r 删除定时任务

crontab -e 添加定时任务

crontab -e 添加定时任务,下图内容表示每天16:34执行该任务(时间按照实际情况填写)

Linux静默安装Oracle11g数据库

crontab 时间格式

*    *    *    *    *
-    -    -    -    -
|    |    |    |    |
|    |    |    |    +----- 星期中星期几 (0 - 6) (星期天 为0)
|    |    |    +---------- 月份 (1 - 12) 
|    |    +--------------- 一个月中的第几天 (1 - 31)
|    +-------------------- 小时 (0 - 23)
+------------------------- 分钟 (0 - 59)

保存之后出现下图提示则配置成功

Linux静默安装Oracle11g数据库
 

3、开启防火墙,和永久放行端口

开启防火墙并开机自启动

# 重新加载配置
systemctl daemon-reload
# 启动防火墙
systemctl start firewalld
# 开机自启动
systemctl enable firewalld

放行1521端口

firewall-cmd --zone=public --add-port=1521/tcp --permanent
firewall-cmd --reload
正文完
 2
评论(没有评论)