Linux下Oracle数据库安装详解

安装环境

系统:Linux CentOS7 64位
Oracle版本:Oracle 11g R2


一、安装前准备

1、创建运行oracle数据库的系统用户和用户组

[yxc@localhost ~]$ su root  #切换到root
Password: 
[root@localhost ~]# groupadd oinstall  #创建用户组oinstall
[root@localhost ~]# groupadd dba  #创建用户组dba
[root@localhost ~]# useradd -g oinstall -g dba -m oracle  #创建oracle用户,并加入到oinstall和dba用户组
[root@localhost ~]# passwd oracle  #设置用户oracle的登陆密码,不设置密码,在CentOS的图形登陆界面没法登陆
Changing password for user oracle.
New password:   # 密码
BAD PASSWORD: The password is shorter than 8 characters
Retype new password:   # 确认密码
passwd: all authentication tokens updated successfully.
[root@localhost ~]# id oracle # 查看新建的oracle用户
uid=1001(oracle) gid=1002(dba) groups=1002(dba)

如下图所示:
Linux下Oracle数据库安装详解_第1张图片

2、修改/etc/sysctl.conf文件,输入命令: vi /etc/sysctl.conf ,将下列内容加入该文件。

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

使用/sbin/sysctl -p命令使 sysctl.conf 配置生效。


3、修改操作系统核心参数
输入命令:vi /etc/security/limits.conf,将下列内容加入该文件。

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

4.、修改/etc/pam.d/login 文件,输入命令:vi /etc/pam.d/login,将下列内容加入该文件。

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

5、 编辑 /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

6、创建数据库软件目录和数据文件存放目录,注意磁盘空间即可,这里我放到oracle用户下,输入如下命令:

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

7、更改目录属主为 oracle 用户所有,输入命令:

chown -R oracle:oinstall /home/oracle/app

8、切换为oracle用户登录

su - oracle

9、配置 oracle 用户环境变量
编辑 bash_profile ,输入命令:vi .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

10、切换为 root 用户,关闭 selinux

su root
# 修改/etc/selinux/config文件
vi /etc/selinux/config

修改SELINUX为disabled,如下:

# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing - SELinux security policy is enforced.
#     permissive - SELinux prints warnings instead of enforcing.
#     disabled - No SELinux policy is loaded.
SELINUX=disabled   #此处修改为disabled
# SELINUXTYPE= can take one of three two values:
#     targeted - Targeted processes are protected,
#     minimum - Modification of targeted policy. Only selected processes are protected. 
#     mls - Multi Level Security protection.
SELINUXTYPE=targeted 

二、软件包依赖

安装oracle之前需要许多软件包依赖,如果可用外网,使用如下命令安装。

yum install binutils compat-libstdc++ elfutils-libelf elfutils-libelf-devel elfutils-libelf-devel-static gcc gcc-c++ glibc glibc-common glibc-devel glibc-headers kernel-headers ksh libaio libaio-devel libgcc libgomp libstdc++ libstdc++-devel make sysstat unixODBC unixODBC-devel

查看这些软件包版本,可使用如下命令,如有未安装的会有提示。

rpm -q binutils compat-libstdc++ elfutils-libelf elfutils-libelf-devel elfutils-libelf-devel-static gcc gcc-c++ glibc glibc-common glibc-devel glibc-headers kernel-headers ksh libaio libaio-devel libgcc libgomp libstdc++ libstdc++-devel make sysstat unixODBC unixODBC-devel

如果 compat-libstdc++ 安装提示No package compat-libstdc++ available.,请使用命令yum install compat-libstdc++-33安装。
使用rpm -qa | grep "compat-libstdc"可查看。


三、安装

1、下载安装包

官网下载地址:https://www.oracle.com/database/technologies/oracle-database-software-downloads.html#11g,这里下载11g R2版本,两个包都下载,如下:
Linux下Oracle数据库安装详解_第2张图片


2、安装

解压安装包,命令如下:

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

解压完成后,database目录如下
Linux下Oracle数据库安装详解_第3张图片

切换到oracle用户

su - oracle

进入 database 目录,使用./runInstaller命令安装,如下

cd database
./runInstaller

注:如果安装过程中出现弹窗很小,显示不全的问题,安装命令换为如下即可。

./runInstaller -jreLoc /etc/alternatives/jre_1.8.0

不出意外的话,恭喜你,将弹出安装界面,如果遇到display at least 256 colors这个问题,请看文末的解决办法。弹出安装界面后安装过程比较简单,就不细说了,步骤截图如下。
Linux下Oracle数据库安装详解_第4张图片

安装选项,三个选项分别为:①创建并配置一个新数据库。②只安装数据库软件,适用于已有Oracle数据库数据用于数据迁移的。③升级已有数据库。这里选择第一个选项。
Linux下Oracle数据库安装详解_第5张图片
Linux下Oracle数据库安装详解_第6张图片
Linux下Oracle数据库安装详解_第7张图片
Linux下Oracle数据库安装详解_第8张图片
Linux下Oracle数据库安装详解_第9张图片
Linux下Oracle数据库安装详解_第10张图片
Linux下Oracle数据库安装详解_第11张图片
Linux下Oracle数据库安装详解_第12张图片
Linux下Oracle数据库安装详解_第13张图片
Linux下Oracle数据库安装详解_第14张图片
Linux下Oracle数据库安装详解_第15张图片
Linux下Oracle数据库安装详解_第16张图片
Linux下Oracle数据库安装详解_第17张图片
Linux下Oracle数据库安装详解_第18张图片
Linux下Oracle数据库安装详解_第19张图片
Linux下Oracle数据库安装详解_第20张图片
Linux下Oracle数据库安装详解_第21张图片
Linux下Oracle数据库安装详解_第22张图片
Linux下Oracle数据库安装详解_第23张图片
Linux下Oracle数据库安装详解_第24张图片
Linux下Oracle数据库安装详解_第25张图片
Linux下Oracle数据库安装详解_第26张图片
Linux下Oracle数据库安装详解_第27张图片

这里提示执行这两个脚本,执行即可,如下:
Linux下Oracle数据库安装详解_第28张图片
Linux下Oracle数据库安装详解_第29张图片
至此,数据库安装成功。
注:listener.ora和tnsnames.ora所在路径为
/home/oracle/app/oracle/product/11.2.0/dbhome_1/network/admin/


3、防火墙设置

oracle数据库默认端口号1521,这里设置防火墙开放1521端口,如下

firewall-cmd --add-port=1521/tcp --permanent --zone=public
#重启防火墙(修改配置后要重启防火墙)
firewall-cmd --reload

四、相关使用

1、启动与关闭数据库
//oracle11为需要执行的oracle实例,默认是orcl,我这里oracle11是我新建的
export ORACLE_SID=oracle11

sqlplus /nolog
connect /as sysdba

//启动数据库
startup
//关闭数据库
shutdown

//查看登录的数据库实例
select instance_name from v$instance;
//查看当前登录的用户
show user
//查看数据字典包含哪些字段
desc dba_users;

2、启动和停止监听器

在oracle用户下的OS层面执行,而不是在sqlplus中执行

//启动监听
lsnrctl start
//停止监听
lsnrctl stop

3、解锁用户
alter user username account unlock;
//例如解锁scott用户,如下:
alter user scott account unlock;

4、创建用户
sqlplus /nolog
connect /as sysdba

查看用户表空间放置位置:

select name from v$datafile;

创建用户表空间

CREATE TABLESPACE NOTIFYDB DATAFILE '/home/oracle/app/oradata/orcl/chaodev.dbf' SIZE 200M AUTOEXTEND ON EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO; 

创建用户,指定密码和上面创建的用户表空间

CREATE USER yxc IDENTIFIED BY 123456 DEFAULT TABLESPACE NOTIFYDB;

赋予权限

grant connect,resource to yxc;
grant unlimited tablespace to yxc;
grant create database link to yxc;
grant select any sequence,create materialized view to yxc;

五、问题及解决方法

1、使用dbca创建数据库时,中文乱码

使用如下命令启动 dbca 即可

export LANG="en_US:UTF-8"
dbca

2、【ORACLE】安装时遇到“display at least 256 colors”

解决方法:
方式1:

su - root
DISPLAY=:0.0
export DISPLAY
echo $DISPLAY
xhost
xhost +
su - oracle
DISPLAY=:0.0
export DISPLAY
echo $DISPLAY

方式2:也可以直接将DISPLAY写入配置文件

vim .bash_profile
//配置display变量
export display=:0.0 

生效配置文件
source .bash_profile 

3、安装过程中弹出错误,如下图所示

Linux下Oracle数据库安装详解_第30张图片
查看日志如下:
Linux下Oracle数据库安装详解_第31张图片
可能是glibc的版本过高所致(高于2.14),解决办法:
下载安装glibc-static-2.17-292.el7.x86_64.rpm,如下图所示,如需下载此包请前往:传送门
在这里插入图片描述
修改文件/home/oracle/app/oracle/product/11.2.0/dbhome_1/ctx/lib/ins_ctx.mk,将

ctxhx: $(CTXHXOBJ)
	$(LINK_CTXHX) $(CTXHXOBJ) $(INSO_LINK)

改为:

ctxhx: $(CTXHXOBJ)
	-static $(LINK_CTXHX) $(CTXHXOBJ) $(INSO_LINK) /usr/lib64/stdc.a

Linux下Oracle数据库安装详解_第32张图片
接着又提示错误如下:
Linux下Oracle数据库安装详解_第33张图片

莫要慌张,修改
/home/oracle/app/oracle/product/11.2.0/dbhome_1/sysman/lib/ins_emagent.mk文件,将

$(MK_EMAGENT_NMECTL)

改为:

$(MK_EMAGENT_NMECTL) -lnnz11

Linux下Oracle数据库安装详解_第34张图片
保存后点击 Retry 即可,如下:
Linux下Oracle数据库安装详解_第35张图片


4、plsql连接数据库时,报如下错误

Linux下Oracle数据库安装详解_第36张图片
解决:listener.ora中加入如下内容,其中orcl改为你的数据库实例名称

SID_LIST_LISTENER =  
(SID_LIST =  
  (SID_DESC =  
  (GLOBAL_DBNAME = orcl)
  (SID_NAME = orcl)
  )
)

Linux下Oracle数据库安装详解_第37张图片

原创不易,转载请注明出处!最后感兴趣的可以关注下我的公众号(公众号搜索chaodev)。

你可能感兴趣的:(数据库,Oracle,oracle,数据库,linux)