红旗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连接
那么我们新建个用户试试
怎么会出现这个情况呢?
这个可以参看我的下一篇博文