OracleDBA系列之--(一)Oracle安装
作为一个DBA,对于Oracle的安装必须会使用应答文件,可视化安装方式虽然简单但需要display支持,对于大多数服务器来说是不支持display的。
在一个完全干净的linux系统中安装Oracle总体需要六步:
一、安装JDK环境
二、创建OS组和用户
三、校验OS资源配置,获取并上传Oracle安装程序
四、解压文件
五、创建oraInst.loc文件
六、配置应答文件并进行自动安装
一、安装JDK环境(略)
如果对JDK安装有疑问的可以私信我,就不单独写教程了。
二、创建OS组和用户
1、典型的Oracle安装需要一个OS组(dba)和一个OS用户(oracle),这是没有任何问题的;Oracle官方建议的标准是多用户组多用户的管理方式,适合有多个不同权限DBA的客户,至少包括oinstall(Oracle安装和升级)、dba(所有权限)、oper(Oracle启停、备份恢复以及日志管理)三个组
2、本文按照三个组的方式进行创建,创建OS组及用户时需要使用系统管理员(root)登录
groupadd oinstall
groupadd dba
groupadd oper
可查看/etc/group文件确认OS组是否正确添加
3、创建OS用户oracle,设置用户ID为1002(用oinstall组ID相同)并设置主属组为oinstall,同时将dba和oper组分配给oracle
useradd -u 1002 -g oinstall -G dba,oper oracle
这里没有设置用户的主目录,因此默认会创建/home/oracle作为用户主目录,如果需要自定义用户主目录可使用-b <base_dir>参数进行创建
可查看/etc/passwd文件确认用户是否正确添加
4、修改oracle用户密码
passwd oracle
输入新密码、确认即可。如果提示密码少于 8 个字符不用管,再输入一次就行了
三、校验OS资源是否充足
1、主要查看磁盘空间是否充足,目前Oracle安装至少需要10GB空间(包含Oracle安装程序)
使用df -h命令查看目前磁盘使用情况
2、获取Oracle安装程序可以从Oracle官网进行对应OS版本下载
3、下载完成使用ftp上传至服务器,我放在了/opt/software下,因为我打算将oracle安装在此目录下
4、关闭防火墙
systemctl stop firewalld.service --关闭防火墙
systemctl disable firewalld.service -- 禁止防火墙开机启动
systemctl status firewalld.service -- 查看防火墙状态
5、关闭selinux,修改SELINUX为disabled
vi /etc/selinux/config
SELINUX=disabled
6、检查依赖包是否全部安装
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
能够显示没有安装的依赖包,可以逐个对应安装,也可以傻瓜式全部安装(已经安装的linux不会再次安装)
yum -y install binutils compat-libcap1 compat-libstdc++-33 compat-libstdc++-33*i686 compat-libstdc++-33*.devel compat-libstdc++-33 compat-libstdc++-33*.devel gcc gcc-c++ glibc glibc*.i686 glibc-devel glibc-devel*.i686 ksh libaio libaio*.i686 libaio-devel libaio-devel*.devel libgcc libgcc*.i686 libstdc++ libstdc++*.i686 libstdc++-devel libstdc++-devel*.devel libXi libXi*.i686 libXtst libXtst*.i686 make sysstat unixODBC unixODBC*.i686 unixODBC-devel unixODBC-devel*.i686
安装完再次检测,如果有安装失败的就多安装几次,可能有些源不是太好。确保31一个依赖包全部安装
7、修改系统内核设置
vi /etc/sysctl.conf
,增加如下内容:
fs.aio-max-nr = 1048576
fs.file-max = 6815744
# shmall 是全部允许使用的共享内存大小,shmmax 是单个段允许使用的大小。这两个可以设置为内存的 90%。例如 16G 内存,16*1024*1024*1024*90% = 15461882265,shmall 的大小为 15461882265/4k(getconf PAGESIZE可得到) = 3774873
kernel.shmmax = 3435973836
kernel.shmall = 838860
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
执行/sbin/sysctl -p
使以上配置生效
8、修改用户连接数限制
vi /etc/security/limits.conf
,增加如下内容
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft stack 10240
oracle hard stack 10240
四、解压压缩文件
使用unzip linuxx64_12201_database.zip
如果下载的是gz文件需要使用tar -zxvf linuxx64_12201_database.tar.gz
进行解压
如果无法解压zip文件需要安装一下zip命令yum install -y unzip zip
五、创建oraInst.loc文件
1、使用图形化安装时会自动创建该文件,在Oracle程序第一次安装时都需要该文件,但只创建一次即可,后续再进行安装时安装程序会自动寻找该清单文件。在Linux服务器中该文件通常位于/etc目录下,该文件主要包含的信息为:Oracle清单目录路径;拥有安装和升级Oracle软件的OS组名称。清单文件一般为inventory.xml
2、使用实用程序(如vi或touch等)创建oraInst,loc文件,文件内容参考如下:
inventory_loc=/opt/software/oraInventory
inst_group=oinstall
3、使用系统管理员登录时应确保oraInst.loc文件归属OS用户oralce及其组所有
chown oracle:oinstall oraInst.loc
chmod 664 oraInst.loc
六、配置应答文件运行自动安装
会使用应答文件是自动化安装oracle的关键
1、切换到oracle解压目录,解压后oracle所有的安装程序会在database目录下
cd /opt/software/database
2、查找oracle提供的应答文件样本
find . -name *.rsp
3、不同版本的oracle应答文件会有很大差异,本文中以11gR2和12cR1为例进行说明。拷贝其中一个应答文件到当前目录
cp response/db_install.rsp inst.rsp
应答文件会有很多参数配置项,我只列出需要修改的变量
3.1、oracle11gR2中应答文件参数(删掉了注释看着直观一点)
oracle.install.responseFileVersion=/oracle/install/rspfmt_dbinstall_response_schema_v11_2_0
oracle.install.option=INSTALL_DB_SWONLY
ORACLE_HOSTNAME=ora01
UNIX_GROUP_NAME=dba
oracle.install.db.DBA_GROUP=dba
oracle.install.db.OPER_GROUP=dba
INVENTORY_LOCATION=/opt/software/database/stage/products.xml
SELECTED_LANGUAGES=en,zh_CN
ORACLE_HOME=/opt/app/oracle/product/11.2.0/db_1
ORACLE_BASE=/opt/app/oracle
DECLINE_SECURITY_UPDATES=true
oracle.install.db.InstallEdition=EE
oracle.install.db.isCustomInstall=true
3.2、oracle12cR1中应答文件参数(删掉了注释看着直观一点)
oracle.install.responseFileVersion=/oracle/install/rspfmt_dbinstall_response_schema_v12.2.0
oracle.install.option=INSTALL_DB_SWONLY
ORACLE_HOSTNAME=oraserv1
UNIX_GROUP_NAME=install
INVENTORY_LOCATION=/opt/software/database/stage/products.xml
SELECTED_LANGUAGES=en,zh_CN
ORACLE_HOME=/opt/app/oracle/product/12.2.0/db_1
ORACLE_BASE=/opt/app/oracle
oracle.install.db.InstallEdition=EE
oracle.install.db.DBA_GROUP=dba
oracle.install.db.OPER_GROUP=oper
oracle.install.db.BACKUPDBA_GROUP=dba
oracle.install.db.DGDBA_GROUP=dba
oracle.install.db.KMDBA_GROUP=dba
DECLINE_SECURITY_UPDATES=true
4、如果将DECLINE_SECURITY_UPDATES
参数设置为false,那么就必须提供MOS登陆信息来开启Oracle官方服务支持,否则将会安装失败。
配置完成后就可以启动安装程序进行自动安装:
如果还是在root用户下则需要返回database文件夹使该文件夹归属oracle:
chown oracle:oinstall -R database/
chmod 777 -R database/
切换为oracle用户执行自动安装:
./runInstaller -ignoreSysPrereqs -force -silent -responseFile \
/opt/software/database/inst.rsp
上面命令占两行,可以时候反斜杠“\”将两行代码连接起来
5、安装过程中可以查看位于oraInventory/logs目录下的日志文件
如果有以下提示:首先检查安装命令是否是静默安装(-silent),然后可以尝试切换到root用户下进行export DISPLAY=:0.0
设置然后重新执行安装命令
安装完成后有以下提示
可以查看详细安装过程,在/opt/software/oraInventory/logs/silentInstall2020-04-13_06-39-30PM.log日志中。
到这里,整个Oracle软件的安装过程就算是结束了。
接下来就是创建数据库了。