Centos7快速安装Oracl11g
Centos7快速安装Oracle11g
一、解决虚拟机或低配置的云服务器上安装Oracle的方法有两种:
1)不用图形界面,采用静默方式安装,这种方法的技术难度比较大,Oracle的DBA经常采用这种方法,而普通程序员很难掌握。
2)把已经安装好的Oracle软件、数据库实例和环境参数打包压缩,然后在目标服务上解压恢复,对初学者来说,这是搭建Oracle数据库学习环境的最佳方案,也是本次采用的方案。
安装包下载链接:https://pan.baidu.com/s/1-Fp_ENmbKUyF0-FP5H2vbw
提取码:abcd

注意:一定要下载该Oracle11g包,介于网络上关于Centos系统安装Oracle版本和手法各不同,所以本教程只适用于提供的Oracle11g包
下载完成之后通过Xftp或其他工具放在Centos7系统下的目录,自己记住就行,我本人放在了/usr/local/src目录下了

二、硬件需求
1、查看内存和交换区大小
采用free -m命令查看系统的内存和交换区,如下:

Mem:行显示的是物理内存的大小和使用情况,Swap:行显示的是交换区的大小和使用情况,单位是MB。
安装Oracle的物理内存要求在1024MB以上,交换区的要求如下:

2、创建交换区
如果没有交换区或交换区太小,先创建交换区,交换区的大小见上表的对应关系,以下步骤将创建一个2048M的交换区。
1)用root用户执行dd命令创建/swap1文件。
dd if=/dev/zero of=/swap1 bs=1024 count=2048000
如下:

2)把/swap1文件设置成交换区。
/sbin/mkswap /swap1
如下:

3)把/swap1交换区设置为有效状态。
/sbin/swapon /swap1
如下:

4)用free -m命令查看交换区,确认已生效。
如下:

5)修改/etc/fstab文件,让CentOS操作系统在每次重启时自动加载/swap1交换区。
在/etc/fstab文件中增加以下内容。
/swap1 swap swap defaults 0 0
如下:

6)重启操作系统,重启后再确认一下交换区/swap1是否已加载。
3、删除交换区
如果创建的交换区不符合要求,可以用以下步骤删除它。
1)停止正在使用的swap分区。
swapoff /swap1
2)删除swap分区文件。
rm /swap1
3)修改/etc/fstab文件,删除开机自动挂载/swap1的命令。
三、安装对应的依赖包
安装Oracle之前,还需要安装一些CentOS的软件包,用以下命令执行安装(用root用户执行)。
yum install -y binutils* compat-libstdc* elfutils-libelf* gcc* glibc* ksh* libaio* libgcc* libstdc* make* sysstat* libXp* glibc-kernheaders ksh binutils compat-libstdc++-33 elfutils-libelf elfutils-libelf-devel gcc gcc-c++ glibc glibc-common glibc-devel libaio libaio-devel libgcc libstdc++ libstdc++-devel make numactl sysstat libXp unixODBC unixODBC-devel
这些软件包依赖关系比较复杂,不管它,多执行几次以上命令,直到全部的软件包都是最新版本。
四、修改系统核心参数
1、修改/ect/sysctl.conf文件
/etc/sysctl.conf是操作系统的核心参数配置文件,在文件最后增加以下行
fs.file-max = 6815744
fs.aio-max-nr = 1048576
kernel.shmall = 2097152
kernel.shmmax= 1073741824
kernel.shmmni= 4096
kernel.sem = 250 32000100 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
注意,kernel.shmmax参数的值为操作系统内存的一半,单位是字节。例如,操作系统总内存如果是2048MB,那么kernel.shmmax的值应该是1*1024*1024*1024=1073741824,即kernel.shmmax = 1073741824
其它的参数照抄。
2、修改/etc/security/limits.conf文件
/etc/security/limits.conf是操作系统对用户使用资源的配置文件,在文件最后增加以下行。
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
oracle hard stack 10240
3、修改/etc/pam.d/login文件
/etc/pam.d/login是用户认证文件,在文件最后增加以下行。
session required /lib64/security/pam_limits.so
4、修改/etc/profile文件
/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
5、修改/etc/selinux/config文件
/etc/selinux/config是SELinux配置文件,修改SELINUX的值,禁用它。
SELINUX=disabled
6、重启服务器
init 6 或 reboot
五、创建Oracle用户和用户组
Oracle的安装用户是oracle,组是dba,oracle用户的根目录是/oracle,不能采用其它目录(注意是小写的字母),如果/oracle目录的空间不够,可以采用软链接的方式,把有/oracle链接到其它有足够空间的目录。
1)创建dba组
# 创建用户组
groupadd dba
# 删除用户组
groupdel dba
2)创建oracle用户,组名是dba,用户根目录是/oracle,其他目录不行。
# 创建用户 并设置到dba组中 用户所在目录/oracle
useradd -n oracle -g dba -d /oracle
# 删除用户
userdel oracle
3)修改oracle用户的密码
# 修改用户密码 无论提示密码强弱,连续输入两次即可
passwd oracle
六、解开压缩包
把Oracle的压缩包文件oracle11gR2.tgz上传到服务器的/usr/local/src目录。
采用su - oracle切换到oracle用户,在根目录下执行解开压缩包,其它目录不行。
# 切换用户
su - oracle
# 切换到根目录下
cd /
# 在当前目录解压其他目录的压缩包
tar zxvf /usr/local/src/oracle11gR2.tgz
# 退出当前用户或切换用户即可
exit
# 切换到root用户
su - root
注意,解压缩包后,一定要退出oracle用户,否则oracle用户的环境变量不会生效。
七、数据库参数
oracle11gR2.tgz解压后,会生成/oracle/.bash_profile文件,包括了Oracle数据库的安装参数,内容如下:
export ORACLE_BASE=/oracle/base
export ORACLE_HOME=/oracle/home
export ORACLE_SID=snorcl11g
export NLS_LANG='Simplified Chinese_China.ZHS16GBK'
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib
export PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin:.
八、数据库启动
用oracle用户登录,执行lsnrctl start启动网络监听服务,执行dbstart启动数据库系统。

如图,如果出现乱码部分
将/oracle/.bash_profile文件中字符串编码
# 编辑.bash_profile文件
vim /oracle/.bash_profile
# 将# 注释掉以前的字符编码,添加新的
#export NLS_LANG='Simplified Chinese_China.ZHS16GBK'
export NLS_LANG='AMERICAN_AMERICA.ZHS16GBK'
# 立即生效
source /oracle/.bash_profile
补充一下:
# 停止监听服务
lsnrctl stop
# 查看监听状态
lsnrctl status
# 关闭数据库实例
dbshut
1、数据库启动2
启动Oracle实例:
-- 进入sqlplus
sqlplus /nolog
-- 最高管理员登录
conn / as sysdba
-- 启动数据库实例
startup
-- 关闭数据库实例
SHUTDOWN ABORT
查看当前数据库实例名称:
-- 查看当前实例 任选其一即可
show parameter name;
-- 查看当前实例
select name from v$database;

切换数据库实例
-- 切换实例 其中ORACLE_SID为具体的实例名称
sqlplus /@ORACLE_SID as sysdba;
-- 示例
sqlplus /@orcl as sysdba;
查看数据库版本
-- 查看版本
select * from v$version;
2、常用SQL
-- 解锁用户
alter user 用户名 account unlock; --------- 解除锁定(必须带“;”号)
-- 示例
alter user system account unlock;
-- 设置新密码
alter user 用户名 identified by 密码; -------------修改密码(密码加不加双引号均可,必须带“;”号)
-- 示例
alter user system identified by dhee;
至此就安装成功啦,可以使用自己的Navicat远程连接试试
如果Navicat连接出错,可能是Navicat自带的oci.dll文件不支持Oracle11,这里也为你准备好啦
九、Navicat连接篇
当使用Navicat远程连接Oracle11时,提示如图错误信息:

那基本就是Navicat自带的oci.dll文件不支持Oracle11,反正我的是,嘻嘻
这里有支持的文件哦:https://aerfazhe.lanzouw.com/i0cmSwixk2f
下载之后复制到Navicat安装目录下
按照图示配置即可

重启之后重新尝试连接即可,如还是不能,那就自行百度,或者评论区讨论一下
十、网络监听配置篇
本次安装包监听配置目录/oracle/home/network/admin

本次安装包使用的自动注册监听Oracle实例,而且是默认端口1521,所以在该目录下没有listener.ora文件
1、静态注册
listener.ora
#这是名称为LISTENER的监听器
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
#oracle实例名称
(SID_NAME = snorcl11g)
(ORACLE_HOME = /oracle/home)
)
)
#这是名称为LISTENER的监听器
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.7)(PORT = 1521))
)
)
ADR_BASE_LISTENER = /oracle
tnsnames.ora
#SNORCL11G是实例名
#表示使用TCP协议,连接IP地址为127.0.0.1,端口号为1521的数据库主机上服务名为orcl的数据库
#如果有多个监听,可以手动添加
SNORCL11G =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.7)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
#oracle实例名称
(SERVICE_NAME = snorcl11g)
)
)
重新启动网络监听即可

UNKNOWN:表示静态注册
# 检测连接是否正常 snorcl11g:oracle实例名称
tnsping snorcl11g

此时就静态注册成功啦
Centos7快速安装Oracl11g的更多相关文章
- Centos7 快速安装Docker
写在前面 Docker是一个开源的引擎,可以轻松的为任何应用创建一个轻量级的.可移植的.自给自足的容器.开发者在笔记本上编译测试通过的容器可以轻松批量地在生产环境中部署. 网上的安装教程也很多这里我推 ...
- Centos7快速安装docker
偶然间发现,docker的安装好容易啊 系统环境:centos7.3 yum源: docker:https://mirrors.aliyun.com/docker-ce/linux/centos/do ...
- Centos7快速安装Rancher
通过docker,我们可以快速安装rancher 安装步骤如下:[root@localhost ~]# #run运行,-d后台模式 --restart=always跟随docker启动,-p映射端口, ...
- CentOS7 快速安装配置mysql8.0
因为这个项目是两台CentOS7虚拟机,一台当作 MySQL服务器,所以需要配置3306端口公开 参考教学视频:Java2020体系课 22周课 5-2~3 两节课 yum search mysql- ...
- centos7 快速安装 mariadb(mysql)
从最新版本的linux系统开始,默认的是 Mariadb而不是mysql! 使用系统自带的repos安装很简单: yum install mariadb mariadb-server systemct ...
- Centos7快速安装haproxy
HAProxy是一个使用C语言编写的自由及开放源代码软件[1],其提供高可用性.负载均衡,以及基于TCP和HTTP的应用程序代理. HAProxy特别适用于那些负载特大的web站点,这些站点通常又需要 ...
- Centos7快速安装RocketMQ
1. 为什么要用MQ 消息队列是一种"先进先出"的数据结构 其应用场景主要包含以下3个方面 应用解耦 系统的耦合性越高,容错性就越低.以电商应用为例,用户创建订单后,如果耦合调用库 ...
- [转载]centos7 快速安装 mariadb(mysql)
http://blog.csdn.net/default7/article/details/41973887 从最新版本的linux系统开始,默认的是 Mariadb而不是mysql! yum ins ...
- centos7快速安装coreDns
1.下载二进制文件 wget https://github.com/coredns/coredns/releases/download/v1.5.0/coredns_1.5.0_linux_amd64 ...
- Centos7下快速安装Mongo3.2
Centos7下快速安装Mongo3.2 一般安装Mongo推荐源码安装,有时候为了快部署测试环境,或者仅仅是想装个mongo shell,这时候yum安装是最合适的方式, 下面介绍一下如何在Cent ...
随机推荐
- 用PHPstudy nginx 配置tp6 隐藏访问链接中的index.php
在server 里面加上如下这个判断就好了 if (!-e $request_filename){ rewrite ^(.*)$ /index.php?s=$1 last; break; 配置在对应网 ...
- 省市县树形结构打印-.netCore控制台程序
using CityJson;using Dapper;using Newtonsoft.Json;{ using (var db = DbHelper.Db()) { //数据格式 //code_p ...
- 快速上手Linux核心命令(八):网络相关命令
目录 前言 测试主机之间网络是否联通 ifconfig 配置或显示网络信息 route 显示或管理路由表 netstat 查看网络状况 telnet 远程登录主机 ssh 安全的远程登录主机 wget ...
- 快速上手Linux核心命令(九):文件备份与压缩
目录 tar 打包备份 gzip 压缩或解压文件 zip 打包和压缩文件 unzip 解压zip文件 scp 远程文件复制 rsync 文件同步工具 这期呢主要说一说Linux中文件备份与压缩命令,一 ...
- 2022-11-23: 分数排名。输出结果和表的sql如下。请写出输出结果的sql语句? +-------+------+ | score | rank | +-------+------+ | 4.
2022-11-23: 分数排名.输出结果和表的sql如下.请写出输出结果的sql语句? ±------±-----+ | score | rank | ±------±-----+ | 4.00 | ...
- 2020-09-26:请问rust中的&和c++中的&有哪些区别?
福哥答案2020-09-26:#福大大架构师每日一题# 变量定义:c++是别名.rust是指针.取地址和按位与,c++和rust是相同的. c++测试代码如下: #include <iostre ...
- 2022-06-23:给定一个非负数组,任意选择数字,使累加和最大且为7的倍数,返回最大累加和。 n比较大,10的5次方。 来自美团。3.26笔试。
2022-06-23:给定一个非负数组,任意选择数字,使累加和最大且为7的倍数,返回最大累加和. n比较大,10的5次方. 来自美团.3.26笔试. 答案2022-06-23: 要i还是不要i,递归. ...
- 2022-05-31:某公司游戏平台的夏季特惠开始了,你决定入手一些游戏。现在你一共有X元的预算。 该平台上所有的 n 个游戏均有折扣,标号为 i 的游戏的原价a_i元,现价只要b_i元, 也就是说该
2022-05-31:某公司游戏平台的夏季特惠开始了,你决定入手一些游戏.现在你一共有X元的预算. 该平台上所有的 n 个游戏均有折扣,标号为 i 的游戏的原价a_i元,现价只要b_i元, 也就是说该 ...
- lec-4-Introduction to Reinforcement Learning
模仿学习imitation learning与RL的不同 模仿学习中需要有专家指导的信息 RL不需要访问专家信息 RL Definitions 奖励函数 马尔科夫决策链 只与上一个状态有关 目的 空间 ...
- AI 绘画 - 如何 0 成本在线体验 AI 绘画的魅力
要想体验 AI 绘画,比较流行的三种方式是 Midjourney.OpenAI 的 DALL·E 2 以及 Stable Diffusion.而 Midjourney 已经停止免费试用,且使用价格不太 ...