CentOS7安装Oracle数据库的全流程

一、准备工作

1、下载Oracle的安装介质
Oracle 11g R2 Linux版本有两个压缩文件包,都需下载安装才会完整。
linux.x64_11gR2_database_1of2.zip
linux.x64_11gR2_database_2of2.zip
下载地址:网盘分享
链接:https://pan.baidu.com/s/1Y9hwNvlm5JIDMNLa0P_csQ
提取码:mhms
链接:https://pan.baidu.com/s/1QXQHy_FYRh2KmbpfQpXMng
提取码:gae2
2、检查设置服务器内核安装环境
(1)检查操作系统补丁包
(1)以root用户登录系统。
(2)使用uname -r命令查看kernel版本
(3)在root账号下执行如下脚本命令

for dep_rpm in elfutils-devel unixODBC* unixODBC.i686 unixODBC-devel.i686 binutils.x86_64 compat-libcap1.x86_64 compat-libstdc++-33.i686 compat-libstdc++-33.x86_64 gcc.x86_64 gcc-c++.x86_64 glibc.i686 glibc.x86_64 glibc-devel.i686 glibc-devel.x86_64 ksh libaio.i686 libaio.x86_64 libaio-devel.i686 libaio-devel.x86_64 libgcc.i686 libgcc.x86_64 libstdc++.i686 libstdc++.x86_64 libstdc++-devel.i686 libstdc++-devel.x86_64 libXi.i686 libXi.x86_64 libXtst.i686 libXtst.x86_64 make.x86_64 sysstat.x86_64 vim epel-release lrzsz unzip xorg*;do yum install $dep_rpm -y;done

(2)修改内核参数
(1)通过修改文件/etc/sysctl.conf,增加要修改的内核参数值

fs.file-max = 6815744
fs.aio-max-nr = 1048576
kernel.shmall = 524288
kernel.shmmax = 2147483647
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576
net.ipv4.tcp_wmem = 262144 262144 262144
net.ipv4.tcp_rmem = 4194304 4194304 4194304

查看linux服务器的位数:getconf LONG_BIT
内核参数的详解:
(1)kernel.shmmax
32位linux系统:可取最大值为4GB(4294967296bytes)-1byte,即4294967295。建议值为多于内存的一半,所以如果是32为系统,一般可取值为4294967295。32位系统对SGA大小有限制,所以SGA肯定可以包含在单个共享内存段中。若物理内存大于4GB,也取4GB-1byte。
64位linux系统:可取的最大值为物理内存值-1byte,建议值为多于物理内存的一半,一般取值大于SGA_MAX_SIZE即可,可以取物理内存-1byte。例如,如果为12GB物理内存,可取12_1024_1024*1024-1=12884901887,SGA肯定会包含在单个共享内存段中。
(2)kernel.shmall
查看系统默认的值-----------getconf PAGESIZE
默认是4096(字节 4K
一个共享内存段的最大大小是16G,那么需要共享内存页数是16GB/4KB=16777216KB /4KB=4194304(页),也就是64Bit系统下16GB物理内存,设置kernel.shmall = 4194304才符合要求。
(2)运行命令进行参数修改。

/sbin/sysctl -p

(3)检查参数是否生效

# /sbin/sysctl -a | grep sem
# /sbin/sysctl -a | grep shm
# /sbin/sysctl -a | grep file-max
# /sbin/sysctl -a | grep aio-max-nr
# /sbin/sysctl -a | grep net.ipv4.ip_local
# /sbin/sysctl -a | grep rmem
# /sbin/sysctl -a | grep wmem

3、设置oracle用户的shell限制
(1)以root用户登录。
步骤 2 修改文件/etc/security/limits.conf,追加以下内容(如果不存在)。

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

(2)修改文件/etc/pam.d/login,追加以下内容。

session  required   pam_limits.so

(3)修改文件/etc/pam.d/su,追加以下内容。

session required pam_limits.so

(4)修改文件/etc/profile,追加以下内容。

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

4、检查SWAP空间大小
(1)以root用户登录。
(2)检查物理内存大小。

# grep MemTotal /proc/meminfo

1881276 KB【物理内存过于小?】
(3)检查SWAP空间大小。

# grep SwapTotal /proc/meminfo

4063228 KB
SWAP空间大小建议值如图所示。
CentOS7安装Oracle数据库的全流程_第1张图片
5、创建用户和组
(1)以root用户登录。
(2)创建dba组,先检查dba组是否存在和/或组id是否一致。

#grep dba /ect/group

无输出则表示dba组不存在。如果dba组已存在,但组id不一样,则使用以下命令删除dba组。

# /usr/sbin/groupdel dba

创建dba组。

#/usr/sbin/groupadd -g 200 dba

(3)创建oinstall组。
先检查oinstall组是否存在和/或组id是否一致。

#grep oinstall /etc/group

无输出则表示oinstall组不存在。如果oinstall组已存在,但组id不一致,则使用以下命令删除oinstall组。

#/usr/sbin/groupdel oinstall

创建oinstall组。

#/usr/sbin/groupadd -g 201 oinstall

(4)创建oracle用户。
检查oracle用户是否存在和/或用户id是否一致。

#grep oracle /etc/passwd

无输出则表示Oracle用户不存在。如果Oracle用户已存在,但用户id不一致,则使用以下命令删除Oracle用户。

# /usr/sbin/userdel -rf oracle

创建oracle用户。

#/usr/sbin/useradd -u 300 -g oinstall -G dba -d /home/oracle -s /bin/bash -m oracle 

修改oracle用户密码。

passwd oracle

6、创建安装目录并授权
(1)以root用户登录。
(2)赋予目录正确的权限。
对文件系统/opt/oracle赋权。

# mkdir /opt/oracle;chown -R oracle:oinstall /opt/oracle
# chmod -R 775 /opt/oracle

对文件系统/opt/oraadm赋权。

# mkdir /opt/oraadm ;chown -R oracle:dba /opt/oraadm
# chmod -R 770 /opt/oraadm

创建目录/usr/local/bin并赋权。
检查/usr/local/bin目录是否存在,如不存在则需创建该目录,并赋予755权限。

#mkdir /usr/local/bin
#chmod 755 /usr/local/bin
#ll /usr/local |grep bin

赋权/tmp目录权限。
检查/tmp是否具有1777权限,如不具备则赋予/tmp目录1777权限。

#chmod 1777 /tmp
#ll / |grep tmp

7、设置oracle用户环境变量
(1)以oracle用户登录操作系统。
(2)编辑环境变量文件。
注意:
ORACLE_BASE,ORACLE_HOME,ORACLE_SID,NLS_LANG请根据实际情况进行设置。
ORACLE_SID唯一的标识一个实例,一般以数据库名加上实例号为命名规范,例如:有两个实例,数据库名称为suseora,实例1命名为suseora1,实例2命名为suseora2,依次类推,这里_数据库实例设置为orcl_。
NLS_LANG格式为区域_语言.字符集,字符集必须和数据库保持一致。

cd /home/oracle/.bash_profile
$ vi .bash_profile


export ORACLE_BASE=/opt/oracle
export ORACLE_HOME=/opt/oracle/product/11gR2/db
export ORACLE_SID=orcl
export ORACLE_TERM=xterm
LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib:$ORACLE_HOME/rdbms/lib
export LD_LIBRARY_PATH
SHLIB_PATH=$ORACLE_HOME/lib:$ORACLE_HOME/rdbms/lib
export SHLIB_PATH
# Set shell search paths:
export PATH=$ORACLE_HOME/bin:/usr/sbin:$PATH:/usr/local/bin
# CLASSPATH must include the following JRE locations:
CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
export CLASSPATH=$CLASSPATH:$ORACLE_HOME/network/jlib
export NLS_LANG=AMERICAN_AMERICA.AL32UTF8

(3)执行source .bash_profile命令,使环境变量生效。
(4)执行env命令,确认环境变量。
8、拷贝安装文件并创建安装目录
(1)以root用户登录。
(2)将oracle安装文件以二进制的方式拷贝至节点1的“/opt/oraadm”中,如下所示。如果没有oraadm则创建并授权777权限。
注:从服务器下载文件到本地某路径:scp [email protected] /home/mysql/MySQL-server-5.6.27-1.rhel5.x86_64.rpm C:下载软件
将本地某文件上传至服务器:scp C:下载软件jdk-8u144-linux-x64.tar.gz [email protected] /home/mysql
(3)解压缩安装文件,并赋予权限。
安装unzip命令

yum install -y unzip zip

更改oracle介质zip为777权限

# cd /opt/oraadm
# unzip /opt/oraadm/linux.x64_11gR2_database_1of2.zip
# unzip /opt/oraadm/linux.x64_11gR2_database_2of2.zip
# chmod 770 -R /opt/oraadm/database
# chown oracle:dba -R /opt/oraadm/database
# mkdir grid
# chmod 770 -R /opt/oraadm/grid
# chown oracle:dba -R /opt/oraadm/grid

(4)创建Inventory目录
创建目录/opt/oraInventory,并使oracle:oinstall为其所有者。
以root用户登录,创建目录/opt/oraInventory。

# mkdir /opt/oraInventory

使oracle:oinstall为该目录所有者。

# chown oracle:oinstall /opt/oraInventory
# chmod 770 /opt/oraInventory

9、搭建Xstart环境
(1)首先保证linux服务器已安装“xorg-x11-xauth”软件包,否则会报错:“已拒绝X11转移申请”。
如果没有安装图形界面,则需要先安装图形化安装包。
切换为root账号,配置Display

 [root@vlxcndcz01bpmth ~]#yum install xorg-x11-xauth.x86_64
 [root@vlxcndcz01bpmth ~]#yum install xterm
 [root@vlxcndcz01bpmth ~]#yum install xclock


 方式一:
 [root@vlxcndcz01bpmth ~]#export DISPLAY=172.20.10.3:0.0(本地IP而不是服务器IP):0.0
 方式二:
 #编辑/etc/profile文件,添加内容:export DISPLAY=:0.0
[root@vlxcndcz01bpmth ~]# vi /etc/profile
[root@vlxcndcz01bpmth~]# cat /etc/profile
#省略……
export DISPLAY=172.20.10.3:0.0

(2)配置xmanager
确保主机名配置一致否则,会报INS-06101错误
[INS-06101] IP address of localhost could not be determined
CentOS7安装Oracle数据库的全流程_第2张图片
(3)打开xstart配置连接主机IP以及配置命令,点击运行/usr/bin/xterm -ls -display $DISPLAY
CentOS7安装Oracle数据库的全流程_第3张图片
报错:DISPLAY not set. Please set the DISPLAY and try again.
解决:切换到root下,执行export DISPLAY=172.20.10.3:0.0,再执行xhost +,再切换到oracle
su oracle
/opt/oraadm/database/runInstaller
CentOS7安装Oracle数据库的全流程_第4张图片
取消配置安全更新
CentOS7安装Oracle数据库的全流程_第5张图片
不勾选“I wish to receive security updates via My Oracle Support”,选择“Next”。
CentOS7安装Oracle数据库的全流程_第6张图片
取消安全更新,单击“Yes”。
选择安装方式,选择“Install database software only”,单击“NEXT”。
CentOS7安装Oracle数据库的全流程_第7张图片
指定安装类型,选择“Single instance database installation”
CentOS7安装Oracle数据库的全流程_第8张图片
选择安装语言
CentOS7安装Oracle数据库的全流程_第9张图片
选择软件版本,选择“Enterprise Edition”,单击“Next”。
CentOS7安装Oracle数据库的全流程_第10张图片
指定安装目录,在Oracle Base中填写“/opt/oracle”,即oracle用户的环境变量O R A C L E B A S E 。 在 S o f t w a r e L o c a t i o n 中 填 写 “ / o p t / o r a c l e / p r o d u c t / 11 g R 2 / d b ” , 即 o r a c l e 用 户 的 环 境 变 量 ORACLE_BASE。 在Software Location中填写“/opt/oracle/product/11gR2/db”,即oracle用户的环境变量ORACLE
BASE。在SoftwareLocation中填写“/opt/oracle/product/11gR2/db”,即oracle用户的环境变量ORACLE_HOME。
CentOS7安装Oracle数据库的全流程_第11张图片
CentOS7安装Oracle数据库的全流程_第12张图片
设置操作系统用户组,Database Administrator Group 选择“dba”,Database Operator Group 选择“dba”,单击“Next”。

CentOS7安装Oracle数据库的全流程_第13张图片
安装概要检查,检查没有问题,单击“Install”按钮进行安装。由于系统中已经存在更新的软件包,以下错误可以忽略。
CentOS7安装Oracle数据库的全流程_第14张图片
安装概要检查结果:
CentOS7安装Oracle数据库的全流程_第15张图片
1、对于shmall问题:点击fix and check again,打开新的终端按照步骤进行,然后点击OK,继续检查。
CentOS7安装Oracle数据库的全流程_第16张图片
2、对于semmni,在内核设置处已经设置,忽略;packages安装包也可忽略。
3、architecture—
CentOS7安装Oracle数据库的全流程_第17张图片
oracle的安装版本不正确,本系统需要安装linux64位的
5、安装过程中会出现如下报错,解决方案如下。
错误1---------
CentOS7安装Oracle数据库的全流程_第18张图片

解决方案===
切换回oracle用户,修改
/opt/oracle/product/11gR2/db/ctx/lib/ins_ctx.mk文件中的配置
ctxhx: $(CTXHXOBJ)
$(LINK_CTXHX) $(CTXHXOBJ) $(INSO_LINK) 修改为
ctxhx: $(CTXHXOBJ)
-static $(LINK_CTXHX) $(CTXHXOBJ) $(INSO_LINK) /usr/lib64/stdc.a
错误2---------
CentOS7安装Oracle数据库的全流程_第19张图片
解决方案===
需要修改,/opt/oracle/product/11gR2/db/sysman/lib/ins_emagent.mk文件中的配置,将文件中的
$(SYSMANBIN)emdctl:
$(MK_EMAGENT_NMECTL) 修改为
$(SYSMANBIN)emdctl:
$(MK_EMAGENT_NMECTL) -lnnz11

继续:打开终端以root用户执行以下命令,执行的时候出现一些简单问题,直接点击enter即可
CentOS7安装Oracle数据库的全流程_第20张图片
安装成功,如下提示
CentOS7安装Oracle数据库的全流程_第21张图片
最后检查安装错误,cat /opt/oracle/product/11gR2/db/install/make.log

二、配置ORACLE监听器

配置数据库连接字符串:协议,地址,端口等
(1)启动NETCA。
用oracle用户登录节点1启动NETCA。选择“Cluster configuration”。
CentOS7安装Oracle数据库的全流程_第22张图片CentOS7安装Oracle数据库的全流程_第23张图片
默认的端口名称
CentOS7安装Oracle数据库的全流程_第24张图片
选择TCP
CentOS7安装Oracle数据库的全流程_第25张图片
选择端口范围1500-1600
CentOS7安装Oracle数据库的全流程_第26张图片
提示端口被占用?
勾选Automatic Maintenance Tasks界面中的“Enable automatic maintenance tasks”。
解决方案修改.bash_profile中的ORACLE_HOSTNAME为hostname
CentOS7安装Oracle数据库的全流程_第27张图片

三、创建oracle数据库

使用操作系统oracle用户调用DBCA进行安装
(1)以oracle用户登录节点1。
(2)启动DBCA安装界面。
CentOS7安装Oracle数据库的全流程_第28张图片
注意:只有 su - oracle才能启用oracle环境,而非su oracle
su oracle只切换用户,而非环境变量,环境变量仍然是root的,不会执行oracle主目录中的profile脚本。
上述报错解决-------export DISPLAY=172.20.10.3:0.0
输入dbca后无反应=======在Xstart中调用终端而非Xshell中。
CentOS7安装Oracle数据库的全流程_第29张图片
CentOS7安装Oracle数据库的全流程_第30张图片
CentOS7安装Oracle数据库的全流程_第31张图片
填写数据库名
CentOS7安装Oracle数据库的全流程_第32张图片
CentOS7安装Oracle数据库的全流程_第33张图片
接下来都是默认设置,图片略过
DBCA运行完毕,数据库建立,完成数据库创建操作。
CentOS7安装Oracle数据库的全流程_第34张图片
登录数据库进行验证。
数据库实例启动后,登录数据库确认数据库状态。
CentOS7安装Oracle数据库的全流程_第35张图片

四、oracle创建其他用户

oracle的权限分为系统权限和对象权限。系统权限可以让用户执行特定的指令,比如创建用户create table创建表,grant any privilege为用户赋予任何系统权限。对象权限指的是用户可以对各个对象进行操作,delete允许用户删除表或视图的行,select允许用户从表或视图、序列(sequences)与快照(snapshots)查询信息。
每个oracle用户都有一个名字和口令,并拥有一些由其创建的表、视图和其他资源。oracle角色(role)就是一组权限(privilege)(或者是每个用户根据其状态和条件所需的访问类型)。用户可以给角色授予或赋予指定的权限,然后将角色赋给相应的用户。一个用户也可以直接给其他用户授权。
一、创建用户
oracle内部有两个建好的用户:system和sys。用户可直接登录到system用户以创建其他用户,因为system具有创建别 的用户的 权限。 在安装oracle时,用户或系统管理员首先可以为自己建立一个用户。
语法[创建用户]: create user 用户名 identified by 口令[即密码];
例子: create user test identified by test;
语法[更改用户]: alter user 用户名 identified by 口令[改变的口令];
例子: alter user test identified by 123456;
二、删除用户
语法:drop user 用户名;
例子:drop user test;
若用户拥有对象,则不能直接删除,否则将返回一个错误值。指定关键字cascade,可删除用户所有的对象,然后再删除用户。
语法: drop user 用户名 cascade;
例子: drop user test cascade;
三、授权角色
oracle为兼容以前版本,提供三种标准角色(role):connect/resource和dba.
(1)讲解三种标准角色:
1》. connect role(连接角色)
–临时用户,特指不需要建表的用户,通常只赋予他们connect role.
–connect是使用oracle简单权限,这种权限只对其他用户的表有访问权限,包括select/insert/update和delete等。
–拥有connect role 的用户还能够创建表、视图、序列(sequence)、簇(cluster)、同义词(synonym)、回话(session)和其他 数据的链(link)
2》. resource role(资源角色)
–更可靠和正式的数据库用户可以授予resource role。
–resource提供给用户另外的权限以创建他们自己的表、序列、过程(procedure)、触发器(trigger)、索引(index)和簇(cluster)。
3》. dba role(数据库管理员角色)
–dba role拥有所有的系统权限
–包括无限制的空间限额和给其他用户授予各种权限的能力。system由dba用户拥有
(2)授权命令
语法: grant connect, resource to 用户名;
例子: grant connect, resource to test;
用户:创建用户必须为其指定表空间,如果没有显性指定默认表空间,则指定为users表空间;创建用户后,可以在用户上,创建表、存储过程等等其他数据库对象;
表:是数据记录的集合;
创建过程: 表空间—>用户—>表;
所属关系: 表空间 包含 用户 包含 表;

五、管理工具sql developer进行连接

附:
如果本机安装有Oracle数据库,用PLSQL Dev 连接数据库自然没有什么问题,但是如果本机没有安装oracle 客户端,要连接非本地机的oracle DB,那么一种方法就是在本地也安装Oracle,或者安装类似oracle develop 10g开发套件,这些安装方法比较麻烦,安装下来占用磁盘空间和系统资源,特别是oracle数据库启动的时候大量占用系统服务和资源,不是理想的方法。
安装使用过PLSQL Dev都知道,要连接数据库,必须配置TNS(Transparence Network Substrate),而直接安装PLSQL Dev 之后,本机是没有Oracle HOME的注册表项,连网络连接配置项都没有,PLSQL Dev 就是一个文本编辑器而已。
PLSQL Dev 连接远程oracle的一个有效解决方法使使用OCI。ORACLE调用接口(Oracle Call Interface简称OCI)提供了一组可对ORACLE数据库进行存取的接口函数,通过在第三代程序设计语言中进行调用可达到存取ORACLE数据库的目的。本文介绍PLSQL Dev如何使用OCI的实例连接远程数据库的方法。
1、windows安装sql developer并连接centos的oracle
(1)安装
下载地址:
链接:https://pan.baidu.com/s/1ojXGysHDCpf80EXussa5EA
提取码:5ddp
CentOS7安装Oracle数据库的全流程_第36张图片
CentOS7安装Oracle数据库的全流程_第37张图片
CentOS7安装Oracle数据库的全流程_第38张图片
CentOS7安装Oracle数据库的全流程_第39张图片
CentOS7安装Oracle数据库的全流程_第40张图片
CentOS7安装Oracle数据库的全流程_第41张图片
(2)连接设置
1、下载轻量级免安装的客户端:
链接:https://pan.baidu.com/s/10Id7JzTGJ3L4YTVPXct2Pg
提取码:1zrm
解压到C:下载软件instantclient_12_2
拷贝服务端目录“/opt/oracle/product/11gR2/db/network/admin/tnsnames.ora”到客户端的“nstantclient-basic-nt-11.2.0.3.0NETWORKADMIN“目录,该目录没有的话需要创建。
修改tnsnames.ora的内容

# tnsnames.ora Network Configuration File: /opt/oracle/product/11gR2/db/network/admin/tnsnames.ora
# Generated by Oracle configuration tools.
ORCL =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.10.114)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = orcl)
    )
  )

2、开启oracle监听器
su - oracle
lsnrctl ------查看监听器
status ------状态
start ------打开监听
报错1:
listener does not currently konw of service requested in connect descriptor(监听程序当前无法识别连接描述符中请求的服务)
*检查tnsnames.ora的内容;
*检查oracle是否启动:
sqlplus /nolog;
conn as sysdba;
select status from v$instance;—查看视图,查看当前实例的状态。
若没有启动,则startup;进行启动。不要使用startup nomount启动,连接时会报错。
CentOS7安装Oracle数据库的全流程_第42张图片

2、centos上安装sql developer并连接该服务器的oracle
(1)下载
(2)连接设置

最后

深知大多数初中级Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则近万的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《Java开发全套学习资料》送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

小编已加密:aHR0cHM6Ly9kb2NzLnFxLmNvbS9kb2MvRFVrVm9aSGxQZUVsTlkwUnc==出于安全原因,我们把网站通过base64编码了,大家可以通过base64解码把网址获取下来。

你可能感兴趣的:(面试,阿里巴巴,oracle,数据库,服务器,jvm,ide)