阿里/腾讯云静默安装Oracle11G超级详细教程

阿里/腾讯云linux安装Oracle11G

本教程使用的环境是:

1H2G

Centos7.6 64bit

检查硬件环境

内存要求>1GB(最好是2GB),交换内存大于物理内存的1.5倍,硬盘空间大于16GB。

下面是通过root用户操作

#查看当前的内存的使用,这个命令比较直观
free -m

在这里插入图片描述

如果交换内存比较小,我们文件作为swap分区来增加swap大小

#创建存放充当swap分区文件的目录
mkdir /swap
#创建充当swap分区的文件,文件大小就是要增加的swap大小,of是文件位置,这里我们增加2G内存=2048*1M
dd if=/dev/zero of=/swap/swapfile bs=1M count=2048
#格式化交换分区文件
mkswap /swap/swapfile
#给分区文件设置下权限:0600
chmod 0600 /swap/swapfile
{
#启动交换分区文件
swapon /swap/swapfile
#如果提示设备或资源忙,先执行
swapoff /swap/swapfile
}
#然后设置开机自启,编辑/etc/fstab追加:
/swap/swapfile swap swap defaults 0 0

阿里/腾讯云静默安装Oracle11G超级详细教程_第1张图片

修改下各种配置文件,也就是软件环境

修改主机名,这个应该是规范化

  hostnamectl set-hostname oracledb
  echo "127.0.0.1     oracledb" >>/etc/hosts

在这里插入图片描述
关闭selinux

  sed -i "s/SELINUX=enforcing/SELINUX=disabled/" /etc/selinux/config
  #这个是使修改立即生效
  setenforce 0

在这里插入图片描述
0、下载Orcle11G
官方网站:https://www.oracle.com/database/technologies/oracle-database-software-downloads.html
根据自己的服务器,下载相应的软件,我的系统是64位的,所以下载的是 Linux x86-64的,下载完的两个文件如下

  • linux.x64_11gR2_database_1of2.zip
  • linux.x64_11gR2_database_2of2.zip
    在这里插入图片描述
    然后用sftp工具上传到服务器

此处使用CRT

rz命令 弹框选择文件路径点击上传即可
(:要安装lrzszrz,没安装的话请使用: yum install -y lrzsz 来安装)

阿里/腾讯云静默安装Oracle11G超级详细教程_第2张图片
输入rz命令回车 选择文件->点击add->files to send出现文件路径->点击ok(注:所有上传文件在root目录下!一共上传两份!)阿里/腾讯云静默安装Oracle11G超级详细教程_第3张图片

正在上传耐心等待…
在这里插入图片描述
上传完成
在这里插入图片描述

更换yum源,可以跳过
更换为阿里云的yum源,使yum命令下载软件更快

cd /etc
mv yum.repos.d yum.repos.d.bak
mkdir yum.repos.d
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
#清除缓存
yum clean all
#更新缓存
yum makecache

安装oracle依赖库
不想这样的话,可以检查下哪个没装

yum -y install binutils \
compat-libstdc++-33 \
elfutils-libelf \
elfutils-libelf-devel \
expat \
gcc \
gcc-c++ \
glibc \
glibc-common \
glibc-devel \
glibc-headers \
libaio \
libaio-devel \
libgcc \
libstdc++ \
libstdc++-devel \
make \
pdksh \
sysstat \
unixODBC \
unixODBC-devel

最后再回头检查下

rpm -q \
binutils \
compat-libstdc++-33 \
elfutils-libelf \
elfutils-libelf-devel \
expat \
gcc \
gcc-c++ \
glibc \
glibc-common \
glibc-devel \
glibc-headers \
libaio \
libaio-devel \
libgcc \
libstdc++ \
libstdc++-devel \
make \
pdksh \
sysstat \
unixODBC \
unixODBC-devel

阿里/腾讯云静默安装Oracle11G超级详细教程_第4张图片
通过yum install pdksh -y 安装缺少 package ,这个库yum源中没有,需要自己下载;
通过wget命令直接下载pdksh的rpm包,下载到至/tmp/

wget -O /tmp/pdksh-5.2.14-37.el5_8.1.x86_64.rpm http://vault.centos.org/5.11/os/x86_64/CentOS/pdksh-5.2.14-37.el5_8.1.x86_64.rpm
cd /tmp
#安装
rpm -ivh pdksh-5.2.14-37.el5_8.1.x86_64.rpm

阿里/腾讯云静默安装Oracle11G超级详细教程_第5张图片
注意:**

安装oracle时,可能会提示某些依赖库没有安装(而实际上你安装了),这个是因为oracle需要32位的软件,而你安装了64位。不过不要紧,我们可以忽略掉,这个不影响什么。

Centos7中pdksh库就是ksh库,这个也可以忽略。

添加oracle用户组和用户
如果要安装Oracle数据库,则需要以下本地操作系统组和用户:

  1. Oracle inventory组(通常为 oinstall)
  2. OSDBA组 (通常为 dba)
  3. OSOPER组 (通常为 oper)
  4. Oracle软件所有者(通常为 oracle)
groupadd oinstall
groupadd dba
useradd -g oinstall -G dba oracle -d /home/oracle
#验证是否成功
id oracle
#给oracle用户设置密码
passwd oracle

在这里插入图片描述
阿里/腾讯云静默安装Oracle11G超级详细教程_第6张图片

**修改内核参数**
vi /etc/sysctl.conf
## 追加如下内容:
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmni = 4096
# kernel.shmmax 参数设置为物理内存的一半
kernel.shmmax = 1073741824
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

阿里/腾讯云静默安装Oracle11G超级详细教程_第7张图片

#使修改立即生效
sysctl -p

限制oracle用户的shell权限

vi /etc/security/limits.conf
#末尾追加
oracle soft nproc 2047 
oracle hard nproc 16384 
oracle soft nofile 1024 
oracle hard nofile 65536 
oracle soft stack 10240 

阿里/腾讯云静默安装Oracle11G超级详细教程_第8张图片
修改用户验证选项

vi /etc/pam.d/login
#末尾追加
session  required   /lib64/security/pam_limits.so
session  required   pam_limits.so

阿里/腾讯云静默安装Oracle11G超级详细教程_第9张图片
修改/etc/profile文件

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

阿里/腾讯云静默安装Oracle11G超级详细教程_第10张图片
让修改立即生效

source /etc/profile

开始安装

[root@oracledb ~]#  mkdir -p /opt/oracle/product/11.2.0
[root@oracledb ~]# mkdir /opt/oracle/oradata
[root@oracledb ~]# mkdir /opt/oracle/oraInventory
[root@oracledb ~]# mkdir /opt/oracle/fast_recovery_area
[root@oracledb ~]# chown -R oracle:oinstall /opt/oracle
[root@oracledb ~]# chmod -R 775 /opt/oracle

阿里/腾讯云静默安装Oracle11G超级详细教程_第11张图片

解压安装包

[root@oracledb ~]# unzip linux.x64_11gR2_database_1of2_4.zip 
[root@oracledb ~]# unzip linux.x64_11gR2_database_2of2.zip 

将解压后的文件夹直接移动到/software目录下:

此时root目录下会生成database文件 创建software文件夹,将database移动过去
[root@oracledb ~]# mkdir /software
[root@oracledb ~]#  mv database/ /software/
[root@oracledb ~]# cd /software
[root@oracledb software]# ll

阿里/腾讯云静默安装Oracle11G超级详细教程_第12张图片
修改目录所属用户

[root@oracledb software]# chown -R oracle:oinstall database

复制应答文件到用户目录

[root@oracledb software]# cp -R /software/database/response /home/oracle

解压完成后会生成database目录,解压后的文件中database/response下有有db_install.rsp、dbca.rsp和netca.rsp三个应答文件,分别数据库安装文件、建立数据库实例和监听配置安装文件,在下面的步骤中会用到这3个文件(这三个文件在/home/oracle/response下).
在这里插入图片描述

db_install.rsp:安装应答

dbca.rsp:创建数据库应答

netca.rsp:建立监听、本地服务名等网络设置的应答

编辑数据库安装文件db_install.rsp

vi db_install.rsp
20 oracle.install.responseFileVersion=/oracle/install/rspfmt_dbinstall_response_schema_v11_2_0
29 oracle.install.option=INSTALL_DB_SWONLY #安装类型
37 ORACLE_HOSTNAME=DATAFS #主机名称
42 UNIX_GROUP_NAME=oinstall #安装组
47 INVENTORY_LOCATION=/opt/oracle/inventory #INVENTORY目录
78 SELECTED_LANGUAGES=en,zh_CN #选择语言
83 ORACLE_HOME=/opt/oracle/product/112010/db_1 #oracle_home
88 ORACLE_BASE=/opt/oracle #oracle_base
99 oracle.install.db.InstallEdition=EE ##oracle版本
108 oracle.install.db.isCustomInstall=true
142 oracle.install.db.DBA_GROUP=dba #dba用户组
147 oracle.install.db.OPER_GROUP=dba #oper用户组
160 oracle.install.db.config.starterdb.type=GENERAL_PURPOSE #数据库类型
165 oracle.install.db.config.starterdb.globalDBName=orcl #globalDBName
170 oracle.install.db.config.starterdb.SID=orcl #SID
200 oracle.install.db.config.starterdb.memoryLimit=800 #自动管理内存的最小内存(M)
233 oracle.install.db.config.starterdb.password.ALL=oracle #设定所有数据库用户使用同一个密码
385 DECLINE_SECURITY_UPDATES=true #设置安全更新

不会配置参考这位大佬的翻译版详细配置:配置db_install.rsp详细参数

安装数据库软件(使用oracle用户)
切换到oracle用户下:

[root@oracledb response]# su - oracle

在这里插入图片描述

[oracle@oracledb ~]$ vim .bash_profile
#在末尾添加
ORACLE_BASE=/opt/oracle
ORACLE_HOME=$ORACLE_BASE/product/11.2.0
ORACLE_SID=orcl
PATH=$PATH:$ORACLE_HOME/bin
export ORACLE_BASE ORACLE_HOME ORACLE_SID PATH

阿里/腾讯云静默安装Oracle11G超级详细教程_第13张图片
注意:标红处必须与创建的数据库实例名称一致,否则数据库启动后无法访问。第一次配置完记得source一下。

source .bash_profile

编辑静默安装响应文件

[oracle@oracledb response]$ cd /home/oracle/response
[oracle@oracledb response]$ vim db_install.rsp
oracle.install.option=INSTALL_DB_SWONLY

ORACLE_HOSTNAME=oracledb

UNIX_GROUP_NAME=oinstall

INVENTORY_LOCATION=/opt/oracle/oraInventory

SELECTED_LANGUAGES=en,zh_CN

ORACLE_HOME=/opt/oracle/product/11.2.0

ORACLE_BASE=/opt/oracle

oracle.install.db.InstallEdition=EE

oracle.install.db.DBA_GROUP=dba

oracle.install.db.OPER_GROUP=dba

DECLINE_SECURITY_UPDATES=true
各参数含义如下:

-silent 表示以静默方式安装,不会有任何提示

-force 允许安装到一个非空目录

-noconfig 表示不运行配置助手netca

-responseFile 表示使用哪个响应文件,必需使用绝对路径

oracle.install.responseFileVersion 响应文件模板的版本,该参数不要更改

oracle.install.option 安装选项,本例只安装oracle软件,该参数不要更改

DECLINE_SECURITY_UPDATES 是否需要在线安全更新,设置为false,该参数不要更改

ORACLE_HOSTNAME 安装主机名

UNIX_GROUP_NAME oracle用户用于安装软件的组名

INVENTORY_LOCATION oracle产品清单目录

SELECTED_LANGUAGES oracle运行语言环境,一般包括引文和简繁体中文

ORACLE_HOME Oracle安装目录

ORACLE_BASE oracle基础目录

oracle.install.db.InstallEdition 安装版本类型,一般是企业版

oracle.install.db.isCustomInstall 是否定制安装,默认Partitioning,OLAP,RAT都选上了

oracle.install.db.customComponents 定制安装组件列表:除了以上默认的,可加上Label Security和Database Vault

oracle.install.db.DBA_GROUP oracle用户用于授予OSDBA权限的组名

oracle.install.db.OPER_GROUP oracle用户用于授予OSOPER权限的组名

注意:修改完进行保存的时候出现,E45: ‘readonly’ option is set (add ! to override) 权限不足!.取消保存退回到root用户

[oracle@oracledb response]$ su root

修改一下/etc/sudoers文件

#添加文件的写权限,因为sudoers这个文件只允许读,不允许写入。输入命令"chmod u+w /etc/sudoers"1. [root@oracledb response]# chmod u+w /etc/sudoers
 
#编辑/etc/sudoers文件。输入命令"vi/etc/sudoers",输入"i"进入编辑模式,找到这一行:"root ALL=(ALL) ALL",在这行下面添加"xxx   ALL=(ALL)        ALL"(这里的xxx是你的用户名),然后按Esc键,输入":wq",保存退出;

 2. [root@oracledb response]# vi/etc/sudoers
 3. 在root ALL=(ALL) ALL下一行添加oracle ALL=(ALL)        ALL
 #撤销文件的写权限,还原文件的读写状态。输入命令"chmod u-w /etc/sudoers"(一定要记得撤销,否则可能引起其他问题)
 4.[root@oracledb response]# chmod u-w /etc/sudoers     (重要!)

切换到oracle

[root@oracledb response]# su oracle

编辑静默安装响应文件(我埋得坑怎么样,哈哈哈哈~~~隔)

[oracle@oracledb response]$ sudo vim db_install.rsp
oracle.install.option=INSTALL_DB_SWONLY

ORACLE_HOSTNAME=oracledb

UNIX_GROUP_NAME=oinstall

INVENTORY_LOCATION=/opt/oracle/oraInventory

SELECTED_LANGUAGES=en,zh_CN

ORACLE_HOME=/opt/oracle/product/11.2.0

ORACLE_BASE=/opt/oracle

oracle.install.db.InstallEdition=EE

oracle.install.db.DBA_GROUP=dba

oracle.install.db.OPER_GROUP=dba

DECLINE_SECURITY_UPDATES=true

根据响应文件静默安装Oracle11g

#警告信息不用管 耐心等待
[oracle@oracledb response]$ cd /software/database/
[oracle@oracledb database]$ ./runInstaller -silent -responseFile /home/oracle/response/db_install.rsp -ignorePrereq

阿里/腾讯云静默安装Oracle11G超级详细教程_第14张图片
安装过程中,如果提示[WARNING]不必理会,此时安装程序仍在后台进行,如果出现[FATAL],则安装程序已经停止了。

可以在以下位置找到本次安装会话的日志。
/opt/oracle/oraInventory/logs/installActions2020-05-03_09-48-38PM.log
安装成功的日志如下:

 Starting Oracle Universal Installer...

Checking Temp space: must be greater than 120 MB.   Actual 34902 MB    Passed
Checking swap space: must be greater than 150 MB.   Actual 2040 MB    Passed
Preparing to launch Oracle Universal Installer from /tmp/OraInstall2020-05-03_09-51-43PM. Please wait ...[oracle@oracledb database]$ [WARNING] [INS-32016] The selected Oracle home contains directories or files.
   CAUSE: The selected Oracle home contained directories or files.
   ACTION: To start with an empty Oracle home, either remove its contents or choose another location.
[FATAL] [INS-32035] Unable to create a new central inventory at the specified location.
   CAUSE: The central inventory location provided is not empty.
   ACTION: Please provide another location for the inventory, or clean up the current location.
[WARNING] [INS-32055] The Central Inventory is located in the Oracle base.
   CAUSE: The Central Inventory is located in the Oracle base.
   ACTION: Oracle recommends placing this Central Inventory in a location outside the Oracle base directory.
A log of this session is currently saved as: /tmp/OraInstall2020-05-03_09-51-43PM/installActions2020-05-03_09-51-43PM.log. Oracle recommends that if you want to keep this log, you should move it from the temporary location to a more permanent location.
The following configuration scripts need to be executed as the "root" user. 
 #!/bin/sh 
 #Root scripts to run

/opt/oracle/oraInventory/orainstRoot.sh
/opt/oracle/product/11.2.0/root.sh
To execute the configuration scripts:
         1. Open a terminal window 
         2. Log in as "root" 
         3. Run the scripts 
         4. Return to this window and hit "Enter" key to continue 

Successfully Setup Software.

安装后操作,按照要求执行脚本
打开新的终端,以root身份登录,执行脚本:

[root@oracledb oraInventory]# sh opt/oracle/oraInventory/orainstRoot.sh
[root@oracledb 11.2.0]# sh  /opt/oracle/product/11.2.0/root.sh

阿里/腾讯云静默安装Oracle11G超级详细教程_第15张图片

在这里插入图片描述

出现如下信息即成功:
[root@oracledb oraInventory]# sh opt/oracle/oraInventory/orainstRoot.sh
sh: opt/oracle/oraInventory/orainstRoot.sh: No such file or directory
[root@oracledb oraInventory]# sh /opt/oracle/oraInventory/orainstRoot.sh
Changing permissions of /opt/oracle/oraInventory.
Adding read,write permissions for group.
Removing read,write,execute permissions for world.
Changing groupname of /opt/oracle/oraInventory to oinstall.
The execution of the script is complete.

[root@oracledb 11.2.0]# sh  /opt/oracle/product/11.2.0/root.sh
Check /opt/oracle/product/11.2.0/install/root_oracledb_2020-05-03_22-52-08.log for the output of root script

完成后,返回原来的终端按下回车键,等待程序安装完成.

监听器配置

重新使用oracle用户登录

[oracle@oracledb database]$  su -l oracle
[oracle@oracledb ~]$ netca /silent /responseFile /home/oracle/response/netca.rsp

阿里/腾讯云静默安装Oracle11G超级详细教程_第16张图片
注意此处,必须使用/silent /responseFile格式,而不是-silent -responseFile,因为是静默安装。

成功运行后,在/opt/oracle/product/11.2.0/network/admin中生成listener.ora和sqlnet.ora

查看端口是否占用/监听状态:

#查看端口是否被占用
[oracle@oracledb ~]$ ss -tnl|grep 1521
#查看监听状态
[oracle@oracledb ~]$  lsnrctl status

阿里/腾讯云静默安装Oracle11G超级详细教程_第17张图片

Yum安装netstat软件,软件包是在net-tools中。

#切回到root用户
[oracle@oracledb ~]$ su root
[root@oracledb oracle]# yum install net-tools

阿里/腾讯云静默安装Oracle11G超级详细教程_第18张图片
以静默方式建立新库,同时也建立一个对应的实例(安装数据库)

#切回 oracle用户
[root@oracledb oracle]# su oracle
[oracle@oracledb ~]$ sudo vim /home/oracle/response/dbca.rsp

修改文件中以下参数:

[GENERAL]

# oracle版本,不能更改
RESPONSEFILE_VERSION = "11.2.0"

# Description   : Type of operation
OPERATION_TYPE = "createDatabase"

[CREATEDATABASE]

# Description   : Global database name of the database
# 全局数据库的名字=SID+主机域名
# 第三方工具链接数据库的时候使用的service名称
GDBNAME = "orcl.oracledb"

# Description   : System identifier (SID) of the database
# 对应的实例名字
SID = "orcl"

# Description   : Name of the template
# 建库用的模板文件
TEMPLATENAME = "General_Purpose.dbc"

# Description   : Password for SYS user
# SYS, 数据库管理帐户
SYSPASSWORD = "myoracle"

# Description   : Password for SYSTEM user
# SYSTEM, 数据库管理帐户
SYSTEMPASSWORD = "myoracle"

# Description   : Password for SYSMAN user
# SYSMAN,企业管理器帐户
SYSMANPASSWORD = "myoracle"

# Description   : Password for DBSNMP user
# DBSNMP,目录集成平台用户
DBSNMPPASSWORD = "myoracle"

# Description   : Location of the data file's
# 数据文件存放目录
DATAFILEDESTINATION =/opt/oracle/oradata

# Description   : Location of the data file's
# 恢复数据存放目录
RECOVERYAREADESTINATION=/opt/oracle/fast_recovery_area

# Description   : Character set of the database
# 字符集,重要!!! 建库后一般不能更改,所以建库前要确定清楚。
# (CHARACTERSET = "AL32UTF8" NATIONALCHARACTERSET= "UTF8")
CHARACTERSET = "AL32UTF8"

# Description   : total memory in MB to allocate to Oracle
# oracle内存1638MB,物理内存2G*80%
TOTALMEMORY = "1638" 

开始安装数据库实例:

[oracle@oracledb ~]$ dbca -silent -responseFile /home/oracle/response/dbca.rsp

[oracle@oracledb ~]$ dbca -silent -responseFile /home/oracle/response/dbca.rsp
Copying database files
1% complete
3% complete
11% complete
18% complete
26% complete
37% complete
Creating and starting Oracle instance
40% complete
45% complete
50% complete
55% complete
56% complete
60% complete
62% complete
Completing Database Creation
66% complete
70% complete
73% complete
85% complete
96% complete
100% complete
Look at the log file “/opt/oracle/cfgtoollogs/dbca/orcl/orcl.log” for further details.
到此,数据库安装完成.

进行实例进程检查:

[oracle@oracledb ~]$  ps -ef | grep ora_ | grep -v grep

阿里/腾讯云静默安装Oracle11G超级详细教程_第19张图片
再次查看监听状态:

[oracle@oracledb ~]$  lsnrctl status

阿里/腾讯云静默安装Oracle11G超级详细教程_第20张图片

数据库创建完成

数据库信息:

全局数据库名:orcl.oracledb

系统标识符 (SID):orcl

登录查看实例状态:

[oracle@oracledb ~]$  sqlplus / as sysdba

阿里/腾讯云静默安装Oracle11G超级详细教程_第21张图片
扩充:inux 成功安装oracle后,为其创建一个登录账户

1、切换到oracle用户下
su -l oracle

2、使用sysdba账户登录:
sqlplus / as sysdba

3、创建用户
语法:CREATE USER 用户名 IDENTIFIED BY 密码;
CREATE  USER jamesben IDENTIFIED BY jamesben;

4、将刚创建的用户解锁/锁住
语法:ALTER USER 用户名 ACCOUNT UNLOCK/LOCK
//用户解锁
alter user jamesben account unlock;
//用户锁住
alter user jamesben account lock; 

5、授予新登陆的用户创建权限:
语法:CRANT CREATE SESSION TO 用户名
grant create session to jamesben;

6、授予新创建的用户数据库管理员权限
语法:CRANT DBA TO 用户名;
grant dba to jamesben;

7、切换到新创建的用户登陆
语法:CONNECT 用户名/密码
connect jamesben/jamesben;

8、删除用户
语法:DROP USER 用户名
drop user jamesben

放行(腾讯云/阿里云)端口1521
1.阿里/腾讯云静默安装Oracle11G超级详细教程_第22张图片
2.阿里/腾讯云静默安装Oracle11G超级详细教程_第23张图片
3.点开->点击配置安全组,出现模态框
4.阿里/腾讯云静默安装Oracle11G超级详细教程_第24张图片
5.阿里/腾讯云静默安装Oracle11G超级详细教程_第25张图片
6.阿里/腾讯云静默安装Oracle11G超级详细教程_第26张图片
到此,腾讯云放行成功

阿里云配置放行
1.阿里/腾讯云静默安装Oracle11G超级详细教程_第27张图片
2.阿里/腾讯云静默安装Oracle11G超级详细教程_第28张图片
3.点开->点击安全组配置
4.阿里/腾讯云静默安装Oracle11G超级详细教程_第29张图片
5.阿里/腾讯云静默安装Oracle11G超级详细教程_第30张图片
6.阿里/腾讯云静默安装Oracle11G超级详细教程_第31张图片
点击保存即可,到此,阿里云放行端口配置完成.

使用PLSQL连接服务器Oracle
注意:若需要配置本地环境变量的文件tnsnames.ora
在服务器的 **/opt/oracle/product/11.2.0/network/admin/**去找即可.

连接成功界面:
阿里/腾讯云静默安装Oracle11G超级详细教程_第32张图片
补充:
相关PLSQL/CRT工具等下载链接在评论区

部分资源收集于网络,感谢相关作者提供的技术,如有侵权,联系删除.

你可能感兴趣的:(Linux)