装置oracle11g
过往教程
1、VMware
装置Ubuntu20
2、装备装置前环境
提早下载需求用到的包
前面教程已有ubuntu镜像和JDK下载地址,这里就只给出本次教程会用到的
1、装置以及中需求用到的一些依靠包
csdn资源
https://download.csdn.net/download/m0_59139771/87670418
百度网盘
链接:https://pan.baidu.com/s/1ol0BGJ6sBHYlLQ4RUrskBw?pwd=yyds
提取码:yyds
2、oracle11g(总共两个包)
链接:https://pan.baidu.com/s/1T0aLC-ibbbhro3uof4x2iA?pwd=yyds
提取码:yyds
链接:https://pan.baidu.com/s/1KN0zBr1JNbM41-dt8MPidw?pwd=yyds
提取码:yyds
装置依靠包
1、主张当时源地址是前面跟着步骤换成国内源后进行,例如阿里源
第一组依靠包(有的包版别原因,或许不会装置成功,疏忽持续下一步)
多行张贴运转或许会不全,最好一行一行运转装置,或者张贴到编撰窗口中挑选逐行发送
sudo apt-get install automake -y
sudo apt-get install autotools-dev -y
sudo apt-get install binutils -y
sudo apt-get install bzip2 -y
sudo apt-get install elfutils -y
sudo apt-get install expat -y
sudo apt-get install gawk -y
sudo apt-get install gcc -y
sudo apt-get install gcc-multilib -y
sudo apt-get install g++-multilib -y
sudo apt-get install ia32-libs -y
sudo apt-get install ksh -y
sudo apt-get install less -y
sudo apt-get install lesstif2 -y
sudo apt-get install lesstif2-dev -y
sudo apt-get install lib32z1 -y
sudo apt-get install libaio1 -y
sudo apt-get install libaio-dev -y
sudo apt-get install libc6-dev -y
sudo apt-get install libc6-dev-i386 -y
sudo apt-get install libc6-i386 -y
sudo apt-get install libelf-dev -y
sudo apt-get install libltdl-dev -y
sudo apt-get install libmotif4 -y
sudo apt-get install libodbcinstq4-1 libodbcinstq4-1:i386 -y
sudo apt-get install libpth-dev -y
sudo apt-get install libpthread-stubs0 -y
sudo apt-get install libpthread-stubs0-dev -y
sudo apt-get install libstdc++5 -y
sudo apt-get install lsb-cxx -y
sudo apt-get install make -y
sudo apt-get install openssh-server -y
sudo apt-get install pdksh -y
sudo apt-get install rlwrap -y
sudo apt-get install rpm -y
sudo apt-get install sysstat -y
sudo apt-get install unixodbc -y
sudo apt-get install unixodbc-dev -y
sudo apt-get install unzip -y
sudo apt-get install x11-utils -y
sudo apt-get install zlibc -y
2、都装置完结后,使用以下指令查看一下首要的依靠是否装置成功
gcc -v
g++ -v
假如都是gcc version 9.4.0
(20.04版别的),阐明这一步成功,在后面另外一篇文章会专门附上在这一步成功和失败的所有依靠包,以供参考
更新源文件
1、源地址文件记住备份备份备份!!!
把/etc/apt/sources.list
源文件的内容替换成以下源,用xftp
翻开文件直接改便利点
vim /etc/apt/sources.list
deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted
deb http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted
deb http://mirrors.aliyun.com/ubuntu/ bionic universe
deb http://mirrors.aliyun.com/ubuntu/ bionic-updates universe
deb http://mirrors.aliyun.com/ubuntu/ bionic multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-updates multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted
deb http://mirrors.aliyun.com/ubuntu/ bionic-security universe
deb http://mirrors.aliyun.com/ubuntu/ bionic-security multiverse
2、替换完后履行一下指令进行更新:
sudo apt-get update
3、等候更新完结
持续装置依靠包
1、然后持续装置以下依靠包
这里下面的依靠,需求先将上面的依靠装置完结后,再进行换源,再持续进行装置(首要是g++
的装置在上面有它需求的依靠包)
sudo apt-get -y install autoconf
sudo apt-get -y install ssh
sudo apt-get -y install wget
sudo apt-get -y install man
sudo apt-get -y install curl
sudo apt-get -y install ftp
sudo apt-get -y install telnet
sudo apt-get -y install net-tools
sudo apt-get -y install strace
sudo apt-get -y install psmisc
sudo apt-get -y install tree
sudo apt-get -y install make
sudo apt-get -y install cmake
sudo apt-get -y install *x11*
sudo apt-get -y install *vnc*
sudo apt-get -y install tigervnc-standalone-server
sudo apt-get -y install tigervnc-common
sudo apt-get -y install libaio1
sudo apt-get -y install libaio-dev
sudo apt-get -y install gcc-4.8
sudo apt-get -y install g++-4.8
sudo apt-get -y install cpp-4.8
sudo apt-get -y install libstdc++5
sudo apt-get -y install ibc6-dev
sudo apt-get -y install sysstat
sudo apt-get -y install xauth
sudo apt-get -y install binutils
sudo apt-get -y install readline*
sudo apt-get -y install rlwrap
2、装置低版别libaio
,有必要
dpkg -l | grep libaio
sudo dpkg -P libaio-dev
sudo dpkg -P libaio1
3、下面3个包(multiarch-support_2.28-10+deb10u1_amd64.deb
、libaio1_0.3.110-3_amd64.deb
、libaio-dev_0.3.110-3_amd64.deb
),经过xftp
上传,然后进入所在目录运转装置指令
sudo dpkg -i multiarch-support_2.28-10+deb10u1_amd64.deb
sudo dpkg -i libaio1_0.3.110-3_amd64.deb
sudo dpkg -i libaio-dev_0.3.110-3_amd64.deb
4、gcc
、g++
降级
先用gcc -v
和g++ -v
查出当时版别,然后修正对应版别运转以下指令,
sudo mv /usr/bin/gcc /usr/bin/gcc-9.4.0
sudo mv /usr/bin/g++ /usr/bin/g++-9.4.0
sudo mv /usr/bin/cpp /usr/bin/cpp-9.4.0
sudo ln -sf /usr/bin/g++-4.8 /usr/bin/g++
sudo ln -sf /usr/bin/gcc-4.8 /usr/bin/gcc
sudo ln -sf /usr/bin/cpp-4.8 /usr/bin/cpp
sudo chmod 755 /usr/bin/g++
sudo chmod 755 /usr/bin/gcc
sudo chmod 755 /usr/bin/cpp
gcc -v
g++ -v
dpkg -l | grep libstdc
当再次运转查看gcc
版别指令时发现,版别为4.8.5
时成功
5、增加途径
sudo mkdir /usr/lib64
6、增加软链接
sudo ln -sf /bin/bash /bin/sh
sudo ln -s /etc /etc/rc.d
sudo ln -sf /usr/lib/x86_64-linux-gnu /usr/lib64
sudo ln -sf /usr/lib/x86_64-linux-gnu/libc_nonshared.a /usr/lib64/
sudo ln -sf /usr/lib/x86_64-linux-gnu/libstdc++.so.6 /usr/lib64/
sudo ln -sf /usr/lib/x86_64-linux-gnu/libstdc++.so.6 /lib64/
sudo ln -sf /lib/x86_64-linux-gnu/libgcc_s.so.1 /lib64/
sudo ln -sf /usr/lib/x86_64-linux-gnu/*.o /usr/lib64/
7、进入xfpt
上传到的目录,复制libpthread_nonshared.a
到/usr/lib64/
sudo cp libpthread_nonshared.a /usr/lib64/
sudo chmod 775 /usr/lib64/libpthread_nonshared.a
8、设置英文环境
sudo sh -c 'echo "export LANG=en_US.UTF-8" >> /root/.profile'
sudo cat /root/.profile
9、装备用户和组
sudo /usr/sbin/groupadd -g 60001 oinstall
sudo /usr/sbin/groupadd -g 60002 dba
sudo /usr/sbin/groupadd -g 60003 oper
sudo useradd -d /home/oracle -m -s /bin/bash -g oinstall -G dba,oper oracle
sudo passwd oracle
10、为oracle
用户增加sudo
免密权限
sudo sh -c 'echo "oracle ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers'
解压oracle11g
1、将oracle11g
的两个包经过xftp
上传到想要装置到的文件夹
2、然后解压
unzip linux.x64_11gR2_database_1of2.zip
unzip linux.x64_11gR2_database_2of2.zip
解压完结后,会生成一个database的目录
3、查看体系变量(可不查看,直接用下面的)
sudo /sbin/sysctl -a | grep sem
sudo /sbin/sysctl -a | grep shm
sudo /sbin/sysctl -a | grep file-max
sudo /sbin/sysctl -a | grep aio-max
sudo /sbin/sysctl -a | grep ip_local_port_range
sudo /sbin/sysctl -a | grep rmem_default
sudo /sbin/sysctl -a | grep rmem_max
sudo /sbin/sysctl -a | grep wmem_default
sudo /sbin/sysctl -a | grep wmem_max
4、然后根据上面指令中得到的参数值在/etc/sysctl.conf
中增加对应数据,能够翻开两个终端,这样便利填写
sudo vim /etc/sysctl.conf
5、把sysctl.conf
中的以下内容用查得的值填上(可不查看,直接用下面那一块的)
fs.aio-max-nr =
fs.file-max =
kernel.shmall =
kernel.shmmax =
kernel.shmmni =
kernel.sem =
net.ipv4.ip_local_port_range =
net.core.rmem_default =
net.core.rmem_max =
net.core.wmem_default =
net.core.wmem_max =
下面这一块直接用
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048586
kernel.panic_on_oops = 1
kernel.shmmax = 5033164800
kernel.shmall = 2097152
kernel.shmmni = 4096
vm.nr_hugepages = 2000
6、运转一下指令更新内核参数
sudo sysctl -p
7、增加对当时用户的内核限制在 /etc/security/limits.conf
文件中增加以下数据(XXX
为你当时用户名)
vim /etc/security/limits.conf
XXX soft nproc 2047
XXX hard nproc 16384
XXX soft nofile 1024
XXX hard nofile 65536
XXX soft stack 10240
下面这块直接用
oracle soft nproc 16384
oracle hard nproc 16384
oracle soft nofile 16384
oracle hard nofile 65536
oracle soft stack 10240
oracle hard stack 32768
#oracle hard memlock 6000000
#oracle soft memlock 6000000
8、运转指令查看vim /etc/pam.d/login
,增加以下行(一般在78行,有了就不用增加了)
session required pam_limits.so
9、运转指令查看vim /etc/pam.d/su
,没有以下行就自己加上(一般在52行)
session required pam_limits.so
10、封闭透明大页和NUMA
功用
sudo sed -ie 's/quiet/quiet transparent_hugepage=never numa=off/g' /etc/default/grub
cat /etc/default/grub
sudo grub-mkconfig -o /etc/grub2.cfg
11、封闭防火墙
sudo ufw disable
12、装备.bashrc
sudo sh -c 'echo "export LC_ALL=C" >> /home/oracle/.bashrc'
cat /home/oracle/.bashrc
装备oracle的环境变量(可装置完结后装备)
1、翻开.profile
文件,为文件中增加以下行
cd ~
vim .profile
export ORACLE_BASE=/home/oracle/app/oracle
export ORACLE_HOME=${ORACLE_BASE}/product/11.2.0/dbhome_1
export ORACLE_SID=orcl
export ORACLE_UNQNAME=orcl
export NLS_LANG="Simplified Chinese ZHS16GBK"
export PATH=${PATH}:${ORACLE_HOME}/bin/:$ORACLE_HOME/lib64;
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${ORACLE_HOME}/lib
2、首要查看一下oracle
的环境变量是否是你设定的
echo $ORACLE_BASE
echo $ORACLE_HOME
echo $PATH
3、假如不是,从头敞开一个终端,应该就能够了。或者履行以下指令
source ~/.profile
这个指令的作用是使你设的环境变量收效
启动oracle装置程序开端装置
1、回到虚拟机的体系中,翻开终端
su root
xhost +
export LANG=en_US.UTF-8
env|grep ORACLE
export CV_ASSUME_DISTID=RHEL7.6
su oracle
2、进入你刚刚解压缩database
的那个途径位置
cd /usr/local/oracle/database
3、设置英语
export LANG=US
4、启动装置程序
./runInstaller -jreLoc /usr/local/java/jdk1.8.0_351
然后等候程序启动,呈现界面
开端装置
1、撤销勾选,下一步
2、为了便利,挑选第一个,装置并装备
3、挑选Server Class,持续下一步
4、挑选单实例装置,下一步
5、挑选高档装置,然后下一步
6、没有中文可选,就选英文,下一步
7、挑选第一个企业版,下一步
8、查看目录是否正确,和你装备的环境变量有关,一般默许
9、一般默许,下一步
10、下一步
11、指定数据库标识,全局数据库名和oracle
数据标识尽量相同
12、四个选项,主张装备如下
点击Character sets
挑选Simplified Chinese ZHS16GBK
13、默许
14、默许挑选,下一步
15、是否启用主动备份,测试环境就不启用了
16、设置密码,根据自己习惯,第二个挑选为所有用户均采用一个口令
17、挑选组,默许
18、先决条件查看,这一步会查看出许多问题,能够越过,也能够找这些rpm
包来装置 其实咱们看的时分会发现,这些rpm
包都是装置了的,可是版别不对,是因为64位和32位的问题
19、开端装置
20、等候装置
21、68%,大部分状况都会报错,乃至好几个过错
接下来处理68%报错
卡在68%时,处理报错
修正后,都点retry
,只要rdbms/lib/ins_rdbms.mk
这个文件报错点contiue
(retry
不行就contiue
)
下面的报错,最好都vim
进入文件去改
指令形式下,查找
:/要查找的字符串
1、第一个过错
Error in invoking target 'install' of makefile'/home/oracle/app/oracle/product/11.2.0/dbhome_1/ctx/lib/ins_ctx.mk'. See '/home/oracle/app/oraInventory/logs/installActions2020-01-02_11-43-42AM.log' for details.
有或许是glibc
的版别过高所致(高于2.14
),处理办法:下载装置glibc-static-2.17-292.el7.x86_64.rpm
若装置需求依靠时可强制装置--force --nodeps
,先进入使用xftp
放到的文件夹
rpm -ivh glibc-static-2.17-292.el7.x86_64.rpm --force --nodeps
另起一个终端,修正文件
vim /home/oracle/app/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
2、第二个过错
#'agent nmhs'
,修正ins_emagent.mk
190行,在$(MK_EMAGENT_NMECTL)
后增加 -lnnz11
vim /home/oracle/app/oracle/product/11.2.0/dbhome_1/sysman/lib/ins_emagent.mk
3、其余过错
下面的过错可vim
进入对应文件修正,也可直接运转下面的指令进行修正
第三个--------
# 'all_no_orcl'的kfod问题,修正env_rdbms.mk的KFOD_LINKLINE变量(2913行),增加 -Wl,--no-as-needed
sudo sed -i "s/KFOD_LINKLINE=$(LINK) $(S0MAIN)/& -Wl,--no-as-needed/g" /home/oracle/app/oracle/product/11.2.0/dbhome_1/rdbms/lib/env_rdbms.mk
第四个-----------
# 'all_no_orcl'的amdu问题,修正env_rdbms.mk的AMDU_LINKLINE变量(2922行),增加 -Wl,--no-as-needed
sudo sed -i "s/AMDU_LINKLINE=$(LINK) $(S0MAIN)/& -Wl,--no-as-needed/g" /home/oracle/app/oracle/product/11.2.0/dbhome_1/rdbms/lib/env_rdbms.mk
第五个------------
# 'all_no_orcl'的genorasdksh问题,修正genorasdksh (289行),增加 -Wl,--no-as-needed
sudo sed -i "s/$LD $LD_RUNTIME $LD_OPT/& -Wl,--no-as-needed/g" /home/oracle/app/oracle/product/11.2.0/dbhome_1/bin/genorasdksh
第六个------------
# 'all_no_orcl'的renamedg问题,修正env_rdbms.mk的KFNDG_LINKLINE变量(2918行),增加 -Wl,--no-as-needed
sudo sed -i "s/KFNDG_LINKLINE=$(LINK) $(S0MAIN)/& -Wl,--no-as-needed/g" /home/oracle/app/oracle/product/11.2.0/dbhome_1/rdbms/lib/env_rdbms.mk
第七个------------
这个文件中没有找到GETCRSHOME_LINKLINE
# 'install'的ins_srvm.mk问题,修正env_srvm.mk(ins_srvm.mk)的GETCRSHOME_LINKLINE变量(1899行),增加 -Wl,--no-as-needed
sudo sed -i "s/GETCRSHOME_LINKLINE=$(LINK)/& -Wl,--no-as-needed/g" /home/oracle/app/oracle/product/11.2.0/dbhome_1/srvm/lib/env_srvm.mk
第八个------------
# 'install'的ins_net_server.mk问题,修正env_network.mk的TNSLSNR_LINKLINE变量(2232行),增加 -Wl,--no-as-needed
sudo sed -i "s/TNSLSNR_LINKLINE=$(LINK)/& -Wl,--no-as-needed/g" /home/oracle/app/oracle/product/11.2.0/dbhome_1/network/lib/env_network.mk
第九个-------------
# 'irman ioracle'的ins_rdbms.mk问题,修正env_rdbms.mk的ORACLE_LINKLINE变量(2759行),增加 -Wl,--no-as-needed
sudo sed -i "s/ORACLE_LINKLINE=$(ORACLE_LINKER) $(PL_FLAGS)/& -Wl,--no-as-needed/g" /home/oracle/app/oracle/product/11.2.0/dbhome_1/rdbms/lib/env_rdbms.mk
4、卡在68%过错处理
成功闯过68%过错这关,持续等候装置
如下,阐明已经装置成功
还要在终端中运转如下的指令
/home/oracle/app/oraInventory/orainstRoot.sh
/home/oracle/app/oracle/product/11.2.0/dbhome_1/root.sh
完结封闭
最终源地址文件记住还原回来(备份备份备份)