centos7安装oracle 11g r2

一、前置准备

1. 检查系统安装条件

1
2
3
4
5
6
#物理内存不小于1G: 查看方式:
$ grep MemTotal /proc/meminfo
#可用硬盘不小于8G: 查看方式:
$ df -hl
#Swap分区空间不小于2G(实测512M也可): 查看方式(如果swap空间为空则可以根据第五大点“问题解决方案”的办法来解决):
$ grep SwapTotal /proc/meminfo

2. 关闭firewalld防火墙

1
2
3
$ systemctl status firewalld.service    #查看firewalld防火墙状态
$ systemctl stop firewalld.service #关闭firewalld防火墙
$ systemctl disable firewalld.service #禁止开机使用firewalld防火墙

3. 修改系统标识和内核参数

由于Oracle默认不支持CentOS,故需要修改,修改系统标识文件

1
$ vim /etc/redhat-release
1
2
#将文件内容替换为redhat-7
redhat-7

修改内核参数文件

1
$ vim /etc/sysctl.conf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#在最后添加以下内容
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
kernel.shmall = 2097152
kernel.shmmax = 2147483648
net.ipv4.ip_local_port_range = 9000 65500
net.ipv4.icmp_echo_ignore_broadcasts = 1
net.ipv4.conf.all.rp_filter = 1
net.core.rmem_default = 262144
net.core.rmem_max= 4194304
net.core.wmem_default= 262144
net.core.wmem_max= 1048576

修改完后,启用新的配置

1
$ sysctl -p

4. 安装依赖库

1
$ yum -y install binutils* compat-libcap1* compat-libstdc++* gcc* gcc-c++* glibc* glibc-devel* ksh* libaio* libaio-devel* libgcc* libstdc++* libstdc++-devel* libXi* libXtst* make* sysstat* elfutils* unixODBC* unzip lrzsz

5. 创建用户以及组

1
2
3
4
5
6
$ groupadd oinstall                         #创建安装oracle程序用户组 
$ groupadd dba #创建DBA用户组
$ useradd -g dba -m oracle #创建用户oracle 并加入到dba组
$ usermod -a -G oinstall oracle #将用户oracle加入到oinstall组
$ passwd oracle #修改用户oracle的密码
$ id oracle #查看用户oracle的信息

6. 创建安装目录并设置权限

1
2
3
4
5
6
7
8
9
#创建相关目录
$ mkdir -p /data/oracle #创建oracle主目录
$ mkdir -p /data/inventory #创建oralce配置目录
$ mkdir -p /data/src #创建oracle压缩包解压目录

#修改目录权限
$ chown -R oracle:oinstall /data/oracle
$ chown -R oracle:oinstall /data/inventory
$ chown -R oracle:oinstall /data/src
1
$ ll /data                                      #查看目录权限

img

7. 修改oracle用户的安全性能设置

1
$ vim /etc/security/limits.conf
1
2
3
4
5
#在文件最后一行前,追加以下内容
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536

8. 修改用户环境变量

修改用户环境变量文件

1
$ vim /home/oracle/.bashrc
1
2
3
4
5
6
7
8
9
10
#在最后追加以下内容
export PATH
export ORACLE_BASE=/data/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1
export ORACLE_SID=orcl
export ORACLE_UNQNAME=orcl
export PATH=$ORACLE_HOME/bin:/usr/sbin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export LANG=C
export NLS_LANG=AMERICAN_AMERICA.AL32UTF8

修改完后立即启用生效:

1
$ source /home/oracle/.bashrc

9. 关闭selinux

修改selinux配置文件

1
$ vim /etc/selinux/config
1
2
SELINUX=disabled      #修改SELINUX的值为disabled
SELINUXTYPE=targeted

保存后需要重启机器

1
$ reboot

二、安装Oracle

1. 下载

安装包下载地址:https://www.oracle.com/database/technologies/112010-linx8664soft.html

下载以下两个安装包

linux.x64_11gR2_database_1of2.zip

linux.x64_11gR2_database_2of2.zip

2. 解压安装包到安装目录

1
2
$ unzip linux.x64_11gR2_database_1of2.zip -d /data/src/
$ unzip linux.x64_11gR2_database_2of2.zip -d /data/src/

3. 设置安装目录权限

1
$ chown -R oracle:oinstall /data/src/
1
2
#查看目录权限
$ ll /data/src/

img

4. 安装Oracle

切换为Oracle用户

1
$ su oracle

修改静默安装响应文件

1
$ vim /data/src/database/response/db_install.rsp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#修改以下内容
oracle.install.option=INSTALL_DB_SWONLY # 安装类型
ORACLE_HOSTNAME=oracle.server # 主机名称
UNIX_GROUP_NAME=oinstall # 安装组
INVENTORY_LOCATION=/data/inventory # INVENTORY目录
SELECTED_LANGUAGES=en,zh_CN # 选择语言
ORACLE_HOME=/data/oracle/product/11.2.0/db_1 # oracle_home
ORACLE_BASE=/data/oracle # oracle_base
oracle.install.db.InstallEdition=EE # oracle版本
oracle.install.db.DBA_GROUP=dba # dba用户组
oracle.install.db.OPER_GROUP=oinstall # oper用户组
oracle.install.db.config.starterdb.type=GENERAL_PURPOSE # 数据库类型
oracle.install.db.config.starterdb.globalDBName=orcl # globalDBName
oracle.install.db.config.starterdb.SID=orcl # SID
oracle.install.db.config.starterdb.characterSet=AL32UTF8 # 默认数据库编码
oracle.install.db.config.starterdb.memoryLimit=800 # 自动管理内存的最小内存(M)
oracle.install.db.config.starterdb.password.ALL=oracle # 设定所有数据库用户使用同一个密码
DECLINE_SECURITY_UPDATES=true # 设置安全更新

启动安装程序

1
$ /data/src/database/runInstaller -silent -responseFile /data/src/database/response/db_install.rsp -ignorePrereq

img

漫长的等待…(时间的话看机器性能咯)

当出现如下画面时候,请照做

img

要执行配置脚本,请执行以下操作:

(1)打开另外一个终端窗口(注意是另外一个终端窗口)
(2)以"root"身份登陆
(3)运行脚本

1
2
$ /data/inventory/orainstRoot.sh
$ /data/oracle/product/11.2.0/db_1/root.sh

(5)返回此窗口并按"Enter"键继续

到这里Oracle主程序就安装完啦…

5. 配置Oracle监听程序

编辑监听配置文件

1
$ vim /data/src/database/response/netca.rsp

修改以下参数

1
2
3
4
5
INSTALL_TYPE=""custom""                               # 安装的类型
LISTENER_NUMBER=1 # 监听器数量
LISTENER_NAMES={"LISTENER"} # 监听器的名称列表
LISTENER_PROTOCOLS={"TCP;1521"} # 监听器使用的通讯协议列表
LISTENER_START=""LISTENER"" # 监听器启动的名称

执行命令安装监听程序:

1
$ /data/oracle/product/11.2.0/db_1/bin/netca /silent /responseFile /data/src/database/response/netca.rsp

默认安装后就会启动,查看监听程序是否运行

1
$ netstat -tnulp | grep 1521

6. 配置数据库实例

编辑数据库实例文件

1
$ vim /data/src/database/response/dbca.rsp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#修改以下参数
RESPONSEFILE_VERSION = "11.2.0" # 不要变哦
OPERATION_TYPE = "createDatabase" # 操作为创建实例
GDBNAME ="orcl" # 数据库实例名(有两行都要改)
SID ="orcl" # 实例名字
TEMPLATENAME = "General_Purpose.dbc" # 建库用的模板文件(有4行,都要改)

#配置管理员密码(以下每个变量都可能会有多行,每个变量只需要去掉注释仅保留一行并修改即可)
SYSPASSWORD = "oracle"
SYSTEMPASSWORD = "oracle"
SYSMANPASSWORD= "oracle"
DBSNMPPASSWORD= "oracle"

DATAFILEDESTINATION =/data/oracle/oradata # 数据文件存放目录
RECOVERYAREADESTINATION=/data/oracle/flash_recovery_area # 恢复数据存放目录
CHARACTERSET ="AL32UTF8" # 字符集
NATIONALCHARACTERSET= "AL16UTF16" # 字符集
TOTALMEMORY ="1638" # 1638MB,物理内存2G*80%。

7. 创建数据库实例

执行以下命令创建数据库实例

1
$ /data/oracle/product/11.2.0/db_1/bin/dbca -silent -responseFile /data/src/database/response/dbca.rsp

img

查看实例是否运行

1
$ ps -ef | grep ora_ | grep -v grep

img

8. 启动和关闭oracle服务

8.1 启动

1
2
3
4
5
su - oracle
#开启监听:
$ /data/oracle/product/11.2.0/db_1/bin/lsnrctl start
#启动数据库实例(执行脚本+具体的数据库实例):
$ /data/oracle/product/11.2.0/db_1/bin/dbstart /data/oracle/product/11.2.0/db_1

或者

1
2
3
4
5
su - oracle
lsnrctl start #启动oracle服务监听
sqlplus /nolog
conn /as sysdba
startup #启动数据库实例

8.2 关闭

1
2
3
4
5
su - oracle
#关闭监听:
$ /data/oracle/product/11.2.0/db_1/bin/lsnrctl stop
#关闭数据库实例(执行脚本+具体的数据库实例):
$ /data/oracle/product/11.2.0/db_1/bin/dbshut /data/oracle/product/11.2.0/db_1

或者

1
2
3
4
5
su - oracle
lsnrctl stop #关闭oracle服务监听
sqlplus /nolog
conn /as sysdba
shut #关闭数据库实例

10. 开机自启动Oracle服务

对于以上,每次重启都需要手动执行相关命令来开启Oracle实例,为了不用每次开机都有手动启动Oracle,可以设置开机自启动Oracle服务。

oracle用户模式下修改oracle相关文件:

1
$ su oracle
1
2
3
4
5
$ vim /etc/oratab

#修改以下内容,N改为Y。要自动启动数据库实例,则将N改为Y,在调用dbstart命令时生效。dbstart根据这些配置来启动相应的数据库实例。
#orcl:/data/oracle/product/11.2.0/db_1:N
orcl:/data/oracle/product/11.2.0/db_1:Y

root用户模式下修改linux自启动配置文件:

1
2
$ su
$ chmod +x /etc/rc.d/rc.local
1
2
3
4
5
$ vim /etc/rc.d/rc.local

#在文件最后追加以下内容:
su oracle -lc "/data/oracle/product/11.2.0/db_1/bin/lsnrctl start"
su oracle -lc "/data/oracle/product/11.2.0/db_1/bin/dbstart /data/oracle/product/11.2.0/db_1"

三、客户端连接oracle实例

1. sqlplus连接

当前服务器的sqlplus客户端直接连接

1
2
$ su oracle
$ sqlplus sys/oracle as sysdba

创建用户

1
2
SQL> create user qcmoke identified by 123456;
SQL> grant connect,resource to qcmoke;

2. PLSQL Developer客户端连接

①安装PLSQL Developer

官方下载地址:https://www.allroundautomations.com/

傻瓜式安装完即可。

②安装oracle客户端插件

instantclient客户端插件官方下载地址:https://www.oracle.com/database/technologies/instant-client/downloads.html

注意:如果PLSQL Developer是64位那么instantclient也要是64位,如果PLSQL Developer是32位,那么instantclient也要是32位。

下载包如下:

32位:instantclient-basic-nt-11.2.0.4.0.zip

64位:instantclient-basic-windows.x64-11.2.0.4.0.zip

下载后解压到任意目录下即完成安装。此外还需要配置监听文件,在instantclient目录下新建network/admin目录,在该目录下建立tnsnames.ora文件,在tnsnames.ora中写入数据库连接字符串,示例如下:

1
2
3
4
5
6
7
8
9
ORCL =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 39.106.195.202)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = orcl)
)
)

③PLSQL Developer配置instantclient插件

image-20191215161257117

④PLSQL Developer登录

密码是oracle

20191215160538

⑤创建并授权用户

image-20191216032923419

image-20191216033225418

3. Navicat客户端连接

配置instantclient插件,但不需要像PLSQL Developer那样还需要配置监听文件tnsnames.ora

image-20191215163628417

登录

密码是oracle

image-20191215143146645

五、问题解决方案

1. 设置启动脚本(可选)

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
[root@localhost ~]# vim /etc/init.d/oracle

#!/bin/sh
# chkconfig: 345 61 61
# description: Oracle 11g R2 AutoRun Servimces
# /etc/init.d/oracle
#
# Run-level Startup script for the Oracle Instance, Listener, and
# Web Interface
export ORACLE_BASE=/data
export ORACLE_HOME=$ORACLE_BASE/oracle/product/11.2.0/db_1
export ORACLE_SID=ORCL
export PATH=$PATH:$ORACLE_HOME/bin
ORA_OWNR="oracle"
# if the executables do not exist -- display error
if [ ! -f $ORACLE_HOME/bin/dbstart -o ! -d $ORACLE_HOME ]
then
echo "Oracle startup: cannot start"
exit 1
fi
# depending on parameter -- startup, shutdown, restart
# of the instance and listener or usage display
case "$1" in
start)
# Oracle listener and instance startup
su $ORA_OWNR -lc $ORACLE_HOME/bin/dbstart
echo "Oracle Start Succesful!OK."
;;
stop)
# Oracle listener and instance shutdown
su $ORA_OWNR -lc $ORACLE_HOME/bin/dbshut
echo "Oracle Stop Succesful!OK."
;;
reload|restart)
$0 stop
$0 start
;;
*)
echo $"Usage: `basename $0` {start|stop|reload|reload}"
exit 1
esac
exit 0
1
2
service oracle start #开启服务,包括开启监听+开启实例
service oracle stop #关闭服务,包括关闭监听+关闭实例

2. swap不足报错

报错:Checking swap space: 0 MB available, 150 MB required. Failed <<<<

当运行如下安装命令报错:

1
2
3
4
5
6
7
8
9
10
11
12
13
[oracle@localhost database]$ ./runInstaller -silent -responseFile /home/oracle/db_install.rsp
Starting Oracle Universal Installer...

Checking Temp space: must be greater than 120 MB. Actual 150565 MB Passed
Checking swap space: 0 MB available, 150 MB required. Failed <<<<

Some requirement checks failed. You must fulfill these requirements before

continuing with the installation,



Exiting Oracle Universal Installer, log for this session can be found at /tmp/OraInstall2017-06-07_02-08-39PM/installActions2017-06-07_02-08-39PM.log

解决方法

1、检查 Swap 空间在设置 Swap 文件之前,有必要先检查一下系统里有没有既存的 Swap 文件。运行以下命令:

1
$ swapon -s

如果返回的信息概要是空的,则表示 Swap 文件不存在。

2、检查文件系统在设置 Swap 文件之前,同样有必要检查一下文件系统,看看是否有足够的硬盘空间来设置 Swap 。运行以下命令:

1
$ df -hal

3、创建并允许 Swap 文件下面使用 dd 命令来创建 Swap 文件。检查返回的信息,还剩余足够的硬盘空间即可。

1
$ dd if=/dev/zero of=/swapfile bs=1024 count=512k

参数解读:if=文件名:输入文件名,缺省为标准输入。即指定源文件。< if=input file >of=文件名:输出文件名,缺省为标准输出。即指定目的文件。< of=output file >bs=bytes:同时设置读入/输出的块大小为bytes个字节count=blocks:仅拷贝blocks个块,块大小等于bs指定的字节数。

4、格式化并激活 Swap 文件上面已经创建好 Swap 文件,还需要格式化后才能使用。

1
$ mkswap /swapfile

激活 Swap

1
$ swapon /swapfile

以上步骤做完,再次运行命令

1
2
3
4
$ swapon -s
#你会发现返回的信息概要:
Filename Type Size Used Priority
/swapfile file 524284 0 -1
  1. 机器重启的时候自动挂载 Swap
1
$ vim /etc/fstab
1
2
#在/etc/fstab最后添加如下一行
/swapfile swap swap defaults 0 0

最后,赋予 Swap 文件适当的权限:

1
2
$ chown root:root /swapfile 
$ chmod 0600 /swapfile

3. 禁止oracle用户ssh登录

可以将oracle用户添加到禁止SSH登录的名单中,防止破解登录。但可以通过其他用户登录到服务器后切换到oracle用户。

1
2
3
$ vim /etc/ssh/sshd_config
#在最后添如下配置
DenyUsers oracle
1
2
3
4
5
6
7
#重新启动sshd服务
$ service sshd restart

或者

#重新加载sshd配置文件
$ service sshd reload


----------- 本文结束 -----------




如果你觉得我的文章对你有帮助,你可以打赏我哦~
0%