文章目录

  • 环境准备
  • 操作系统配置
  • 安装 Oracle
  • 数据库建库
  • 配置监听及本地服务
  • 初始化数据库


环境准备

  • 操作系统:CentOS Linux release 7.6.1810 (Core)
  • 数据库版本:Oracle Database 11g Enterprise Edition Release 11.2.0.4.0
  • 数据库安装包:p13390677_112040_Linux-x86-64_1of7.zip、p13390677_112040_Linux-x86-64_2of7.zip
  • PL/SQL

注意:

Oracle 官网目前只能下载到 11.2.0.1 的安装包。

安装包:

操作系统配置

在Root用户下执行以下步骤:
1)修改用户的 SHELL 的限制(资源限制),修改 /etc/security/limits.conf 文件

$ vi /etc/security/limits.conf

按i键进入编辑模式,将下列内容加入该文件:

oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536

编辑完成后按Esc键,输入“:wq”存盘退出

2)修改 /etc/pam.d/login 文件
输入命令:

$ vi /etc/pam.d/login

按i键进入编辑模式,将下列内容加入该文件:

session required /lib/security/pam_limits.so
session required pam_limits.so

编辑完成后按Esc键,输入“:wq”存盘退出

3)修改 linux 内核,修改 /etc/sysctl.conf 文件
输入命令:

$ vi /etc/sysctl.conf

按i键进入编辑模式,将下列内容加入该文件

# 该参数决定了系统中所允许的文件句柄最大数目,文件句柄设置代表linux系统中可以打开的文件的数量
fs.file-max = 6815744
# 此参数限制并发未完成的请求,应该设置避免I/O子系统故障
fs.aio-max-nr = 1048576
# 可以使用的共享内存的总页数
kernel.shmall = 2097152
# 单个共享内存段的最大值(不能超过自己的内存大小,这里设置的值为2G)
kernel.shmmax = 2147483648
# 该参数是共享内存段的最大数量,建议用缺省值4096
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
# IP4的端口可使用范围
net.ipv4.ip_local_port_range = 9000 65500
# 套接字接收缓冲区大小的缺省值
net.core.rmem_default = 4194304
# 套接字接收缓冲区大小的最大值
net.core.rmem_max = 4194304
# 套接字发送缓冲区大小的缺省值
net.core.wmem_default = 262144
# 套接字发送缓冲区大小的最大值
net.core.wmem_max = 1048576

编辑完成后按Esc键,输入“:wq”存盘退出
4)要使 /etc/sysctl.conf 更改立即生效,执行以下命令
输入

$ sysctl -p

显示如下:

linux:~ $ sysctl -p
net.ipv4.icmp_echo_ignore_broadcasts = 1
net.ipv4.conf.all.rp_filter = 1
fs.file-max = 6815744
fs.aio-max-nr = 1048576
kernel.shmall = 2097152
kernel.shmmax = 2147483648
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default = 4194304
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576

5)编辑 /etc/profile 输入命令:

$ vi /etc/profile

按i键进入编辑模式,将下列内容加入该文件

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

编辑完成后按 Esc 键,输入“:wq”存盘退出

6)创建相关用户和组,作为软件安装和支持组的拥有者
创建Oracle用户和密码,输入命令:

$ useradd -g oinstall -g dba -m oracle 
$ passwd oracle

然后会让你输入密码,密码任意输入2次,但必须保持一致,回车确认。
创建数据库软件目录和数据文件存放目录,目录的位置,根据自己的情况来定,注意磁盘空间即可,这里我把其放到 oracle 用户下,输入命令

$ mkdir /home/oracle/app
$ mkdir /home/oracle/app/oracle
$ mkdir /home/oracle/app/oradata
$ mkdir /home/oracle/app/oracle/product

8)更改目录属主为Oracle用户所有,输入命令

$ chown -Rf oracle:oinstall /home/oracle/app

9)配置 oracle 用户的环境变量,首先,切换到新创建的 oracle 用户下,
输入:

$ su -l oracle

然后直接在输入:

$ vi .bash_profile

按i编辑 .bash_profile,进入编辑模式,增加以下内容:

export ORACLE_BASE=/home/oracle/app
export ORACLE_HOME=$ORACLE_BASE/oracle/product/11.2.0/dbhome_1
export ORACLE_SID=orcl
export PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib

编辑完成后按 Esc 键,输入“:wq”存盘退出。

说明:这里指定的 ORACLE_SID 为数据库实例名

安装 Oracle

步骤一:当上述系统要求操作全部完成后,注销系统,在图形界面以 Oracle 用户登陆。首先将下载的 Oracle 安装包 使用 FTP 发送到 Linux系统中。
运行 unzip 命令解压 oracle 安装文件,输入命令:

$ unzip linux.x64_11gR2_database_1of2.zip
$ unzip linux.x64_11gR2_database_2of2.zip

解压完成后 cd 进入其解压后的目录 database 使用 ls 命令可以查看解压后 database 所包含的文件:

$ ls
install  readme.html  response  rpm  runInstaller  sshsetup  stage  welcome.html

步骤二:Xmanager 配置远程图形化

使用 XShell 建立连接时,设置连接属性,在 SSH --> tunneling 选项下勾选 Forward X11 connections to: Xmanager

centos7 安装历史内核版本 centos7.6安装包_oracle

注意:登陆用户名为 oracle

设置 display 变量,设置的 IP 为安装 xmanager 的客户端IP

$ export DISPLAY=192.168.1.226:0.0

执行安装,输入命令:

$ ./runInstaller

取消勾选,下一步:

centos7 安装历史内核版本 centos7.6安装包_运维_02


Skip software updates:

centos7 安装历史内核版本 centos7.6安装包_centos7 安装历史内核版本_03


Install database software only(软件和创建数据库分开安装)

centos7 安装历史内核版本 centos7.6安装包_Oracle_04


Single Instance database installation(单实例数据库安装)

centos7 安装历史内核版本 centos7.6安装包_运维_05


添加语言:简体中文

centos7 安装历史内核版本 centos7.6安装包_Oracle_06


选择 Enterprise Edtion(企业版)

centos7 安装历史内核版本 centos7.6安装包_centos_07


Oracle会根据环境变量自动选择设置好的安装路径,直接下一步即可:

centos7 安装历史内核版本 centos7.6安装包_oracle_08


centos7 安装历史内核版本 centos7.6安装包_oracle_09


centos7 安装历史内核版本 centos7.6安装包_centos_10


装到这一步,可以看到,可以查看到有很多的 rpm 包没有,我们可以从安装 linux 的光盘或ISO中(或去linux_oracle11g_Package)查找所缺的包,使用 ftp上传到linux中,然后使用 rpm –ivh xxx.rpm --nodeps --force 来进行安装(其中加上–nodeps – force 代表强制安装,是在直接使用 rpm –ivh xxx.rpm 安装不成功的情况下用的)等到把包全部都安装好的情况下,再次在 oracle 图形界面中,执行安装过程2,下来在环境检查过程中,就通过了

镜像文件挂,如/mnt:

$ mount -o loop CentOS-7-x86_64-DVD-1708.iso /mnt/
$ cd /mnt/Packages
$ rpm -ivh libtool-ltdl-2.4.2-22.el7_3.x86_64.rpm  --nodeps --force

centos7 安装历史内核版本 centos7.6安装包_Oracle_11


件安装到最后一步,会跳出如下执行脚本的提示:

打开一个终端,使用root登录,执行要求执行的脚本。执行完毕后在图形界面点OK

$ cd /home/oracle/app/oracle/product/11.2.0/dbhome_1
$ ./root.sh
$ /home/oracle/oraInventory
$ ./orainstRoot.sh

数据库建库

还是在oracle用户的图形界面oracle用户中,新开启一个终端,直接输入命令dbca会弹出如下界面。我们这里采用定制数据库

$ dbca

centos7 安装历史内核版本 centos7.6安装包_oracle_12


centos7 安装历史内核版本 centos7.6安装包_centos7 安装历史内核版本_13


据环境变量中设置的 ORACLE_SID 设置数据库名称和SID,这里设置的是:orcl

centos7 安装历史内核版本 centos7.6安装包_centos7 安装历史内核版本_14


centos7 安装历史内核版本 centos7.6安装包_centos_15


选择所有用户设置相同密码(正式业务中请为这些用户分别设置密码)

centos7 安装历史内核版本 centos7.6安装包_oracle_16


centos7 安装历史内核版本 centos7.6安装包_centos7 安装历史内核版本_17


centos7 安装历史内核版本 centos7.6安装包_centos_18


centos7 安装历史内核版本 centos7.6安装包_centos7 安装历史内核版本_19


centos7 安装历史内核版本 centos7.6安装包_centos7 安装历史内核版本_20

配置监听及本地服务

步骤一:在oracle用户的图形界面oracle用户中,新开启一个终端,输入命令 netca 会弹出如下界面

$ netca

centos7 安装历史内核版本 centos7.6安装包_oracle_21


步骤二:创建监听服务(充当oracle服务器,让别的oracle客户端连接本oracle服务器)

centos7 安装历史内核版本 centos7.6安装包_centos7 安装历史内核版本_22


centos7 安装历史内核版本 centos7.6安装包_运维_23


centos7 安装历史内核版本 centos7.6安装包_centos7 安装历史内核版本_24


centos7 安装历史内核版本 centos7.6安装包_运维_25


centos7 安装历史内核版本 centos7.6安装包_oracle_26


centos7 安装历史内核版本 centos7.6安装包_centos7 安装历史内核版本_27


centos7 安装历史内核版本 centos7.6安装包_oracle_28


centos7 安装历史内核版本 centos7.6安装包_centos_29


这样oracle服务器安装配置基本就完成了

$  lsnrctl status

LSNRCTL for Linux: Version 11.2.0.4.0 - Production on 24-NOV-2019 18:29:00

Copyright (c) 1991, 2013, Oracle.  All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for Linux: Version 11.2.0.4.0 - Production
Start Date                24-NOV-2019 17:21:47
Uptime                    0 days 1 hr. 7 min. 13 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File   /home/oracle/app/oracle/product/11.2.0/dbhome_1/network/admin/listener.ora
Listener Log File         /home/oracle/app/diag/tnslsnr/localhost/listener/alert/log.xml
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=localhost)(PORT=1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
Services Summary...
Service "orcl" has 1 instance(s).
  Instance "orcl", status READY, has 1 handler(s) for this service...
Service "orclXDB" has 1 instance(s).
  Instance "orcl", status READY, has 1 handler(s) for this service...
The command completed successfully

查看数据库状态:

$ sqlplus / as sysdba 

SQL*Plus: Release 11.2.0.4.0 Production on Sun Nov 24 18:30:28 2019

Copyright (c) 1982, 2013, Oracle.  All rights reserved.


Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

SQL>  select status from v$instance;

STATUS
------------
OPEN

SQL> select open_mode from v$database;

OPEN_MODE
--------------------
READ WRITE

初始化数据库

测试plsql登录:

centos7 安装历史内核版本 centos7.6安装包_centos_30


创建表空间:

create tablespace rdc
logging
datafile '/home/oracle/app/oradata/orcl/rdc.dbf' 
size 1112m 
autoextend on 
next 64m 
extent management local;

创建普通用户:

-- Create the user 
create user zuozewei
  identified by "123456"
  default tablespace rdc
  temporary tablespace TEMP
  profile DEFAULT;
-- Grant/Revoke role privileges 
grant connect to zuozewei;
grant dba to zuozewei;
-- Grant/Revoke system privileges 
grant unlimited tablespace to zuozewei;

切换到普通用户,导入数据:

centos7 安装历史内核版本 centos7.6安装包_centos_31


至此,我们完成整个数据库的搭建。