1. 首页 > 知识 > 数据库

Linux下Oracle数据库安装详解

一、安装前准备

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

[root@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=1001(oinstall) groups=1001(oinstall),1002(dba)

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  /lib64/security/pam_limits.so
#64为系统,千万别写成/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

:wq保存后使设置生效:

source /etc/profile

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

:wq保存后使设置生效:

source .bash_profile

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

SELinux 是部署在 Linux 系统中的安全增强功能模块,它通过对进程和文件资源采用 MAC
(强制访问控制方式)为 Linux 系统提供了改进的安全性。

setenforce 0 #关闭selinux

service iptables stop #临时关闭防火墙 (根据系统关闭防火墙)

 systemctl stop firewalld#临时关闭防火墙  (根据系统关闭防火墙)

二、软件包依赖

安装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"可查看。

ibmmq.png

当再次查看哪些安装包未安装时还会报is not installed;这个是因为使用rpm查询时,包名不正确所致。它真正的报名为 compat-libstdc++-33 而不是compat-libstdc++ 。如果包名正确,那么查询结果就会不一样,或可用查看compat-libstdc++-33:

rpm -q binutils compat-libstdc++-33 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

ibmmq1.png

如果 yum install gcc-c++ 安装报错.

This system is not registered with an entitlement server. You can use subscription-manager to register.
There are no enabled repos.
 Run "yum repolist all" to see the repos you have.
 To enable Red Hat Subscription Management repositories:
     subscription-manager repos --enable <repo>
 To enable custom repositories:
     yum-config-manager --enable <repo>

参考This system is not registered with an entitlement server. You can use subscription-manager to register.

三、安装

1、下载安装包

官网下载地址:https://www.oracle.com/database/technologies/oracle-database-software-downloads.html#11g,可下载11g R2版本,两个包都下载。

提供一个百度网盘下载,若失效可网上自找相应安装包。

百度网盘下载地址:

链接:https://pan.baidu.com/s/1A6R9bdAb-9_Pv4eCeANR5w 

提取码:znyd 

2、安装

下载到/home/oracle解压安装包,命令如下:

cd /home/oracle
unzip linux.x64_11gR2_database_1of2.zip
unzip linux.x64_11gR2_database_2of2.zip

解压完成后,database目录如下

2.png

切换到oracle用户

su - oracle

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

cd database
./runInstaller

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

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

注:如果安装过程安装界面乱码。原因:oracle安装默认没有中文语言包,只有用英文。临时解决:export LANG=en_US

export LANG=en_US

不出意外的话,恭喜你,将弹出安装界面,如果遇到display at least 256 colors这个问题,请看Oracle 安装时遇到“display at least 256 colors”解决办法。弹出安装界面后安装过程比较简单,就不细说了,步骤截图如下。


安装选项,三个选项分别为:①创建并配置一个新数据库。②只安装数据库软件,适用于已有Oracle数据库数据用于数据迁移的。③升级已有数据库。这里选择第一个选项。

1.png

1.png

1.png

1.png

1.png

1.png

1.png

1.png

1.png

1.png

1.png

1.png

1.png

1.png

1.png

1.png

1.png

1.png

1.png

1.png

1.png

此时可能会遇到两次错误,参照下边错误解决办法。

后续继续安装

1.png

1.png

1.png

输入密码有格式要求,若不安格式会有提醒,可点yes继续

设置完选择OK

1.png

1.png

根据提示,使用root用户执行两个脚本,如图所示,  然后选择 OK

su - root
/home/oracle/oraInventory/orainstRoot.sh
/home/oracle/app/oracle/product/11.2.0/dbhome_1/root.sh

1.png

1.png

Close

至此,数据库安装成功。

注:listener.oratnsnames.ora所在路径为

/home/oracle/app/oracle/product/11.2.0/dbhome_1/network/admin/

1.png


3、防火墙设置

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

开放1521端口

使用Root用户

查看想开的端口是否已开:firewall-cmd --query-port=1521/tcp

添加指定需要开放的端口:firewall-cmd --add-port=1521/tcp --permanent

重载入添加的端口:firewall-cmd --reload

查询指定端口是否开启成功:firewall-cmd --query-port=1521/tcp

移除指定端口:firewall-cmd --permanent --remove-port=1521/tcp

# firewall-cmd --query-port=1521/tcp
no
# firewall-cmd --add-port=1521/tcp --permanent
success
# firewall-cmd --reload
success
# firewall-cmd --query-port=1521/tcp
yes

四、oracle相关使用

1、启动与关闭数据库

//orcl为需要执行的oracle实例
export ORACLE_SID=orcl
sqlplus /nolog
connect /as sysdba
//启动数据库
startup;
//关闭数据库 #immediate:立即的
shutdown immediate; 
//查看登录的数据库实例
select instance_name from v$instance;
//查看当前登录的用户
show user;
//查看数据字典包含哪些字段
desc dba_users;

1.png

2、启动、停止和查看监听器

//启动监听
lsnrctl start
//停止监听
lsnrctl stop
//查看监听
lsnrctl status

/home/oracle/app/oracle/product/11.2.0/dbhome_1目录下

1.png

3、解锁用户

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

4、创建用户

sqlplus /nolog
//登录指定数据库
conn sys/pwd@orcl as sysdba;

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

select name from v$datafile;

创建用户表空间

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

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

CREATE USER test IDENTIFIED BY test DEFAULT TABLESPACE NOTIFYDB;

赋予用户权限

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

五、用新建的用户连接数据库,并建立一个表

  • export NLS_LANG=American_America.AL32UTF8

    • 注意:UTF8是为了使得sqlplus和linux终端环境一致起来,此时发往数据库的是UTF8,数据库存储前会转为ZHS16GBK.

  • 当读取时,Sqlplus会把收到的ZHS16GBK转换为UTF8发送到Linux终端。

 创建有一个数据库用户

  • sqlplus / as sysdba   #进入sql执行窗口

  • conn / as sysdba   #连接数据库

修改密码:

  • SQL >alter user system identified by system;    //修改system密码

  • SQL >alter user sys identified by sys;   //修改sys密码

  • SQL >ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED; //密码不过期

创建用户

  • SQL > create user test identified by test; 

并给用户赋予权限

  • SQL > grant connect,resource,dba to test;

  • SQL > exit;

使用test用户登录

  • sqlplus test/test

  • SQL> create table STUDENT(ID int, NAME varchar(20));

  • SQL> insert into STUDENT values(1, '张三');

  • SQL> select * from student;

实例名:

  • SQL > select instance_name from v$instance;

服务名:

  • SQL > select global_name from global_name;

4.png

六、问题及解决方法

1、ORACLE安装时遇到“display at least 256 colors”

参考Oracle 安装时遇到“display at least 256 colors”

2、安装过程中弹出界面是乱码

原因分析:oracle安装默认没有中文语言包,只有用英文。

解决方法:

英文临时解决:

export LANG=en_US

英文永久解决:

vi /etc/sysconfig/i18n
LANG="en_US"(不会出现乱码)
LANG="zh_cn.UTF-8"(中文,安装oracle会出现界面乱码的现象)

linux安装Oracle安装界面乱码解决方法! 或者

export NLS_LANG=AMERICAN_AMERICA.UTF8
export LC_ALL=C

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

1.png

根据提示查看日志如下

1.png

可能是glibc的版本过高所致(高于2.14),解决办法:参考

oracle数据库安装报错解决方法/home/oracle/app/oracle/product/11.2.0/dbhome_1/ctx/lib/ins_ctx.mk




本文由傻鸟发布,不代表傻鸟立场,转载联系作者并注明出处:https://shaniao.net/database/137.html

加载中~

联系我们

在线咨询:点击这里给我发消息

微信号:

工作日:10:30-15:30,节假日休息