一、概述
Oracle有两种安装方式,桌面安装和静默安装。这里我采用桌面安装的方式。
不得不说,Oracle真的是我目前为止安装过的最麻烦的软件没有之一,比K8S还麻烦,Oracle,真有你的!废话不多说,臭宝们,准备好了吗,要开始咯。
二、操作系统环境准备
1.设置图形化界面启动
CentOS7操作系统,查看CentOS7是否有桌面环境:
[root@localhost ~]# systemctl get-default
graphical.target
我这里默认就是桌面形式了,如果没有安装桌面,就需要安装一下
用命令行安装GNOME包:
[root@localhost ~]#yum groupinstall "GNOME Desktop" "Graphical Administration Tools"
更新系统的运行级别为graphical.target
,设置默认启动图形界面:
[root@localhost ~]#systemctl set-default graphical.target
创建符号链接,将图形用户界面graphical.target
链接到系统的默认启动目标default.target
[root@localhost ~]#ln -sf /lib/systemd/system/graphical.target /etc/systemd/system/default.target
再次查看系统默认启动:
[root@localhost ~]#systemctl get-default
graphical.target
重启系统reboot,开机就能进入图形界面,按照提示设置用户登录密码,语言和时区等。
遇到的问题:开机后出现如下界面:
解决办法:
在系统上安装相关插件:
sudo yum history package-list gjs
sudo yum history package-list gnome-shell
sudo yum update --skip-broken
最后一个命令需要的时间较长,需要耐心等待。
安装完成后再重启:sudo shutdown -r now
三、软件环境准备
Oracle11的安装包上传到服务器上:
- linux.x64_11gR2_database_1of2.zip
- linux.x64_11gR2_database_2of2.zip
1.关闭防火墙
[root@localhost ~]# systemctl stop firewalld.service
[root@localhost ~]# systemctl disable firewalld.service
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
[root@localhost ~]# vim /etc/selinux/config
# SELINUX=enforcing改为SELINUX=disabled,保存退出
2.安装一系列软件包
用于开发环境和系统管理,包括编译工具链、开发库、系统工具和网络工具
[root@localhost ~]# yum install -y automake autotools-dev binutils bzip2 elfutils expat \
gawk gcc gcc-multilib g++-multilib lib32ncurses5 lib32z1 \
ksh less lib32z1 libaio1 libaio-dev libc6-dev libc6-dev-i386 \
libc6-i386 libelf-dev libltdl-dev libodbcinstq4-1 libodbcinstq4-1:i386 \
libpth-dev libpthread-stubs0-dev libstdc++5 make openssh-server rlwrap \
rpm sysstat unixodbc unixodbc-dev unzip x11-utils zlibc unzip cifs-utils \
libXext.x86_64 glibc.i686
四、Oracle环境准备
1.创建oracle用户和用户组,并设置用户密码
[root@localhost ~]# groupadd oinstall # 创建一个名为"oinstall"的用户组
[root@localhost ~]# groupadd dba # 创建一个名为"dba"的用户组
[root@localhost ~]# useradd -g oinstall -G dba -m oracle # 创建一个名为"oracle"的用户,将其加入到"oinstall"用户组(-g选项),同时将其加入到"dba"用户组(-G选项),并使用-m选项创建用户的主目录。
[root@localhost ~]# passwd oracle # 为用户"oracle"设置密码 Oracle123456
Changing password for user oracle.
New password:
BAD PASSWORD: The password contains the user name in some form
Retype new password:
passwd: all authentication tokens updated successfully.
[root@localhost ~]# groups oracle
oracle : oinstall dba
[root@localhost ~]# id oracle # 显示用户"oracle"的UID(用户ID)、GID(主组ID)以及附加组
uid=1001(oracle) gid=1001(oinstall) groups=1001(oinstall),1002(dba)
2.创建安装目录
- 创建Oracle数据库安装目录:
mkdir -p /usr/local/src/data/oracle
- 创建Oracle数据库配置文件目录:
mkdir -p /usr/local/src/data/oraInventory
[root@localhost data]# pwd
/usr/local/src/data
[root@localhost data]# ls -l
total 0
drwxr-xr-x. 2 root root 6 May 25 00:00 oracle
drwxr-xr-x. 2 root root 6 May 25 00:01 oraInventory
3.解压Oracle数据库安装包并授权给oracle用户
上传安装包到这个目录下:
[root@localhost data]# ls -l
total 2295592
-rw-r--r--. 1 root root 1239269270 May 25 00:09 linux.x64_11gR2_database_1of2.zip
-rw-r--r--. 1 root root 1111416131 May 25 00:09 linux.x64_11gR2_database_2of2.zip
drwxr-xr-x. 2 root root 6 May 25 00:00 oracle
drwxr-xr-x. 2 root root 6 May 25 00:01 oraInventory
解压安装包,解压后自动生成的安装包目录database
[root@localhost data]# unzip linux.x64_11gR2_database_1of2.zip
[root@localhost data]# unzip linux.x64_11gR2_database_2of2.zip
[root@localhost data]# ls -l
total 2295592
drwxr-xr-x. 8 root root 128 Aug 20 2009 database
-rw-r--r--. 1 root root 1239269270 May 25 00:09 linux.x64_11gR2_database_1of2.zip
-rw-r--r--. 1 root root 1111416131 May 25 00:09 linux.x64_11gR2_database_2of2.zip
drwxr-xr-x. 2 root root 6 May 25 00:00 oracle
drwxr-xr-x. 2 root root 6 May 25 00:01 oraInventory
并授予他们所属用户,所属组
[root@localhost src]# chown -R oracle:oinstall data/
[root@localhost src]# chmod -R 777 data/ # 给data下的所有文件授权
4.操作系统配置
将 IP 地址192.168.108.128
(服务器ip) 映射到主机名localhost
和 localhost.localdomain
[root@localhost data]# echo '192.168.108.128 localhost localhost.localdomain' >> /etc/hosts
5.对oracle用户设置限制,提高软件运行性能
编辑limits.conf 文件追加如下内容:
[root@localhost data]# 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 soft core unlimited
oracle hard core unlimited
oracle soft memlock 50000000
oracle hard memlock 50000000
6.修改用户登录认证
编辑/etc/pam.d/login文件,追加如下内容:
[root@localhost ~] vim /etc/pam.d/login
session required /lib64/security/pam_limits.so
session required pam_limits.so
五、Oracle环境变量配置
1.设置环境变量
ORACLE_HOME 设置为安装目录product下默认目录
[root@localhost ~] vim /etc/profile
#oracle
export ORACLE_HOME=/usr/local/src/data/oracle/product/11.2.0/dbhome_1
export ORACLE_SID=orcl
if [ $USER = "oracle" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
fi
[root@localhost ~] source /etc/profile # 使得环境变量生效
注意:这里记得在真正安装之前创建好这个目录,怕到时候在安装过程中换目录不成功,因为这里不是默认安装目录
2.修改oracle用户环境变量
编辑~/.bash_profile
,追加如下内容
[root@localhost ~] vim ~/.bash_profile
export ORACLE_BASE=/usr/local/src/data/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1
export ORACLE_SID=orcl
export ORACLE_UNQNAME=orcl
export NLS_LANG=.AL32UTF8
export PATH=${PATH}:${ORACLE_HOME}/bin/:$ORACLE_HOME/lib64
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
[root@localhost ~] source ~/.bash_profile # 使得环境变量生效
六、开始图形化界面安装
使用root用户设置显示器为自己,即等会要弹出的oracle安装界面的显示。
[root@localhost ~]# DISPLAY=:0.0
[root@localhost ~]# export DISPLAY
[root@localhost ~]# echo $DISPLAY
:0.0
查看当前X服务器的访问控制列表:
[root@localhost ~]# xhost
access control enabled, only authorized clients can connect
关闭X服务器的访问控制,允许任何主机上的客户端连接
[root@localhost ~]# xhost +
access control disabled, clients can connect from any host
切换到Oracle用户准备开始安装:
[root@localhost ~]# su - oracle
[oracle@oracle ~]$ DISPLAY=:0.0
[oracle@localhost ~]$ export DISPLAY
[oracle@localhost ~]$ echo $DISPLAY
[oracle@localhost ~]$ cd /usr/local/src/data/database # 临时修改编码
[oracle@localhost database]$ export LANG=en_US.UTF-8 # 设置显示弹框
[oracle@localhost database]$ ./runInstaller
1.不需要填这些,下一步
2.安装方式
选第二个:仅安装数据库
3.单实例安装
4.默认英文
5.默认
6.修改安装位置
7.默认
8.group为oinstall
9.勾选ignore all
10.finish
11.执行过程报错
解决:可能是glibc版本过高导致;
重新安装glibc:
查看
sudo find / -name 'libc.a'
安装glibc:
[root@localhost src]# sudo yum install glibc-static
[root@localhost src]# ldd --version # 查看版本
ldd (GNU libc) 2.17
Copyright (C) 2012 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Written by Roland McGrath and Ulrich Drepper.
修改文件/usr/local/src/data/oracle/product/11.2.0/dbhome_1/ctx/lib/ins_ctx.mk
,将
ctxhx: $(CTXHXOBJ)
$(LINK_CTXHX) $(CTXHXOBJ) $(INSO_LINK)
修改为:
ctxhx: $(CTXHXOBJ)
-static $(LINK_CTXHX) $(CTXHXOBJ) $(INSO_LINK) /usr/lib64/stdc.a
修改完成后点击重试 ,又报错:(如果出现的错误还是上一个,可以再点击一次重试)
解决:
修改
/usr/local/src/data/oracle/product/11.2.0/dbhome_1/sysman/lib/ins_emagent.mk文件,将
$(SYSMANBIN)emdctl:
$(MK_EMAGENT_NMECTL)
修改为:
$(SYSMANBIN)emdctl:
$(MK_EMAGENT_NMECTL) -lnnz11
点击重试
11.执行脚本
执行:orainstRoot.sh
[root@localhost oraInventory]# ls
ContentsXML install.platform logs oraInstaller.properties oraInst.loc orainstRoot.sh oui
[root@localhost oraInventory]# sh orainstRoot.sh
Changing permissions of /usr/local/src/data/oraInventory.
Adding read,write permissions for group.
Removing read,write,execute permissions for world.
Changing groupname of /usr/local/src/data/oraInventory to oinstall.
The execution of the script is complete.
执行:root.sh
[root@localhost dbhome_1]# pwd
/usr/local/src/data/oracle/product/11.2.0/dbhome_1
[root@localhost dbhome_1]# ls
apex ccr clone csmig cv deinstall dv hs install.platform j2ee jdev ldap md network odbc OPatch oraInst.loc owb plsql rdbms scheduler sqlj sysman uix xdk
assistants cdata config css dbs demo emcli ide instantclient javavm jdk lib mesg nls olap opmn ord owm precomp relnotes slax sqlplus timingframework utl
bin cfgtoollogs crs ctx dc_ocm diagnostics has install inventory jdbc jlib log mgw oc4j ons oracore oui perl racg root.sh sqldeveloper srvm ucp wwg
[root@localhost dbhome_1]# sh root.sh
Running Oracle 11g root.sh script...
The following environment variables are set as:
ORACLE_OWNER= oracle
ORACLE_HOME= /usr/local/src/data/oracle/product/11.2.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.sh script.
Now product-specific root actions will be performed.
Finished product-specific root actions.
[root@localhost dbhome_1]#
执行完之后点击ok:安装完成
七、图形化界面创建数据库新开一个窗口进行配置
[oracle@localhost ~]$ DISPLAY=:0.0
[oracle@localhost ~]$ export DISPLAY
[oracle@localhost ~]$ echo $DISPLAY
:0.0
[oracle@localhost ~]$ export LANG=en_US.UTF-8
[oracle@localhost ~]$ dbca
bash: dbca: command not found…
报错:bash: dbca: command not found…
解决:使用Oracle用户去配置Oracle用户环境变量,即前面的 五-2
1.开始数据库创建
2.创建数据库
3.选择一般用途
4.填写全局数据库与sid
5.不匹配EM(两个都取消勾选)
6.给system用户设置密码
Oracle123456
7.使用默认数据库文件
8.指定快速恢复区
9.将实例方案添加到数据库
10.字符集选择utf-8
11.数据库存储
12.创建数据库和数据库脚本
13.安装的这个步骤会很漫长
出现一个光标悬浮就是正在安装
14.密码配置
到这一步已经是好的了,如果卡着,直接关掉就好了;如果没卡,那就可以点击按钮去解锁你想要使用的账户。
八、启动数据库
1.启动监听
[oracle@localhost ~]$ lsnrctl start
LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 25-MAY-2024 07:47:20
Copyright (c) 1991, 2009, Oracle. All rights reserved.
Starting /usr/local/src/data/oracle/product/11.2.0/dbhome_1/bin/tnslsnr: please wait...
TNSLSNR for Linux: Version 11.2.0.1.0 - Production
Log messages written to /usr/local/src/data/oracle/diag/tnslsnr/localhost/listener/alert/log.xml
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=localhost)(PORT=1521)))
Connecting to (ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521))
STATUS of the LISTENER
------------------------
Alias LISTENER
Version TNSLSNR for Linux: Version 11.2.0.1.0 - Production
Start Date 25-MAY-2024 07:47:20
Uptime 0 days 0 hr. 0 min. 0 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Log File /usr/local/src/data/oracle/diag/tnslsnr/localhost/listener/alert/log.xml
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=localhost)(PORT=1521)))
The listener supports no services
The command completed successfully
2.进入sql客户端工具
[oracle@localhost ~]$ sqlplus /nolog
SQL*Plus: Release 11.2.0.1.0 Production on Sat May 25 07:48:55 2024
Copyright (c) 1982, 2009, Oracle. All rights reserved.
SQL>
3.使用dba权限连接Oralce
SQL> connect / as sysdba
Connected.
4.启动数据库
SQL> startup
ORACLE instance started.
Total System Global Area 417546240 bytes
Fixed Size 2213936 bytes
Variable Size 297797584 bytes
Database Buffers 113246208 bytes
Redo Buffers 4288512 bytes
Database mounted.
Database opened.
最后,使用客户端工具链接成功(使用system用户登录,安装的过程中配置的密码是system用户的):
本来,在我第一次安装,启动数据库的过程中还遇到了很多问题,但是第二次安装(换了一台电脑),神奇的没遇到一个问题了;由于搜过的问题太多了,不好整理出来了;不过只要按照我上面的步骤来,应该是没问题的。除非是在前面的步骤有操作错误的地方,可能会导致最后启动失败;如果大家还遇到了任何其他问题,欢迎给我评论留言,我会一一解答,再补充到文章里。
臭宝,难得你能看到这里,爱你哦。