版本说明:
OS版本 Red Hat Enterprise Linux 4.8.5-39
Oracle版本 Oracle Database 12c Release 1 (12.1.0.2.0) - Enterprise Edition
一 检查硬件是否符合安装要求
1.1 检查操作系统位数是否与安装包一致
# uname -m
x86_64
经检查,操作系统是64位操作系统,符合安装要求。
1.2 内存与交换空间
# free -g
total used free shared buff/cache available
Mem: 15 0 7 0 7 14
Swap: 7 0 7
经检查,满足Oracle安装要求。
二.安装必要软件包
2.1 检查是否已安装包
使用命令:rpm -qa |grep 包名
#rpm -qa |grep binutils
binutils-2.27-41.base.el7.x86_64
#rpm -qa |grep compat-libstdc++
#rpm -qa |grep elfutils-libelf
elfutils-libelf-0.176-2.el7.x86_64
#rpm -qa |grep expat
expat-2.1.0-10.el7_3.x86_64
#rpm -qa |grep gcc
gcc-4.8.5-39.el7.x86_64
gcc-gfortran-4.8.5-39.el7.x86_64
gcc-c++-4.8.5-39.el7.x86_64
libgcc-4.8.5-39.el7.x86_64
#rpm -qa |grep glibc
glibc-2.17-292.el7.x86_64
glibc-headers-2.17-292.el7.x86_64
glibc-common-2.17-292.el7.x86_64
glibc-devel-2.17-292.el7.x86_64
#rpm -qa |grep libaio
libaio-0.3.109-13.el7.x86_64
#rpm -qa |grep libgcc
libgcc-4.8.5-39.el7.x86_64
#rpm -qa |grep libstdc++
libstdc++-4.8.5-39.el7.x86_64
libstdc++-devel-4.8.5-39.el7.x86_64
#rpm -qa |grep make
make-3.82-24.el7.x86_64
automake-1.13.4-3.el7.noarch
#rpm -qa |grep numactl
numactl-libs-2.0.12-3.el7.x86_64
#rpm -qa |grep sysstat
#rpm -qa |grep ksh
#rpm -qa |grep cpp
abrt-addon-ccpp-2.1.11-55.el7.x86_64
cpp-4.8.5-39.el7.x86_64
#rpm -qa |grep unixODBC
#rpm -qa |grep mpfr
mpfr-3.1.1-4.el7.x86_64
#rpm -qa |grep compat-libcap
compat-libcap1-1.10-7.el7.x86_64
#rpm -qa |grep libstdc++-devel
libstdc++-devel-4.8.5-39.el7.x86_64
#rpm -qa |grep gcc-c
gcc-c++-4.8.5-39.el7.x86_64
#rpm -qa |grep glibc-devel
glibc-devel-2.17-292.el7.x86_64
#rpm -qa |grep libaio-devel
2.2 挂载yum源
–拷贝yum至指定路径
# cp /tmp/rui/V983339-01\(oracleliunx7.7\).iso /oradata
–挂载iso文件到/media/目录下
# mount /oradata/V983339-01\(oracleliunx7.7\).iso /media/ -t iso9660 -o loop
mount: /dev/loop0 is write-protected, mounting read-only
2.3 修改配置文件
# cd /etc/yum.repos.d
# ll
total 0
# vi redhat.repo
添加如下内容:
[ol7_Media]
baseurl=file:///media/
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oracle
gpgcheck=0
enabled=1
2.4 包安装
# cd /media/
# ll
total 1258
dr-xr-xr-x. 4 root root 2048 Aug 10 2019 addons
dr-xr-xr-x. 3 root root 2048 Aug 10 2019 EFI
-r--r--r--. 1 root root 8643 Aug 10 2019 EULA
-r--r--r--. 1 root root 18390 Aug 10 2019 GPL
dr-xr-xr-x. 3 root root 2048 Aug 10 2019 images
dr-xr-xr-x. 2 root root 2048 Aug 10 2019 isolinux
dr-xr-xr-x. 2 root root 2048 Aug 10 2019 LiveOS
dr-xr-xr-x. 2 root root 854016 Aug 10 2019 Packages
-r--r--r--. 1 root root 90433 Aug 10 2019 RELEASE-NOTES-U7-en
-r--r--r--. 1 root root 296053 Aug 10 2019 RELEASE-NOTES-U7-en.html
dr-xr-xr-x. 2 root root 4096 Aug 10 2019 repodata
-r--r--r--. 1 root root 1011 Aug 10 2019 RPM-GPG-KEY
-r--r--r--. 1 root root 1011 Aug 10 2019 RPM-GPG-KEY-oracle
-r--r--r--. 1 root root 3322 Aug 10 2019 TRANS.TBL
# cd Packages/
# ll compat-libstdc* //查询yum源是否有待安装的包
-r--r--r--. 1 root root 200292 Mar 7 2015 compat-libstdc++-33-3.2.3-72.el7.i686.rpm
-r--r--r--. 1 root root 194824 Mar 7 2015 compat-libstdc++-33-3.2.3-72.el7.x86_64.rpm
# yum -y install compat-libstdc++-33-3.2.3-72.el7.x86_64.rpm //选择正确包进行安装
# ll sysstat*
-r--r--r--. 1 root root 322340 Jun 18 2019 sysstat-10.1.5-18.el7.x86_64.rpm
# yum -y install sysstat-10.1.5-18.el7.x86_64.rpm
# ll ksh*
-r--r--r-- 1 root root 904120 Aug 31 2018 ksh-20120801-139.0.1.el7.x86_64.rpm
# yum -y install ksh-20120801-139.0.1.el7.x86_64.rpm
# ll unixODBC*
-r--r--r-- 1 root root 420624 Aug 7 2019 unixODBC-2.3.1-14.0.1.el7.i686.rpm
-r--r--r-- 1 root root 422788 Aug 7 2019 unixODBC-2.3.1-14.0.1.el7.x86_64.rpm
-r--r--r-- 1 root root 55720 Aug 7 2019 unixODBC-devel-2.3.1-14.0.1.el7.i686.rpm
-r--r--r-- 1 root root 55800 Aug 7 2019 unixODBC-devel-2.3.1-14.0.1.el7.x86_64.rpm
# yum -y install unixODBC-2.3.1-14.0.1.el7.x86_64.rpm
# ll libaio*
-r--r--r--. 1 root root 24356 Sep 30 2015 libaio-0.3.109-13.el7.i686.rpm
-r--r--r--. 1 root root 24208 Sep 30 2015 libaio-0.3.109-13.el7.x86_64.rpm
-r--r--r--. 1 root root 12672 Sep 30 2015 libaio-devel-0.3.109-13.el7.i686.rpm
-r--r--r--. 1 root root 12624 Sep 30 2015 libaio-devel-0.3.109-13.el7.x86_64.rpm
# yum -y install libaio-devel-0.3.109-13.el7.x86_64.rpm
三 Oracle安装包拷贝
3.1创建安装包存放目录
# mkdir -p /oradata/source_target/
3.2拷贝oracle 12c安装包至服务器
# cd /oradata/source_target/
#cp /tmp/rui/linuxamd64_12102_database_1of2.zip .
#cp /tmp/rui/linuxamd64_12102_database_2of2.zip .
# ll
total 2625080
-rw-r--r--. 1 root root 1673544724 Mar 19 00:56 linuxamd64_12102_database_1of2.zip
-rw-r--r--. 1 root root 1014530602 Mar 19 00:56 linuxamd64_12102_database_2of2.zip
3.3解压压缩文件
# unzip linuxamd64_12102_database_1of2.zip
# unzip linuxamd64_12102_database_2of2.zip
解压后在当前目录中生成了一个database的文件夹,解压过程中将两个压缩文件的内容解压到了database文件夹中。
# ll
total 2625080
drwxr-xr-x. 7 root root 117 Jul 7 2014 database
-rw-r--r--. 1 root root 1673544724 Mar 19 00:56 linuxamd64_12102_database_1of2.zip
-rw-r--r--. 1 root root 1014530602 Mar 19 00:56 linuxamd64_12102_database_2of2.zip
# cd database/
# ll
total 20
drwxr-xr-x. 4 root root 234 Mar 19 01:34 install
drwxrwxr-x. 2 root root 61 Jul 7 2014 response
drwxr-xr-x. 2 root root 34 Jul 7 2014 rpm
-rwxr-xr-x. 1 root root 8533 Jul 7 2014 runInstaller
drwxrwxr-x. 2 root root 29 Jul 7 2014 sshsetup
drwxr-xr-x. 14 root root 4096 Jul 7 2014 stage
-rwxr-xr-x. 1 root root 500 Feb 7 2013 welcome.html
四 创建Oracle数据库的系统账号和用户名
说明:
安装oracle需要创建三个用户组与一个用户,理论上单例按照需要3种用户组,实际可以只建两个oinstall和dba,后面再安装oracle数据库的时候把OSOPER组也设置是dba组。各用户组清单如下:
oracle 清单组(一般为oinstall):
OINSTALL 组的成员被视为 Oracle 软件的“所有者”,拥有对 oracle 中央清单(oraInventory) 的写入权限。在一个 Linux 系统上首次安装 oracle 软件时,OUI 会创建 /etc/oraInst.loc 文件。该文件指定 oracle 清单组的名称(默认为 oinstall)以及 oracle 中央清单目录的路径。
数据库管理员(OSDBA,一般为 dba):
OSDBA 组的成员可通过操作系统身份验证使用 SQL 以 SYSDBA 身份连接到一个oracle 实例。该组的成员可执行关键的数据库管理任务,如创建数据库、启动和关闭实例。该组的默认名称为dba。
数据库操作员组(OSOPER,一般为 oper):
OSOPER 组的成员可通过操作系统身份验证使用 SQL 以 SYSOPER 身份连接到一个oracle 实例。这个可选组的成员拥有一组有限的数据库管理权限,如管理和运行备份。
该组的默认名称为oper。SYSOPER 系统权限甚至在数据库未打开时也允许访问数据库实例。
4.1 创建oinstall组
# groupadd oinstall
4.2 创建dba组
# groupadd dba
4.3 创建oper组
# groupadd oper
4.4 创建oracle用户并加入用户组
加入第一个用户组为oinstall,然后加入dba,oper用户组
# useradd -g oinstall -G dba,oper oracle
4.5 修改oracle用户密码
需要手动输入两次
# passwd oracle
Changing password for user oracle.
New password:
BAD PASSWORD: The password fails the dictionary check - it is too simplistic/systematic
Retype new password:
passwd: all authentication tokens updated successfully.
4.6 查看oracle用户信息
# id oracle
uid=1000(oracle) gid=1000(oinstall) groups=1000(oinstall),1001(dba),1002(oper)
五 修改系统核心参数
在root用户下执行以下步骤:
5.1 修改shell参数
以限制oracle用户资源配置。
# vi /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 32768
5.2 编辑登录配置
使上一步的shell配置生效。
# vi /etc/pam.d/login
将下列内容加入该文件末尾:
session required /lib/security/pam_limits.so
session required pam_limits.so
5.3 修改内核参数
# vi /etc/sysctl.conf
将以下参数添加至文件末尾:
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.sem = 250 32000 100 128
kernel.shmall = 19804244
kernel.shmmax = 101397731328
kernel.shmmni = 4096
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048586
net.ipv4.ip_local_port_range = 9000 65500
5.4 使配置生效
为了使前面的配置生效,完成添加后用root用户执行如下命令:
# sysctl -p
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.sem = 250 32000 100 128
kernel.shmall = 19804244
kernel.shmmax = 101397731328
kernel.shmmni = 4096
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048586
net.ipv4.ip_local_port_range = 9000 65500
5.5 增大可打开文件描述符的最大数
# 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
5.6 创建oracle安装目录并赋权
–创建oracle安装目录
#mkdir -p /oracle/app/product
#mkdir /oracle/app/oradata
#mkdir /oracle/oraInventory
–更改目录属主为Oracle用户所有,属组为oinstall
# chown -R oracle:oinstall /oracle/app
# chown -R oracle:oinstall /oracle/oraInventory
5.7 配置oracle用户的环境变量
# su - oracle
$ vi .bash_profile
增加以下内容:
export ORACLE_BASE=/oracle/app
export ORACLE_HOME=$ORACLE_BASE/product/12.1.0/dbhome_1
export ORACLE_SID=wind2
export PATH=$HOME/bin:$ORACLE_HOME/bin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib
$ env | grep ORA
$ su - oracle
Password:
Last login: Wed Jul 28 03:15:15 EDT 2021 on pts/0
$ env | grep ORA //查看环境变量是否完成
ORACLE_SID=rui2
ORACLE_BASE=/oracle/app
ORACLE_HOME=/oracle/app/product/12.1.0/dbhome_1
六 相关安装目录创建
6.1 创建Inventory目录
#mkdir /oracle/oraInventory
# chown -R oracle:oinstall /oracle/oraInventory
6.2 创建数据库文件存储目录
# mkdir /oracle/app/oradata
# chown -R oracle:oinstall /oracle/app/oradata
七 Win10下安装RealVNC
参考:https://jingyan.baidu.com/article/6079ad0e6215fd28ff86db88.html
八 服务器上VNC安装与配置
8.1 安装vnc
#cd /media/Packages
# ll tiger*
-r--r--r--. 1 root root 246116 Jun 10 2019 tigervnc-1.8.0-17.el7.x86_64.rpm
-r--r--r--. 1 root root 39040 Jun 10 2019 tigervnc-icons-1.8.0-17.el7.noarch.rpm
-r--r--r--. 1 root root 29576 Jun 10 2019 tigervnc-license-1.8.0-17.el7.noarch.rpm
-r--r--r--. 1 root root 220000 Jun 10 2019 tigervnc-server-1.8.0-17.el7.x86_64.rpm
-r--r--r--. 1 root root 1091428 Jun 10 2019 tigervnc-server-minimal-1.8.0-17.el7.x86_64.rpm
#yum -y install tigervnc-server-1.8.0-17.el7.x86_64.rpm
8.2 配置vnc
# vi /etc/sysconfig/vncservers
添加:
VNCSERVERS=“1:root”
VNCSERVERARGS[2]="-geometry 800x600 -nolisten tcp -localhost"
8.3 启动vnc服务
# vi /etc/sysconfig/vncservers
# vncserver
You will require a password to access your desktops.
Password:
Verify:
Would you like to enter a view-only password (y/n)? y
Password:
Verify:
xauth: file /root/.Xauthority does not exist
New 'ruitest02:1 (root)' desktop is ruitest02:1
Creating default startup script /root/.vnc/xstartup
Creating default config /root/.vnc/config
Starting applications specified in /root/.vnc/xstartup
Log file is /root/.vnc/ruitest02:1.log
# service vncserver status //查看服务开启状态
Redirecting to /bin/systemctl status vncserver.service
Unit vncserver.service could not be found.
8.4 配置图形界面
修改配置文件,激活图形界面。
# vi /root/.vnc/xstartup
注释掉倒数三行,并在末尾增加:
gnome-session &
九 关闭防火墙
# firewall-cmd --state
not running
说明:
经查看,防火墙当前处于关闭状态,若防火墙为开启状态,执行如下命令关闭:
# systemctl stop firewalld.service
十 Windows借助VNC Viewer访问Linux
十一 安装oracle
11.1 执行安装包并显示图形安装界面
# su - oracle
$ cd /oradata/source_target/database
$ ll
total 20
drwxr-xr-x. 4 root root 234 Mar 19 01:34 install
drwxrwxr-x. 2 root root 61 Jul 7 2014 response
drwxr-xr-x. 2 root root 34 Jul 7 2014 rpm
-rwxr-xr-x. 1 root root 8533 Jul 7 2014 runInstaller
drwxrwxr-x. 2 root root 29 Jul 7 2014 sshsetup
drwxr-xr-x. 14 root root 4096 Jul 7 2014 stage
-rwxr-xr-x. 1 root root 500 Feb 7 2013 welcome.html
$ ./runInstaller
Starting Oracle Universal Installer...
Checking Temp space: must be greater than 500 MB. Actual 34690 MB Passed
Checking swap space: must be greater than 150 MB. Actual 8063 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] y
>>> Ignoring required pre-requisite failures. Continuing...
Preparing to launch Oracle Universal Installer from /tmp/OraInstall2021-07-28_03-53-37AM. Please wait ...
DISPLAY not set. Please set the DISPLAY and try again.
Depending on the Unix Shell, you can use one of the following commands as examples to set the DISPLAY environment variable:
- For csh: % setenv DISPLAY 192.168.1.128:0.0
- For sh, ksh and bash: $ DISPLAY=192.168.1.128:0.0; export DISPLAY
Use the following command to see what shell is being used:
echo $SHELL
Use the following command to view the current DISPLAY environment variable setting:
echo $DISPLAY
- Make sure that client users are authorized to connect to the X Server.
To enable client users to access the X Server, open an xterm, dtterm or xconsole as the user that started the session and type the following command:
% xhost +
To test that the DISPLAY environment variable is set correctly, run a X11 based program that comes with the native operating system such as 'xclock':
% <full path to xclock.. see below>
If you are not able to run xclock successfully, please refer to your PC-X Server or OS vendor for further assistance.
Typical path for xclock: /usr/X11R6/bin/xclock
$ su - root
Password:
Last login: Fri Mar 19 03:05:49 CST 2021 from 10.159.44.100 on pts/0
# xhost +
xhost: unable to open display ""
# export DISPLAY=:0.0
# xhost +
xhost: unable to open display ":0.0"
# su oracle
$ su oracle
Password:
$ export DISPLAY=XXX.XXX.XXX.XXX:1.0 //XXX.XXX.XXX.XXX提换成ip地址
$ su root
Password:
# xhost +
access control disabled, clients can connect from any host
# su oracle
$ cd /oradata/source_target/database
$ ./runInstaller
Starting Oracle Universal Installer...
Checking Temp space: must be greater than 500 MB. Actual 34205 MB Passed
Checking swap space: must be greater than 150 MB. Actual 8063 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] y
>>> Ignoring required pre-requisite failures. Continuing...
Preparing to launch Oracle Universal Installer from /tmp/OraInstall2021-07-28_03-57-47AM. Please wait ...[oracle@ruitest02 database]$
此时,以成功弹出Oracle软件安装图像界面,如下:
11.2 图形化安装
下面开始进入安装步骤。
1)配置安全更新。因为后期不需要收到更新信息,所以取消邮件通知的勾选,点击【Next】进入下一步。
会弹出告警,点击【Yes】继续。
2)选择安装选项。选择创建和配置数据库,点击【Next】进入下一步。
3)系统类。选择服务器类,点击【Next】进入下一步。
4)网格安装选项。选择单实例数据库安装,点击【Next】进入下一步。
5)安装类型。选择高级安装,点击【Next】进入下一步。
6)产品语言。默认的有英语,添加简体中文,点击【Next】进入下一步。
7)数据库版本。选择企业版,点击【Next】进入下一步。
8)安装位置。根据需要正确配置完Oracle基目录和软件位置后,点击【Next】进入下一步。
9)创建Inventory。配置Inventory目录后,点击【Next】进入下一步。
10)配置类型。选择一般用途/事务处理,点击【Next】进入下一步。
11)数据库标识符。正确配置全局数据库名和SID,取消对“创建为容器数据库”的勾选,点击【Next】进入下一步。
12)配置选项。
内存调整为40%
字符集选择UTF-8
实例方案保留默认配置,点击【Next】进入下一步。
13)数据库存储。指定数据库文件位置,点击【Next】进入下一步。
14)管理选项。保留默认配置,点击【Next】进入下一步。
15)恢复选项。勾选“启用恢复”,并配置文件系统的恢复区位置,点击【Next】进入下一步。
16)方案口令。对所有账户设置相同的密码,点击【Next】进入下一步。
在弹出的提示框中点击【Yes】继续。
17)操作系统组。直接点击【Next】进入下一步。
提示swap size不符合要求
详细信息如下:
Swap Size - This is a prerequisite condition to test whether sufficient total swap space is available on the system.
Expected Value :15.5124GB (1.6265976E7KB)
Actual Value :7.875GB (8257532.0KB)
Deetails:
- PRVF-7573 : Sufficient swap size is not available on node "ruitest02"
[Required = 15.5124GB (1.6265976E7KB) ; Found = 7.875GB (8257532.0KB)]
- Cause: The swap size found does not meet the minimum requirement.
- Action:Increase swap size to at least meet the minimum swap space requirement.
处理方法如下:
–添加swap,操作如下:
# dd if=/dev/zero of=/mnt/8GB.swap bs=1G count=8
8+0 records in
8+0 records out
8589934592 bytes (8.6 GB) copied, 8.36968 s, 1.0 GB/s
# mkswap /mnt/8GB.swap
Setting up swapspace version 1, size = 8388604 KiB
no label, UUID=c6ed4b42-e05e-4b90-8381-eea9d16bb613
# swapon /mnt/8GB.swap
swapon: /mnt/8GB.swap: insecure permissions 0644, 0600 suggested.
# vi /etc/fstab
添加如下内容:
/mnt/8GB.swap none swap sw 0 0
点击【Check Again】再次check
18)概要。若查看信息没有问题,点击【Install】开始安装。
19)安装产品。执行到脚本安装会要求以root用户身份执行脚本。
打开个命令行,把脚本复制进入回车即可,如下所示:
# /oracle/oraInventory/orainstRoot.sh
Changing permissions of /oracle/oraInventory.
Adding read,write permissions for group.
Removing read,write,execute permissions for world.
Changing groupname of /oracle/oraInventory to oinstall.
The execution of the script is complete.
# /oracle/app/product/12.1.0/dbhome_1/root.sh
Performing root user operation.
The following environment variables are set as:
ORACLE_OWNER= oracle
ORACLE_HOME= /oracle/app/product/12.1.0/dbhome_1
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.
执行完成后,点击【OK】继续安装。
20)完成。安装完成后,点击【Close】关闭窗口。