作者 | kf_dbd
来源 | 咖啡逗不逗(ID: kf_dbd)
转载请联系授权 | (微信ID:xh870545795)
大家好,我是 kf_dbd,很高兴又和大家见面了,今天分享一个Linux下无图形化安装Oracle数据库的文章。本文首发于微信公众号【咖啡逗不逗】,欢迎点击上方蓝字关注我吧!
现实工作中,据我了解大部分的Linux服务器都不会安装图形化界面,这就会导致我们在安装一些软件的时候不是那么便利,需要利用一些软件调出图形化界面安装,比如我们安装Oracle数据库时,常用Xmanager - Passive软件协助我们进行图形化安装,但是如果没有类似软件协助,我们要怎么去安装数据库呢,接下来我就介绍一下在无图形化的情况下,我们如何通过命令行和配置文件进行数据库的安装,如何安装数据库的服务端和客户端。
首先介绍下服务端的安装:
环境:linux redhat 7.4
oracle版本:11.2.0.4.0
1.配置yum,软件包检查,yum安装所需依赖包:
[root@rhel64 ~]# yum install binutils*[root@rhel64 ~]# yum install compat*[root@rhel64 ~]# yum install glibc*[root@rhel64 ~]# yum install ksh*[root@rhel64 ~]# yum install libgcc*[root@rhel64 ~]# yum install libstdc*[root@rhel64 ~]# yum install libaio*[root@rhel64 ~]# yum install make*[root@rhel64 ~]# yum install sysstat*[root@rhel64 ~]# yum install unixODBC*
2.修改资源限制
[root@rhel64 ~]# vi /etc/security/limits.conforacle soft nproc 2047oracle hard nproc 16384oracle soft nofile 1024oracle hard nofile 65536oracle soft stack 10240
3.修改内核参数 (根据实际情况)
[root@rhel64 ~]# vi /etc/sysctl.conffs.aio-max-nr = 1048576fs.file-max = 6815744kernel.shmmni = 4096kernel.sem = 250 32000 100 128net.ipv4.ip_local_port_range = 9000 65500net.core.rmem_default = 262144net.core.rmem_max = 4194304net.core.wmem_default = 262144net.core.wmem_max = 1048576[root@rhel64 ~]#/sbin/sysctl -p --使之生效
注释:
shmmax:物理内存*80%*80%,单位是字节
kernel.shmmax:表示单个共享内存段的最大值,以字节为单位,此值一般为物理内存的一半,不过大一点也没关系,这里设定的为4GB,即“4294967295/1024/1024/1024=4G”。
kernel.shmmin:表示单个共享内存段的最小值,默认为1byte
kernel.shmall:表示整个系统范围内可用共享内存页的总量,单位是页(page),在32位系统上一页等于4kB,也就是4096字节。计算公式是:shmmax/PAGE_SIZE
kernel.shmmni:表示整个系统范围内内存段的最大数量,一般为4096.
ip_local_port_range:表示端口的范围。在监听器帮助客户端进程和服务器进程建立连接时,会用到指定范围内的端口。
kernel.sem:表示设置的信号量,这4个参数内容大小固定。
net.core.rmem_default:表示接收套接字缓冲区大小的缺省值(以字节为单位)。
net.core.rmem_max:表示接收套接字缓冲区大小的最大值(以字节为单位)。
net.core.wmem_default:表示发送套接字缓冲区大小的缺省值(以字节为单位)。
net.core.wmem_max:表示发送套接字缓冲区大小的最大值(以字节为单位)。
4.在/etc/pam.d/login 文件中,增加或修改以下内容
session required /lib64/security/pam_limits.sosession required pam_limits.so
5.在/etc/profile 文件中,使用文本编辑器或vi命令增加或修改以下内容
if [ $USER = "oracle" ]; then if [ $SHELL = "/bin/ksh" ]; then ulimit -p 16384 ulimit -n 65536 else ulimit -u 16384 -n 65536 fifi[root@rhel64 ~]# source /etc/profile --生效
6.创建用户和组
[root@rhel64 ~]# groupadd oinstall[root@rhel64 ~]# groupadd dba[root@rhel64 ~]# groupadd oper创建用户 设置密码 oracle:oracle[root@rhel64 ~]# useradd -g oinstall -G dba,oper oracle[root@rhel64 ~]# passwd oracle
7.创建目录
[root@rhel64 ~]# mkdir -p /u01/app/oracle[root@rhel64 ~]# chown -R oracle:oinstall /u01[root@rhel64 ~]# chmod -R 775 /u01/app/oracle
8.设置环境变量
使用 oracle 用户连接 编辑/home/oracle/.bash_profile
[oracle@rhel64 ~]$ vi .bash_profileunset TNS_ADMINexport ORACLE_BASE=/u01/app/oracleexport ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1export ORACLE_SID=PRODexport PATH=$ORACLE_HOME/bin:$PATH[oracle@rhel64 ~]$ source .bash_profile验证[oracle@rhel64 ~]$ echo $ORACLE_BASE[oracle@rhel64 ~]$ echo $ORACLE_HOME[oracle@rhel64 ~]$ echo $ORACLE_SID[oracle@rhel64 ~]$ echo $PATH
9.上传解压Oracle安装包修改权限
上传目录为/software,相关安装包可后台联系小编获取
unzip p13390677_112040_Linux-x86-64_1of7.zip
unzip p13390677_112040_Linux-x86-64_2of7.zip
在/software下面得到database文件夹 修改属主 属组 权限
[root@rhel64 db]# chown -R oracle:oinstall database/[root@rhel64 db]# chmod -R +x database/
10.修改安装响应文件
切换oracle用户,修改安装Oracle软件的响应文件/software/database/response/db_install.rsp
主要修改以下参数:
oracle.install.option=INSTALL_DB_SWONLY // 安装类型ORACLE_HOSTNAME=docker // 主机名称(hostname查询)UNIX_GROUP_NAME=oinstall // 安装组INVENTORY_LOCATION=/u01/app/oraInventory //INVENTORY目录(不填就是默认值)SELECTED_LANGUAGES=en,zh_CN,zh_TW // 选择语言ORACLE_HOME=/u01/app/oracle/product/11.2.0/db_1 //oracle_homeORACLE_BASE=/u01/app/oracle //oracle_baseoracle.install.db.InstallEdition=EE // oracle版本oracle.install.db.EEOptionsSelection=false //自定义安装,否,使用默认组件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 //globalDBNameoracle.install.db.config.starterdb.SID=dbsrv2 //SIDoracle.install.db.config.starterdb.memoryLimit=81920 //自动管理内存的内存(M)oracle.install.db.config.starterdb.password.ALL=oracle //设定所有数据库用户使用同一个密码SECURITY_UPDATES_VIA_MYORACLESUPPORT=false //(手动写了false)DECLINE_SECURITY_UPDATES=true //设置安全更新(貌似是有bug,这个一定要选true,否则会无限提醒邮件地址有问题,终止安装。PS:不管地址对不对
本次参数修改如下:(空的可以不填)
oracle.install.responseFileVersion=/oracle/install/rspfmt_dbinstall_response_schema_v11_2_0oracle.install.option=INSTALL_DB_SWONLYORACLE_HOSTNAME=redhat7.4UNIX_GROUP_NAME=oinstallSELECTED_LANGUAGES=en,zh_CN,zh_TWORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1ORACLE_BASE=/u01/app/oracleoracle.install.db.InstallEdition=EEoracle.install.db.EEOptionsSelection=falseoracle.install.db.optionalComponents=oracle.rdbms.partitioning:11.2.0.4.0,oracle.oraolap:11.2.0.4.0,oracle.rdbms.dm:11.2.0.4.0,oracle.rdbms.dv:11.2.0.4.0,oracle.rdbms.lbac:11.2.0.4.0,oracle.rdbms.rat:11.2.0.4.0oracle.install.db.DBA_GROUP=dbaoracle.install.db.OPER_GROUP=oinstalloracle.install.db.CLUSTER_NODES=oracle.install.db.isRACOneInstall=oracle.install.db.racOneServiceName=oracle.install.db.config.starterdb.type=GENERAL_PURPOSEoracle.install.db.config.starterdb.globalDBName=orcloracle.install.db.config.starterdb.SID=PRODoracle.install.db.config.starterdb.characterSet=AL32UTF8oracle.install.db.config.starterdb.memoryOption=trueoracle.install.db.config.starterdb.memoryLimit=81920oracle.install.db.config.starterdb.installExampleSchemas=falseoracle.install.db.config.starterdb.enableSecuritySettings=trueoracle.install.db.config.starterdb.password.ALL=oracleoracle.install.db.config.starterdb.password.SYS=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_CONTROLoracle.install.db.config.starterdb.gridcontrol.gridControlServiceURL=oracle.install.db.config.starterdb.automatedBackup.enable=falseoracle.install.db.config.starterdb.automatedBackup.osuid=oracle.install.db.config.starterdb.automatedBackup.ospwd=oracle.install.db.config.starterdb.storageType=oracle.install.db.config.starterdb.fileSystemStorage.dataLocation=oracle.install.db.config.starterdb.fileSystemStorage.recoveryLocation=oracle.install.db.config.asm.diskGroup=oracle.install.db.config.asm.ASMSNMPPassword=MYORACLESUPPORT_USERNAME=MYORACLESUPPORT_PASSWORD=SECURITY_UPDATES_VIA_MYORACLESUPPORT=trueDECLINE_SECURITY_UPDATES=truePROXY_HOST=PROXY_PORT=PROXY_USER=PROXY_PWD=PROXY_REALM=COLLECTOR_SUPPORTHUB_URL=oracle.installer.autoupdates.option=oracle.installer.autoupdates.downloadUpdatesLoc=AUTOUPDATES_MYORACLESUPPORT_USERNAME=AUTOUPDATES_MYORACLESUPPORT_PASSWORD=
11.开始静默安装
Oracle用户在/software/database下面执行:
./runInstaller -silent -responseFile /software/database/response/db_install.rsp
如图所示按提示切换到root用户执行:
su - root/u01/app/oraInventory/orainstRoot.sh/u01/app/oracle/product/11.2.0/db_1/root.sh
12.配置监听程序
netca /silent /responsefile /software/database/response/netca.rsp
检查监听程序
[oracle@docker ~]$ lsnrctl status
13.静默dbca建库,编辑应答文件
vi /software/database/response/dbca.rsp主要配置以下参数:[GENERAL]RESPONSEFILE_VERSION = "11.2.0.4.0"OPERATION_TYPE = "createDatabase"[CREATEDATABASE]GDBNAME = "PROD"SID = "PROD"TEMPLATENAME = "General_Purpose.dbc"CHARACTERSET = "AL32UTF8
14.建库
dbca -silent -responseFile /software/database/response/dbca.rsp
至此数据库服务端创建成功!
客户端安装:
1.创建用户和组
[root@zxapp2 ~]# groupadd oinstall[root@zxapp2 ~]# groupadd dba[root@zxapp2 ~]# groupadd oper[root@zxapp2 ~]# useradd -g oinstall -G dba,oper oracleuseradd: user 'oracle' already exists--用户存在[root@zxapp2 ~]# usermod -g oinstall -G dba,oper oracle
2.创建文件夹并赋权限
[root@zxapp2 ~]# mkdir -p /u01/app/oracle[root@zxapp2 ~]# chown -R oracle:oinstall /u01[root@zxapp2 ~]# chmod -R 775 /u01/app/oracle
3.配置环境变量
Oracle用户vi .bash_profile增加以下配置unset TNS_ADMINexport ORACLE_BASE=/u01/app/oracleexport ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1export ORACLE_SID=dxdbexport PATH=$ORACLE_HOME/bin:$PATHexport LD_LIBRARY_PATH=$ORACLE_HOME/lib保存退出Source .bash_profile 重启该文件有效
4.上传Oracle11.2.0.4.0客户端软件并解压
软件后台联系小编获取
cd /home/oracleunzip p13390677_112040_Linux-x86-64_4of7.zip
5.yum安装依赖包(root用户)
yum install -y binutils compat-libstdc++-33 elfutils-libelf elfutils-libelf-devel gcc gcc-c++ glibc glibc-common glibc-devel libaio libaio-devel libgcc libstdc++ libstdc++-devel make sysstat ld-linux.so.2
6.配置响应文件client_install.rsp
文件在解压后的客户端软件里路径如下vi /home/oracle/client/response/client_install.rsp主要修改以下参数即可:ORACLE_HOSTNAME=ora-client-001(主机名)UNIX_GROUP_NAME=oinstall(组)INVENTORY_LOCATION=/u01/app/oraInventory(安装路径)SELECTED_LANGUAGES=en,zh_CN(字符集)ORACLE_HOME=/u01/app/oracle/11.2/clientORACLE_BASE=/u01/app/oracleoracle.install.client.installType=Administrator
7.在解压的客户端路径下安装客户端软件
./runInstaller -silent -responseFile /home/oracle/client/response/client_install.rsp(注意路径)
根据提示运行脚本
8.配置监听tnsnames.ora文件
配置路径$ORACLE_HOME/network/admin,在此路径下新建监听文件配置以下内容:
DXDB = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 1.1.1.1)(PORT = 1521)) (LOAD_BALANCE = yes) ) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = dxdb) ) )
9.测试连接
至此静默安装Oracle的客户端和服务端的工作算是完成了。加油小伙伴们,工作的路途还很遥远,继续努力,做更好的自己,如有问题欢迎大家后台交流沟通,写作不易,点点关注呗,祝小伙伴们工作愉快!