CentOS7安装Oracle 11g数据库

一、准备

1. Oracle11g安装包:

p13390677_112040_Linux-x86-64_1of7.zip

p13390677_112040_Linux-x86-64_2of7.zip

 

2. 虚拟机配置参考:

虚拟机安装CentOS7具体过程参见://blog.51cto.com/14451009/2428059?source=dra

 

 

 

 

 

 

 

我的配置方案是40G的硬盘/boot(系统启动目录)6个G,/(根目录)20个G,/home(存放所有用户文件的根目录)10个G,swap(虚拟内存)4个G。

 

二、CentOS7配置

首先确认关闭防火墙和Selinux,不知道可百度。

1. 创建用户组和用户

[root@localhost /]# groupadd oinstall
[root@localhost /]# groupadd dba
[root@localhost /]# user-g oinstall -G dba -m oracle  #创建oracle用户,归属oinstall和dba两个组
[root@localhost /]# groups oracle  # 验证oracle对应的组
oracle : dba
[root@localhost /]# id oracle
uid=1001(oracle) gid=1002(dba) groups=1002(dba)  #少了oinstall,再用usermod把用户加到oinstall组

[root@localhost /]# usermod -a -G oinstall oracle
[root@localhost /]# id oracle
uid=1001(oracle) gid=1002(dba) groups=1002(dba),1001(oinstall)
[root@localhost /]# groups oracle
oracle : dba oinstall

2. 创建目录

[root@localhost /]# mkdir -p /data/oracle
[root@localhost /]# mkdir -p /data/oraInventory
[root@localhost /]# mkdir -p /data/database
[root@localhost /]# cd /data  #验证创建情况
[root@localhost data]# ll
total 0
drwxr-xr-x. 2 root root 6 Jul 11 11:36 database
drwxr-xr-x. 2 root root 6 Jul 11 11:36 oracle
drwxr-xr-x. 2 root root 6 Jul 11 11:36 oraInventory
[root@localhost data]# cd ..
[root@localhost /]# chown -R oracle:oinstall /data/oracle  #改变目录属主为oracle
[root@localhost /]# chown -R oracle:oinstall /data/oraInventory
[root@localhost /]# chown -R oracle:oinstall /data/database
[root@localhost /]# ll /data
total 0
drwxr-xr-x. 2 oracle oinstall 6 Jul 11 11:36 database
drwxr-xr-x. 2 oracle oinstall 6 Jul 11 11:36 oracle
drwxr-xr-x. 2 oracle oinstall 6 Jul 11 11:36 oraInventory

3. 修改内核版本名称

因为oracle默认不支持在centos7上安装,所以改为redhat-7

[root@localhost /]# cat /etc/redhat-release
CentOS Linux release 7.4.1708 (Core)
[root@localhost /]# cp /etc/redhat-release /etc/redhat-release.bak #备份
[root@localhost /]# vi /etc/redhat-release
redhat-7

4. 安装依赖包

[root@localhost /]# yum -y install binutils compat-libstdc++-33 elfutils-libelf elfutils-libelf-devel elfutils-libelf-devel-static gcc gcc-c++ glibc glibc-common glibc-devel glibc-headers gl ibc-static kernel-headers libaio libaio-devel libgcc libgomp libstdc++ libstdc++-devel libstdc++-static make numactl-devel sysstat unixODBC unixODBC-devel

Oracle前提校验依赖pdksh,但yum云上没有,网上查了说可以用ksh代替,这里单独安装

[root@localhost /]# yum -y install pdksh

5. 修改内核参数

参考:Linux 下安装Oracle 时,/etc/sysctl.conf 内核参数设置详解 //blog.csdn.net/weixin_34239169/article/details/89830714

[root@localhost /]# cp /etc/sysctl.conf /etc/sysctl.conf.bak
[root@localhost /]# vi /etc/sysctl.conf
# 添加下面内容
kernel.shmall = 2097152
kernel.shmmax = 2147483648  # 也可以是kernel.shmmax = 4294967295
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 9000 65000
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576

[root@localhost /]# /sbin/sysctl -p  # 执行立即生效
[root@localhost /]# cat /proc/sys/kernel/shmmax  # 验证是否生效

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

[root@localhost /]# cp /etc/security/limits.conf /etc/security/limits.conf.bak
[root@localhost /]# vi /etc/security/limits.conf
# 在最后添加下面几行:
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536

7. 修改用户oracle环境变量

[root@localhost /]# cp /home/oracle/.bash_profile /home/oracle/.bash_profile.bak
[root@localhost /]# vi /home/oracle/.bash_profile
......
# 注释下面两行
# PATH=$PATH:$HOME/.local/bin:$HOME/bin  

# export PATH 

# 添加下面内容
export ORACLE_BASE=/data/oracle  # 数据库安装路径
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1 
export ORACLE_SID=orcl  # 实例名
export ORACLE_TERM=xterm 
export PATH=$ORACLE_HOME/bin:/usr/sbin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib 
export LANG=en_US.UTF-8
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK

退出后用root用户执行下面命令,使该配置文件即时生效。

[root@localhost /]#source /home/oracle/.bash_profile

 

三、安装Oracle数据库

1. 将oracle11g安装包拷贝到centos,解压到/data/database

[root@localhost data]# unzip p13390677_112040_Linux-x86-64_1of7.zip -d /data/database
[root@localhost data]# unzip p13390677_112040_Linux-x86-64_2of7.zip -d /data/database
[root@localhost data]# chown -R oracle:oinstall /data/database  # 修改所有者
[root@localhost data]# ll /data/database
total 0
drwxr-xr-x. 7 oracle oinstall 136 Aug 27  2013 database

2. 开始安装oracle数据库

[root@localhost data]# su oracle  #切换到oracle用户安装
[oracle@localhost data]$ cd /database/database  #进入解压后的路径
[oracle@localhost database]$ ./runInstaller  #执行安装程序

 

 

 

 

 

 

仅安装数据库软件

 

单实例安装

 

语言添加Simplified Chinese

 

安装路径和.bash_properties环境变量配置中的一致

 

 

这里提示pdksh缺失,因为已经安装了ksh,所以可以ignore all,然后点击Next。

 

 最后一步,保留安装过程,新开一个xshell窗口,按提示要求用root登录并执行以下脚本,然后回到此界面点击OK。

[root@localhost /]# /data/oraInventory/orainstRoot.sh
Changing permissions of /data/oraInventory.
Adding read,write permissions for group.
Removing read,write,execute permissions for world.

Changing groupname of /data/oraInventory to oinstall.
The execution of the script is complete.
[root@localhost /]# /data/oracle/product/11.2.0/db_1/root.sh
Performing root user operation for Oracle 11g 

The following environment variables are set as:
    ORACLE_OWNER= oracle
    ORACLE_HOME=  /data/oracle/product/11.2.0/db_1

Enter the full pathname of the local bin directory: [/usr/local/bin]:  # 这里直接回车
   Copying dbhome to /usr/local/bin ...
   Copying oraenv to /usr/local/bin ...
   Copying coraenv to /usr/local/bin ...
......

遇到报错:

 

解决方案: 保留安装过程,另外开启一个终端窗口,找到$ORACLE_HOME/sysman/lib /ins_emagent.mk文件,将

$(MK_EMAGENT_NMECTL)

替换为

$(MK_EMAGENT_NMECTL) -lnnz11

然后在安装过程中点击Retry即可。

到此,oracle数据库软件安装完成,下面要创建监听和实例。

四、创建Oracle实例

参考://blog.csdn.net/lia17/article/details/82256565

1. 创建监听:

使用oracle用户登录,执行netca 命令进入可视化监听配置界面,一路Next完成

[oracle@localhost database]$ whereis netca
netca: /data/oracle/product/11.2.0/db_1/bin/netca
[oracle@localhost database]$ cd /data/oracle/product/11.2.0/db_1
[oracle@localhost db_1]$ netca

 

 

 

 

 

 

 

监听配置完成。

 

2. 创建实例:

[oracle@localhost db_1]$ dbca  #执行配置程序

 

 

 

 

 

配置实例名orcl

 

 

 

 

 

配置sys和system密码

 

Memory Size要在40%~60%之间

 

 

Charater sets要选择ZHS16GBK,否则显示中文会乱码

 

点击OK,结束创建实例!至此,可以正常使用oracle11g数据库了。

五、创建Oracle登录用户

1. 在centos中用sys用户登录,验证是否正常能正常登陆

[oracle@localhost db_1]$ sqlplus sys/password as sysdba


SQL*Plus: Release 11.2.0.4.0 Production on Sat Jul 11 14:07:00 2020

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 * FROM v$pwfile_users;

SQL> exit;

 

2. 退出后用PL/SQL访问登录,用sys用户登录

-- 创建表空间
--  默认设置表空间自动扩展,且每次扩展空间大小为100M,限制最大空间为5G,注:datafile后面是表空间的物理存储路径,文件名的后缀可以随便.
create tablespace test_user01 datafile '/data/oracle/oradata/orcl/test_user01.dbf' size 200M autoextend on next 100m maxsize 5G;

-- 创建用户
create user test_user01 identified by test_user01;
-- 分配表空间到用户
alter user test_user01 default tablespace test_user01;

-- 赋权sysdba权限
grant sysdba to test_user01;

-- 赋权其他权限,否则无法登录
grant create session,create table,create view,create sequence,connect,resource,unlimited tablespace to test_user01; 

-- 尝试用test_user01登录
-- conn test_user01/test_user01; 

-- 登录之后查询用户所具有的权限
select * from session_privs; 

/*-- 删除用户及其相关对象,删除之前先断开相关链接
drop user username cascade;*/

 

参考链接:

国内:

//www.cnblogs.com/dudu99/p/11074489.html

//blog.csdn.net/lia17/article/details/82256565

//blog.csdn.net/csgd2000/article/details/100224722

//www.cnblogs.com/MicleZhou2020/p/12200622.html

 

国外:

//dbaora.com/install-oracle-11g-release-2-11-2-on-centos-linux-7/

//oracle-base.com/articles/11g/oracle-db-11gr2-installation-on-oracle-linux-7

 

Oracle官方:

//www.oracle.com/cn/technical-resources/articles/hunter-rac11gr2-iscsi2.html#13