Centos 7 64位 minimal 最小化安装的系统中静默安装oracle 11g r2(无图形化安装)

Centos 7 64位 minimal 最小化安装的系统中静默安装oracle 11g r2(无图形化安装)一 安装运行环境 操作系统环境 1 最小化安装 linux CentOS7 我使用的镜像包 CentOS 7 x86 64 Minimal 1708 iso 操作系统安装步骤 https blog 51cto com mflag 2 关闭 selinux

大家好,我是讯享网,很高兴认识大家。

 

 

 

 

一 安装运行环境(操作系统环境)

1,最小化安装 linux CentOS7

我使用的镜像包:CentOS-7-x86_64-Minimal-1708.iso

操作系统安装步骤:https://blog.51cto.com/mflag/

2,关闭selinux、防火墙firewalld

[root@localhost ~]# sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config

[root@localhost ~]# systemctl disable firewalld.service 

二 安装依赖包

1,安装依赖前解决YUM源没问题:

依赖1: 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 依赖2: yum -y install binutils compat-libstdc++-33 elfutils-libelf elfutils-libelf-devel expat gcc gcc-c++ glibc glibc-common glibc-devel glibc-headers libaio libaio-devel libgcc libstdc++ libstdc++-devel make pdksh sysstat unixODBC unixODBC-devel 依赖3: yum -y install gcc make binutils gcc-c++ compat-libstdc++-33 elfutils-libelf-devel elfutils-libelf-devel-static ksh libaio libaio-devel numactl-devel sysstat unixODBC unixODBC-devel pcre-devel 

讯享网

2,检查依赖安装

讯享网rpm -q binutils compat-libstdc++-33 elfutils-libelf elfutils-libelf-devel expat gcc gcc-c++ glibc glibc-common glibc-devel glibc-headers libaio libaio-devel libgcc libstdc++ libstdc++-devel make pdksh sysstat unixODBC unixODBC-devel | grep "not installed"

3,发现没有 pdksh 包

通过wget命令直接下载pdksh的rpm包

wget -O /tmp/pdksh-5.2.14-37.el5_8.1.x86_64.rpm http://vault.centos.org/5.11/os/x86_64/CentOS/pdksh-5.2.14-37.el5_8.1.x86_64.rpm rpm -ivh pdksh-5.2.14-37.el5_8.1.x86_64.rpm

4,再次检查依赖

讯享网rpm -q binutils compat-libstdc++-33 elfutils-libelf elfutils-libelf-devel expat gcc gcc-c++ glibc glibc-common glibc-devel glibc-headers libaio libaio-devel libgcc libstdc++ libstdc++-devel make pdksh sysstat unixODBC unixODBC-devel | grep "not installed"


讯享网

依赖完全解决,进行下一步。

 

三 创建用户和组、安装目录、设置权限

1,创建用户、组

创建用户组:groupadd oinstall
创建用户组:groupadd dba
创建用户并添加到用户组:useradd -g oinstall -G dba oracle

设置密码:echo "" | passwd --stdin oracle

2,创建安装目录及权限(  可根据情况,选择比较多空间的目录创建)
mkdir -p /data/u01/app/oracle/product/11.2.0/dbhome_1
mkdir /data/u01/app/oracle/{oradata,inventory,fast_recovery_area}
chown -R oracle:oinstall /data/u01/app/oracle
chmod -R 775 /data/u01/app/oracle 

chown -R oracle.oinstall  /data/u01/     #给安装目录授权

[root@localhost software]# ll 总用量  drwxr-xr-x 7 oracle oinstall 136 6月 3 11:26 database drwxr-xr-x 7 oracle oinstall 156 6月 3 11:27 grid -rw-r--r--. 1 oracle oinstall  6月 2 14:40 p__Linux-x86-64_1of7.zip -rw-r--r--. 1 oracle oinstall  6月 2 14:40 p__Linux-x86-64_2of7.zip -rw-r--r--. 1 oracle oinstall  6月 2 14:41 p__Linux-x86-64_3of7.zip 

四 修改配置文件

1,修改内核文件: vim /etc/sysctl.conf

讯享网fs.aio-max-nr =  fs.file-max =  kernel.shmall =  kernel.shmmax =  kernel.shmmni = 4096 kernel.sem = 250 32000 100 128 net.ipv4.ip_local_port_range = 9000 65500 net.core.rmem_default =  net.core.rmem_max =  net.core.wmem_default =  net.core.wmem_max = 

 执行:sysctl -p                                #使配置文件生效;

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

3,修改/etc/pam.d/login 文件:vim /etc/pam.d/login

(限制oracle用户的shell权限)

讯享网session required /lib64/security/pam_limits.so session required pam_limits.so

4,修改/etc/profile 文件:vim /etc/profile

(限制oracle用户的shell权限)

if [ $USER = "oracle" ]; then if [ $SHELL = "/bin/ksh" ]; then ulimit -p 16384 ulimit -n 65536 else ulimit -u 16384 -n 65536 fi fi

 

5, 设置oracle 用户环境变量

[oracle@localhost ~]$ 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' 

*:根据自己安装环境情况修改。

[oracle@localhost ~]$ source .bash_profile                  #使变量马上生效;

 

五 、上传数据库安装包并解压

1,上传安装包到服务器

搜索命令行上传工具并安装

 yum search rz yum install lrzsz


 

2,创建一个目录存放安装包;
mkdir -p /data/u01/software
把安装包移过去解压

讯享网mv linux.x64_11gR2database /data/u01/software/ cd /data/u01/software unzip linux.x64_11gR2_database_1of2.zip unzip linux.x64_11gR2_database_2of2.zip

3,确认安装目录权限

chown -R oracle.oinstall /u01/          #给安装目录授权

六  修改静默安装响应文件


1,拷贝备份一份响应文件:cp -R /data/u01/software/database/response/ .
cd response/

2,修改  /data/u01/software/database/response/db_install.rsp 文件

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

执行:vim db_install.rsp

2,ORACLE_HOSTNAME=自己的主机名

3,

4,

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

5,

6,DECLINE_SECURITY_UPDATES=true

 

七  执行静默安装

安装完成,提示   Successfully Setup Software.

2, 安装成功后有两个脚本需要到root身份执行,按提示执行一下即可;

新开一个终端,使用root登录执行上述脚本即可:

 

*常见错误

常见错误:

准备从以下地址启动 Oracle Universal Installer /tmp/OraInstall2018-07-11_08-41-22PM. 请稍候...[oracle@oracle11 database]$ [FATAL] [INS-32012] 无法创建目录。

   原因: 没有授予创建目录的正确权限, 或卷中没有剩余空间。

   操作: 请检查您对所选目录的权限或选择另一个目录。

[FATAL] [INS-32012] 无法创建目录。

   原因: 没有授予创建目录的正确权限, 或卷中没有剩余空间。

   操作: 请检查您对所选目录的权限或选择另一个目录。

此会话的日志当前已保存为: /tmp/OraInstall2018-07-11_08-41-22PM/installActions2018-07-11_08-41-22PM.log。如果要保留此日志, Oracle 建议将它从临时位置移动到更持久的位置。

 

解决方法:

chown -R oracle.oinstall        /u01/              #给安装目录授权

 

 

八  以静默方式配置监听

 

1,重新使用oracle用户登录

讯享网su - oracle netca /silent /responsefile /home/oracle/response/netca.rsp

[oracle@oracle11 ~]$ netca -silent -responsefile /home/oracle/response/netca.rsp

正在对命令行参数进行语法分析:

参数"silent" = true

参数"responsefile" = /home/oracle/response/netca.rsp

完成对命令行参数进行语法分析。

Oracle Net Services 配置:

完成概要文件配置。

Oracle Net 监听程序启动:

正在运行监听程序控制: 

 /u01/app/oracle/product/11.2.0/bin/lsnrctl start LISTENER

监听程序控制完成。

监听程序已成功启动。

监听程序配置完成。

成功完成 Oracle Net Services 配置。退出代码是0

通过netstat命令可以查看1521端口正在监听。

[oracle@oracle11 ~]$ netstat -tnlp

(Not all processes could be identified, non-owned process info

will not be shown, you would have to be root to see it all.)

Active Internet connections (only servers)

Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    

tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      -                   

tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      -                   

tcp        0      0 127.0.0.1:6010          0.0.0.0:*               LISTEN      -                   

tcp        0      0 127.0.0.1:6011          0.0.0.0:*               LISTEN      -                   

tcp6       0      0 :::1521                 :::*                    LISTEN      2624/tnslsnr        

tcp6       0      0 :::22                   :::*                    LISTEN      -                   

tcp6       0      0 ::1:25                  :::*                    LISTEN      -                   

tcp6       0      0 ::1:6010                :::*                    LISTEN      -                   

tcp6       0      0 ::1:6011                :::*                    LISTEN      -       

成功运行后,在/u01/app/oracle/product/11.2.0/network/admin/中生成listener.ora和sqlnet.ora

2, 查看监听

netstat -tnulp | grep 1521

 

九   静默创建数据库

1,配置响应文件:vim /home/oracle/response/dbca.rsp

TOTALMEMORY 设置为总内存的80%

讯享网vim /home/oracle/response/dbca.rsp
GDBNAME = "orcl" SID = "orcl" SYSPASSWORD = "oracle" SYSTEMPASSWORD = "oracle" SYSMANPASSWORD = "oracle" DBSNMPPASSWORD = "oracle" DATAFILEDESTINATION =/data/u01/app/oracle/oradata RECOVERYAREADESTINATION=/data/u01/app/oracle/fast_recovery_area CHARACTERSET = "AL32UTF8" TOTALMEMORY = "2048" 

前面的 # 要删除,对应用户设置密码;

 

2,检查修改配置内容
egrep -v "(^#|^$)" /home/oracle/response/dbca.rsp

 

3,安装创建:
dbca -silent -responseFile /home/oracle/response/dbca.rsp

执行静默建库

 

4, 建库后进行实例进程检查:

[oracle@oracle11 ~]$ ps -ef | grep ora_ | grep -v grep

讯享网ps -ef | grep ora_ | grep -v grep

查看监听状态

lsnrctl status

5 ,登录sqlplus,查看实例状态

可以查看默认实例
env|grep ORACLE_UNQNAME
进入sqlplus 启动实例

讯享网sqlplus / as sysdba select status from v$instance;

 

出现以下情况,解决方式如下:输入startup,根据提示信息,将$ORACLE_BASE/admin/数据库名称/pfile目录下的init.ora.xxx形式的文件copy到$ORACLE_HOME/dbs目录下initoracle.ora(根据startup提示)即可。

 

十  连接测试

1,sqlplus 连接测试

查看当前SID:echo $ORACLE_SID

#登录sqlplus,查看实例状态 [oracle@oracle11 ~]$ sqlplus / as sysdba SQL> select status from v$instance; STATUS ------------ OPEN #查看数据库编码 select userenv('language') from dual; #查看数据库版本信息 select * from v$version; #激活scott用户 alter user scott account unlock; alter user scott identified by tiger; select username,account_status from all_users;

 

2,   Navicat远程连接Oracle

开放1521端口

讯享网firewall-cmd --zone=public --add-port=1521/tcp --permanent firewall-cmd --reload

IP为Oracle服务器的IP地址,服务名为Oracle的实例名,可忽略大小写

select instance_name from v$instance;

打开Navicat,工具→选项

打开OCI界面,在右侧OCI library一栏中选择instantclient-basic解压目录下的oci.dll,然后点击确定

重启Navicat,点击连接,选中Oracle

 

oracle多实例的启动与关闭

Oracle/oracle登录

1、启监听器

lsnrctl start

监听一般不需要动,如果机器重新启动的话需要将监听启动。

查看当前SID:echo $ORACLE_SID

2、启动数据库实例

设置需要操作的实例:export ORACLE_SID=a(需要启动的实例1)

进入sqlplus0:sqlplus/nolog

DBA登录:conn /as sysdba

启动:startup        

退出sqlplus:quit

 

设置需要操作的实例:export ORACLE_SID=b(需要启动的实例2)

进入sqlplus:sqlplus /nolog

DBA登录:conn /as sysdba

启动:startup

退出sqlplus:quit

3、关闭数据库实例:

设置需要操作的实例:export ORACLE_SID=a(需要启动的实例)

进入sqlplus:sqlplus /nolog

DBA登录:conn /as sysdba

关闭:shutdown immediate

退出sqlplus:quit

 

设置需要操作的实例:export ORACLE_SID=b(需要启动的实例)

进入sqlplus:sqlplus /nolog

DBA登录:conn /as sysdba

关闭:shutdown immediate

退出sqlplus:quit

 

十一   设置Oracle开机启动

1,根据自己实际情况设置

讯享网方法 (一) service服务类型 service服务这样是centos6之前的版本的,在centos7中也可以用,只不过centos7采用systemctl这种方式管理 服务,性能更高效,如果两种方式都有,systemctl的优先级更高。 1.修改/u01/app/oracle/product/11.2.0/bin/dbstart [oracle@oracle11 ~]$ vim /u01/app/oracle/product/11.2.0/bin/dbstart 将ORACLE_HOME_LISTNER=$1修改为ORACLE_HOME_LISTNER=$ORACLE_HOME 2.修改/u01/app/oracle/product/11.2.0/bin/dbshut [oracle@oracle11 ~]$ vim /u01/app/oracle/product/11.2.0/bin/dbshut 将ORACLE_HOME_LISTNER=$1修改为ORACLE_HOME_LISTNER=$ORACLE_HOME 3.修改/etc/oratab文件 [oracle@oracle11 ~]$ vim /etc/oratab 将orcl:/u01/app/oracle/product/11.2.0:N中最后的N改为Y,成为orcl:/u01/app/oracle/product/11.2.0:Y 4.输入命令dbshut和dbstart测试 [oracle@oracle11 ~]$ dbshut Oracle监听停止,进程消失。 [oracle@oracle11 ~]$ dbstart Oracle监听启动,进程启动。 5.切换到root账户建立自启动脚本 [oracle@oracle11 ~]$ su - [root@oracle11 ~]# vim /etc/rc.d/init.d/oracle 添加以下内容(有些值如ORACLE_HOME和ORACLE_USER等根据实际情况可以修改): #!/bin/sh #chkconfig: 2345 20 80 #description: Oracle dbstart / dbshut #以上两行为chkconfig所需 ORA_HOME=/u01/app/oracle/product/11.2.0 ORA_OWNER=oracle LOGFILE=/var/log/oracle.log echo "" >> ${LOGFILE} date +" %T %a %D: Run Oracle" >> ${LOGFILE} if [ ! -f ${ORA_HOME}/bin/dbstart ] || [ ! -f ${ORA_HOME}/bin/dbshut ]; then echo "Error: Missing the script file ${ORA_HOME}/bin/dbstart or ${ORA_HOME}/bin/dbshut!" >> ${LOGFILE} echo "" >> ${LOGFILE} exit fi start(){ echo "Startup Database..." su - ${ORA_OWNER} -c "${ORA_HOME}/bin/dbstart ${ORA_HOME}" echo "Done." echo "Run database control..." su - ${ORA_OWNER} -c "${ORA_HOME}/bin/emctl start dbconsole" echo "Done." } stop(){ echo "Stop database control..." su - ${ORA_OWNER} -c "${ORA_HOME}/bin/emctl stop dbconsole" echo "Done." echo "Shutdown Database..." su - ${ORA_OWNER} -c "${ORA_HOME}/bin/dbshut ${ORA_HOME}" echo "Done." } case "$1" in 'start') start >> ${LOGFILE} ;; 'stop') stop >> ${LOGFILE} ;; 'restart') stop >> ${LOGFILE} start >> ${LOGFILE} ;; esac date +" %T %a %D: Finished." >> ${LOGFILE} echo "" >> ${LOGFILE} echo "" 6.修改/etc/init.d/oracle服务文件权限 [root@oracle11 ~]# vim /etc/rc.d/init.d/oracle [root@oracle11 ~]# chmod +x /etc/rc.d/init.d/oracle [root@oracle11 ~]# service oracle stop Reloading systemd: [ 确定 ] Stopping oracle (via systemctl): [ 确定 ] 7.设置为开机启动 [root@oracle11 ~]# chkconfig oracle on 8.进行service oracle start/stop测试 9.Reboot重启查看Oracle监听和实例进程均能自动启动。 方法 (二)systemctl 服务类型 注意:采用systemctl服务启动oracle,启动监听的参数要配置成绝对路径,不然1521端口可能无法启动。 vim /u01/app/oracle/product/11.2.0/bin/dbstart #ORACLE_HOME_LISTNER=$ORACLE_HOME ORACLE_HOME_LISTNER=/u01/app/oracle/product/11.2.0 1、添加脚本 [root@oracle11 ~]# vim /usr/lib/systemd/system/oracle.service [Unit] Description=The oracle11g database After=network.target remote-fs.target [Service] User=oracle Type=forking # oracle will fail to start if /run/oralce.pid already exists but has the wrong # SELinux context. This might happen when running `oralce -t` from the cmdline. #ExecStart=/bin/bash /home/oracle/start.sh #ExecStartPre=/home/oracle/.bash_profile ExecStart=/u01/app/oracle/product/11.2.0/bin/dbstart ExecStop=/u01/app/oracle/product/11.2.0/bin/dbshut RestartSec=2s [Install] WantedBy=multi-user.target [root@oracle11 ~]# systemctl daemon-reload #重新加载启动脚本,否则可能无效。 [root@oracle11 ~]# systemctl start oracle [root@oracle11 ~]# systemctl status oracle #查看启动状态 ● oracle.service - The oracle11g database Loaded: loaded (/usr/lib/systemd/system/oracle.service; enabled; vendor preset: disabled) Active: active (running) since 六 2018-07-14 16:29:12 CST; 4s ago Process: 2154 ExecStop=/u01/app/oracle/product/11.2.0/bin/dbshut (code=exited, status=0/SUCCESS) Process: 2314 ExecStart=/u01/app/oracle/product/11.2.0/bin/dbstart (code=exited, status=0/SUCCESS) CGroup: /system.slice/oracle.service ├─2322 /u01/app/oracle/product/11.2.0/bin/tnslsnr LISTENER -inherit ├─2480 ora_pmon_orcl ├─2482 ora_vktm_orcl ├─2486 ora_gen0_orcl ├─2488 ora_diag_orcl ├─2490 ora_dbrm_orcl ├─2492 ora_psp0_orcl ├─2494 ora_dia0_orcl ├─2496 ora_mman_orcl ├─2498 ora_dbw0_orcl ├─2500 ora_lgwr_orcl ├─2502 ora_ckpt_orcl ├─2504 ora_smon_orcl ├─2506 ora_reco_orcl ├─2508 ora_mmon_orcl ├─2510 ora_mmnl_orcl ├─2512 ora_d000_orcl ├─2514 ora_s000_orcl ├─2573 ora_qmnc_orcl └─2651 ora_cjq0_orcl 7月 14 16:29:05 oracle11 systemd[1]: Starting The oracle11g database... 7月 14 16:29:07 oracle11 dbstart[2314]: Processing Database instance "orcl": log file /u01/app/oracle/product/11.2.0/startup.log 7月 14 16:29:12 oracle11 systemd[1]: Started The oracle11g database. [root@oracle11 ~]# netstat -tnlp|grep 1521 tcp6 0 0 :::1521 :::* LISTEN 2322/tnslsnr [root@oracle11 ~]# systemctl enable oracle #使oracle服务开机自启动 Created symlink from /etc/systemd/system/multi-user.target.wants/oracle.service to /usr/lib/systemd/system/oracle.service. [root@oracle11 system]# systemctl is-enabled oracle #查看oracle是否开机启动 enabled

 

小讯
上一篇 2025-03-26 16:45
下一篇 2025-01-09 15:53

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/56798.html