一.安装

 oracle官方安装指导文档 MOS账号登录

主流操作系统和oracle版本支持列表

oracle版本

linux版本 

windows版本

11gR2

oracle linux/redhat  4~7 

2012R2

19c

oracle linux/redhat  7

2012R2~2019

资源规划 

资源 2C8G 100G

oracle linux 7 x86

192.168.77.181 oracledb

oracle 11.2.0.4

目录规划

ORACLE_BASE目录:/oracle/app/oracle
ORACLE_HOME目录:/oracle/app/oracle/product/11g/db_1
数据文件存储路径: /oracle/app/oracle/oradata
安装使用升级目录:/oracle/app/oraInventor
  • 1.
  • 2.
  • 3.
  • 4.

1.安装前准备

#配置hosts
hostnamectl set-hostname oracledb
cat >>/etc/hosts<<'EOF'
192.168.77.181 oracledb
EOF
#关闭SELINUX和防护墙
systemctl disable firewalld
systemctl stop firewalld
sed -i 's/^SELINUX=enforcing$/SELINUX=disabled/' /etc/selinux/config
setenforce 0
#创建组
groupadd oinstall
groupadd dba
#创建oracle用户,将oracle添加oinstall组和附加组dba,这两个组后面安装数据库会用到
useradd -g oinstall -G dba oracle
echo 123456 | passwd --stdin oracle
#创建目录并授权
mkdir -p /oracle/app/oracle
chown -R oracle:oinstall /oracle
chmod -R 775 /oracle
#环境变量配置
su  - oracle
cat >> ~/.bash_profile<<'EOF'
export ORACLE_BASE=/oracle/app/oracle
export ORACLE_HOME=/oracle/app/oracle/product/11g/db_1
export ORACLE_UNQNAME=ALIDB
export ORACLE_SID=ALIDB
export NLS_LANG="AMERICAN_AMERICA.ZHS16GBK"
export TNS_ADMIN=$ORACLE_HOME/network/admin
export PATH=$PATH:$ORACLE_HOME/bin
export CLASSPATH=$CLASSPATH:$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib:$ORACLE_HOME/network/jlib
EOF
source ~/.bash_profile
exit
#使用系统镜像包 配置yum源
mount /dev/cdrom /mnt
cd /etc/yum.repos.d/
gzip *.repo
cat >redhat.repo<<'EOF'
[redhat7]
name=redhat7
baseurl=file:///mnt
gpgcheck=0
enable=1
EOF
#安装依赖
yum -y install autoconf \
automake \
binutils \
binutils-devel \
bison  \
cpp \
compat-db*  \
compat-gcc-34 \
compat-gcc-34-c++ \
compat-libcap1 \
compat-libstdc++-33 \
compat-libstdc++-33.i686 \
elfutils-libelf-devel-0.97 \
elfutils-libelf-devel \
elfutils-libelf \
elfutils-libelf-devel \
expat \
gcc \
gcc-c++ \
glibc-* \
glibc-*.i686 \
glibc \
glibc-common \
glibc-devel \
glibc-headers \
ksh \
libgcc \
libXpm-*.i686\
libXp.so.6 \
libXt.so.6 \
libXtst.so.6 \
libXext \
libXext.i686 \
libXtst \
libXtst.i686 \
libX11 \
libX11.i686 \
libXau \
libXau.i686 \
libxcb \
libxcb.i686 \
libXi \
libXi.i686 \
libXtst \
libstdc++-docs \
libgcc_s.so.1 \
libstdc++.i686 \
libstdc++-devel \
libstdc++-devel.i686 \
libaio \
libaio.i686 \
libaio-devel \
libaio-devel.i686 \
lrzsz \
libXp \
libaio-devel \
make \
numactl \
numactl-devel \
python-devel \
sysstat \
unixODBC  \
unixODBC-devel
#修改文件最大句柄、最大线程、最大内存等 memlock接近物理内存
cat >>/etc/security/limits.conf<<'EOF'
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
oracle hard memlock 6000000
oracle soft memlock 6000000
EOF
#内核参数,后面安装过程中会检测这些参数
cat >> /etc/sysctl.conf<<'EOF'  
# 设置最大内存共享段大小,物理内存的一半
kernel.shmmax = 4000000000
# 控制共享内存的分段大小,kernel.shmmax / 页大小
kernel.shmall = 31250000
# 设置单个共享内存段的最大权限,确定的物理内存的一半
kernel.shmmax = 4000000000
# 设置系统允许的共享内存段的最大数目
kernel.shmmni = 4096
# 设置系统范围内内存分配策略
vm.overcommit_memory = 0
# 设置文件描述符的数量
fs.file-max = 65536
# 设置TCP连接的最大缓冲区数量
net.ipv4.ip_local_port_range = 1024 65000
# 设置TCP接收/发送缓冲区的默认大小
net.core.rmem_default = 262144
net.core.wmem_default = 262144
net.core.rmem_max = 2097152
net.core.wmem_max = 2097152
EOF
sysctl -p
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
  • 40.
  • 41.
  • 42.
  • 43.
  • 44.
  • 45.
  • 46.
  • 47.
  • 48.
  • 49.
  • 50.
  • 51.
  • 52.
  • 53.
  • 54.
  • 55.
  • 56.
  • 57.
  • 58.
  • 59.
  • 60.
  • 61.
  • 62.
  • 63.
  • 64.
  • 65.
  • 66.
  • 67.
  • 68.
  • 69.
  • 70.
  • 71.
  • 72.
  • 73.
  • 74.
  • 75.
  • 76.
  • 77.
  • 78.
  • 79.
  • 80.
  • 81.
  • 82.
  • 83.
  • 84.
  • 85.
  • 86.
  • 87.
  • 88.
  • 89.
  • 90.
  • 91.
  • 92.
  • 93.
  • 94.
  • 95.
  • 96.
  • 97.
  • 98.
  • 99.
  • 100.
  • 101.
  • 102.
  • 103.
  • 104.
  • 105.
  • 106.
  • 107.
  • 108.
  • 109.
  • 110.
  • 111.
  • 112.
  • 113.
  • 114.
  • 115.
  • 116.
  • 117.
  • 118.
  • 119.
  • 120.
  • 121.
  • 122.
  • 123.
  • 124.
  • 125.
  • 126.
  • 127.
  • 128.
  • 129.
  • 130.
  • 131.
  • 132.
  • 133.
  • 134.
  • 135.
  • 136.
  • 137.
  • 138.
  • 139.
  • 140.
  • 141.

2.安装

#切换到oracle用户
su - oracle
cd /oracle
#上传安装包到此目录
rz linux.x64_11gR2_database_1of2.zip
rz linux.x64_11gR2_database_2of2.zip
#解压
unzip linux.x64_11gR2_database_1of2.zip
unzip linux.x64_11gR2_database_2of2.zip
#图形化安装
cd /oracle/database/
./runInstaller
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.

不提供邮箱地址---取消安全更新---yes

oracle 11g(11.2.0.4)单节点部署 图形化_11.2.0.4

oracle 11g(11.2.0.4)单节点部署 图形化_oracle_02

跳过软件更新

oracle 11g(11.2.0.4)单节点部署 图形化_oracle_03

创建并配置数据库

oracle 11g(11.2.0.4)单节点部署 图形化_11.2.0.4_04

服务器类型

oracle 11g(11.2.0.4)单节点部署 图形化_oracle_05

单实例安装

oracle 11g(11.2.0.4)单节点部署 图形化_oracle_06

高级安装

oracle 11g(11.2.0.4)单节点部署 图形化_oracle_07

中文语言添加到右边

oracle 11g(11.2.0.4)单节点部署 图形化_11.2.0.4_08

选企业版

oracle 11g(11.2.0.4)单节点部署 图形化_oracle_09

直接下一步

oracle 11g(11.2.0.4)单节点部署 图形化_11.2.0.4_10

直接下一步

oracle 11g(11.2.0.4)单节点部署 图形化_11.2.0.4_11

选OLTP 事务型

oracle 11g(11.2.0.4)单节点部署 图形化_11.2.0.4_12

默认orcl,自定义全局数据名字和实例名为ALIDB

oracle 11g(11.2.0.4)单节点部署 图形化_11.2.0.4_13

memory内存自动管理,默认

oracle 11g(11.2.0.4)单节点部署 图形化_oracle_14

字符集,根据需求,这里选简体中文ZHS16GBK,然后下一步

oracle 11g(11.2.0.4)单节点部署 图形化_oracle_15

直接下一步

oracle 11g(11.2.0.4)单节点部署 图形化_11.2.0.4_16

直接下一步

oracle 11g(11.2.0.4)单节点部署 图形化_11.2.0.4_17

直接下一步

oracle 11g(11.2.0.4)单节点部署 图形化_11.2.0.4_18

统一自定义设置管理员密码---yes  密码不要包含某些特殊字符,我设置了Alibaby007,密码要求如下

oracle 11g(11.2.0.4)单节点部署 图形化_oracle_19

oracle 11g(11.2.0.4)单节点部署 图形化_oracle_20

选oinstall后直接下一步

oracle 11g(11.2.0.4)单节点部署 图形化_11.2.0.4_21

预安装检测失败---点击修复---手动root用户执行脚本---Check Again--Ignore all

oracle 11g(11.2.0.4)单节点部署 图形化_oracle_22

root用户执行脚本,点OK

/tmp/CVU_11.2.0.4.0_oracle/runfixup.sh
  • 1.

oracle 11g(11.2.0.4)单节点部署 图形化_oracle_23

安装pdksh-5.2.14

oracle 11g(11.2.0.4)单节点部署 图形化_11.2.0.4_24

rpm包 下载地址,切换到软件包,搜索pdksh-5.2.14-37.el5.x86_64.rpm,下载后安装

oracle 11g(11.2.0.4)单节点部署 图形化_oracle_25

#root用户登录,上传pdksh-5.2.14包
rz pdksh-5.2.14-37.el5.x86_64.rpm
rpm -ivh pdksh-5.2.14-37.el5.x86_64.rpm
#报错error: Failed dependencies: pdksh conflicts with (installed) ksh-20120801-139.0.1.el7.x86_64
rpm -e ksh-20120801-139.0.1.el7.x86_64
#再次安装
rpm -ivh pdksh-5.2.14-37.el5.x86_64.rpm
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.

再次检测

oracle 11g(11.2.0.4)单节点部署 图形化_oracle_26

勾选Ignore ALL 忽略后下一步---yes

oracle 11g(11.2.0.4)单节点部署 图形化_11.2.0.4_27

oracle 11g(11.2.0.4)单节点部署 图形化_oracle_28

点安装,等待安装完成

oracle 11g(11.2.0.4)单节点部署 图形化_oracle_29

安装过程报错Error in invoking target 'agent nmhs' of makefile  

oracle 11g(11.2.0.4)单节点部署 图形化_11.2.0.4_30

解决方法:在makefile中添加链接libnnz11库的参数

vim /oracle/app/oracle/product/11g/db_1/sysman/lib/ins_emagent.mk
改
176 $(MK_EMAGENT_NMECTL)
为
176 $(MK_EMAGENT_NMECTL) -lnnz11
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.

重试Retry

oracle 11g(11.2.0.4)单节点部署 图形化_oracle_31

点OK

oracle 11g(11.2.0.4)单节点部署 图形化_11.2.0.4_32

root用户运行2个脚本,后点OK

#root用户登录
/oracle/app/oraInventory/orainstRoot.sh 
#默认回车Enter the full pathname of the local bin directory: [/usr/local/bin]:
/oracle/app/oracle/product/11g/db_1/root.sh
  • 1.
  • 2.
  • 3.
  • 4.

oracle 11g(11.2.0.4)单节点部署 图形化_11.2.0.4_33

完成安装---关闭

oracle 11g(11.2.0.4)单节点部署 图形化_11.2.0.4_34

em登录  https://ip:1158/em

oracle 11g(11.2.0.4)单节点部署 图形化_11.2.0.4_35

3.基本操作

oracle启停

#oracle用户登录
su - oracle
#查看监听
lsnrctl status
#####关闭数据库######
#关闭监听
lsnrctl stop
#登录后关闭
sqlplus / as sysdba
alter system switch logfile;
alter system checkpoint;
shutdown immediate;
exit
#####开启数据库######
#开启监听
lsnrctl start
#登录后开启
sqlplus / as sysdba
startup
alter system register;
exit
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.

基本操作

sqlplus / as sysdba
#创建表空间
create tablespace ALI datafile '/oracle/app/oracle/oradata/ALIDB/ALI01.dbf' size 128M autoextend on next 100M maxsize unlimited;
#创建用户
create user "ALI" identified by "Alibaby007" default tablespace ALI;
grant dba to ALI;
#连接数据库
conn ALI/Alibaby007
#创建数据库对象
CREATE TABLE city(city_id CHAR(3) NOT NULL,city_name VARCHAR(40) NULL,region_id INT NULL);
INSERT INTO city(city_id,city_name,region_id) VALUES('BJ','北京',1);
INSERT INTO city(city_id,city_name,region_id) VALUES('SH','上海',2);
INSERT INTO city(city_id,city_name,region_id) VALUES('NJ','南京',2);
commit;
select * from city;
exit
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.