Ubuntu20.04安装Oracle11g(FS)(亲测有效)
#!/bin/bash
# OS: ubuntu 20.04.4
# 内存:8G
# 业务系统:核算系统
# 主机名:shhs52
# IP地址:192.168.1.52
# db name: shhsdb
# instance name: shhsdb
# 数据库版本: Oracle 11g FS
# 参考地址:https://www.cnblogs.com/pxg950110/p/793909492_2.html
# 所涉及到的软件包联网从1804开源网站中安装,部分互联网搜索
# 作者shannon,微信号shannon3730,转载请加上作者信息。
##修改内存大小,设置网卡
2C 8G;1个网卡
##磁盘配置
100G /
##手动设置IP
shhs52:
192.168.1.52
DNS:192.168.1.1
##配置源,安装依赖,bionic 1804 有 gcc-4.8/g++-4.8
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
sudo sh -c 'cat << EOF > /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
EOF'
cat /etc/apt/sources.list
#清空缓存
sudo apt-get clean
sudo apt-get update
#for 11g
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
#安装低版本libaio,必须
dpkg -l | grep libaio
sudo dpkg -P libaio-dev
sudo dpkg -P libaio1
#下面3个包自行在网上搜索
sudo dpkg -i multiarch-support_2.28-10+deb10u1_amd64.deb
sudo dpkg -i libaio1_0.3.109-3_amd64.deb
sudo dpkg -i libaio-dev_0.3.109-3_amd64.deb
#gcc、g++降级
sudo mv /usr/bin/gcc /usr/bin/gcc-9.4
sudo mv /usr/bin/g++ /usr/bin/g++-9.4
#sudo mv /usr/bin/cpp /usr/bin/cpp-9.4
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
#添加路径
sudo mkdir /usr/lib64
#添加软链接,加#号的不用执行
sudo ln -sf /bin/bash /bin/sh
sudo ln -s /etc /etc/rc.d
#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 -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/libpthread_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/
#拷贝libpthread_nonshared.a到/usr/lib64/,需提前准备,互联网上下载或者其它系统提取
sudo cp libpthread_nonshared.a /usr/lib64/
sudo chmod 775 /usr/lib64/libpthread_nonshared.a
##设置主机名
sudo hostnamectl set-hostname shhs52
hostname
##设置hosts
sudo sh -c 'echo "192.168.1.52 shhs52" >> /etc/hosts'
sudo cat /etc/hosts
##设置英文环境
sudo sh -c 'echo "export LANG=en_US.UTF-8" >> /root/.profile'
sudo cat /root/.profile
##配置用户和组
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
#为oracle用户添加sudo免密权限
sudo sh -c 'echo "oracle ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers'
##创建目录和权限
sudo mkdir -p /oracle
sudo mkdir -p /oracle/app/oracle/product/11.2.0
sudo mkdir -p /oracle/app/oraInventory
sudo chown -R oracle:oinstall /oracle
sudo chmod -R 775 /oracle
sudo chown -R oracle:oinstall /oradata
sudo chown -R oracle:oinstall /archive
sudo chown -R oracle:oinstall /backup
sudo chmod -R 775 /oradata
sudo chmod -R 775 /archive
sudo chmod -R 775 /backup
##配置系统限制
sudo sh -c 'cat << EOF >> /etc/security/limits.conf
#ORACLE SETTING
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
EOF'
cat /etc/security/limits.conf
sudo sh -c 'echo "session required pam_limits.so" >> /etc/pam.d/login'
cat /etc/pam.d/login
##修改内核参数,物理内存8G
sudo sh -c 'cat << EOF >> /etc/sysctl.conf
#ORACLE SETTING
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
EOF'
cat /etc/sysctl.conf
#sudo sysctl -p
##关闭透明大页和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
##关闭防火墙
sudo ufw disable
#sudo ufw status
##配置.bashrc
sudo sh -c 'echo "export LC_ALL=C" >> /home/oracle/.bashrc'
cat /home/oracle/.bashrc
##配置oracle环境变量
sudo sh -c 'cat << EOF >> /home/oracle/.profile
export PS1="[\`whoami\`@\`hostname\`:"'\$PWD]\$'
export TMP=/tmp
export TMPDIR=\$TMP
export LANG=en_US.UTF-8
#export LANG=zh_CN.UTF-8
export ORACLE_BASE=/oracle/app/oracle
export ORACLE_HOME=\$ORACLE_BASE/product/11.2.0/db_1
export ORACLE_UNQNAME=shhsdb
export ORACLE_SID=shhsdb
export ORACLE_TERM=xterm
export NLS_DATE_FORMAT="yyyy-mm-dd HH24:MI:SS"
export NLS_LANG=AMERICAN_AMERICA.UTF8
export PATH=.:\$PATH:\$HOME/.local/bin:\$HOME/bin:\$ORACLE_HOME/bin:\$ORACLE_HOME/OPatch:/usr/ccs/bin
export LD_LIBRARY_PATH=$ORACLE_HOME/lib
export THREADS_FLAG=native
umask=022
alias sqlplus="rlwrap sqlplus"
alias rman="rlwrap rman"
EOF'
cat /home/oracle/.profile
# source ~/.profile
-----------------------------------------------------------------
Oracle 11gr2 11.2.0.4安装
-----------------------------------------------------------------
#上传软件并解压
#上传至backup文件夹
sudo cp p13390677_112040_Linux-x86-64_database.zip /backup
cd /backup
sudo unzip p13390677_112040_Linux-x86-64_database.zip
sudo chown -R oracle:oinstall /backup
sudo chmod -R 775 /backup
#安装
su - oracle
xhost +
export LANG=en_US.UTF-8
env|grep ORACLE
export CV_ASSUME_DISTID=RHEL7.6
cd /backup/database
ls
./runInstaller
##报错处理
#'agent nmhs',修改ins_emagent.mk 176行,在$(MK_EMAGENT_NMECTL)后添加 -lnnz11
sudo sed -i 's/^\(\s*\$(MK_EMAGENT_NMECTL)\)\s*$/\1 -lnnz11/g' /oracle/app/oracle/product/11.2.0/db_1/sysman/lib/ins_emagent.mk
# '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" /oracle/app/oracle/product/11.2.0/db_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" /oracle/app/oracle/product/11.2.0/db_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" /oracle/app/oracle/product/11.2.0/db_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" /oracle/app/oracle/product/11.2.0/db_1/rdbms/lib/env_rdbms.mk
# 'install'的ins_srvm.mk问题,修改env_srvm.mk的GETCRSHOME_LINKLINE变量(1899行),添加 -Wl,--no-as-needed
sudo sed -i "s/GETCRSHOME_LINKLINE=\$(LINK)/& -Wl,--no-as-needed/g" /oracle/app/oracle/product/11.2.0/db_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" /oracle/app/oracle/product/11.2.0/db_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" /oracle/app/oracle/product/11.2.0/db_1/rdbms/lib/env_rdbms.mk
#以ROOT执行脚本
sudo /oracle/app/oraInventory/orainstRoot.sh
sudo /oracle/app/oracle/product/11.2.0/db_1/root.sh
#创建监听
netca
lsnrctl start
netstat -an|grep 1521
##创建实例
dbca
shhsdb
存储位置
/oradata
###Oracle 11g 安装后设置
#180天密码过期
alter profile default limit PASSWORD_LIFE_TIME UNLIMITED;
#关闭审计
show parameter audit;
alter system set audit_trail=none scope=spfile;
shutdown immediate
startup
#创建数据库表、用户、授权
create tablespace itpux datafile '/oradata/shhsdb/itpux01.dbf' size 20m;
#create tablespace itpux datafile '/oradata/SHHSDB/itpux01.dbf' size 20m;
create user itpux identified by itpux123 default tablespace itpux;
grant dba to itpux;
#创建表
sqlplus "/as sysdba";
conn itpux/itpux123;
create table hs_itpuxt1(id number(12) primary key, name varchar(20)) ;
insert into hs_itpuxt1 values(1,'hsxtitpux01');
insert into hs_itpuxt1 values(2,'hsxtitpux02');
commit;
select * from hs_itpuxt1;