美文网首页
Ubuntu 16.04安装Oracle 11g

Ubuntu 16.04安装Oracle 11g

作者: 一介书生独醉江湖 | 来源:发表于2022-04-08 18:41 被阅读0次

一、概述

Ubuntu版本: Ubuntu 16.04.7
Oracle版本:linux.x64_11gR2_database

二、创建oracle账号

# 创建一个用户组oinstall:
groupadd oinstall

# 创建一个用户组dba:
groupadd dba

# 创建一个用户主目录:
mkdir -p /home/sawl

#创建用户sawl 到主组oinstall,副组dba,主目录/home/sawl:
useradd -g oinstall -G dba -d /home/sawl sawl
#参  数:
#-c  加上备注文字。备注文字会保存在passwd的备注栏位中。
#-d  指定用户登入时的启始目录。
#-D  变更预设值.
#-e  指定帐号的有效期限。
#-f  指定在密码过期后多少天即关闭该帐号。
#-g  指定用户所属的群组。
#-G  指定用户所属的附加群组。
#-m  自动建立用户的登入目录。
#-M  不要自动建立用户的登入目录。
#-n  取消建立以用户名称为名的群组.
#-r  建立系统帐号。
#-s  指定用户登入后所使用的shell。
#-u  指定用户ID。

#设置密码:
passwd sawl
#123456

#查看用户sawl的添加情况
id sawl
# uid=1000(sawl) gid=1000(oinstall) groups=1000(oinstall),1001(dba)

#查看sawl所属的组:
groups sawl

#把/home/sawl的所有者改为sawl
chown -R sawl:oinstall /home/sawl
#为sawl用户配置shell权限,追加到文件后面即可
vi /etc/profile

if [ $USER = "sawl" ] ; then
  if [ $SHELL = "/bin/ksh" ] ; then
    ulimit -p 16384
    ulimit -n 65536
  else
    ulimit -u 16384 -n 65536
  fi
fi

# 更新profile生效
source /etc/profile
#赋予sawl用户执行sudo的权限
vi /etc/sudoers
#找到这行 root ALL=(ALL) ALL,在他下面添加xxx ALL=(ALL) ALL (这里的xxx是你的用户名)
#加入一行 
sawl   ALL=(ALL) ALL
#可以sudoers添加下面四行中任意一条
#xxx            ALL=(ALL)                ALL
#%xxx          ALL=(ALL)                ALL
#xxx            ALL=(ALL)                NOPASSWD: ALL
#%xxx         ALL=(ALL)                NOPASSWD: ALL

#第一行:允许用户youuser执行sudo命令(需要输入密码).
#第二行:允许用户组youuser里面的用户执行sudo命令(需要输入密码).
#第三行:允许用户youuser执行sudo命令,并且在执行的时候不输入密码.
#第四行:允许用户组youuser里面的用户执行sudo命令,并且在执行的时候不输入密码
#添加用户内核限制(XXX为你当前用户名,我这里是sawl)
cd /etc/security/
sudo vim limits.conf

#将以下内容加到文件后面
sawl soft nproc 2047
sawl hard nproc 16384
sawl soft nofile 1024
sawl hard nofile 65536
sawl soft stack 10240
#检查/etc/pam.d/login (如果没有就自己加一行)
cat /etc/pam.d/login | grep pam_limits.so
#session    required   pam_limits.so

#检查/etc/pam.d/su (如果没有就自己加一行)
cat /etc/pam.d/su | grep pam_limits.so
#session    required   pam_limits.so

三、登录阿里云服务器安装系统图形界面

#登录阿里云,远程链接 (VNC),输入账号密码

#第一步:更新一下源
$ apt-get update

#第二步
#下载Gnome图形化界面
$ apt-get install gnome-shell ubuntu-gnome-desktop
# 按Y即可

#第三步
#下载完成
$ apt-get install unity-tweak-tool gnome-tweak-tool
# 按Y即可
#对桌面进行一定的配置,会出现一个紫色的框框,点回车即可

#最后,重启
reboot
#切换用户
su - sawl

四、安装JDK

#安装JDK
sudo apt-get update
sudo apt-get install openjdk-8-jdk
#编辑profile
cd /etc
sudo vim profile

#在文件中加入
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
#更新文件生效
source /etc/profile
#测试jdk是否安装成功
java -version
#输出
#openjdk version "1.8.0_292"
#OpenJDK Runtime Environment (build 1.8.0_292-8u292-b10-0ubuntu1~16.04.1-b10)
#OpenJDK 64-Bit Server VM (build 25.292-b10, mixed mode)

五、安装依赖

#sudo apt-get -y install lesstif2
#sudo apt-get -y install lesstif2-dev
#这两个包是32位包,需要换源安装:

# 切换root账号
su
#执行
cd /etc/apt/
cd /etc/apt/sources.list.d/
echo "deb http://old-releases.ubuntu.com/ubuntu/ raring main restricted universe multiverse" > ia32-libs-raring.list
apt update
apt-get -y install lesstif2 lesstif2-dev

#把源换回来
rm -rf ia32-libs-raring.list
apt update

#退出root账户
exit

# 安装其他依赖
sudo apt-get -y install 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 libxm4 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

#或者一个一个安装
#sudo apt-get install automake 
#sudo apt-get install autotools-dev
#sudo apt-get install binutils
#sudo apt-get install bzip2
#sudo apt-get install elfutils
#sudo apt-get install expat
#sudo apt-get install gawk
#sudo apt-get install gcc
#sudo apt-get install gcc-multilib
#sudo apt-get install g++-multilib
#sudo apt-get install ia32-libs
#sudo apt-get install ksh
#sudo apt-get install less
#sudo apt-get install lesstif2
#sudo apt-get install lesstif2-dev
#sudo apt-get install lib32z1
#sudo apt-get install libaio1
#sudo apt-get install libaio-dev
#sudo apt-get install libc6-dev
#sudo apt-get install libc6-dev-i386
#sudo apt-get install libc6-i386 
#sudo apt-get install libelf-dev
#sudo apt-get install libltdl-dev
#sudo apt-get install libmotif4
#sudo apt-get install libodbcinstq4-1 libodbcinstq4-1:i386
#sudo apt-get install libpth-dev
#sudo apt-get install libpthread-stubs0
#sudo apt-get install libpthread-stubs0-dev
#sudo apt-get install libstdc++5
#sudo apt-get install lsb-cxx
#sudo apt-get install make
#sudo apt-get install openssh-server
#sudo apt-get install pdksh
#sudo apt-get install rlwrap
#sudo apt-get install rpm
#sudo apt-get install sysstat
#sudo apt-get install unixodbc
#sudo apt-get install unixodbc-dev
#sudo apt-get install unzip
#sudo apt-get install x11-utils
#sudo apt-get install zlibc

六、配置环境

#用下面的命令查询系统的参数(将查询结果复制出来备用)
/sbin/sysctl -a | grep sem
/sbin/sysctl -a | grep file-max
/sbin/sysctl -a | grep aio-max
/sbin/sysctl -a | grep ip_local_port_range
/sbin/sysctl -a | grep rmem_default
/sbin/sysctl -a | grep rmem_max
/sbin/sysctl -a | grep wmem_default
/sbin/sysctl -a | grep wmem_max
/sbin/sysctl -a | grep shmall
/sbin/sysctl -a | grep shmmax
/sbin/sysctl -a | grep shmmni


sudo vi /etc/sysctl.conf

#将查询出来的参数填入下面对应的地方
kernel.sem = 32000      1024000000      500     32000
kernel.shmall = 18446744073692774399
kernel.shmmax = 18446744073692774399
kernel.shmmni = 4096
fs.file-max = 1607300
fs.aio-max-nr = 65536
net.ipv4.ip_local_port_range = 32768    60999
net.core.rmem_default = 212992
net.core.rmem_max = 212992
net.core.wmem_default = 212992
net.core.wmem_max = 212992

#更新内核参数
cd /etc/
sudo sysctl -p
#创建文件夹
mkdir /home/sawl/tools
mkdir /home/sawl/tools/oracle11g
#非必须
mkdir /home/sawl/tools/oraInventory
chmod -R 775 /home/sawl/tools/oraInventory

mkdir -p /home/sawl/tools/oracle11g/product/11.2.0/dbhome_1
chmod -R 775 /home/sawl/tools/oracle11g/product/11.2.0/dbhome_1
#配置oracle的环境变量
sudo vim /etc/profile

#将下面的内容加到文件后面
export ORACLE_BASE=/home/sawl/tools/oracle11g
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

#更新文件生效
source /etc/profile
#欺骗oracle的安装设置
sudo mkdir /usr/lib64
sudo ln -s /etc /etc/rc.d
sudo ln -s /lib/x86_64-linux-gnu/libgcc_s.so.1 /lib64/
sudo ln -s /usr/bin/awk /bin/awk
sudo ln -s /usr/bin/basename /bin/basename
sudo ln -s /usr/bin/rpm /bin/rpm
sudo ln -s /usr/lib/x86_64-linux-gnu/libc_nonshared.a /usr/lib64/
sudo ln -s /usr/lib/x86_64-linux-gnu/libpthread_nonshared.a /usr/lib64/
sudo ln -s /usr/lib/x86_64-linux-gnu/libstdc++.so.6 /lib64/
sudo ln -s /usr/lib/x86_64-linux-gnu/libstdc++.so.6 /usr/lib64/
#切换root账户
su
#执行
echo 'Red Hat Linux release 5' > /etc/RedHat-release
exit

七、正式安装

# 百度盘链接: https://pan.baidu.com/s/194FRD323dDZ9tH5ZGotk_w  密码: 5iw5
# 包括两个安装包、一个客户端软件、一个PL/SQL
# 如果运行./runInstaller检查分区有错误,可参考这段,否则略过
# 增加了swap分区,通过。
su
dd if=/dev/zero of=/home/swapfile bs=1M count=512
mkswap /home/swapfile
swapon /home/swapfile

#然后修改 /etc/fstab,加上:

vim /etc/fstab
/home/swapfile swap swap defaults 0 0
#前期条件准备好了,接下来正式开始安装oracle,将oracle的安装包下载到oracle11g文件夹下
# 进入到阿里云远程控制VNC连接服务器

cd /home/sawl/tools/oracle11g

#我这里不去下载了,本地拷贝两个安装包到服务器
# 注意  压缩包所属用户是sawl而不是root
# scp -r linux.x64_11gR2_database_* sawl@*.*.*.28:/home/sawl/tools/oracle11g

解压压缩包
unzip linux.x64_11gR2_database_1of2.zip
unzip linux.x64_11gR2_database_2of2.zip

# 执行安装
# 登录阿里云,远程链接 (VNC),打开一个新的Teaminal,执行
cd /home/sawl/tools/oracle11g/database
./runInstaller -jreLoc /usr/lib/jvm/java-8-openjdk-amd64/jre
# ./runInstaller

image.png
image.png
image.png
image.png
image.png
image.png
#注意:
#这里的密码最好还是要大小写都有,有数字和字母,符合oracle命名规则;
#网上很多人说这个地方简单也无所谓,我刚开始也确实成功过一次;
#如果简单密码有可能什么提示都没有,一直卡在这(我是卡住了,后来才发现就是因为密码简单没给过,很伤),也有可能继续执行;
# Sawl123456
image.png
image.png
image.png
#这里需要新开一个terminal 执行一个命令
cd /tmp/CVU_11.2.0.1.0_sawl/
sudo ./runfixup.sh
image.png
image.png
image.png
image.png
image.png
image.png
image.png
#新开一个terminal窗口(需要在阿里云远程能打开视图的)
su
cd /home/sawl/tools/oracle11g/product/11.2.0/dbhome_1/sysman/lib/
gedit ins_emagent.mk
#会弹出一个窗口如下图:
image.png
#修改为:-lnnz11
image.png image.png
#新开terminal,输入下面4个命令

sudo sed -i 's/^\(TNSLSNR_LINKLINE.*\$(TNSLSNR_OFILES)\) \(\$(LINKTTLIBS)\)/\1 -Wl,--no-as-needed \2/g' /home/sawl/tools/oracle11g/product/11.2.0/dbhome_1/network/lib/env_network.mk

sudo sed -i 's/^\(ORACLE_LINKLINE.*\$(ORACLE_LINKER)\) \(\$(PL_FLAGS)\)/\1 -Wl,--no-as-needed \2/g' /home/sawl/tools/oracle11g/product/11.2.0/dbhome_1/rdbms/lib/env_rdbms.mk
 
sudo sed -i 's/^\(\$LD \$LD_RUNTIME\) \(\$LD_OPT\)/\1 -Wl,--no-as-needed \2/g' /home/sawl/tools/oracle11g/product/11.2.0/dbhome_1/bin/genorasdksh
 
sudo sed -i 's/^\(\s*\)\(\$(OCRLIBS_DEFAULT)\)/\1 -Wl,--no-as-needed \2/g' /home/sawl/tools/oracle11g/product/11.2.0/dbhome_1/srvm/lib/ins_srvm.mk
image.png
时间稍长,需要大概几分钟
image.png
image.png
image.png
image.png

八、测试

#切换用户
su - sawl
# 如果下面的为空,可以进入root,执行下  
# source /etc/profile,因为最开始已经配过环境变量了,可能重启失效了

#检查参数
echo $ORACLE_BASE
#/home/sawl/tools/oracle11g
echo $ORACLE_HOME
#/home/sawl/tools/oracle11g/product/11.2.0/dbhome_1
echo $PATH
#/usr/lib/jvm/java-8-openjdk-amd64/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/home/sawl/tools/oracle11g/product/11.2.0/dbhome_1/bin/:/home/sawl/tools/oracle11g/product/11.2.0/dbhome_1/lib64
#启动监听
lsnrctl start
#或者
cd $ORACLE_HOME/bin
./lsnrctl
start
image.png
#启动服务
sqlplus /nolog
conn / as sysdba
#Connected to an idle instance.
startup
#测试
select 1 from dual;

#         1
#----------
#         1
#到这里说明oracle可以用了
#关闭oracle
shutdown immediate
#不带参数的shutdown很长时间都没反应,可以用shutdown immediate
#quit退出
quit
#关闭监听
lsnrctl stop
#LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 08-APR-2022 17:49:16

#Copyright (c) 1991, 2009, Oracle.  All rights reserved.

#Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521)))
#The command completed successfully

九、外部连接数据库

ifconfig 得到ip  --> inet addr:  172.17.229.222

#到ORACLE_HOME 下去修改listener.ora和tnsnames.ora
cd /home/sawl/tools/oracle11g/product/11.2.0/dbhome_1/network/admin
#备份这两个文件
cp listener.ora listener.ora_copy
cp tnsnames.ora tnsnames.ora_copy

vi listener.ora
#localhost 换成服务器的ip地址
#LISTENER =
#  (DESCRIPTION_LIST =
#    (DESCRIPTION =
#      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
#      (ADDRESS = (PROTOCOL = TCP)(HOST = 172.17.229.222)(PORT = 1521))
#    )
#  )
#ADR_BASE_LISTENER = /home/sawl/tools/oracle11g
vi tnsnames.ora
#localhost 换成服务器的ip地址
#LISTENER_ORCL =
#  (ADDRESS = (PROTOCOL = TCP)(HOST = 172.17.229.222)(PORT = 1521))
 #ORCL =
 #  (DESCRIPTION =
 #   (ADDRESS = (PROTOCOL = TCP)(HOST = 172.17.229.222)(PORT = 1521))
 #   (CONNECT_DATA =
 #     (SERVER = DEDICATED)
 #     (SERVICE_NAME = orcl)
 #   )
 #  )
#重新启动监听
lsnrctl start
image.png
#重新启动服务
sqlplus /nolog
conn / as sysdba;
startup;
#给scott解锁
alter user scott account unlock;
#密码默认是tiger,不建议改

#给system解锁
alter user system account unlock;
alter user system identified by manager;
image.png
连接成功;
到这里oracle安装完成;
#遇到问题1:
checking swap space: 0MB available,150MB required

#解决方法:
#增加了swap分区,通过。
su
dd if=/dev/zero of=/home/swapfile bs=1M count=512
mkswap /home/swapfile
swapon /home/swapfile

#然后修改 /etc/fstab,加上:

vim /etc/fstab
/home/swapfile swap swap defaults 0 0
#遇到问题2:
# 报错ORA-01012: not logged on

#解决办法:
kill oracle 进程 或者关掉oracle
ps -ef|grep ora_dbw0_$ORACLE_SID
kill -9 pid
#重新启动oracle
sqlplus sys as sysdba
startup;

参考:
https://www.cnblogs.com/zzw1024/p/13056762.html
https://www.cnblogs.com/sunshine5683/archive/2018/11/13/9953672.html

https://blog.csdn.net/sinat_16643223/article/details/116377096
https://www.jianshu.com/p/85aa661563f8
https://blog.csdn.net/qq_25067905/article/details/70054672
https://blog.csdn.net/Xiaolei233/article/details/116105170
https://blog.csdn.net/weixin_36482670/article/details/116486193

相关文章

网友评论

      本文标题:Ubuntu 16.04安装Oracle 11g

      本文链接:https://www.haomeiwen.com/subject/crxysrtx.html