ubuntu20 安装 oracle xe 11

Ubuntu 20.04 LTS (Desktop) 安装 Oracle 免费版数据库(Oracle 11g Express Edition)

安装视频(YouTube):https://www.youtube.com/watch?v=jOrarHqj7X8

Oracle Database 11g Express Edition是 Oracle 数据库的免费版本,支持标准版的大部分功能

做为免费的 Oracle 数据库版本,Express Edition的限制是:

1)最大数据库大小为 11 GB

2)可使用的最大内存是 1G

3)一台机器上只能安装一个 XE 实例

4)Express Edition只能使用单 CPU,无法在多CPU上进行分布处理

参考文档

https://blog.csdn.net/Once_Pluto/article/details/83385150

https://blog.csdn.net/weixin_45551538/article/details/130801733

制作安装包

执行以下命令,安装alien,用于将rpm转为deb

1sudo apt install net-tools alien libaio1 unixodbc

将rpm安装文件转为deb文件

1sudo alien --scripts -d oracle-xe-11.2.0-1.0.x86_64.rpm

系统会生成一个名为 oracle-xe_11.2.0-2_amd64.deb 的安装包

创建chkconfig脚本文件:

1sudo vim /sbin/chkconfig

内容如下:

 1#!/bin/bash
 2file=/etc/init.d/oracle-xe
 3if [[ ! `tail -n1 $file | grep INIT` ]]; then
 4echo >> $file
 5echo '### BEGIN INIT INFO' >> $fil
 6echo '# Provides: OracleXE' >> $file
 7echo '# Required-Start: $remote_fs $syslog' >> $file
 8echo '# Required-Stop: $remote_fs $syslog' >> $file
 9echo '# Default-Start: 2 3 4 5' >> $file
10echo '# Default-Stop: 0 1 6' >> $file
11echo '# Short-Description: Oracle 11g Express Edition' >> $file
12echo '### END INIT INFO' >> $file
13fi
14update-rc.d oracle-xe defaults 80 01

保存以上文件并修改权限

1sudo chmod 755 /sbin/chkconfig

准备工作(以防Oracle安装过程中报错):

 1# 查看 /bin/awk 是否存在
 2ls /bin/awk
 3# 如不存在则创建软连接
 4sudo ln -s /usr/bin/awk /bin/awk
 5
 6# 查看 /var/lock/subsys 是否存在
 7ls /var/lock/subsys
 8# 如不存在则创建目录
 9sudo mkdir /var/lock/subsys
10
11sudo touch /var/lock/subsys/listener
1# 查看 /dev/shm 是否存在
2ls /dev/shm
3# 如不存在则创建目录
4sudo mkdir /dev/shm
5# 使用 df -h 命令查看 /dev/shm 是否挂载了文件系统;如果是,取消 /dev/shm 目录的挂载
6sudo umount /dev/shm
7
8# 重新创建挂载点
9sudo mount -t tmpfs shmfs -o size=2048m /dev/shm

创建以下文件

1sudo vim /etc/rc2.d/S01shm_load

复制以下内容到上面新建文件中

 1#!/bin/sh
 2case "$1" in
 3start) mkdir /var/lock/subsys 2>/dev/null
 4touch /var/lock/subsys/listener
 5rm /dev/shm 2>/dev/null
 6mkdir /dev/shm 2>/dev/null
 7mount -t tmpfs shmfs -o size=2048m /dev/shm ;;
 8*) echo error
 9exit 1 ;;
10esac

执行以下命令

1sudo chmod 755 /etc/rc2.d/S01shm_load

指定oracle安装目录(可选)

在安装的过程中,oracle只能安装在 /u01/app 下,无法指定安装的目录。

不知道是这是xe版的版本原因,还是没有找到配置的选项。

所以,为了能在其他目录安装,就只能通过软连接这种投机取巧的方式:

1sudo mkdir -p /data/oracle-app
2sudo mkdir /u01
3sudo ln -s /data/oracle-app /u01/app

安装 Oracle 11gR2 XE

1sudo dpkg --install oracle-xe_11.2.0-2_amd64.deb

运行配置程序

1sudo /etc/init.d/oracle-xe configure

配置信息大致如下:

 1Specify the HTTP port that will be used for Oracle Application Express [8080]:8521 //配置HTTP端口
 2
 3Specify a port that will be used for the database listener [1521]: //配置数据库端口
 4
 5Specify a password to be used for database accounts.  Note that the same
 6password will be used for SYS and SYSTEM.  Oracle recommends the use of 
 7different passwords for each database account.  This can be done after 
 8initial configuration: //输入sys和system账号的密码
 9Confirm the password: //密码确认
10
11Do you want Oracle Database 11g Express Edition to be started on boot (y/n) [y]:y //是否开机启动

环境变量配置

1sudo vim /etc/profile.d/oracle-xe.sh

内容如下:

1export ORACLE_HOME=/u01/app/oracle/product/11.2.0/xe
2export ORACLE_SID=XE
3export NLS_LANG=`$ORACLE_HOME/bin/nls_lang.sh`
4export ORACLE_BASE=/u01/app/oracle
5export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH
6export PATH=$ORACLE_HOME/bin:$PATH

添加可执行权限:

1sudo chmod 755 /etc/profile.d/oracle-xe.sh

服务的启动、关闭、开机运行

 1# 启动服务:
 2sudo service oracle-xe start
 3# 或者:
 4sudo /etc/init.d/oracle-xe start
 5
 6# 或者重启服务:
 7sudo service oracle-xe restart
 8
 9# 关闭服务
10/etc/init.d/oracle-xe stop
11
12# 设置服务开机运行
13sudo systemctl enable oracle-xe
14
15# 取消服务开机运行
16sudo systemctl disable oracle-xe

卸载

如果安装过程中遇到问题,或者就想卸载掉,执行下面语句

1sudo -s
2/etc/init.d/oracle-xe stop
3ps -ef | grep oracle | grep -v grep | awk '{print $2}' | xargs kill
4dpkg --purge oracle-xe
5rm -r /u01
6rm /etc/default/oracle-xe
7update-rc.d -f oracle-xe remove

命令行窗口访问(密码是之前在配置信息中设置的):

1sqlplus sys as sysdba
2
3# 或者:
4sqlplus sys as SYSOPER
5
6# 或者:
7sqlplus system

网页管理界面访问

Oracle XE和正式版一样提供了B/S管理端界面,访问地址(端口时在运行配置程序的时候指定的):

http://192.168.0.110:8521/apex/f?p=4950:1:280552466168661

sys/system 忘记密码的解决办法

管理员用户的密码通常掌握在管理数据库的人员手中,是在创建数据库时进行配置的,如果 SYS/SYSTEM 密码丢失了,也不用害怕,可以通过如下方式进行修改!

登录数据库服务端主机,这个很重要,必须是数据库服务端主机!

使用本地免密登录 sqlplus:

1su - oracle
2
3sqlplus / as sysdba

执行修改密码命令:

1alter user sys identified by loveCong801;
2
3alter user system identified by loveCong801;

以上命令将 sys/system 用户的密码设置为loveCong801

1alter user zc identified by congGG325;
2
3alter user test identified by congGG325;