Linux centOS 7.2 命令行下 静默安装部署oracle11g数据库

Linux  centOS命令行下 安装部署oracle11g数据库

       小编今天给大家带来Linux系统,Linux命令行下部署 oracle安装部署数据库,因为在Linux命令行来部署,所以在安装部署oracle数据库前,我们得进行检查和设置,有以下步骤:

一、检查硬件需求


1. 查看系统物理内存,以下输出可以看出,有8G的内存,内存最低要求256M。

 命令:grep MemTotal /proc/meminfo

2. 查看交换空间大小,以下输出可以看出,有5G的交换空间,交换空间的最优设置与你物理内存大小相关,详细说明请参考安装文档

命令:grep SwapTotal /proc/meminfo

二、本来的交换空间大小为0,所以重新设置,有以下步骤:

关闭swap:

命令:sudo swapoff -a

设置swap的大小:

命令:sudd dd if=/dev/zero of=/swapfile bs=1M count=5120
bs指的是Block Size,就是每一块的大小。这里的例子是1M,意思就是count的数字,是以1M为单位的。
count是告诉程序,新的swapfile要多少个block。这里是1024,就是说,新的swap文件是5G大小。

注意:有些公司的权限需要重新输入密码,而我们就是这样,输入后会看见卡在那里没动,请耐心等待,机器不一样,等待时间也不一样。

把增大后的文件变为swap文件:

sudo mkswap /swapfile

重新打开swap:

命令:sudo swapon  /swapfile

让swap在启动的时候,自动生效。打开/etc/fstab文件,加上以下命令。然后保存。

命令:cd /etc
命令:sudo vi fstab

因为我的权限不是root权限,所以输入命令前必须加sudo才可以修改资料

附Linux编辑文件命令:

vi打开一个文件时,进入的是阅读模式,只有输入相关命令才会进入编辑模式:
i :在当前位置插入
a:在当前位置后追加
o:在当前位置的后面插入一行
I :在行头插入
A:在行尾追加
O:在当前位置的前面插入一行
'ESC'键从编辑模式转换到阅读模式
阅读模式(或叫命令模式)下:
:w 保存文件
:w filename 保存成filename文件
:q 退出
:q! 强行退出
:w! 强行写
:wq 保存退出
:x 同wq

在fstab文件加入这行命令:

/swapfile swap swap default 0 0

保存退出,再次查swap大小,就发现变成5g了

三、查当前发行版本检查并安装依赖包:

命令:cat /etc/redhat-release

发现是7.2的,需要安装包如下:

binutils-2.23.52.0.1-12.el7.x86_64 
compat-libcap1-1.10-3.el7.x86_64 
gcc-4.8.2-3.el7.x86_64 
gcc-c++-4.8.2-3.el7.x86_64 
glibc-2.17-36.el7.i686 
glibc-2.17-36.el7.x86_64 
glibc-devel-2.17-36.el7.i686 
glibc-devel-2.17-36.el7.x86_64 
ksh
libaio-0.3.109-9.el7.i686 
libaio-0.3.109-9.el7.x86_64 
libaio-devel-0.3.109-9.el7.i686 
libaio-devel-0.3.109-9.el7.x86_64 
libgcc-4.8.2-3.el7.i686 
libgcc-4.8.2-3.el7.x86_64 
libstdc++-4.8.2-3.el7.i686 
libstdc++-4.8.2-3.el7.x86_64 
libstdc++-devel-4.8.2-3.el7.i686 
libstdc++-devel-4.8.2-3.el7.x86_64 
libXi-1.7.2-1.el7.i686 
libXi-1.7.2-1.el7.x86_64 
libXtst-1.2.2-1.el7.i686 
libXtst-1.2.2-1.el7.x86_64 
make-3.82-19.el7.x86_64 

sysstat-10.1.5-1.el7.x86_64

我安装的版本是有安装包的,所以版本不一样

检查安装oracle11g所需要的安装包:

命令:rpm -q install binutils compat-libcap1  gcc gcc-c++ glibc glibc glibc-devel glibc-devel ksh libaio libaio libaio-devel libaio-devel libgcc libstdc++ libstdc++ libstdc++-devel libstdc++-devel libXi libXi libXtst libXtst sysstat

或:命令:rpm -q binutils compat-libcap1 compat-libstdc++-33 gcc gcc-c++ glibc glibc-devel ksh libaio libaio-devel libgcc libstdc++ libstdc++-devel libXi libXtst  make sysstat  unixODBC unixODBC-devel

参考来至:https://www.cnblogs.com/zydev/p/5827207.html



单独检查:

命令:rpm -q 包名

单独安装: yum install 包名

注意:安装 elfutils-libelf-devel 时候,因为存在互相依存关系,需要2个同时安装(这个我也是参考别人的,我也没试过怎么 搞,所以我也直接用下面的几条安装命令,安装比较多的包,再安装剩下单独)。

多包安装:

命令:
sudo yum install binutils  compat-libcap1  gcc gcc-c++ glibc glibc glibc-devel glibc-devel ksh libaio libaio libaio-devel libaio-devel libgcc libstdc++ libstdc++ libstdc++-devel libstdc++-devel libXi libXi libXtst libXtst sysstat

或:

命令:rpm -q binutils compat-libcap1 compat-libstdc++-33 gcc gcc-c++ glibc glibc-devel ksh libaio libaio-devel libgcc libstdc++ libstdc++-devel libXi libXtst  make sysstat  unixODBC unixODBC-devel

发现下图最后ksh没安装就可以使用单独安装命令,以上命令没有权限时加 sudo 或者登录root权限安装,因地而异。


发现找不到ksh这个包,报以下错误:

Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile No package ksh available.

只好查百度了,找了很久有很多方法,我这边用的是下载的方法:

命令:wget http://mirror.centos.org/centos/7/os/x86_64/Packages/ksh-20120801-137.el7.x86_64.rpm

附上下载jar包地址的:

https://altlinux.pkgs.org/sisyphus/classic-x86_64/pdksh-5.2.14-alt5.x86_64.rpm.html

接着是安装这个包,进入这个有这个包的目录,wget命令默认下载的文件放在当前目录,附上Linux命令大全地址:

http://man.linuxde.net/wget

接着安装这个包:

 sudo yum install ksh-20120801-137.el7.x86_64.rpm    

四、安装完检查后,有这些包后接着是创建安装oracle和放解压包的文件夹:

命令:sudo mkdir -p /oracledata/data/oracle      //oracle数据库安装目录
命令:sudo mkdir -p /oracledata/data/oraInventory //oracle数据库配置文件目录
命令:sudo mkdir -p /oracledata/data/database     //oracle数据库软件包解压目录

检查文件夹是否创建,进入data目录:

命令:ls    //检查当前目录下的文件夹

五、接着是创建oracle用户组和用户:

命令:sudo groupadd oraclesysdba  //创建用户组 oraclesysdba
命令:sudo groupadd oraclesysoinstall //创建用户组 oraclesysoinstall 
命令:sudo groupadd oraclesysoper  //创建用户组 oraclesysoper
命令:sudo useradd -g oraclesysdba -g oraclesysoinstall -g oraclesysoper -m oraclenewone //创建用户 oraclenewone并指定到
用户组oraclesysdba和oraclesysoinstall和oraclesysoper 
命令:sudo passwd oraclenewone  //设置用户oraclenewone 的登陆密码

已经存在用户指定到用户组:

gpasswd  -a  用户名  用户组名 

然后就有让你输入两次密码:


附:创建用户组和用户命令来自:

https://www.cnblogs.com/clicli/p/5943788.html

查看创建的用户:

命令:id oraclenewone

为啥要创建三个用户组呢?参考:http://www.oracle.com/technetwork/cn/articles/hunter-rac11gr2-iscsi-2-092412-zhs.html#13

a.oracle 清单组(一般为oinstall):
 OINSTALL 组的成员被视为 Oracle 软件的“所有者”,拥有对 Oracle 中央清单 (oraInventory) 的写入权限。在一个 Linux 系统上首次安装 Oracle 软件时,OUI 会创建 /etc/oraInst.loc 文件。该文件指定 Oracle 清单组的名称(默认为 oinstall)以及 Oracle 中央清单目录的路径。
b.数据库管理员(OSDBA,一般为 dba):
 OSDBA 组的成员可通过操作系统身份验证使用 SQL 以 SYSDBA 身份连接到一个 Oracle 实例。该组的成员可执行关键的数据库管理任务,如创建数据库、启动和关闭实例。该组的默认名称为dba。SYSDBA 系统权限甚至在数据库未打开时也允许访问数据库实例。对此权限的控制完全超出了数据库本身的范围。不要混淆 SYSDBA 系统权限与数据库角色 DBA。DBA 角色不包括 SYSDBA 或 SYSOPER 系统权限。
c.数据库操作员组(OSOPER,一般为 oper):
 OSOPER 组的成员可通过操作系统身份验证使用 SQL 以 SYSOPER 身份连接到一个 Oracle 实例。这个可选组的成员拥有一组有限的数据库管理权限,如管理和运行备份。该组的默认名称为oper。SYSOPER 系统权限甚至在数据库未打开时也允许访问数据库实例。对此权限的控制完全超出了数据库本身的范围。


六、设置目录所有者为oraclesysoinstall 用户组的oraclenewone 用户

进入到data的目录,敲以下命令

命令:sudo chown -R oraclenewone:oraclesysoinstall /oracledata/data/oracle 
命令:sudo chown -R oraclenewone:oraclesysoinstall /oracledata/data/oraInventory
命令:sudo chown -R oraclenewone:oraclesysoinstall /oracledata/data/database

七,修改内核参数,以便支持oracle

进入/etc/sysctl.conf:

命令:cd /etc
命令:sudo vi sysctl.conf
命令:o //从阅读模式进入修改模式,并在光标所在的位置插入

在/etc/sysctl.conf 文件中, 使用vim进行编辑,在最后增加上以下参数:

kernel.shmall = 2097152

kernel.shmmax = 2147483648

kernel.shmmni = 4096

kernel.sem = 250 32000 100 128

fs.file-max = 65536

net.ipv4.ip_local_port_range = 1024 65000

net.core.rmem_default=262144

net.core.rmem_max=262144

net.core.wmem_default=262144

net.core.wmem_max=262144

按esc回到阅读状态,输入命令:

命令: :wq //保存退出
命令: sudo /sbin/sysctl  -p  //使更改的内核生效

如图:


八、修改用户的限制:

打开/etc/security/limits.conf:

命令:cd security
命令:sudo vi limits.conf
命令:o //从阅读模式进入修改模式,并在光标所在的位置插入
在limits.conf文件中, 使用vim进行编辑,在最后增加上以下参数:
oracle soft nproc 2047  
oracle hard nproc 16384  
oracle soft nofile 1024  
oracle hard nofile 65536  
oracle soft stack 10240

按esc回到阅读状态,输入命令:

命令: :wq //保存退出
接着在文件/etc/pam.d/login中修改,在最后添加以下内容:
session required /lib/security/pam_limits.so
session required pam_limits.so

一样的命令,我就不多说了

最后在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

九、设置环境变量:

切记,一定要切换到oraclenewone用户(切换用户一定要是 su-)

命令:vi ~/.bash_profile

增加以下内容:

export ORACLE_BASE=/oracledata/data/oracle  //oracle数据库安装目录
export ORACLE_SID=dbsrv2

然后使之生效:

命令:source ~/.bash_profile

十、接着是解压安装包

命令:unzip 压缩文件 -c 指定目录
命令:unzip p13390677_112040_Linux-x86-64_1of7.zip  -d  /oracledata/data/oraInventory
命令:unzip p13390677_112040_Linux-x86-64_2of7.zip  -d  /oracledata/data/oraInventory

然后你会发现下列情况:


其原因是找不到zip压缩文件

sudo yum install -y unzip zip

然后你就发现坑是永远填不完的,填完一个就会有另外一个坑出现,发现没有这两个安装包,你又得下载:


接着下载这两个包:

命令:wget http://mirror.centos.org/centos/7/os/x86_64/Packages/zip-3.0-11.el7.x86_64.rpm  //zip
命令:wget http://downloads.naulinux.ru/pub/SLCE/7x/x86_64/CyrEd/RPMS//unzip-6.0-15.1.el7.x86_64.rpm //unzip 

安装这两个包:

命令:sudo yum install zip-3.0-11.el7.x86_64.rpm
命令:sudo yum install unzip-6.0-15.1.el7.x86_64.rpm

看到Complete就完成了,然后切换到oraclenewone用户,cd进入解压目录,解压oracle安装包:


十一、接着是关闭防火墙和selinux

为什么要关闭防火墙,是为了其他客户端能够访问到oracle,具体的我也不太懂了:

命令:systemctl status firewalld.service //查看防火墙状态

发现已经防火墙已经关了,如果防火墙没关可以参考这篇文章:https://blog.csdn.net/xjmcsdn/article/details/52075181,这里我就不多说了

接着是关闭selinux,查看selinux状态:

命令:usr/sbin/sestatus -v

已经是关闭状态,如果是enforcing ,输入以下命令:

命令:vi /etc/selinux/config

然后进行修改:

# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing - SELinux security policy is enforced.
#     permissive - SELinux prints warnings instead of enforcing.
#     disabled - No SELinux policy is loaded.
SELINUX=disabled  //将SELINUX=enforcing 此处修改为SELINUX=disabled 
# SELINUXTYPE= can take one of three two values:
#     targeted - Targeted processes are protected,
#     minimum - Modification of targeted policy. Only selected processes are protected.
#     mls - Multi Level Security protection.
SELINUXTYPE=targeted

需重启系统生效

十二、修改响应文件模板

1、复制响应文件模板

命令:cd  /oracledata/data/database
命令:mkdir etc
命令:cp /oracledata/data/oraInventory/database/response/* /home/oraclenewone/etc
命令:ls etc

2、设置响应文件权限

命令:sudo chmod 700 /home/oraclenewone/etc/*.rsp

十三、修改安装Oracle软件的响应文件/oracledata/data/database/etc/db_install.rsp

参考:https://www.cnblogs.com/zydev/p/5827207.html


看到如图上,蓝色的字体已经注释了,白色的字体 就是我们要修改的地方,按照下面修改

命令:vi /home/oraclenewone/etc/db_install.rsp
oracle.install.option=INSTALL_DB_SWONLY     // 安装类型
ORACLE_HOSTNAME=docker        // 主机名称(hostname查询)
UNIX_GROUP_NAME=oraclesysoinstall // 安装组
INVENTORY_LOCATION=/home/oraclenewone/oraInventory   //INVENTORY中央库存目录(不填就是默认值)
SELECTED_LANGUAGES=en,zh_CN,zh_TW // 选择语言
ORACLE_HOME=/oracledata/data/oracle/product/11.2.0.1     //oracle_home
ORACLE_BASE=/oracledata/data/oracle     //oracle_base
oracle.install.db.InstallEdition=EE     // oracle版本
oracle.install.db.isCustomInstall=false   //自定义安装,否,使用默认组件
oracle.install.db.DBA_GROUP= oraclesysdba/  / dba用户组
oracle.install.db.OPER_GROUP=oraclesysoper   // oper用户组
oracle.install.db.config.starterdb.type=GENERAL_PURPOSE //数据库类型
oracle.install.db.config.starterdb.globalDBName=orcl //globalDBName
oracle.install.db.config.starterdb.SID=dbsrv2      //SID
oracle.install.db.config.starterdb.memoryLimit=81920 //自动管理内存的内存(M)
oracle.install.db.config.starterdb.password.ALL=oraclenew //设定所有数据库用户使用同一个密码
SECURITY_UPDATES_VIA_MYORACLESUPPORT=false         //(手动写了false)
DECLINE_SECURITY_UPDATES=true   //设置安全更新(貌似是有bug,这个一定要选true,否则会无限提醒邮件地址有问题,终止安装。PS:不管地址对不对)



十四、开始安装

命令:sudo reboot //重启系统,保证所有配置完成

接着登录到oraclenewone用户,进入解压后的data目录

命令: cd /oracledata/data/oraInventory/database
命令:./runInstaller -silent -force -responseFile /home/oraclenewone/etc/db_install.rsp//运行安装


说明以上信息说明安装成功,切换用户root或者其他用户可以用sudo的,我的就是用sudo的,根据提示输入两个脚本:

命令:sudo /home/oraclenewone/oraInventory/orainstRoot.sh
命令:sudo /oracledata/data/oracle/product/11.2.0.1/root.sh


说明可以了,接下来是增加或者修改环境变量:

命令:vi ~/.bash_profile
export ORACLE_BASE=/oracledata/data/oracle   //oracle数据库安装目录
export ORACLE_HOME=/oracledata/data/oracle/product/11.2.0.1   //oracle数据库路径
export ORACLE_SID=dbsrv2//oracle启动数据库实例名
export ROACLE_PID=ora11g
export PATH=$PATH:$ORACLE_HOME/bin   //添加系统环境变量
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib    //添加系统环境变量
export LANG=C      //防止安装过程出现乱码
export NLS_LANG= "AL32UTF8"  //设置Oracle客户端字符集,必须与Oracle安装时设置的字符集保持一致
export NLS_DATE_FORMAT='yyyy-mm-dd hh24:mi:ss'

:wq保存退出,使其生效

命令:source ~/.bash_profile

十五、配置监听程序

命令:netca /silent /responsefile /home/oraclenewone/etc/netca.rsp

出现上面信息就说明配置成功了

十六、启动监控程序

命令:lsnrctl start

发现监听已经启动好了

十七、静默dbca建库

编辑应答文件:

命令: vi /home/oraclenewone/etc/dbca.rsp
RESPONSEFILE_VERSION = "11.2.0"
OPERATION_TYPE = "createDatabase"
GDBNAME = "dbsrv2"
SID = "dbsrv2"
TEMPLATENAME = "General_Purpose.dbc" 

建库:

命令:dbca -silent -responseFile /home/oraclenewone/etc/dbca.rsp

查看输出日记:

/oracledata/data/oracle/cfgtoollogs/dbca/dbsrv2/dbsrv2.log

 至此完成数据库实例的创建。

查看监听状态:

命令: lsnrctl status


输入命令:

命令: sqlplus / as sysdba //连接数据库

输入sql命令:

命令:startup //启动数据库

已经启动实例

附:

命令:quit // 或 exit  退出sqlpuls

删除实例:

命令:dbca -silent -deleteDatabase -sourcedb dbsrv2



猜你喜欢

转载自blog.csdn.net/qq_38000902/article/details/80519173