Asianux 7 安装Oracle12c

本文详细记录了在红旗Linux7环境下安装Oracle12c的全过程,包括环境检查、系统配置、用户及目录设置、内核参数调整、交换分区创建、Oracle用户环境变量配置等关键步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

红旗Linux 7 安装oracle 12c

环境什么的自己准备好然后咱们就开始一步一步的进行了!

1.检查内存

[root@oracle ~]# grep MemTotal /proc/meminfo
MemTotal:        2031448 kB
[root@oracle ~]# 

2.系统内核版本

     1) 查询系统位数命令:# uname -m;
    2) 查询系统版本命令:# cat /proc/version或# cat /etc/redhat-release或# lsb_release -id;
    3) 查询系统内核版本:# uname -r。

[root@oracle ~]# uname -m
x86_64
[root@oracle ~]# cat /proc/version
Linux version 3.10.0-514.axs7.x86_64 (mockbuild@CentOS-7) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-11) (GCC) ) #1 SMP Fri Feb 17 19:31:50 CST 2017
[root@oracle ~]#  uname -r
3.10.0-514.axs7.x86_64
[root@oracle ~]# 

3.磁盘空间要求

[root@oracle ~]# df -h
Filesystem                Size  Used Avail Use% Mounted on
/dev/mapper/asianux-root   37G   11G   27G  29% /
devtmpfs                  976M     0  976M   0% /dev
tmpfs                     992M   88K  992M   1% /dev/shm
tmpfs                     992M  8.9M  984M   1% /run
tmpfs                     992M     0  992M   0% /sys/fs/cgroup
/dev/sda1                 976M  146M  764M  16% /boot
tmpfs                     199M   12K  199M   1% /run/user/0
[root@oracle ~]# 

4.RPM要求

检查Oracle需要的rpm安装情况

[root@oracle ~]# rpm -q binutils compat-libcap1 compat-libstdc++-33 gcc gcc-c++ glibc glibc-devel ksh libaio libaio-devel libgcc libstdc++ libstdc++-devel libXext libXtst libX11 libXau libxcb libXi make sysstat 
binutils-2.25.1-22.base.axs7.x86_64
compat-libcap1-1.10-7.axs7.x86_64
compat-libstdc++-33-3.2.3-72.axs7.x86_64
gcc-4.8.5-11.axs7.1.x86_64
gcc-c++-4.8.5-11.axs7.1.x86_64
glibc-2.17-157.axs7.2.x86_64
glibc-devel-2.17-157.axs7.2.x86_64
ksh-20120801-26.axs7.x86_64
libaio-0.3.109-13.axs7.x86_64
libaio-devel-0.3.109-13.axs7.x86_64
libgcc-4.8.5-11.axs7.1.x86_64
libstdc++-4.8.5-11.axs7.1.x86_64
libstdc++-devel-4.8.5-11.axs7.1.x86_64
libXext-1.3.3-3.axs7.x86_64
libXtst-1.2.2-2.1.axs7.x86_64
libX11-1.6.3-3.axs7.x86_64
libXau-1.0.8-2.1.axs7.x86_64
libxcb-1.11-4.axs7.x86_64
libXi-1.7.4-2.axs7.x86_64
make-3.82-23.axs7.x86_64
sysstat-10.1.5-11.axs7.x86_64
[root@oracle ~]# 

我这个是原来安装过卸载重新安装的所以 这些包都有了

如果有没有的包可以通过  yum install 进行安装

[root@oracle ~]# yum  install binutils compat-libcap1 compat-libstdc++-33 compat-libstdc++-33*.i686 elfutilslibelf-devel gcc gcc-c++ glibc*.i686 glibc glibc-devel glibc-devel*.i686 ksh libgcc*.i686 libgcc libstdc++ libstdc++*.i686 libstdc++-devel libstdc++-devel*.i686 libaio libaio*.i686 libaio-devel libaio-devel*.i686 make sysstat unixODBC unixODBC*.i686 unixODBC-devel unixODBCdevel*.i686 libXp

关于软件包的安装可以参考这篇文章Linux软件安装概述

我们接着往下走

5.设置交换分区

[root@oracle ~]# dd if=/dev/zero of=/usr/swap bs=1024 count=2048000   #/usr/swap
2048000+0 records in
2048000+0 records out
2097152000 bytes (2.1 GB) copied, 118.741 s, 17.7 MB/s

6.创建用户、用户组以及安装目录

[root@oracle ~]# groupadd oinstall --创建Oracle用户组
[root@oracle ~]# groupadd dba --创建Oracle用户组
[root@oracle ~]# useradd -g oinstall -G dba oracle -- 增加Oracle用户加入新建的两个组
[root@oracle ~]# passwd oracle  -- 设置Oracle用户密码
Changing password for user oracle.
New password: 
BAD PASSWORD: The password is shorter than 8 characters
Retype new password: 
passwd: all authentication tokens updated successfully.
[root@oracle ~]# mkdir -p /usr/oracle  --创建Oracle安装目录
[root@oracle ~]# mkdir -p /opt/oracle/oracinstall --创建Oracle安装文件目录
[root@oracle ~]# chown -R oracle:oinstall /usr/oracle -- 更改Oracle目录用户组
[root@oracle ~]# chmod -R 775 /usr/oracle --更改Oracle目录权限
[root@oracle ~]# chown -R oracle:oinstall /opt/oracle/oracinstall --更改Oracle安装文件目录的权限
[root@oracle ~]# chmod -R 755 /opt/oracle/oracinstall --更改Oracle安装文件所在目录的操作权限  

7.编辑系统的内核参数:

[root@oracle ~]# vi /etc/sysctl.conf -- 加入以下内容

kernel.shmall = 2097152

kernel.shmmax = 2147483648

kernel.shmmni = 4096

kernel.sem = 250 32000 100 128

net.ipv4.ip_local_port_range = 9000 65500

net.core.rmem_default = 4194304

net.core.rmem_max = 4194304

net.core.wmem_default = 262144

net.core.wmem_max = 1048586

fs.file-max = 6815744

fs.aio-max-nr = 1048576

生效新配置的系统内核参数

[root@oracle ~]# sysctl -p
kernel.shmall = 2097152
kernel.shmmax = 2147483648
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default = 4194304
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048586
fs.file-max = 6815744
fs.aio-max-nr = 1048576
[root@oracle ~]# 

8.配置Oracle用户shell limit

[root@oracle ~]# vi /etc/security/limits.conf  --- 加入下面的内容
#@student        -       maxlogins       4
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft stack 10240
oracle hard stack 10240

9.编辑登录配置文件

进行登录配置文件的编辑,在文本最后添加:session required pam_limits.so或者session required /lib/security/pam_limits.so使shell limit生效。

[root@oracle ~]# vi /etc/pam.d/login 

# pam_selinux.so open should only be followed by sessions to be executed in the user context
		session    required     pam_selinux.so open
		session    required     pam_namespace.so
		session    optional     pam_keyinit.so force revoke
		session    include      system-auth
		session    include      postlogin
		session   optional     pam_ck_connector.so
		session required /lib/security/pam_limits.so
		session required pam_limits.so

 

10.Oracle用户环境变量配置

用Oracle用户登录 $ vi .bash_profile 加入以下内容

# use for oracle  
                 
			export  ORACLE_BASE=/usr/oracle  
			 
			export  ORACLE_HOME=$ORACLE_BASE/product  
			 
			export  ORACLE_SID=orcl  
			 
			export PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin  
			 
			export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib  
			#防止Oracle安装界面乱码,先把语言环境改为英文
			export LANG=en_US  
			 
			if [ $USER = "oracle" ];then   
			 
			 if [ $SHELL = "/bin/ksh" ];then   
			 
				 ulimit -p 16384   
			 
				 ulimit -n 65536   
			 
			   else   
			 
				ulimit -u 16384 -n 65536   
			 
			fi   
			 
			 fi

生效配置文件
 source .bash_profile

11.配置修改/etc/hosts文件(切回用户)root

vi /etc/hosts
    添加IP地址和域名的映射关系,进入hosts文件,在文件末尾加上本机实际IP和主机用户名

192.168.47.129  oracle  可以根据自己的实际情况自行修改

12.使用xftp将oracle12c文件放到linux中

此中小插曲 xshell 不可以连接虚拟机

解决方法 :NAT模式下,将VMware Network Adapter VMnet8的IP改为与虚拟机IP同一网段即可。可以参考【Linux】NAT模式下关于主机ping不通虚拟机的问题

使用unzip  解压上传过来的安装文件

至此我们都准备好了开始安装

13.正式开始安装

[root@oracle database]# su - oracle
Last login: Tue Jun 25 16:16:52 CST 2019 on :1
[oracle@oracle ~]$ cd /opt/oracle/oracinstall/database/
[oracle@oracle database]$ ./runInstaller 
Starting Oracle Universal Installer...

Checking Temp space: must be greater than 500 MB.   Actual 25134 MB    Passed
Checking swap space: must be greater than 150 MB.   Actual 2047 MB    Passed
Checking monitor: must be configured to display at least 256 colors
    >>> Could not execute auto check for display colors using command /usr/bin/xdpyinfo. Check if the DISPLAY variable is set.    Failed <<<<

Some requirement checks failed. You must fulfill these requirements before

continuing with the installation,

Continue? (y/n) [n] 

14.进入安装界面

我们不需要接收Oracle的安全更新

 

选择服务器类

选择单实例数据库安装

接下来我们选择高级安装

 

 

 

上面这个连个错误提示很明白 因为oracle账户无法创建oraInventory目录,所以必须先创建该用户并授权,执行如下操作即可

[root@oracle ~]# mkdir -p /usr/oraInventory
[root@oracle ~]# chown -R oracle:oinstall /usr/oraInventory
[root@oracle ~]# chmod -R 775 /usr/oraInventory

执行完上述代码后 在后来next

 

 

 

我们就增加swap 空间

[oracle@oracle ~]$ su - root
Password: 
Last login: Wed Jun 26 08:55:29 CST 2019 on pts/1
[root@oracle ~]# free - m
              total        used        free      shared  buff/cache   available
Mem:        2031448      712704       72192       12548     1246552     1107652
Swap:       2097148           0     2097148
[root@oracle ~]# dd if=/dev/zero of=/usr/swap bs=1024 count=3096000   #/usr/swap
3096000+0 records in
3096000+0 records out
3170304000 bytes (3.2 GB) copied, 137.145 s, 23.1 MB/s
[root@oracle ~]# mkswap /usr/swap
Setting up swapspace version 1, size = 3095996 KiB
no label, UUID=e5bd08f1-f915-46e2-9a3c-9ac2d5f53476
[root@oracle ~]# swapon /usr/swap
swapon: /usr/swap: insecure permissions 0644, 0600 suggested.
[root@oracle ~]# vi /etc/fstab
[root@oracle ~]# vi /etc/fstab
[root@oracle ~]# free -m
              total        used        free      shared  buff/cache   available
Mem:           1983         678          70           5        1235        1092
Swap:          5071          41        5029
[root@oracle ~]# 

现在我们再去 点击那个页面的 check again 进入下一个页面

 

现在 点 install开始正式安装

慢慢等待 

[oracle@oracle ~]$ su - root
Password: 
Last login: Wed Jun 26 09:13:12 CST 2019 on pts/1
[root@oracle ~]# cd /usr/oraInventory/
[root@oracle oraInventory]# ./orainstRoot.sh 
Changing permissions of /usr/oraInventory.
Adding read,write permissions for group.
Removing read,write,execute permissions for world.

Changing groupname of /usr/oraInventory to oinstall.
The execution of the script is complete.
[root@oracle oraInventory]# cd /usr/oracle/product/
[root@oracle product]# ./root.sh 
Performing root user operation.

The following environment variables are set as:
    ORACLE_OWNER= oracle
    ORACLE_HOME=  /usr/oracle/product

Enter the full pathname of the local bin directory: [/usr/local/bin]: 
   Copying dbhome to /usr/local/bin ...
   Copying oraenv to /usr/local/bin ...
   Copying coraenv to /usr/local/bin ...


Creating /etc/oratab file...
Entries will be added to the /etc/oratab file as needed by
Database Configuration Assistant when a database is created
Finished running generic part of root script.
Now product-specific root actions will be performed.

执行完以后回来接着操作

看到以下页面 安装完成 

安装完成了 我试试 看能不能连上

[oracle@oracle ~]$ sqlplus /nolog

SQL*Plus: Release 12.1.0.2.0 Production on Wed Jun 26 10:09:11 2019

Copyright (c) 1982, 2014, Oracle.  All rights reserved.

SQL> conn sys/as sysdba
Enter password: 
Connected to an idle instance.
SQL> startup
ORACLE instance started.

Total System Global Area  830472192 bytes
Fixed Size		    2929840 bytes
Variable Size		  612371280 bytes
Database Buffers	  209715200 bytes
Redo Buffers		    5455872 bytes
Database mounted.
Database opened.
SQL> quit
Disconnected from Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production
With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options
[oracle@oracle ~]$ 

看看监听状态

[oracle@oracle ~]$ lsnrctl status

LSNRCTL for Linux: Version 12.1.0.2.0 - Production on 26-JUN-2019 10:11:59

Copyright (c) 1991, 2014, Oracle.  All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=oracle)(PORT=1521)))
TNS-12541: TNS:no listener
 TNS-12560: TNS:protocol adapter error
  TNS-00511: No listener
   Linux Error: 111: Connection refused
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521)))
TNS-12541: TNS:no listener
 TNS-12560: TNS:protocol adapter error
  TNS-00511: No listener
   Linux Error: 111: Connection refused
[oracle@oracle ~]$ lsnrctl start

LSNRCTL for Linux: Version 12.1.0.2.0 - Production on 26-JUN-2019 10:13:04

Copyright (c) 1991, 2014, Oracle.  All rights reserved.

Starting /usr/oracle/product/bin/tnslsnr: please wait...

TNSLSNR for Linux: Version 12.1.0.2.0 - Production
System parameter file is /usr/oracle/product/network/admin/listener.ora
Log messages written to /usr/oracle/diag/tnslsnr/oracle/listener/alert/log.xml
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=oracle)(PORT=1521)))
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=oracle)(PORT=1521)))
TNS-12541: TNS:no listener
 TNS-12560: TNS:protocol adapter error
  TNS-00511: No listener
   Linux Error: 111: Connection refused
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521)))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for Linux: Version 12.1.0.2.0 - Production
Start Date                26-JUN-2019 10:13:36
Uptime                    0 days 0 hr. 0 min. 27 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File   /usr/oracle/product/network/admin/listener.ora
Listener Log File         /usr/oracle/diag/tnslsnr/oracle/listener/alert/log.xml
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=oracle)(PORT=1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
The listener supports no services
The command completed successfully

The listener supports no services  我们需要在 /usr/oracle/product/network/admin/listener.ora 中添加以下内容

SID_LIST_LISTENER =
  (SID_LIST =
        (SID_DESC =
                (GLOBAL_NAME = orclpbd)
                (ORACLE_HONE = /usr/oracle/product)
                (SID_NAME = orcl)
        )
 )

整个文件是这个样子的

# listener.ora Network Configuration File: /usr/oracle/product/network/admin/listener.ora
# Generated by Oracle configuration tools.
SID_LIST_LISTENER =
  (SID_LIST =
        (SID_DESC =
                (GLOBAL_NAME = orclpbd)
                (ORACLE_HONE = /usr/oracle/product)
                (SID_NAME = orcl)
        )
 )
LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = oracle)(PORT = 1521))
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
    )
  )

~                                                                               
~                      

完事后 重新启动监听

STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for Linux: Version 12.1.0.2.0 - Production
Start Date                26-JUN-2019 11:04:46
Uptime                    0 days 0 hr. 0 min. 21 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File   /usr/oracle/product/network/admin/listener.ora
Listener Log File         /usr/oracle/diag/tnslsnr/oracle/listener/alert/log.xml
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=oracle)(PORT=1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
Services Summary...
Service "orcl" has 1 instance(s).
  Instance "orcl", status UNKNOWN, has 1 handler(s) for this service...
The command completed successfully

通过plsql连接

那么我们新建个用户试试

怎么会出现这个情况呢?

这个可以参看我的下一篇博文

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值