准备环境

材料的准备

Oracle 11g安装包:
百度云链接:https://pan.baidu.com/s/1eVnOtliqTCw0cyrIg7T8sA
提取码: 访问我的博客获取 https://if010.com/database/install_oracle.html

系统的准备

基本设置

# 关闭selinux
setenforce 0
sed -i '/SELINUX/{s/enforcing/disabled/}' /etc/selinux/config# 关闭防火墙,禁止开机启动
systemctl disable firewalld.service
systemctl stop firewalld.service

安装图形化界面

# 安装X Window System和GNOME Desktop
yum groupinstall -y “X Window System” "GNOME Desktop"# 启用图形化界面
startx

systemctl get-default,该命令查看当前是那种模式.
systemctl set-default graphical.target,开机启动图形界面.
systemctl set-default multi-user.target,开机启动字符界面模式.
reboot,重启系统之后才会生效哟~

工具、补丁、依赖安装

yum -y install 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*yum -y update

swap分区

swap分区有两种方式,一种是新建磁盘分区作为swap分区,另一种是用文件作为Swap分区。这里使用的是后者,想用前者的可以参考–>这个链接<–。

SWAP空间大小建议值:

物理内存大小(RAM) SWAP空间大小
2GB~8GB 2倍于RAM
8GB~32GB 1.5倍于RAM
32GB以上 32GB
# 创建要作为swap分区的文件:增加1GB大小的交换分区,则命令写法如下,其中的count等于想要的块的数量(bs*count=文件大小)
dd if=/dev/zero of=/root/swapfile bs=1M count=8192# 格式化为交换分区文件,建立swap的文件系统
mkswap /root/swapfile# 启用交换分区文件
swapon /root/swapfile# 使系统开机时自启用,在文件/etc/fstab中添加一行
/root/swapfile swap swap defaults 0 0# 查看Swap分区大小
grep SwapTotal /proc/meminfo

修改系统内核参数

vim /etc/sysctl.conf
fs.file-max = 6815744
fs.aio-max-nr = 1048576
kernel.shmall = 1048576
kernel.shmmax = 4294967295
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

内核参数的详解:
kernel.shmmax
查看linux服务器的位数:getconf LONG_BIT
32位linux系统:可取最大值为4GB(4294967296bytes)-1byte,即4294967295。建议值为多于内存的一半,所以如果是32为系统,一般可取值为4294967295。32位系统对SGA大小有限制,所以SGA肯定可以包含在单个共享内存段中。若物理内存大于4GB,也取4GB-1byte。

64位linux系统:可取的最大值为物理内存值-1byte,建议值为多于物理内存的一半,一般取值大于SGA_MAX_SIZE即可,可以取物理内存-1byte。例如,如果为12GB物理内存,可取12x1024x1024x1024-1=12884901887,SGA肯定会包含在单个共享内存段中,而我这里是4G,所以是4x1024x1024x1024-1=4294967295。

kernel.shmall
查看系统默认的值:getconf PAGESIZE
默认是4096(字节4K一个共享内存段的最大大小是16G,那么需要共享内存页数是16GB÷4KB=16777216KB÷4KB=4194304(页),也就是64Bit系统下16GB物理内存,设置kernel.shmall = 4194304才符合要求。

运行命令进行参数修改
/sbin/sysctl -p
检查参数是否生效
/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

设置oracle用户的shell限制

vim /etc/security/limits.conf
oracle  soft    nproc   2047
oracle  hard    nproc   16384
oracle  soft    nofile  1024
oracle  hard    nofile  65536vim /etc/pam.d/login
session required    pam_limits.sovim /etc/pam.d/su
session required pam_limits.sovim /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

创建用户和组

创建dba组

/usr/sbin/groupadd -g 200 dba

创建oinstall组

/usr/sbin/groupadd -g 201 oinstall

创建oracle用户

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

修改oracle用户密码

passwd oracle

创建安装目录并授权

创建目录/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

设置oracle用户环境变量

ORACLE_BASE,ORACLE_HOME,ORACLE_SID,NLS_LANG请根据实际情况进行设置。
ORACLE_SID唯一的标识一个实例,一般以数据库名加上实例号为命名规范,例如:有两个实例,数据库名称为suseora,实例1命名为suseora1,实例2命名为suseora2,依次类推,这里_数据库实例设置为orcl_。
NLS_LANG格式为区域_语言.字符集,字符集必须和数据库保持一致。

# 切换到oralce用户
su oralce# 编辑用户环境变量
vim .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# 执行变量环境生效命令
source .bash_profile# 执行命令,确认环境变量
env

拷贝Oralce安装程序,并解压

远程拷贝

scp root@192.168.31.4:/data/Softwares/linux-oracle-11g/linux.x64_11gR2_database_1of2.zip /opt/oraadm/
scp root@192.168.31.4:/data/Softwares/linux-oracle-11g/linux.x64_11gR2_database_2of2.zip /opt/oraadm/

解压

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/databasemkdir /opt/oraadm/grid
chmod 770 -R /opt/oraadm/grid
chown oracle:dba -R /opt/oraadm/gridmkdir /opt/oraInventory
chown oracle:oinstall /opt/oraInventory
chmod 770 /opt/oraInventory

搭建Xstart环境

yum install xorg-x11-xauth.x86_64
yum install xterm
yum install xclock# 配置DISPLAY变量
vim /etc/profile
export DISPLAY=:0.0

安装Oracle数据库

使用oracle用户登录图形化界面,执行/opt/oraadm/database/runInstaller启动安装程序

取消配置安全更新

选择安装方式,选择“Install database software only”,单击“NEXT”。

指定安装类型,选择“Single instance database installation”

选择安装语言,这里我只选择了英文,如果想选中文的话可以在左侧栏寻找后添加

选择软件版本,选择“Enterprise Edition”,单击“Next”。

指定安装目录
Oracle Base中填写“/opt/oracle”,即oracle用户的环境变量ORACLEBASE。
SoftwareLocation中填写“/opt/oracle/product/11gR2/db”,即oracle用户的环境变量ORACLE_BASE。

这里默认即可,安装时的路径和组设置

设置操作系统用户组,Database Administrator Group 选择“dba”,Database Operator Group 选择“dba”,单击“Next”。

安装概要检查结果:对于shmall问题:点击fix and check again,打开新的终端按照步骤进行,然后点击OK,继续检查。

安装概要检查,检查没有问题,单击“Install”按钮进行安装。由于系统中已经存在更新的软件包,而对于semmni,在内核设置处已经设置,所以以下错误可以忽略。

确认没有问题之后可以点击“Finish”进行正式安装

安装中。。。。

安装完成

安装过程中会出现如下报错

解决方案:
切换回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

解决方案:
需要修改,/opt/oracle/product/11gR2/db/sysman/lib/ins_emagent.mk文件中的配置,将文件中的

$(SYSMANBIN)emdctl:$(MK_EMAGENT_NMECTL)

修改为

$(SYSMANBIN)emdctl:$(MK_EMAGENT_NMECTL) -lnnz11

解决方案:
根据提示执行脚本即可

配置Oracle监听器

使用oracle用户登录图形化界面,执行netca启动NETCA,选择“Listener configuration”。

因为没有端口,所以默认选择添加“Add”即可

默认的端口名称

选择TCP

选择端口范围1500-1600,这里默认使用1521

是否添加其他的监听端口,这里选“No”不添加

到这里就完成了,直接“Next”->"Finsh"即可

创建Oracle数据库

使用oracle用户登录图形化界面,执行dbca启动DBCA

填写数据库名

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.

connect role(连接角色)
临时用户,特指不需要建表的用户,通常只赋予他们connect role.
connect是使用oracle简单权限,这种权限只对其他用户的表有访问权限,包括select/insert/update和delete等。
拥有connect role 的用户还能够创建表、视图、序列(sequence)、簇(cluster)、同义词(synonym)、回话(session)和其他数据的链(link)

resource role(资源角色)
更可靠和正式的数据库用户可以授予resource role。
resource提供给用户另外的权限以创建他们自己的表、序列、过程(procedure)、触发器(trigger)、索引(index)和簇(cluster)。

dba role(数据库管理员角色)
dba role拥有所有的系统权限
包括无限制的空间限额和给其他用户授予各种权限的能力。system由dba用户拥有

语法:grant connect, resource to 用户名;
例子:grant connect, resource to test;
用户:创建用户必须为其指定表空间,如果没有显性指定默认表空间,则指定为users表空间;创建用户后,可以在用户上,创建表、存储过程等等其他数据库对象;
表:是数据记录的集合;

创建过程: 表空间—>用户—>表;
所属关系: 表空间 包含 用户 包含 表;

CentOS 7部署Oracle数据库相关推荐

  1. 【Linux】手把手教你在 Linux 环境下部署 Oracle 数据库!

    来源:公众号[杰哥的IT之旅] 作者:三笠 相信大家第一次接触 Oracle 数据库时,大多数是在 windows 环境下安装,方便快捷,基本上可以说是一直下一步就能顺利安装成功.然而企业级的数据库, ...

  2. 在centos上,oracle数据库更改IP后无法启动监听,解决方法

    在centos上,oracle数据库更改IP后无法启动监听,解决方法 参考文章: (1)在centos上,oracle数据库更改IP后无法启动监听,解决方法 (2)https://www.cnblog ...

  3. CentOS Linux 新建oracle数据库实例并连接

    CentOS Linux 新建oracle数据库实例 安装好oracle之后,首先想到的那就是自己建一个库来看看效果喽. 创建的过程如下文章所说,http://blog.chinaunix.net/u ...

  4. linux怎么查看oracle数据库版本,CentOS下查看Oracle数据库版本

    CentOS下查看Oracle数据库版本 方法一:v$version数据库培训 SQL> select * from v$version; BANNER -------------------- ...

  5. 部署Oracle数据库

    Oracle ORACLE数据库系统是美国ORACLE公司(甲骨文)提供的以分布式数据库为核心的一组软件产品,是目前最流行的客户/服务器(CLIENT/SERVER)或B/S体系结构的数据库之一.比如 ...

  6. 部署Oracle数据库11g提高中型企业竞争力

    Oracle推出11g数据库已经有一年多了,随着各行业客户对11g数据库整体的测试和评估,开始升级到或部署Oracle 11g数据库的用户也在不断增加.也有一些企业已经通过部署Oracle 11g数据 ...

  7. Centos7下安装部署oracle数据库方法及问题汇总

    目标:在centos7上配置oracle数据库服务器,并在win7上面使用pl/sql成功访问该oracle数据库 系统环境: 服务器:centos7 64位 客户端:win7 64位 注意cneto ...

  8. linux部署Oracle数据库--安装篇

    在"系统"下的"管理"菜单中,点击"用户和群组". 点击"添加群组",群组名中输入"dba",点击确 ...

  9. CentOS下启动oracle数据库(转)

    CentOS6 下Oracle 11 g数据库安装成功后,面临启动Oracle问题,下面是学习实践的总结 一:手动启动数据库 用Oracle用户登录 $lsnrctl start $sqlplus / ...

最新文章

  1. eclips mysql jndi_Eclipse +Tomcat配置JNDI数据源
  2. 理解并取证:DLS网络架构和PPPOE数据帧
  3. React学习笔记(持续更新)
  4. php 自带缓存,封装ThinkPhP自带的缓存机制
  5. c语言程序设计报告用于医院食品加工等部,南开(本部)《C语言程序设计》14春在线作业答案...
  6. Android异步处理:Handler+Looper+MessageQueue深入详解
  7. 作了一件超人品的事情,看到的各位都有好运
  8. python 通达信上传云端_Python读取通达信本地数据
  9. Python 字符串(三)
  10. 扇贝有道180929每日一句
  11. 04.spring boot配置文件--yml
  12. Python快速获取已知城市坐标的距离矩阵
  13. DOS 批处理高级教程精选合编20080331
  14. 【SAP-CO】成本中心会计报表
  15. Java(9)接口练习 运动员和教练
  16. 春节后面试别人的经历总结之二,好岗位分享给还在找工作中的软件开发爱好者们...
  17. 前程无忧推进私有化:CEO甄荣辉持股19%,多次陷入信息泄露风波
  18. c语言马踏棋盘编程分析,C语言马踏棋盘实现
  19. 自动驾驶领域用到的一些数据集
  20. LaTex命令和环境的定义与重定义

热门文章

  1. Ansible——Ansible的练习
  2. Hexo-域名设置+收录
  3. bootstrap role属性
  4. 一年中的最后一天说说_新的一年又开始了说说 年底最后一天的心情说说
  5. [ECCV 2020] Distribution-balanced loss for multi-label classification in long-tailed datasets
  6. Linux warning
  7. 网络安全与网站安全及计算机安全:如何使用Kali Linux进行内网或局域网安全演练?
  8. 使用Rundll32.exe和Rundll.exe
  9. 华硕笔记本r414u怎么安装键盘_华硕r414uv7200笔记本安装win7系统操作教程
  10. iOS Facebook第三方登录