前言:因前段时间一直部署的windows环境的oracle,这次记录下linux下的部署方式,当然还有更多的其他部署,大家可根据自身环境及学习来了解。一般静默安装主要还是要提前准备源包,还有很多依赖包,另外就是配置及创建实例,启动监听即可。
环境:下载地址都你们超链好了
1、Linux系统镜像包:
1.1 CentOS-7.9-x86_64-DVD-2009.iso
2、Oracle软件源包:
2.1 linux.x64_11gR2_database_1of2.zip
2.2 linux.x64_11gR2_database_2of2.zip
3、Sqlplus工具源包:
3.1 rlwrap-0.42.tar.gz
总体我们分以下五个步骤来进行安装:
一、安装linux操作系统
二、安装yum依赖包
三、上传镜像及源包并解压
四、更新修改配置文件
五、创建实例以及开启监听服务
六、连接测试,KO!
一、安装Linux CentOS 7操作系统:
VMware开干,因这台后续我会做其他应用业务测试,所以配置如下:
16核CPU、32G内存、300G硬盘、镜像包:CentOS-7.9-x86_64-DVD-2009.iso
1.1 启动电源
1.2 通过方向键选择:Install CentOS 7 回车安装中;
1.3 选择语言,默认英文也是建议项,但我们是静默安装其实都无所谓,如是桌面安装orcale会出现乱码现象也就是要注意字符集而已,点击继续;
1.4 选择安装位置,这里测试环境我选择自动分区,点击左上角完成按钮;
1.5 可提前配置网络和主机名以及配置静态IP地址,当然这一步可以省略,在系统安装完成后再用命令来修改主机名和IP即可;
测试参数:
主机名:orcl1
IP:192.168.10.235/24
1.6 点击开始安装,并配置root用户密码自动安装系统;
1.7 系统完成安装,重启;
1.8 在这系统完成安装,但我们还是要检查下主机名以及IP地址,如果不是我们之前预设的就要进行修改更新,这里可以从以下方面来确认;
[root@orcl1 ~]# hostname ##查看主机名
[root@orcl1 ~]# vi /etc/hostname ##修改主机名
[root@orcl1 ~]# ip address ##查看IP
[root@orcl1 ~]# vi /etc/sysconfig/network-scripts/ifcfg-ens192 ##网络配置
参考网络配置
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens192
UUID=33485a7a-4008-453b-8b4e-fdb0c70e1e95
DEVICE=ens192
ONBOOT=yes ##将no改成yes------------------------------------------------------------------------------------------
IPADDR=192.168.10.235
PREFIX=24
GATEWAY=192.168.10.1
DNS1=******
IPV6_PRIVACY=no
[root@orcl1 ~]# sudo service network restart ##重启网络
1.9 网络配置好后,使用Xshell连接,也可以用其他SSH工具如Putty、SecureCRT、Mobaxterm等;
防火墙配置命令,这里可不用操作,系统默认是开启,关闭也不影响;
[root@orcl1 ~]# systemctl status firewalld.service ##查看当前防火墙是否开启
[root@orcl1 ~]# systemctl stop firewalld.service ##关闭防火墙
[root@orcl1 ~]# systemctl start firewalld.service ##开启防火墙
[root@orcl1 ~]# systemctl disable firewalld.service ##禁用防火墙
1.10 接下来安装几个系统编辑、解压缩、FTP、更新等必要的工具程序;
yum -y install vim
yum -y install unzip
yum -y install lrzsz
yum -y update
…
二、安装Oracle11g r2所需要的依赖包,这里我们要提前准备以下3个源程序包,具体下载链接都在文章前言开头
1) linux.x64_11gR2_database_1of2.zip
2) linux.x64_11gR2_database_2of2.zip
3) rlwrap-0.42.tar.gz
一键安装脚本,但我们这边还是采用逐个安装吧,毕竟技术深度有限特别是排查关联包能力时间有限;
yum -y install gcc gcc-c++ make binutils compat-libstdc++-33 elfutils-libelf elfutils-libelf-devel elfutils-libelf-devel-static glibc glibc-common glibc-devel ksh libaio libaio-devel libgcc libstdc++ libstdc++-devel numactl-devel sysstat unixODBC unixODBC-devel kernelheaders pdksh pcre-devel readline rlwrap
2.1 我们这边正式开始安装:
执行:yum -y install gcc
执行:yum -y install gcc-c++
执行:yum -y install make
(系统已安装进行了更新)
执行:yum -y install binutils
执行:yum -y install compat-libstdc+±33
执行:yum -y install elfutils-libelf
执行:yum -y install elfutils-libelf-devel
执行:yum -y install elfutils-libelf-devel-static
执行:yum -y install glibc
系统已安装并是最新版本
安装成功
执行:yum -y install glibc-common
安装成功
执行:yum -y install glibc-devel
执行:yum -y install ksh
执行:yum -y install libaio
执行:yum -y install libaio-devel
执行:yum -y install libgcc
执行:yum -y install libstdc++
执行:yum -y install libstdc+±devel
执行:yum -y install sysstat
执行:yum -y install unixODBC
执行:yum -y install unixODBC-devel
执行:yum -y install kernel-headers
执行:yum -y install pdksh
报错,pdksh是一个老包了,新的oracle都使用ksh包
改执行:yum -y install ksh
执行:yum -y install pcre-devel
执行:yum -y install readline*
执行:yum -y install rlwrap
yum源里没有包;用我们准备好的进行上传到linux
[root@orcl1 home]# tar -xvf rlwrap-0.42.tar.gz ##解压缩源包
[root@orcl1 home]# cd rlwrap-0.42 ##切入程序目录
[root@orcl1 rlwrap-0.42]# ./configure ##执行配置编译前准备
##执行成功(如果有很多个no 以及结尾提示其他内容 则执行失败 根据提示找原因)
[root@orcl1 rlwrap-0.42]# make ##执行编译
[root@orcl1 rlwrap-0.42]# make install ##执行安装
2.2 创建用户组及文件夹
创建用户组:groupadd oinstall
创建用户组:groupadd dba
创建用户并添加到用户组:useradd -g oinstall -G dba oracle
[root@orcl1 ~]# groupadd oinstall
[root@orcl1 ~]# groupadd dba
[root@orcl1 ~]# useradd -g oinstall -G dba oracle ##用户也可以自定义如test,useradd -g oinstall -G dba test
[root@orcl1 ~]# passwd oracle
2.3 创建安装目录及权限
[root@orcl1 ~]# mkdir -p /data/u01/app/oracle/product/11.2.0/dbhome_1
[root@orcl1 ~]# mkdir /data/u01/app/oracle/{oradata,inventory,fast_recovery_area}
[root@orcl1 ~]# chown -R oracle:oinstall /data/u01/app/oracle
[root@orcl1 ~]# chmod -R 775 /data/u01/app/oracle
三、静默安装Oracle11GR2数据库上传数据库安装包并解压
3.1 上传Oracle11G数据库安装包
3.2 创建一个目录存放安装包;
[root@orcl1 home]# mkdir -p /data/u01/software ##把安装包转移到/data/u01/software
[root@orcl1 home]# mv linux.x64_11gR2_database_1of2.zip /data/u01/software/
[root@orcl1 home]# mv linux.x64_11gR2_database_2of2.zip /data/u01/software/
[root@orcl1 home]# cd /data/u01/software
[root@orcl1 software]# unzip linux.x64_11gR2_database_1of2.zip ##解压
[root@orcl1 software]# unzip linux.x64_11gR2_database_2of2.zip ##解压
四、修改配置文件
4.1 修改内核文件,vim进入后按 "i"进入编辑模式,找到合适的位置,按 esc 键退出编辑模式;输入 “:wq”退出并保存;
vim /etc/sysctl.conf
#添加内容:
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 1073741824
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 修改用户限制
vim /etc/security/limits.conf
#添加内容:
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft stack 10240
4.3 修改/etc/pam.d/login文件
vim /etc/pam.d/login
#添加内容:
session required /lib64/security/pam_limits.so
session required pam_limits.so
4.4 修改/etc/profile文件
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
4.5 设置oracle 用户环境变量,先切换到oracle用户,再编辑;
su - oracle
vim .bash_profile
#添加内容:
export ORACLE_BASE=/data/u01/app/oracle
export ORACLE_HOME=/data/u01/app/oracle/product/11.2.0/dbhome_1
export ORACLE_SID=orcl
export ORACLE_UNQNAME=$ORACLE_SID
export PATH=$ORACLE_HOME/bin:$PATH
export NLS_LANG=american_america.AL32UTF8
alias sqlplus='rlwrap sqlplus'
alias rman='rlwrap rman'
source .bash_profile ##执行,使变量马上生效;
4.6 修改静默安装响应文件,拷贝备份一份响应文件
cp -R /data/u01/software/database/response/ .
cd response/
vim db_install.rsp
##修改内容:
oracle.install.option=INSTALL_DB_SWONLY
ORACLE_HOSTNAME=自己的主机名
UNIX_GROUP_NAME=oinstall
INVENTORY_LOCATION=/data/u01/app/oracle/inventory
SELECTED_LANGUAGES=en,zh_CN
ORACLE_HOME=/data/u01/app/oracle/product/11.2.0/dbhome_1
ORACLE_BASE=/data/u01/app/oracle
oracle.install.db.InstallEdition=EE
oracle.install.db.DBA_GROUP=dba
oracle.install.db.OPER_GROUP=dba
DECLINE_SECURITY_UPDATES=true
切换到解压的安装包目录:
cd /data/u01/software/database/
执行
./runInstaller -silent -responseFile /home/oracle/response/db_install.rsp -ignorePrereq
安装完成
五、创建一个数据库实例;
配置响应文件:
vim /home/oracle/response/dbca.rsp
修改内容:
GDBNAME = “orcl11g.us.oracle.com” 更新为 GDBNAME = “orcl”
SID = "orcl11g" 更新为 SID = "orcl"
前面的 # 要删除,对应用户设置密码;
SYSPASSWORD = "输入密码"
SYSTEMPASSWORD = "输入密码"
SYSMANPASSWORD = "输入密码"
DBSNMPPASSWORD = "输入密码"
前面的#要删除,对应用户设置目录;
DATAFILEDESTINATION =/data/u01/app/oracle/oradata
RECOVERYAREADESTINATION=/data/u01/app/oracle/fast_recovery_area
前面的 # 要删除,设置字符集(中国使用一般都要改);
非常重要,设置字符集:CHARACTERSET = "AL32UTF8"
调大内存,一般1.5-2倍的物理内存大小,我这是32G,如1G的话,设置TOTALMEMORY = "2048"即可;
TOTALMEMORY = "65536"
:wq
检查配置
egrep -v "(^#|^$)" /home/oracle/response/dbca.rsp
##安装创建
dbca -silent -responseFile /home/oracle/response/dbca.rsp
完成
可以查看默认实例
env|grep ORACLE_UNQNAME
进入sqlplus 启动实例
shutdown ##先shutdown
startup ##后startup
上图提示是实例已经起来了,无需再次启动。
启动监听器:
lsnrctl start ##启动监听器
lsnrctl stop ##关闭监听器
lsnrctl status ##查看监听器的状态
六、连接测试 ,这里是oracle数据库,那当然首选PL/SQL Developer,当然还有其他相关软件或者安装oracle数据库或客户端的用cmd以及Navicat等软件都行,我这边使用PL/SQL为例作为项目测试演示,具体配置参考PL/SQL操作使用说明,如tnsnames配置文件如下
CentOS235 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.10.235)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
演示完成!
最后,其实到这边就已经完成试验目的了,但综上所述,如果我们把Linux系统reboot重启后,是需要手动开启实例以及监听服务的,否则无法实现远程连接SQL。这里就给大家一些延伸查询排查事项,当然啦,可以开启系统启动后监听服务自启等过程
1、Reboot重启系统后,远程连接报错如下,那我们首先就是查看监听状态并开启;
ORA-12541:TNS:无监听程序
2、开启监听服务后,我们查看状态还是报错,会提示如提示无监听服务,这里我们就要想到实例未开启了,如下图;
The listener supports no services ##监听器不支持任何服务
3、开启实例,并查询监听状态,此时已经实例服务已启动;
sqlplus / as sysdba ##dba进入sql
startup ##启动实例
lsnrctl status ##查看监听器的状态
4、我们再远程连接oracle数据库,连接OK,欢迎点赞,交流,感谢,KO!
启动监听器:
lsnrctl start ##启动监听器
lsnrctl stop ##关闭监听器
lsnrctl status ##查看监听器的状态