—-慢慢来比较快,虚心学技术—-

事前准备

服务器硬件要求

物理内存不少于1G
硬盘可以空间不少于5G
swap分区空间不少于2G
支持256色以上显卡
cpu主频不小于550mHZ

软件安装包下载上传

从官网下载安装包文件
https://www.oracle.com/technetwork/database/enterprise-edition/downloads/index.html

本文安装版本为Oracle 11gR2 64位版本
图片.png
下载后使用Xftp将安装包传输到/usr/src(专用于存放安装包)目录

图片.png

图片.png

服务器环境

1.创建数据库用户组和用户

  1. groupadd oinstall #创建用户组oinstall
  2. groupadd dba #创建用户组dba
  3. useradd -g oinstall -G dba -m oracle #创建用户oracle,并初始加入oinstall用户组,附加到dba用户组
  4. groups oracle #验证分组是否成功
  5. passwd oracle #设置oracle用户密码(此处设置密码123456)
  6. id oracle #查看oracle用户信息

图片.png

2.创建oracle数据库安装目录并分配权限

mkdir -p /opt/oracle/product    #创建oracle安装目录
mkdir -p /opt/oracle/oradata    #创建oracle数据存放目录
mkdir -p /opt/oracle/oraInventory  #创建oracle数据库清单目录
ls /opt/oracle #验证目录生成
chown -R oracle:oinstall /opt/oracle #设置oracle目录所有者为oinstall用户组中的oracle用户

图片.png

3.安装Oracle安装所需依赖包

binutils-2.23.52.0.1-12.el7.x86_64 
compat-libcap1-1.10-3.el7.x86_64 
gcc-4.8.2-3.el7.x86_64 
gcc-c++-4.8.2-3.el7.x86_64 
glibc-2.17-36.el7.i686 
glibc-2.17-36.el7.x86_64 
glibc-devel-2.17-36.el7.i686 
glibc-devel-2.17-36.el7.x86_64 
ksh
libaio-0.3.109-9.el7.i686 
libaio-0.3.109-9.el7.x86_64 
libaio-devel-0.3.109-9.el7.i686 
libaio-devel-0.3.109-9.el7.x86_64 
libgcc-4.8.2-3.el7.i686 
libgcc-4.8.2-3.el7.x86_64 
libstdc++-4.8.2-3.el7.i686 
libstdc++-4.8.2-3.el7.x86_64 
libstdc++-devel-4.8.2-3.el7.i686 
libstdc++-devel-4.8.2-3.el7.x86_64 
libXi-1.7.2-1.el7.i686 
libXi-1.7.2-1.el7.x86_64 
libXtst-1.2.2-1.el7.i686 
libXtst-1.2.2-1.el7.x86_64 
make-3.82-19.el7.x86_64 
sysstat-10.1.5-1.el7.x86_64

使用如下命令安装上述系列依赖包

yum -y install binutils-2.* compat-libstdc++-33* elfutils-libelf-0.* elfutils-libelf-devel-* gcc-4.* gcc-c++-4.* glibc-2.* glibc-common-2.* glibc-devel-2.* glibc-headers-2.* ksh-2* libaio-0.* libaio-devel-0.* libgcc-4.* libstdc++-4.* libstdc++-devel-4.* make-3.* sysstat-7.* unixODBC-2.* unixODBC-devel-2.* pdksh*

图片.png

4.关闭服务器安全防护

关闭防火墙(开发测试环境关闭,生产环境不可以关闭,可以开启1521端口,oracle默认端口是1521)

systemctl stop firewalld.service

systemctl status firewalld.service  #查看防火墙服务状态

图片.png

关闭selinux(方便部署测试,生产环境不允许关闭)
安全增强型 Linux(Security-Enhanced Linux)简称 SELinux,它是一个 Linux 内核模块,也是 Linux 的一个安全子系统。
SELinux 主要作用就是最大限度地减小系统中服务进程可访问的资源(最小权限原则)

查看SELinux状态,linux下默认是启用状态

sestatus -v

图片.png

编辑selinux配置文件关闭selinux服务

vim /etc/selinux/config

SELINUX=enforcing更改为disabled

图片.png

重启服务器使SELinux配置生效

图片.png

5.修改内核参数

linux内核参数指的是用于配置系统运行的参数,类似于软件的一些参数配置

编辑/etc/sysctl.conf文件,设置相关参数的系统默认值。如果该文件中已有相关参数的设置,则确保参数值不小于如下对应值;如果还没有相关参数的设置,则按照如下格式添加相应的参数设置行。

vim /etc/sysctl.conf
fs.file-max = 6815744 #指定了可以分配的文件句柄的最大数目。如果用户得到的错误消息声明由于打开文件数已经达到了最大值,从而他们不能打开更多文件,则可能需要增加该值。
fs.aio-max-nr = 1048576  #同时可以拥有的的异步IO请求数目
kernel.shmall = 2097152  #表示在任何给定时刻,系统上可以使用的共享内存的总量(bytes)
kernel.shmmax = 2147483648  #表示内核所允许的最大共享内存段的大小(bytes)。
kernel.shmmni = 4096   #表示用于整个系统的共享内存段的最大数目(个)。
kernel.sem = 250 32000 100 128  #用于控制内核信号量,信号量是System VIPC用于进程间通讯的方法。
net.ipv4.ip_local_port_range = 9000 65500  #表示TCP/UDP协议打开的本地端口号
net.core.rmem_default = 262144  #指定了接收套接字缓冲区大小的缺省值(以字节为单位)
net.core.rmem_max = 4194304  #指定了接收套接字缓冲区大小的最大值(以字节为单位)
net.core.wmem_default = 262144  #指定了发送套接字缓冲区大小的缺省值(以字节为单位)
net.core.wmem_max = 1048576  #指定了发送套接字缓冲区大小的最大值(以字节为单位)

图片.png

保存后执行如下命令使配置更改即刻生效

sysctl -p

图片.png

6.修改oracle用户限制,提高软件运行性能

编辑/etc/security/limits.conf配置文件,修改操作系统对oracle用户资源的限制;

vim /etc/security/limits.conf

在配置文件中添加如下语句

oracle soft nproc 2047 #最大进程数
oracle hard nproc 16384
oracle soft nofile 1024 #最大文件打开数
oracle hard nofile 65536

图片.png

图片.png

将pam_limits.so文件加入到启动文件中,使limit.conf文件生效

vim /etc/pam.d/login

加入如下语句

session    required     pam_limits.so

图片.png

保存上述文件后,编辑/etc/profile配置文件

vim /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

图片.png

7.配置oracle用户的私有环境变量

编辑文件 /homt/oracle/.bash_profile

vim /home/oracle/.bash_profile

在文件中加入如下内容

export ORACLE_BASE=/opt/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1
export ORACLE_SID=orcl
export ORACLE_TERM=xterm
export TNS_ADMIN=$ORACLE_HOME/network/admin
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib

#加入编码
export NLS_LANG=AMERICAN_AMERICA.UTF8
export LANG=en_US.UTF8


PATH=$PATH:$HOME/.local/bin:$HOME/bin:$ORACLE_HOME/bin

export PATH

图片.png
保存环境变量后执行如下命令使文件生效

source /home/oracle/.bash_profile

正式安装

切换到oracle用户环境下

su - oracle

1、解压安装包

进入安装包目录

cd /usr/src/Oracle11g

图片.png

linux默认没有安装zip及unzip命令,执行如下命令安装

yum -y install zip unzip

执行如下命令解压

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

解压后生成database目录

图片.png

2、执行安装

进入database目录,执行.runinstall文件

cd database

ls

./runinstall

图片.png

图片.png

=========================================================================

此时报如下错误:DISPLAY not set.Please set the DISPLAY and try again

图片.png

中文报错如下:

图片.png

意即oracle安装需要图形界面,而系统尚未配置DISPLAY选项,不支持图形安装

解决:
安装图形界面

yum -y groupinstall "X Window System"

yum -y groupinstall "GNOME Desktop"

=========================================================================

root用户下登录启动图形界面

startx

在图形界面开启命令框,切换到oracle用户身份,并执行./runInstaller

su oracle

cd /usr/src/Oracle11g/database/

ls

./runInstaller

图片.png

如果此时仍旧出现上述问题,可以执行如下命令

export DISPLAY=:0.0

xhost +

执行./runInsataller后弹出Oracle安装图形界面

图片.png

3、开始安装

取消选中这个界面上的 “I wish to receive security updates via My Oracle Support” 复选框,点击Next

图片.png

不填写Email直接安装

图片.png

Select Installation Option(选择安装选项)界面上,选择Install database software only(仅安装数据库软件)选项,点击Next

其中:
Create and configure a database:默认选项,创建和配置数据库,安装的同时提供模板数据库,适合初学者
Install database software only: 仅安装数据库软件,数据库管理员常用,较为灵活
Upgrade an existing database: 升级已有数据库

图片.png

Grid Installation Options(网格安装选项)界面上,选择Single instance database installation

Single instance database installation: 单实例安装
Real Application Clusters database installation**: Oracle RAC数据库安装

图片.png

Select Product Languages界面,选择安装语言,默认选择English,点击next

图片.png

Select Database Edition,选择数据库安装版本,此处选择企业版,点击next

图片.png

Specify Installation Location界面,为Oracle BaseSoftware Location指定存储位置,点击Next

此处我们将安装目录指向/opt/oracle/product

图片.png
Create Inventory,选择清单目录,点击next

此处选择/opt/oracle/oralnventory

图片.png

Operating Systems Groups,选择数据库管理员和操作员所属用户组

此处选择数据库管理员用户组:dba
数据库操作员用户组:oinstall

图片.png

Prerequisite Checks,失败安装包内容,需要使用root逐个安装

图片.png

图片.png

注:其中的compat-libstdc++-33-3.2.3,在检测系统是否安装时极容易出错,其正确软件名为compat-libstdc++-33,而不是compat-libstdc++

使用如下命令进行安装,其中,pdksh已经找不到安装包去安装,可以安装ksh即可

yum install ksh

图片.png

而oracle安装检测有时候是因为服务器安装了高级版本,所以检测出错,确认全部安装后点击Check Again,可以看到还是报Failed,此时我们可以勾选Ignore All选项

图片.png

图片.png

Summery界面,展示前面的所有信息,点击Finish

图片.png

安装过程缓慢,等待安装完成点击close即可

图片.png

安装至70%左右报如下错误:
Error in invoking target ‘install’ of makefile ‘/opt/oracle/product/11.2.0/db_1/sysman/lib/ins_emagent.mk

图片.png

保留安装过程,另外开启一个终端窗口,将ins_emagent.mk文件中的 (MK_EMAGENT_NMECTL)更改为$(MK_EMAGENT_NMECTL) -lnnz11,然后在安装过程中点击Continue即可

cd /opt/oracle/product/11.2.0/dbhome_1/sysman/lib
cp ins_emagent.mk ins_emagent.mk.bak  #编辑前先备份
vim ins_emagent.mk

图片.png

图片.png

图片.png

图片.png

配置监听

监听是配置在数据库服务端的,用作建立客户端和数据库服务端直接连接的一个服务程序;

客户端一旦通过监听连接上服务端,此时服务端的监听停止或关闭,连接依旧有效,客户端一样可以操作数据库,除非客户端主动断开连接

Oracle数据库安装完毕,默认已经拥有一个监听配置文件的参考(1521),监听配置文件参考位于:/opt/oracle/product/11.2.0/dbhome_1/network/admin/samples/listener.ora

cd /opt/oracle/product/11.2.0/dbhome_1/network/admin/samples/

ls

cat listener.ora

图片.png

图片.png

有了参考文件我们可以将该文件的相关注释去除,然后拷贝到amdin目录下,使监听生效。此处我们学习如何通过图形界面进行监听配置

监听服务配置

①用root执行startx指令进入图形界面

startx

图片.png

②在图形界面右键进入命令行,切换oracle身份

注:此处必须使用su - oracle,将环境一同切换,否则执行netca命令时会报common not found错误,因为环境变量没有生效

su - oracle

图片.png

图片.png

③用oracle身份执行netca命令

注:在调用界面之前,需要习惯首先执行xhost +,否则容易报错

export DISPLAY=:0.0

xhost +

netca

图片.png

选择Listener Configurationu选项,点击next

图片.png

选择监听配置操作,此处选择Add,增加监听

图片.png

⑥选择监听程序名,由于数据库没有默认监听,我们保持默认的LISTENER

图片.png

⑦选择监听协议,此处保留默认TCP

图片.png

⑧选择监听端口,此处选择1521端口

图片.png

⑨是否配置其他监听,选择YES

图片.png

⑩确认操作,点击finish

图片.png

图片.png

⑪ 查看生成的监听配置文件,该配置文件位于:/opt/oracle/product/11.2.0/dbhome_1/network/admin/listener.ora

cd /opt/oracle/product/11.2.0/dbhome_1/network/admin/

ls

cat listener.ora

图片.png

至此,监听1521端口配置完毕

监听服务管理

监听服务通过命令lsnrctl实现启停,该命令位于/opt/oracle/product/11.2.0/dbhome_1/bin/

图片.png**

启动监听服务

su - oracle

lsnrctl start

图片.png

查看监听服务状态

su - oracle

lsnrctl status

图片.png

停止监听服务

su - oracle
lsnrctl stop

图片.png

创建数据库实例

前提:必须保证存在监听且监听是启动状态

进入图形界面,右键打开命令行窗口,切换到oracle环境

su - oracle

图片.png

执行dbca命令,启动oracle实例安装界面,点击Next

dbca

图片.png

选择操作类型,此处选择Crearte a Database(创建一个数据库),点击Next

图片.png

选择数据库类型,此处选择Custom Database,点击Next

General Purpose Or Transaction Processing: 默认,一般用途和事务处理
Custom Database: 定制数据库
Data Warehouse**: 数据仓库

图片.png

填写全局数据库名称及实例名称,此处填写安装数据库之前添加的环境变量中的SID:orcl,点击Next

图片.png

图片.png

取消选中Configure Enterprise Manager复选框,点击Next。(如果希望使用企业管理器来管理这个数据库,那么可以选中Configure Enterprise Manager复选框)

图片.png

设置管理员密码,可以选择使用不同密码Use Different Administrative Passwords,也可以选择所有管理员账户使用统一密码Use the Same Administrative Password for All Accounts,此处方便选择第二项,输入密码点击Next**

图片.png

此处使用默认值,点击Next

图片.png

取消快速恢复和存档区域,点击next

图片.png

仅勾选”Enterprise Manager Repository”选项,点击Next**

图片.png

在Initialization Parameters界面中,可以指定一些初始化参数。

在Memory选项卡中,可以指定Oracle数据库使用的内存。

在Sizing选项卡中,可以设置数据块大小、进程数量。

在Character Sets(字符集)选项卡中,可以选择这个数据库的字符集、默认语言和日期格式。

在Connection Mode(连接模式)选项卡中,可以指定数据库的连接模式。默认情况下,Oracle使用Dedicated Server(专用服务器)模式。在这一阶段,唯一必须知道的重要事情就是这个数据库的字符集和数据块大小。选择适当的字符集和数据块大小,其他初始化参数集保留默认即可,可以在以后对它们进行优化调整**

图片.png

图片.png

图片.png

图片.png

在Database Storage(数据库存储)界面,可以指定数据文件、控制文件和重做日志组的位置。还可以为数据文件和重做日志指定文件位置变量。设置完成后,点击Next

图片.png

勾选”Create Database”,点击Finish开始创建数据库(可以根据自己的需要选择生成用于创建数据库的脚本)

图片.png

图片.png

图片.png

点击Password Management,管理用户及密码,解锁需要使用的用户

图片.png

SYS 和 SYSTEM用户默认解锁了,如无其他账号需要使用可以直接ok

图片.png

点击exit完成创建

图片.png

测试是否创建成功

切换到oracle身份**

su - oracle

在oracle身份环境下执行如下语句使用DBA身份登录

sqlplus / as sysdba (或sqlplus /nolog)

图片.png

至此,数据库实例ORCL创建完成

数据库管理


以下处理除特殊说明皆在oracle身份执行**

启动数据库步骤

export ORACLE_SID=orcl(选择自己需要启动的数据库SID)

echo $ORACLE_SID (显示实例名)

sqlplus /nolog 

connect sys as sysdba
(输入您的密码)

startup(数据库启动)

exit (返回普通命令界面)

lsnrctl start (启动监听)

关闭数据库(登录状态)

SQL>shutdown immediate;

使用数据库实例

防止sqlplus工具中无法使用删除键

stty erase '^H'

进入sqlplus工具

sqlplus / as sysdba

图片.png

启动数据库

startup

图片.png

注:此处必须执行上述操作,否则下述操作都会报错误:

ERROR at line 1:
ORA-01034: ORACLE not available
Process ID: 0
Session ID: 0 Serial number: 0

建立表空间
**
建立用户使用之前需要先建立表空间,否则默认使用系统表空间,不合适。

1、建立临时表空间
格式:

create temporary tablespace 表空间名 
    tempfile '数据文件名' 
    size 表空间初始大小 
    autoextend on next 表空间自动增长大小 
    maxsize 表空间最大大小 
    extent management local;
(*数据文件名 包含全路径, 表空间大小,表空间自动增长大小,及表空间最大大小单位皆是m)

实例:

create temporary tablespace springcloud_temp
    tempfile '/opt/oracle/oradata/orcl/springcloud_temp.dbf' 
    size 1024m
    autoextend on next 100m 
    maxsize 10240m
    extent management local;

图片.png

2、建立数据表空间
格式:

create tablespace 表空间名 
    datafile '数据文件名' 
    size 表空间大小
    autoextend on next 表空间自动增长大小 
    maxsize 表空间最大大小 
    extent management local;
(*数据文件名 包含全路径, 表空间大小,表空间自动增长大小,及表空间最大大小单位皆是m)

实例:

create tablespace springcloud logging
    datafile '/opt/oracle/oradata/orcl/springcloud.dbf' 
    size 1024m
    autoextend on next 100m 
    maxsize 10240m
    extent management local;

图片.png

建立用户并指向表空间
格式:

create user 用户名 identified by 密码 default tablespace 缺省表空间;

缺省表空间表示 用户数据如果没有专门指出,其数据就保存在缺省表空间中, 也就是保存在对应的物理文件中

实例:

create user spring identified by spring default tablespace springcloud temporary tablespace springcloud_temp;


图片.png

给用户授权
**
格式:

grant 权限/数据库 to 用户名

实例(dba = Database Administration,最高权限):

grant dba to spring;

图片.png

使用新建用户连接数据库实例

sqlplus /nolog

conn spring/spring@localhost/orcl

图片.png

图片.png

客户端连接Oracle

1.oracle环境下启动数据库及监听(正确步骤)

su - oracle

sqlplus / as sysdba  #进入sqlplus工具

startup  #开启数据库

exit  #退出sqlplus工具

lsnrctl start  #开启监听

图片.png

2.root环境下开启防火墙监听端口

su root

firewall-cmd --zone=public --add-port=1521/tcp --permanent  #添加防火墙开放端口

systemctl restart firewalld  #重启防火墙

firewall-cmd --list-ports  #查看防火墙开放端口

图片.png

3.本地使用Navicat Premium,建立连接

图片.png

点击连接测试:

图片.png

点击确定查看数据库:

图片.png

如有贻误,还请评论指正