摘要
linux 无桌面环境下,静默安装oracle11g。
1、安装前准备
1.1 创建组和用户
# 创建oinstall组
[[email protected] ~]# groupadd oinstall
# 创建dba组
[[email protected] ~]# groupadd dba
# 创建oracle用户并将用户加入到dba组与oinstall组
[[email protected] ~]# useradd -g oinstall -g dba -m oracle
提示:若用户已经存在
[[email protected] zhuzi]# usermod -a -G oinstall oracle
[[email protected] zhuzi]# usermod -a -G dba oracle
# 设置oracle用户密码
[[email protected] zhuzi]# passwd oracle
你的密码
1.2 创建oracle安装目录
[[email protected] ~]# mkdir -p /data/oracle #oracle根目录
[[email protected] ~]# mkdir -p /data/database #用于存放Oracle解压后的安装包
[[email protected] ~]# mkdir -p /data/oraInventory #数据库配置文件目录
[[email protected] ~]# chown -R oracle:oinstall /data #修改目录所有者为oracle
# 设置目录所有者为oinstall用户组的oracle用户
[[email protected] ~]# chown -R oracle:oinstall /data/oracle
[[email protected] ~]# chown -R oracle:oinstall /data/oraInventory
[[email protected] ~]# chown -R oracle:oinstall /data/database
首先关闭selinux,修改/etc/selinux/config文件,设置SELINUX=disabled。修改好后如下图所示,这个如果修改好后,需要重启才能生效:
[[email protected] ~]# vi /etc/selinux/config
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLicmbw5yN0gTZjNzN5ETZmRzMwMTYzIWNkFzYyAjMzEzY4M2Yj9CX0JXZ252bj91Ztl2Lc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
1.3 关闭防火墙,并设置开机不启动防火墙。
设置好后不需要重启,会立即生效。(也可以不用关闭)
[[email protected] ~]# systemctl stop firewalld.service #关闭防火墙
[[email protected] ~]# systemctl disable firewalld.service #设置开机不启动防火墙
1.4 优化系统内核参数
[[email protected] ~]# vi /etc/sysctl.conf
1.4.1 编辑/etc/sysctl.conf文件,在文件尾添加如下内容
net.ipv4.icmp_echo_ignore_broadcasts = 1
net.ipv4.conf.all.rp_filter = 1
fs.file-max = 6815744 #设置最大打开文件数
fs.aio-max-nr = 1048576
kernel.shmall = 2097152 #共享内存的总量,8G内存设置:2097152*4k/1024/1024
kernel.shmmax = 2147483648 #最大共享内存的段大小
kernel.shmmni = 4096 #整个系统共享内存端的最大数
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 9000 65500 #可使用的IPv4端口范围
net.core.rmem_default = 262144
net.core.rmem_max= 4194304
net.core.wmem_default= 262144
net.core.wmem_max= 1048576
1.4.2 使配置修改内核的参数生效
[[email protected] zhuzi]# sysctl -p
1.5 对oracle用户设置限制
[[email protected] ~]# vi /etc/security/limits.conf
# 在文件后半部分,添加如下内容中斜体部分内容,保存退出。
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
1.6 设置用户变量
[[email protected] ~]# vi /home/oracle/.bash_profile
# 在文件末尾添加如下内容:
export ORACLE_BASE=/data/oracle #oracle数据库安装目录
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1 #oracle数据库路径
export PATH=$ORACLE_HOME/bin:/usr/sbin:$PATH #添加系统环境变量
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib #添加系统环境变
export ORACLE_SID=orcl #oracle启动数据库实例名
export ORACLE_PID=ora11g
export NLS_LANG=AMERICAN_AMERICA.AL32UTF8
export LANG=C #防止安装过程出现乱码
# 使配置的环境变量生效:
[[email protected] ~]# source /home/oracle/.bash_profile
1.7 安装依赖包
[[email protected]
~]# 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
2 开始安装oracle 软件
# 前面设置很多内容,保险起见,重启一次系统。
[[email protected] ~]# reboot
2.1 上传安装文件到目录
上传到目录 :/usr/local/src
我使用的xshell工具,root用户直接在命令窗口cd /usr/local/src ,然后鼠标拖住那两个安装包至命令窗口就可以自动上传。不行的话就用其他工具。
用root用户解压这两个文件到/data/database 目录下,设置所属用户与组,再切换至oracle用户加载一下环境变量,开始安装。
# 解压第一个压缩包
[[email protected] src]# unzip p13390677_112040_Linux-x86-64_1of7.zip -d /data/database/
# 解压第二个压缩包
[[email protected] src]# unzip p13390677_112040_Linux-x86-64_2of7.zip -d /data/database/
解压后进入 /data/database/database/response 目录,该目录下有三个 .rsp 文件,用来作为静默安装时的应答文件的模板。
三个文件作用分别是:
db_install.rsp:安装应答
dbca.rsp:创建数据库应答
netca.rsp:建立监听、本地服务名等网络设置的应答
# 进入 response 目录
[[email protected] src]# cd /data/database/database/response
# 将 db_install.rsp 备份一份,以免修改出错
[[email protected] response]# cp db_install.rsp db_install_copy.rsp
# 删除应答文件中的注释行(以#开头)
[[email protected] ~]# sed -i 's/^#.*$//g' *.rsp
# 刪除沒有內容的空行(^$)
[[email protected] ~]# sed -i '/^$/d' *.rsp
# 编辑db_install.rsp 文件
[[email protected] response ]# vim db_install.rsp
# 按照下方的参数进行修改,需要修改的地方标红了
oracle.install.responseFileVersion=/oracle/install/rspfmt_dbinstall_response_schema_v11_2_0
oracle.install.option= INSTALL_DB_SWONLY #只安装软件
ORACLE_HOSTNAME= oracledb
UNIX_GROUP_NAME= oinstall
INVENTORY_LOCATION= /data/oracle/oraInventory
SELECTED_LANGUAGES= en,zh_CN
ORACLE_HOME= /data/oracle/product/11.2.0/dbhome_1
ORACLE_BASE= /data/oracle
oracle.install.db.InstallEdition= EE
oracle.install.db.isCustomInstall=false
oracle.install.db.customComponents=oracle.server:11.2.0.1.0,oracle.sysman.ccr:10.2.7.0.0,oracle.xdk:11.2.0.1.0,oracle.rdbms.oci:11.2.0.1.0,oracle.network:11.2.0.1.0,oracle.network.listener:11.2.0.1.0,oracle.rdbms:11.2.0.1.0,oracle.options:11.2.0.1.0,oracle.rdbms.partitioning:11.2.0.1.0,oracle.oraolap:11.2.0.1.0,oracle.rdbms.dm:11.2.0.1.0,oracle.rdbms.dv:11.2.0.1.0,orcle.rdbms.lbac:11.2.0.1.0,oracle.rdbms.rat:11.2.0.1.0
oracle.install.db.DBA_GROUP= dba
oracle.install.db.OPER_GROUP= oinstall
oracle.install.db.CLUSTER_NODES=
oracle.install.db.config.starterdb.type=GENERAL_PURPOSE #可不写
oracle.install.db.config.starterdb.globalDBName=ora11g #可不写
oracle.install.db.config.starterdb.SID=ora11g #可不写
oracle.install.db.config.starterdb.characterSet=AL32UTF8
oracle.install.db.config.starterdb.memoryOption=true
oracle.install.db.config.starterdb.memoryLimit=1500 #可不写
oracle.install.db.config.starterdb.installExampleSchemas=false
oracle.install.db.config.starterdb.enableSecuritySettings=true
oracle.install.db.config.starterdb.password.ALL=oracle #可不写
oracle.install.db.config.starterdb.password.SYS=oracle #可不写
oracle.install.db.config.starterdb.password.SYSTEM=
oracle.install.db.config.starterdb.password.SYSMAN=
oracle.install.db.config.starterdb.password.DBSNMP=
oracle.install.db.config.starterdb.control=DB_CONTROL
oracle.install.db.config.starterdb.gridcontrol.gridControlServiceURL=
oracle.install.db.config.starterdb.dbcontrol.enableEmailNotification=false
oracle.install.db.config.starterdb.dbcontrol.emailAddress=
oracle.install.db.config.starterdb.dbcontrol.SMTPServer=
oracle.install.db.config.starterdb.automatedBackup.enable=false
oracle.install.db.config.starterdb.automatedBackup.osuid=
oracle.install.db.config.starterdb.automatedBackup.ospwd=
oracle.install.db.config.starterdb.storageType=FILE_SYSTEM_STORAGE #可不写
oracle.install.db.config.starterdb.fileSystemStorage.dataLocation=/data/oracle/oradata #可不写
oracle.install.db.config.starterdb.fileSystemStorage.recoveryLocation=/data/oracle/fast_recovery_area #可不写
oracle.install.db.config.asm.diskGroup=
oracle.install.db.config.asm.ASMSNMPPassword=
MYORACLESUPPORT_USERNAME=
MYORACLESUPPORT_PASSWORD=
SECURITY_UPDATES_VIA_MYORACLESUPPORT=
DECLINE_SECURITY_UPDATES= true #一定要设为 true
PROXY_HOST=
PROXY_PORT=
PROXY_USER=
PROXY_PWD=
# 以root用户需创建/etc/oraInst.loc文件,否则安装会报错
[[email protected] src]# vi /etc/oraInst.loc
inventory_loc=/data/oracle/oraInventory
inst_group=oinstall
2.2 开始静默安装
# 指定文件夹及子目录的所属用户与组
[[email protected] src]# chown -R oracle:oinstall /data
# 切换至oracle用户
[[email protected] src]# su - oracle
# 进入家目录
[[email protected] src]$ cd
# 加载环境变量
[[email protected] ~]$ source .bash_profile
# 进入oracle安装程序存放的目录
[[email protected] ~]$ cd /data/database/database/
# 开始安装
[[email protected] database]$ ./runInstaller -silent -force -noconfig -ignoreSysPrereqs -ignorePrereq -showProgress -responseFile /data/database/database/response/db_install.rsp
安装成功界面:
当出现Successfully Setup Software. 证明已经安装成功,然后根据提示以 root 用户执行脚本
[[email protected]]$ su root
[[email protected] database]$ sh/data/oracle/product/11.2.0/db_1/root.sh
安装需要一会儿,如果想看安装进度,可以再打开一个窗口,输出会话日志
tail -f 日志文件 (下图中红色框中为日志文件绝对路径)
如:tail -f /tmp/OraInstall2023-01-13_10-07-26AM/installActions2023-01-13_10-07-26AM.log
成功日志界面:
3 配置监听程序
监听命令
启动监听:lsnrctl start
停止监听:lsnrctl stop
重启监听:lsnrctl reload
查看监听:lsnrctl status
3.1 编辑netca.rsp文件
注意:如果规划的监听端口是默认值的话,那么就不需要修改该监听响应文件。
3.2 静默创建监听(使用oracle用户)
$ORACLE_HOME/bin/netca -silent -responseFile /data/database/database/response/netca.rsp
或者
/data/oracle/product/11.2.0/dbhome_1/bin/netca -silent -responseFile /data/database/database/response/netca.rsp # 怕找不到ORACLE_HOME,所以写的全路径
3.3 查看监听(使用oracle用户)
lsnrctl status
3.4 静默dbca建库
[[email protected] ~]$ su - root # 切换到 root 用户
[or[email protected] ~]$ vi /data/database/database/response/dbca.rsp
修改如下内容:
注意:标红的行为需要修改的行。
[GENERAL]
RESPONSEFILE_VERSION ="11.2.0"
OPERATION_TYPE ="createDatabase"
[CREATEDATABASE]
GDBNAME ="orcl"
SID ="orcl"
TEMPLATENAME ="General_Purpose.dbc"
characterSet = "ZHS16GBK" #因为涉及到将在用库的dmp文件导入该主库,所以这里的字符集应该与在用库保持一致。
memoryPercentage= "60"
emConfiguration= "LOCAL"
sysPassword ="oracle"
systemPassword= "oracle"
dbsnmpPassword= "oracle"
sysmanPassword= "oracle"
[createTemplateFromDB]
SOURCEDB ="myhost:1521:orcl"
SYSDBAUSERNAME ="system"
TEMPLATENAME = "MyCopy TEMPLATE"
[createCloneTemplate]
SOURCEDB ="orcl"
TEMPLATENAME = "MyClone TEMPLATE"
[DELETEDATABASE]
SOURCEDB ="orcl"
[generateScripts]
TEMPLATENAME = "NewDatabase"
GDBNAME ="orcl11.us.oracle.comGDBNAME ="orcl11.us.oracle.com"
[CONFIGUREDATABASE]
[ADDINSTANCE]
DB_UNIQUE_NAME ="orcl11g.us.oracle.comDB_UNIQUE_NAME ="orcl11g.us.oracle.com"
NODELIST=
SYSDBAUSERNAME ="sys"
[DELETEINSTANCE]
DB_UNIQUE_NAME =" orcl11g.us.oracle.com "
INSTANCENAME ="orcl11g"
SYSDBAUSERNAME ="sys"
保存并退出:wq
# 切换到 oracle 用户
[[email protected] ~]$ su - oracle
# 开始建库
[[email protected] ~]$ /data/oracle/product/11.2.0/dbhome_1/bin/dbca -silent -responseFile /data/database/database/response/dbca.rsp
3.5 启动数据库
sqlplus / as sysdba
startup # 可能提示已经启动数据库
使用 show parameter;或者 select table_name from dba_tables 看看是否正常