linux安装Oracle11g详细教程(redhat6、Centos7)

转载请注明:https://blog.csdn.net/u011291276/article/details/108143497

一、摘要

本文是安装Oracle11g的详细步骤;
本人已通过此方式,成功安装多次Oracle11g,包含Centos7下安装、redhat6下安装
oracle12c、18c和11g安装方式一致,下面安装的有第四章节是18c,12c可以作为参考;
18c安装步骤:https://blog.csdn.net/u011291276/article/details/103497464

另外,除了最终执行runInstaller 安装内容外,安装之前的内容基本的都是安装oracle必须的操作,
本人用此步骤成功安装18c、12c和11gR2,两者区别仅是最终安装执行runInstaller 命令稍微不同,以及配置文件不同。

二、安装软件及环境

	Oracle18c 静默安装包  
		LINUX.X64_180000_db_home.zip
	Centos7
	Redhat6
	Oracle11gR2静默安装包
		linux.x64_11gR2_database_2of2.zip
		linux.x64_11gR2_database_1of2.zip

三、Linux环境配置

su - root (环境配置在root用户下)

1、修改主机名

hostname vsir128

2、修改hosts

vi /etc/hosts 添加IP对应主机名
192.168.255.128 vsir128

3、安装依赖包

参考处已忘记,但这里面包含了大部分的包,缺少的几个包已经忘记是哪个了,
编译及安装时候提示缺少包,可以在继续找下,大家复制后去除换行符,粘贴
进去可以直接安装;
如果需要离线安装,网上找其对应的包全部下载后使用rpm形式安装;
redhat6下安装时出错依然提示缺少包,这个应该是系统本身比起Centos7缺少很多依赖包,可看最后一段处理方式;

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

4、修改swap虚拟内存大小

如果系统安装时设置的swap过小,则可通过下面方法扩容
cd /usr
mkdir swap
dd if=/dev/zero of=/usr/swap/swapfile bs=1G count=4  (这条命令从硬盘里分出一个	1×4G 大小的空间,挂在swapfile上)
chmod 0600 /usr/swap/swapfile
mkswap   /usr/swap/swapfile
swapon  /usr/swap/swapfile

解决重启失效vi /etc/fstab增加行
/usr/swap/swapfile      swap                    swap    defaults        0 0

--如果创建了swapfile之后,想要删除,必须先执行以下命令
swapoff swapfile
然后再执行删除文件操作
rm swapfile

5、配置内核参数

vim /etc/sysctl.conf 修改或添加

fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 536870912
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

6、修改用户限制

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
oracle hard stack 10240

7、在/etc/pam.d/login 文件中,使用文本编辑器或vi命令增加或修改以下内容

此处不修改应该是可以继续安装,参考的其他很多安装方式没有要修改此项,本人已直接修改
vi /etc/pam.d/login

session required /lib64/security/pam_limits.so
session required pam_limits.so

8、修改/etc/profile 文件中,

使用文本编辑器或vi命令增加或修改以下内容
其中的oracle为给oracle安装创建的用户名,如果要创建为其他名字,需要修改为其对应
位置在末尾或者export变量配置前都可以;
vi /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
使之生效
source /etc/profile

9、关闭selinux关闭防火墙

永久关闭:
vim /etc/sysconfig/selinux
SELINUX=enforcing 改为 SELINUX=disabled

防火墙配置放开Oracle的端口
firewall-cmd --zone=public --add-port=1521/tcp --permanent
firewall-cmd --reload

10、禁用THP配置

vi /etc/default/grub  

在GRUB_CMDLINE_LINU 的 最后,加上 transparent_hugepage=never;
redhat6下没有此项,可以不用设置
在这里插入图片描述

11、修改系统标识

vi /etc/redhat-release  centos7改为redhat-7因为Oracle不支持centos;
redhat忽略此项

在这里插入图片描述

12、添加用户和组

用户配置
groupadd -g 54321 oinstall
groupadd -g 54322 dba
groupadd -g 54323 oper
groupadd -g 54324 backupdba
groupadd -g 54325 dgdba
groupadd -g 54326 kmdba
groupadd -g 54330 racdba
/usr/sbin/useradd -u 54321 -g oinstall -G dba,oper,backupdba,dgdba,kmdba,racdba oracle
passwd oracle

13、修改oracle用户环境变量

切到Oracle用户
su - oracle
vi /home/oracle/.bashrc 增加

export TMP=/tmp
export TMPDIR=$TMP
export ORACLE_BASE=/opt/oracle
export ORACLE_HOME=$ORACLE_BASE/product/18.3.0.0/dbhome_1
export ORACLE_SID=orcl
export PATH=$ORACLE_HOME/bin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export CLASSPATH=$ORACLE_HOME/jre:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib


使之生效
source  /home/oracle/.bashrc
oracle11g运行runinstall成功之后在添加“DISPLAY”此项设置
export DISPLAY=0.0.0.0:1.0

14、创建目录

切到root
exit 或 su - root
mkdir /opt/oracle
chmod -R 777 /opt/oracle
chown -R oracle:oinstall /opt/oracle
切到Oracle
su -  oracle
mkdir –p $ORACLE_HOME

五、安装Oracle11gR2

1、解压Oracle11g安装包

解压两个zip文件到$ORACLE_BASE根目录下默认database文件夹;
cd $ORACLE_BASE/database

2、修改vi response/db_install.rsp 文件

修改内容的路径请根据自己设置的路径填写
oracle.install.responseFileVersion=/opt/oracle/install/rspfmt_dbinstall_response_schema_v11_2_0
oracle.install.option=INSTALL_DB_SWONLY
DECLINE_SECURITY_UPDATES=true
UNIX_GROUP_NAME=oinstall
INVENTORY_LOCATION=/opt/oracle/inventory
SELECTED_LANGUAGES=en,zh_CN
ORACLE_HOSTNAME=
ORACLE_HOME=/opt/oracle/product/11.2.0/dbhome_1
ORACLE_BASE=/opt/oracle
oracle.install.db.InstallEdition=EE
oracle.install.db.isCustomInstall=true
oracle.install.db.DBA_GROUP=dba
oracle.install.db.OPER_GROUP=dba
DECLINE_SECURITY_UPDATES=true

3、开始执行安装

su - oracle
执行:(必须绝对路径,否则报错)
./runInstaller -silent -responseFile /opt/oracle/database/response/db_install.rsp -ignorePrereq

在这里插入图片描述

4、使用root用户执行脚本

su - root
sh /opt/oracle/product/11.2.0/dbhome_1/root.sh

5、配置监听程序

netca.rsp文件在oracle安装目录下 /opt/oracle/database/response/netca.rsp
执行前确认环境变量增加此项
export DISPLAY=0.0.0.0:1.0
执行(必须使用绝对路径):
netca -silent -responsefile  /opt/oracle/database/response/netca.rsp

在这里插入图片描述

查看监听端口
netstat -tnpl | grep 1521

在这里插入图片描述

6、静默创建数据库

编辑应答文件
密码部分随意设置,且根据自身需要并不需要全部开启配置密码
/opt/oracle/database/response/dbca.rsp
[GENERAL]
RESPONSEFILE_VERSION = "11.2.0"
OPERATION_TYPE = "createDatabase"
[CREATEDATABASE]
GDBNAME = "orcl"
SID = "orcl"
SYSPASSWORD = "oracle"
SYSTEMPASSWORD = "oracle"
SYSMANPASSWORD = "oracle"
DBSNMPPASSWORD = "oracle"
CHARACTERSET = "AL32UTF8"
TOTALMEMORY = "1638"

7、执行静默建库

su - oracle
文件在oracle根目录下  /opt/oracle/database/response
dbca -silent -responseFile  /opt/oracle/database/response/dbca.rsp

在这里插入图片描述

查看oracle进程
ps -ef|grep ora
查看监听状态
lsnrctl status

在这里插入图片描述

至此数据库就安装成功了,下面我们登录下数据库

8、配置开机启动

设置Oracle11g开机启动
修改/opt/oracle/product/11.2.0/dbhome_1/bin/dbstart
ORACLE_HOME_LISTNER=$ORACLE_HOME

修改/opt/oracle/product/11.2.0/dbhome_1/bin/dbshut
ORACLE_HOME_LISTNER=$ORACLE_HOME

修改vi /etc/oratab
orcl:/opt/oracle/product/11.2.0/dbhome_1:Y

su - root
新建文件/etc/rc.d/init.d/oracle
注意:有些系统的bash启动名字为sh,第一行应更换为 #!/bin/sh
ORACLE_HOME和USER请根据个人设置
#! /bin/bash
# oracle: Start/Stop Oracle Database 11g R2
#
# chkconfig: 345 90 10
# description: The Oracle Database is an Object-Relational Database Management System.
#
# processname: oracle
. /etc/rc.d/init.d/functions
LOCKFILE=/var/lock/subsys/oracle
ORACLE_HOME=/opt/oracle/product/11.2.0/dbhome_1
ORACLE_USER=oracle
case "$1" in
'start')
   if [ -f $LOCKFILE ]; then
      echo $0 already running.
      exit 1
   fi
   echo -n $"Starting Oracle Database:"
   su - $ORACLE_USER -c "$ORACLE_HOME/bin/lsnrctl start"
   su - $ORACLE_USER -c "$ORACLE_HOME/bin/dbstart $ORACLE_HOME"
   su - $ORACLE_USER -c "$ORACLE_HOME/bin/emctl start dbconsole"
   touch $LOCKFILE
   ;;
'stop')
   if [ ! -f $LOCKFILE ]; then
      echo $0 already stopping.
      exit 1
   fi
   echo -n $"Stopping Oracle Database:"
   su - $ORACLE_USER -c "$ORACLE_HOME/bin/lsnrctl stop"
   su - $ORACLE_USER -c "$ORACLE_HOME/bin/dbshut"
   su - $ORACLE_USER -c "$ORACLE_HOME/bin/emctl stop dbconsole"
   rm -f $LOCKFILE
   ;;
'restart')
   $0 stop
   $0 start
   ;;
'status')
   if [ -f $LOCKFILE ]; then
      echo $0 started.
      else
      echo $0 stopped.
   fi
   ;;
*)
   echo "Usage: $0 [start|stop|status]"
   exit 1
esac
exit 0


给/etc/init.d/oracle添加执行权限
chmod +x /etc/init.d/oracle

开机启动oracle
systemctl enable oracle
或
chkconfig oracle on

给启动文件加权限
chmod 6751 /opt/oracle/product/11.2.0/dbhome_1/bin/oracle
cd /var/tmp
chown -R oracle:oinstall .oracle

六、登录数据库

sqlplus / as sysdba
验证创建结果
alter user sys identified by oracle;
alter user system identified by oracle;

oracle11g修改scott账户
alter user scott account unlock;
alter user scott identified by tiger;
select username,account_status from dba_users;

常用命令

lsnrctl start 

数据库操作
sqlplus / as sysdba                           // 登录数据库
select open_mode from v$database;  
select status from v$instance;        //查看数据库状态
alter user sys identified by oracle;      //改sys超级管理员密码
alter user system identified by oracle; //改system管理员密码
exit                                             // 退出数据库
sqlplus sys/oracle as sysdba        //使用sys超级管理员登录数据库
startup                                       // 启动数据库
select name from v$database;      //查看数据库
shutdown abort                          //关闭数据库
conn system/oracle                     //切换用户conn后面直接跟用户名和密码就可以

redhat6安装Oracle11g 执行runinstall时候提示 NoClassDefFoundError错误,此处检查结果是缺少rpm包,执行以下命令,没有的包全部安装
rpm -q --queryformat %-{name}-%{version}-%{release}-%{arch}“\n” \ binutils compat-db control-center gcc gcc-c++ glibc glibc-common gnome-libs libstdc++ \ libstdc+±devel make pdksh sysstat xscreensaver

你可能感兴趣的:(oracle11g,redhat6,centos7,oracle,linux,redhat,centos)