1、Centos7下安装Oracle11gR2及多实例
实验环境:
系统:2核8G内存60G硬盘,centos7.4;
优化操作:已经关闭了防火墙、selinux,/etc/hosts文件中以添加"172.16.1.92 slave-node2"的主机解析记录;
设置umask文件权限:[root@slave-node2 ~]# echo 'umask 022' >>/etc/profile && source /etc/profile
yum的base和epel源仓库已经更改为阿里云的yum仓库;
1.1、oracle软件包下载:
1、下载地址:
https://www.oracle.com/technetwork/database/enterprise-edition/downloads/index.html
2、软件包选择:
#官方手册:https://docs.oracle.com/cd/E11882_01/install.112/e24326/toc.htm#BHCJCBAF
3、使用xftp上传软件包:
[root@slave-node2 ~]# mkdir -p /tools/
1.2、创建oracle用户和用户组:
[root@slave-node2 ~]# groupadd oinstall
[root@slave-node2 ~]# groupadd dba
[root@slave-node2 ~]# useradd -g oinstall -G dba oracle
[root@slave-node2 ~]# id oracle
uid=1000(oracle) gid=1000(oinstall) 组=1000(oinstall),1001(dba)
1.3、创建oracle工作目录:
[root@slave-node2 tools]# cd /tools/
[root@slave-node2 tools]# unzip linux.x64_11gR2_database_1of2.zip 1>/dev/null
[root@slave-node2 tools]# unzip linux.x64_11gR2_database_2of2.zip 1>/dev/null
[root@slave-node2 tools]# cd ~
[root@slave-node2 ~]# ls -ld /tools/database/ #解压包目录;
drwxr-xr-x 8 root root 128 8月 21 2009 /tools/database/
[root@slave-node2 ~]# mkdir /application/{Oracle11gR2,oraInventory} -p
#Oracle11gR2是oracle的安装目录,oraInventory是oracle的配置文件目录;
[root@slave-node2 ~]# ln -s /application/Oracle11gR2/ /application/oracle
[root@slave-node2 ~]# chown -R oracle:oinstall /tools/database/
[root@slave-node2 ~]# chown -R oracle:oinstall /application/Oracle11gR2/
[root@slave-node2 ~]# chown -R oracle:oinstall /application/oraInventory/
#上面三行是授权;
1.4、修改系统标识:
oracle默认是不支持CentOS系统安装的,所以要修改OS标识文件;
[root@slave-node2 ~]# cp -a /etc/redhat-release{,.ori}
#备份文件;
[root@slave-node2 ~]# vim /etc/redhat-release
redhat-7
1.5、安装oracle所需的依赖包:
[root@slave-node2 ~]# yum -y install binutils compat-libcap1 compat-libstdc++-33 compat-libstdc++-33*i686 \
compat-libstdc++-33*.devel compat-libstdc++-33 compat-libstdc++-33*.devel gcc gcc-c++ glibc glibc*.i686 \
glibc-devel glibc-devel*.i686 ksh libaio libaio*.i686 libaio-devel libaio-devel*.devel libgcc libgcc*.i686 libstdc++ \
libstdc++*.i686 libstdc++-devel libstdc++-devel*.devel libXi libXi*.i686 libXtst libXtst*.i686 make sysstat unixODBC \
unixODBC*.i686 unixODBC-devel unixODBC-devel*.i686
1.6、修改内核参数:
[root@slave-node2 ~]# vim /etc/sysctl.conf
net.ipv4.icmp_echo_ignore_broadcasts = 1
net.ipv4.conf.all.rp_filter = 1
fs.file-max = 6815744
#设置一个进程可以打开的最大打开文件数
fs.aio-max-nr = 1048576
#限制未完成的并发请求,避免I/O系统故障
kernel.shmall = 2097152
##########################################################################
#共享内存分页总量,应不小于shmmax/page_size缺省值就是2097152,8G(2097152*4k/1024/1024)
#推荐设置为物理内存大小除以分页大小,分页默认大小是4k;
##########################################################################
kernel.shmmax = 4294967296
#最大共享内存段大小,不小于物理内存的一半(推荐70%),且大于数据库实例的SGA,单位是字节
kernel.shmmni = 4096
#设置系统级最大共享内存段数量
kernel.sem = 250 32000 100 128
#设置的信号量
net.ipv4.ip_local_port_range = 9000 65500
#可使用的IPv4端口范围
net.core.rmem_default = 262144
#默认接收缓冲区大小
net.core.rmem_max= 4194304
#接收缓冲区最大值
net.core.wmem_default= 262144
#默认的发送缓冲区大小
net.core.wmem_max= 1048576
#发送缓冲区最大值
[root@slave-node2 ~]# sysctl -p
#使内核参数生效;
1.7、对oracle用户设置限制:
[root@slave-node2 ~]# vim /etc/security/limits.conf
#@student - maxlogins 4
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft stack 10240
oracle hard stack 32768
# End of file
1.8、配置oracle环境变量:
[root@slave-node2 ~]# vim /home/oracle/.bash_profile
export ORACLE_BASE=/application/oracle
#oracl安装目录
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1
#oracle路径
export ORACLE_SID=orcl
#oracle启动数据库实例名
export ORACLE_TERM=xterm
#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.AL32UTF8
#设置Oracle客户端字符集,必须和oracle安装时的字符集保持一致
[root@slave-node2 ~]# source /home/oracle/.bash_profile
#使环境变量生效;
1.9、安装oracle:
1、使用Xbrower中的Xstart连接linux:
#具体的关于Xstart的相关配置,请参考“linux架构_02-1(1、如何通过xstart远程连接桌面)”;
2、安装:
(1)切换用户:
[root@slave-node2 ~]# su - oracle
上一次登录:四 8月 1 01:43:49 CST 2019pts/2 上
(2)设置DISPLAY环境变量:
[oracle@slave-node2 ~]$ export DISPLAY=172.16.1.254:0.0
[oracle@slave-node2 ~]$ echo $DISPLAY
172.16.1.254:0.0
(3)启动oracle安装程序:
[oracle@slave-node2 ~]$ cd /tools/database/
[oracle@slave-node2 database]$ ./runInstaller
#提示:启动oracle安装程序后会在windows中跳出oracle安装图形界面;
(4)oracle图形界面安装步骤:
1)
2)
3)
4)
5)
6)
7)
8)
9)
10)
11)
12)
13)
14)
15)
16)
17)
18)
19)
20)
#检查时出现swap分区不足的解决办法如下:
[root@slave-node2 ~]# dd if=/dev/zero of=/root/swap bs=1024 count=8500000
#创建一个8G的swap分区;
[root@slave-node2 ~]# mkswap /root/swap
#格式化swap分区;
[root@slave-node2 ~]# chmod 0600 /root/swap
#赋权swap分区;
[root@slave-node2 ~]# swapon /root/swap
#挂载swap分区;
[root@slave-node2 ~]# free -m | grep Swap
Swap: 10348 0 10348
#查看现在swap分区量;
[root@slave-node2 ~]# chmod +x /etc/rc.d/rc.local
[root@slave-node2 ~]# echo 'swapon /root/swap' >>/etc/rc.local
#将swap分区挂载加入到开机自启动;
#重新检测
21)
22)
#当安装到68%时会出现上图所示报错,解决办法如下:
[root@slave-node2 ~]# vim /application/oracle/product/11.2.0/db_1/ctx/lib/ins_ctx.mk +11
-static $(LINK_CTXHX) $(CTXHXOBJ) $(INSO_LINK) /usr/lib64/libc.a
#修改第11行的参数;
#再点击"Retry"时会出现如下报错;
#解决上图报错的方法如下:
[root@slave-node2 ~]# vim /application/oracle/product/11.2.0/db_1/sysman/lib/ins_emagent.mk +190
$(MK_EMAGENT_NMECTL) -lnnz11
#修改第190行的参数;
#再点击"Retry"后安装正常进行;
23)安装完成:
24)执行脚本:
[root@slave-node2 ~]# sh /application/oraInventory/orainstRoot.sh
[root@slave-node2 ~]# sh /application/oracle/product/11.2.0/db_1/root.sh
………………………………………………………………………………………………………………………………
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安装成功,关闭oracle安装界面,以上创建了一个'orcl'全局数据库和其下面的'orcl'实例;
[root@slave-node2 ~]# netstat -tunlp | grep 1521
tcp6 0 0 :::1521 :::* LISTEN 1241/tnslsnr
1.10、启动数据库:
1、登录到服务器,切换到oracle用户;
[root@slave-node2 ~]# su - oracle
上一次登录:四 8月 1 14:15:24 CST 2019pts/3 上
[oracle@slave-node2 ~]$
2、打开oracle的监听服务:
(1)开启服务:
[oracle@slave-node2 ~]$ lsnrctl start
(2)查看监听服务:
[oracle@slave-node2 ~]$ lsnrctl status
LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 01-AUG-2019 16:11:45
Copyright (c) 1991, 2009, Oracle. All rights reserved.
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521)))
STATUS of the LISTENER
------------------------
Alias LISTENER
Version TNSLSNR for Linux: Version 11.2.0.1.0 - Production
Start Date 01-AUG-2019 16:11:20
Uptime 0 days 0 hr. 0 min. 24 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Parameter File /application/oracle/product/11.2.0/db_1/network/admin/listener.ora
Listener Log File /application/oracle/diag/tnslsnr/slave-node2/listener/alert/log.xml
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=slave-node2)(PORT=1521)))
The listener supports no services
The command completed successfully
3、启动oracle实例:
[oracle@slave-node2 ~]$ sqlplus system/123456 as sysdba
……………………………………………………………………………………
SQL> startup
ORACLE instance started.
Total System Global Area 3340451840 bytes
Fixed Size 2217952 bytes
Variable Size 1811941408 bytes
Database Buffers 1509949440 bytes
Redo Buffers 16343040 bytes
Database mounted.
Database opened.
SQL>
4、通过sqldeveloper连接oracle:
5、补充:如何关闭oracle数据库:
(1)关闭实例:
[oracle@slave-node2 ~]$ sqlplus system/123456 as sysdba
SQL> shutdown immediate;
(2)关闭监听:
[oracle@slave-node2 ~]$ lsnrctl stop
1.11、设置oracle开机自启动:
1、查看dbstart和dbshut命令:
[oracle@slave-node2 ~]$ dbstart
ORACLE_HOME_LISTNER is not SET, unable to auto-start Oracle Net Listener
Usage: /application/oracle/product/11.2.0/db_1/bin/dbstart ORACLE_HOME
[oracle@slave-node2 ~]$ dbshut
ORACLE_HOME_LISTNER is not SET, unable to auto-stop Oracle Net Listener
Usage: /application/oracle/product/11.2.0/db_1/bin/dbshut ORACLE_HOME
#错误原因是dbstart和dbshut脚本文件中ORACLE_HOME_LISTNER设置有问题;
2、修改dbstart和dbshut脚本:
(1)修改dbstart脚本:
[oracle@slave-node2 ~]$ vim $ORACLE_HOME/bin/dbstart +80
ORACLE_HOME_LISTNER=$ORACLE_HOME
#修改第80行处如上:
(2)修改dbshut脚本:
[oracle@slave-node2 ~]$ vim $ORACLE_HOME/bin/dbshut +50
ORACLE_HOME_LISTNER=$ORACLE_HOME
#修改第50行处如上;
3、修改/etc/oratab文件开启oracle实例开机自启动功能:
[oracle@slave-node2 ~]$ vim /etc/oratab
orcl:/application/oracle/product/11.2.0/db_1:Y
#将N改为Y如上,格式为:"$ORACLE_SID:$ORACLE_HOME:<N|Y>"
4、自启动方法:
(1)登录到root用户:
[oracle@slave-node2 ~]$ su - root
Password:
Last login: Thu Aug 1 17:08:50 CST 2019 on pts/0
(2)方法一:将dbstart加入/etc/rc.local开机自启动文件中:
[root@slave-node2 ~]# chmod +x /etc/rc.d/rc.local
[root@slave-node2 ~]# echo 'su - oracle /application/oracle/product/11.2.0/db_1/bin/dbstart' >>/etc/rc.local
(3)方法二:创建oracle自启动脚本:
1)编写脚本:
[root@slave-node2 ~]# cat /etc/init.d/oracled
#!/bin/sh
#chkconfig: 2345 61 61
#description: Oracle 11g R2 AutoRun Servimces
#location: /etc/init.d/oracle
#Run-level Startup script for the Oracle Instance, Listener
#ORACLE_SID="orcl"
#AUTHOR:LIUCHANG
ORACLE_BASE="/application/oracle"
ORACLE_HOME="$ORACLE_BASE/product/11.2.0/db_1"
ORA_OWNR="oracle"
PORT=`netstat -tunlp | grep 1521 | awk -F '[ :]+' '{print $4}'`
[ $UID -eq 0 ] || {
echo "This Shell only root execute"
exit 1
}
if [ ! -f $ORACLE_HOME/bin/dbstart -o ! -d $ORACLE_HOME ]; then
echo "Oracle startup: cannot start"
exit 1
fi
RETVAL=0
function check() {
RETVAL=$?
if [ $RETVAL -eq 0 ]; then
echo -e "$1\033[1;32m Success! \033[0m"
else
echo -e "$1\033[1;31m Faild! \033[0m"
fi
}
function start() {
PORT=`netstat -tunlp | grep 1521 | awk -F '[ :]+' '{print $4}'`
if [ "$PORT" = "1521" ]; then
echo "Oracle already Start!"
else
su - $ORA_OWNR $ORACLE_HOME/bin/dbstart &>/dev/null
check "Oracle Start"
fi
}
function stop() {
PORT=`netstat -tunlp | grep 1521 | awk -F '[ :]+' '{print $4}'`
if [ "$PORT" = "1521" ]; then
su - $ORA_OWNR $ORACLE_HOME/bin/dbshut &>/dev/null
check "Oracle Stop"
else
echo "Oracle already Stop!"
fi
}
function status() {
PORT=`netstat -tunlp | grep 1521 | awk -F '[ :]+' '{print $4}'`
if [ "$PORT" = "1521" ]; then
echo "Oracle is Running!"
else
echo "Oracle is Stop!"
fi
}
function Usage() {
echo "Usage:$0{start|stop|status|reload|reload}"
exit 1
}
function main() {
if [ $# -eq 1 ]; then
case "$1" in
start)
start
;;
stop)
stop
;;
status)
status
;;
reload|restart)
stop
sleep 30
start
;;
*)
Usage
esac
else
Usage
fi
}
main $*
2)将脚本加入到开机自启动:
[root@slave-node2 ~]# chmod u+x /etc/init.d/oracled
[root@slave-node2 ~]# chkconfig --add oracled
[root@slave-node2 ~]# chkconfig --list oracled
oracled 0:关 1:关 2:开 3:开 4:开 5:开 6:关
#在linux7版本上会报建议使用Systemctl命令的提示,忽略即可;
1.12、设置oracle监听:
oracle监听分为服务端和客户端两部分,服务端监听必须在安装oracle数据库的服务器上,而客户端网络服务可以配置在
任何一台能连接到oracle服务器的服务器上,也可以将两者都配置在oracle服务器上,本实验使用的是将两者都配置了oracle
服务器上;
上面的实验在建数据库"orcl"实例的时候已经创建好了服务端监听和客户端"orcl"数据库实例的网络
服务,这里我将其删除重新配置;
1、使用xstart登录到oracle用户:
[root@slave-node2 ~]# su - oracle
上一次登录:五 8月 2 23:17:46 CST 2019pts/2 上
[oracle@slave-node2 ~]$ export DISPLAY=172.16.1.254:0.0
[oracle@slave-node2 ~]$ netca
2、配置服务端监听:
(1)
(2)
(3)
(4)
(5)
(6)
(7)
#当oracle监听配置完成后,在控制台会输出"Listener started successfully"的提示;
3、配置客户端网络服务:
(1)
(2)
(3)
(4)
(5)
(6)
(7)
(8)
(9)
(10)
(11)
#控制端输出配置成功信息如下:
(12)
1.13、添加新的oracle实例:
1、使用xstart登录到oracle用户:
[root@slave-node2 ~]# su - oracle
上一次登录:五 8月 2 23:20:34 CST 2019pts/2 上
[oracle@slave-node2 ~]$ export DISPLAY=172.16.1.254:0.0
[oracle@slave-node2 ~]$ dbtca
2、添加实例:
(1)
(2)
(3)
(4)
(5)
(6)
(7)
(8)
(9)
(10)
使用自动内存管理,当点击Sizing设置时会报如下错误,原因是默认的/dev/shm空间不足;
解决办法如下:
[oracle@slave-node2 ~]$ su - root
Password:
Last login: Sat Aug 3 00:11:21 CST 2019 on pts/2
[root@slave-node2 ~]# df -h /dev/shm
文件系统 容量 已用 可用 已用% 挂载点
tmpfs 3.9G 1.9G 2.1G 49% /dev/shm
#/dev/shm使用的是内存的空间,默认大小是物理内存的一半,最大不超过物理内存的80%,可以看到/dev/shm可用
#大小只有2.1G(2068M),而警告的要求是3185M,所以(8*0.8-1.9)*1024M>3185M,我这里将tmpfs设置为6G;
[root@slave-node2 ~]# vim /etc/fstab
tmpfs /dev/shm tmpfs defaults,size=6G 0 0
#在/etc/fstab配置文件中添加如上配置;
[root@slave-node2 ~]# mount -o remount /dev/shm
#将/dev/shm重新挂载;
[root@slave-node2 ~]# df -h /dev/shm
文件系统 容量 已用 可用 已用% 挂载点
tmpfs 6.0G 1.9G 4.2G 32% /dev/shm
#可以看到/dev/shm的空间已经增大了;
点击"ok"继续配置;
(11)
(12)
(13)
(14)
(15)
(16)安装完成:
3、提示:
"oa"数据库实例安装完成后使用的是服务端默认监听(1521),会根据默认服务器监听自动配置"oa"数
据库实例的客户端网络服务,如果想使用新的端口号访问新建的"oa"数据库实例,可以添加新的服务端
监听,然后删除客户端网络服务重新配置;
4、修改数据库实例开机自启动"/etc/oratab"文件如下,将"oa"数据库实例开机自启服务打开:
[root@slave-node2 ~]# vim /etc/oratab
oa:/application/oracle/product/11.2.0/db_1:Y
到此,oracle数据库多实例操作就完成了;
#oracle是通过端口号来区分不同的数据库实例的,而oracle是通过不同的数据库实例名来区分不同的数据库实例的;
1、Centos7下安装Oracle11gR2及多实例的更多相关文章
- centos7下安装oracle11gR2
Centos7安装oracle11gR2说明 Centos7安装oracle11gR2说明 环境准备 安装Oracle前准备 创建运行oracle数据库的系统用户和用户组 创建oracle数据库安装目 ...
- centos7下安装oracle11gR2的详细步骤
环境准备 安装包: CentOS-7-x86_64-DVD linux.x64_11gR2_database_1of2.zip linux.x64_11gR2_database_2of2.zip 本教 ...
- centos7.5安装Oracle11gR2
centos7.5安装Oracle11gR2 说明:由于上一台旧的笔记本电脑(CPU:i5-7200,内存:8G,硬盘:128SSD+1T机械)卸任,所以打算在家搭建一个个人服务器(主要是换不锈钢盆不 ...
- Centos7下安装redis实战(单机版以及集群)
一.背景 因项目需要,要引入redis做缓存,就在centos7下亲自安装了一遍redis,刚好趁着这个机会就来把redis的概念以及单机版和集群版redis安装步骤记录下来,在此和大家一起分享. 二 ...
- 在Centos7下安装与部署.net core
在Centos7下安装与部署.net core 2018年02月28日 19:36:16 阅读数:388 个人安装流程,参照文档 https://www.cnblogs.com/Burt/p/6566 ...
- centos7下安装zookeeper&zookeeper集群的搭建
一.centos7下安装zookeeper 1.zookeeper 下载地址 https://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/ 2.安装步骤 ...
- 在CentOS7下安装Oracle11教程
前言 安装oracle时,发现网上的文章总是缺少一些信息,导致安装不顺利,因为我对一些文章进行了整合,用以备忘. Oracle安装 首先下载linux版本的oracle安装文件,然后通过XFTP上传到 ...
- CentOS7 下 安装 supervisor以及使用
CentOS7 下 安装 supervisor 以及使用 手动安装 [注] linux环境必须安装 python 1.获取supervisor包:[https://pypi.python.org/py ...
- Linux CentOs7 下安装 redis
Linux CentOs7 下安装 redis 请将以下命令放入linux命令行中运行 如果安装过程前没有安装GCC请先安装 命令如下 $ yum install gcc-c++ $ wget ht ...
随机推荐
- 优启通-PE启动盘制作工具 原版Win7系统安装超详细教程!!!!!
https://www.jianshu.com/p/cd4abc9889b6 前期准备 原版Win7系统ISO映像文件 PE启动U盘或系统光盘(本教程以纯净无捆绑的优启通PE为示例) 优启通v3.3下 ...
- Linux创建RAID5_实战
Linux创建RAID5实战 Linux创建RAID5 RAID5最少由三个硬盘组成,它将数据分散存储于阵列中的每个硬盘,并且还伴有一个数据校验位,数据位与校验位通过算法能相互验证 RAID5最多能允 ...
- Ansible_创建角色_role
一.创建角色目录结构 1.角色创建流程 1️⃣:在Ansible中创建角色不需要特别的开发工具.创建和使用角色包含三个步骤: 创建角色目录结构 定义角色内容 在playbook中使用角色 2.角色目录 ...
- Docker镜像的仓库及底层依赖的核心技术(3)
一.docker镜像的仓库 仓库分为公共仓库和私有仓库 DockerHub的官方仓库:https://hub.docker.com DockerPool社区仓库:https://dl.dockerpo ...
- ZooKeeper IDEA 可视化管理插件安装
1. 安装 zookeeper 插件 打开 IDEA->Settings->Plugins,然后在 Marketplace 输入 "zookeeper" 如下: 插件安 ...
- 分布式存储ceph---部署ceph(2)
一.部署准备 准备5台机器(linux系统为centos7.6版本),当然也可以至少3台机器并充当部署节点和客户端,可以与ceph节点共用: 1台部署节点(配一块硬盘,运行ceph-depoly) 3 ...
- mysql基础之数据库备份和恢复的基础知识
备份数据的最终目的是为了在出现一些意外情况时,能够通过备份将数据还原,所以单单的备份数据往往是无法满足还原时的需求的,所以在备份数据库时,除了要备份数据本身,还要备份相关的数据库环境,如配置文件,定时 ...
- 用virtualenv建立Python独立开发环境
1.用pip安装virtualenv sudo apt-get install python-virtualenv 2.1 创建python2的虚拟环境,进入要创建虚拟环境的目录下,我是放在/home ...
- .Net Redis实战——事务和数据持久化
Redis事务 Redis事务可以让一个客户端在不被其他客户端打断的情况下执行多个命令,和关系数据库那种可以在执行的过程中进行回滚(rollback)的事务不同,在Redis里面,被MULTI命令和E ...
- 通过 DLPack 构建跨框架深度学习编译器
通过 DLPack 构建跨框架深度学习编译器 深度学习框架,如Tensorflow, PyTorch, and ApacheMxNet,快速原型化和部署深度学习模型提供了强大的工具箱.不幸的是,易用性 ...