0%

oracle11g在CentOS6.5下的安装

oracle11g在CentOS6.5下的安装

​ 该教程主要再现了oracle11g在Centos6.5下的安装过程,相比网上的教程,主要对基于oracle的preinstall脚本的封装成yum源,大大简化了前置的linux环境的配置:包括内核参数调整,oracle用户创建,依赖软件包的安装,这些都只需一个命令直接完成。并且使用的centos版本是最小化版本,理论上已经兼容其他6.5版本的依赖软件包,需要注意的是该yum源并不适合在Centos7以上的版本,请注意甄别服务器系统版本。

​ 本教程由中科惠软(wisoft)开发部编写,仅供内部分享与浏览,有任何建议和意见可向开发部反馈。

[教程目录]

[TOC]

1、相关资源

资源名称 说明 软件版本
CentOS 最小化安装 6.5-x86_64-minimal
oracle11gR2 oracle安装包(分两部分) 112040_Linux-x86-64[1of7] [2of7]
wisoft-oracle11g-yum 封装的oracle软件包依赖 6.5
wisoft-oracle-auto-start.sh 开机启动脚本 1.0
wisoft-oracle-linux-backup.sh 定时备份脚本 1.0

2、CentOS6.5MIN虚拟机搭建

以公司内部虚机服务器(192.10.110.100)(exsi 6.0)为例.

新建虚机 内存4g 硬盘16g:

??建虚机

安装系统:

安装系统

在控制台输入命令

关闭防火墙:

servcie iptables stop

chkconfig iptables off

关闭seLinux:

vi /etc/selinux/config

编辑如下

1
2
3
4
5
6
7
8
9
10
11
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - No SELinux policy is loaded.
#SELINUX=enforcing
SELINUX=disabled
# SELINUXTYPE= can take one of these two values:
# targeted - Targeted processes are protected,
# mls - Multi Level Security protection.
SELINUXTYPE=targeted

保存后重启

reboot

3、oracle在centos下的环境准备

1) 建立本地yum源

使用xftp向 /etc/yum.repos.d目录 复制 文件 Wisoft-oracle11g-yum.tar.gz

使用xshell cd 到该目录解压

cd /etc/yum.repos.d

tar -zxvf wisoft-oracle11g-yum.tar.gz

复制出yum配置:

cp oracle-11g-centos6.5-preinstall.repo/wisoft-oracle11g-centos-preinstall-yum.repo ./

最终如下目录:

执行 yum repolist 查看当前的yum源设置

1563790047620

看到 wisoft-oracle-preinstall-yum 已经在列表中

2) 安装oracle-preinsall 软件包

执行安装命令初始化oracle环境配置:

yum --disablerepo=\* --enablerepo=wisoft-oracle-preinstall-yum install oracle-rdbms-server-11gR2-preinstall

按下y 确认安装所缺的包

安装完成后,该软件包已经自动建立了 oracle用户和组,现在只需要给它改个密码:

passwd oracle

之后 ,切换oracle用户su oracle输入密码,oracle账号登录成功。

3) 设定oracle的基础环境变量

vi /home/oracle/.bashrc

将如下变量追加到该文件末尾:

1
2
3
4
5
6
ORACLE_BASE=/oracle
ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1
ORACLE_SID=orcl
PATH=$ORACLE_HOME/bin:$PATH
export ORACLE_BASE ORACLE_HOME ORACLE_SID PATH
export NLS_LANG="SIMPLIFIED CHINESE"_CHINA.ZHS16GBK

结果如图:

立即生效变量:

source /home/oracle/.bashrc

查看环境变量是否生效:

echo $ORACLE_HOME

4、oracle的安装

1) 解压oracle安装包

切换至 root账号在根目录建立oracle软件的文件夹

su root

mkdir -p /oracle/oraInventory

chown -R oracle:oinstall /oracle

使用xftp上传至相应目录

回到oracle 用户,切换到该路径下,执行解压命令:

su oracle

cd ~

unzip '**.zip'

解压完成,在oracle用户目录下解压多出一个 database 文件夹,该文件夹即为安装软件目录。

分别复制3个配置文件出来,方便我们修改:

安装软件的配置:cp database/response/db_install.rsp /home/oracle/

安装网络监听的配置:cp database/response/netca.rsp /home/oracle/

建库的配置:cp database/response/dbca.rsp /home/oracle/

给其中的dbca配置最高权限:

chmod 777 /home/oracle/dbca.rsp

目录结果如下:

2) 安装oracle软件

修改db_install.rsp中的配置参数

vi db_install.rsp

参照如下配置,已经给出指定行,使用 vi命令 :set nu 显示行号 快速定位

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
# 1. INSTALL_DB_SWONLY
# 2. INSTALL_DB_AND_CONFIG
# 3. UPGRADE_DB
#选择安装类型:1.只装数据库软件 2.安装数据库软件并建库 3.升级数据库
#第29行
oracle.install.option=INSTALL_DB_SWONLY
#指定操作系统主机名,通过hostname命令获得
#37行
ORACLE_HOSTNAME= wisoft-111-oracle-demo
#指定oracle inventory目录的所有者,通常会是oinstall或者dba
#42行
UNIX_GROUP_NAME=oinstall
#指定产品清单oracle inventory目录的路径,如果是Win平台下可以省略
#49行
INVENTORY_LOCATION=/oracle/oraInventory
#指定数据库语言,可以选择多个,用逗号隔开。选择en, zh_CN(英文和简体中文)
#86行
SELECTED_LANGUAGES=en,zh_CN
#91行
ORACLE_HOME=/oracle/product/11.2.0/dbhome_1
#96行
ORACLE_BASE=/oracle
# EE : EnterpriseEdition
# SE : Standard Edition
# SEONE Standard Edition One
# PE : Personal Edition (WINDOWS ONLY)
#选择Oracle安装数据库软件的版本(企业版,标准版,标准版1),不同的版本功能不同
#107行
oracle.install.db.InstallEdition=EE
#指定拥有OSDBA、OSOPER权限的用户组,通常会是dba组
#154行
oracle.install.db.DBA_GROUP=dba
#160行
oracle.install.db.OPER_GROUP=oinstall
# - GENERAL_PURPOSE/TRANSACTION_PROCESSING
# - DATA_WAREHOUSE
#选择数据库的用途,一般用途/事物处理,数据仓库
#189行
oracle.install.db.config.starterdb.type=GENERAL_PURPOSE
#194行
oracle.install.db.config.starterdb.globalDBName=orcl
#199行
oracle.install.db.config.starterdb.SID=orcl
#选择字符集。不正确的字符集会给数据显示和存储带来麻烦无数。
#通常中文选择的有ZHS16GBK简体中文库
oracle.install.db.config.starterdb.characterSet=ZHS16GBK
#11g的新特性自动内存管理,也就是SGA_TARGET和PAG_AGGREGATE_TARGET都#不用设置了,Oracle会自动调配两部分大小。
oracle.install.db.config.starterdb.memoryOption=true
#262行
oracle.install.db.config.starterdb.password.ALL=wisoft
# 需要设置安全更新,注意,在11.2的静默安装中疑似有一个BUG
# Response File中必须指定为true,否则会提示错误,不管是否正确填写了邮件地址
#400行
DECLINE_SECURITY_UPDATES=true

执行静默安装oracle软件

cd ~/database

./runInstaller -silent -ignorePrereq -responseFile /home/oracle/db_install.rsp

如下图:

接着执行安装完成时的两个sh脚本,注意一定要用root用户执行,按CTRL+D注销当前oracle用户,回到root下:

sh /oracle/oraInventory/orainstRoot.sh

sh /oracle/product/11.2.0/dbhome_1/root.sh

3) 安装监听

切换到oracle用户,同样执行静默安装:

netca /silent /responseFile /home/oracle/netca.rsp

如下图:

4) 安装数据库实例

继续编辑配置文件dbca.rsp:

vi dbca.rsp

参照配置项改动如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#数据库的Global database name
#78行
GDBNAME="orcl"
#数据库的实例名
#170行
SID="orcl"
#553行
TOTALMEMORY="2048"
#指定sys用户密码
#211
SYSPASSWORD = "wisoft"
#指定system用户密码
#221
SYSTEMPASSWORD = "wisoft"
#指定数据文件存放的目录
#360行
DATAFILEDESTINATION="/oracle/oradata"
#指定闪回目录
#370行
RECOVERYAREADESTINATION="/oracle/flash_recovery_area"
#418行
CHARACTERSET="ZHS16GBK"
#指定使用内存的大小,单位是MB
#指定国家字符集
#428行
NATIONALCHARACTERSET= "AL16UTF16"
#指定实例的类型
#533行
DATABASETYPE = "OLTP"
#指定使用自动内存管理
#543行
AUTOMATICMEMORYMANAGEMENT = "TRUE" #指定使用自动内存管理

执行安装实例命令:

dbca -silent -responseFile /home/oracle/dbca.rsp

效果如下:

5) 检验并修改密码过期

执行sqlplus /nolog 打开sqlplus,以 conn / as sysdba 登录;

执行如下sql 查看过期时间

1
SELECT * FROM dba_profiles s WHERE s.profile='DEFAULT' AND resource_name='PASSWORD_LIFE_TIME';

执行如下sql修改密码永不过期

1
ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;

如下图:

5、oracle的开机启动

修改oracle启动脚本:

vi /etc/oratab

将其中的实例启用自启动:

1
orcl:/oracle/product/11.2.0/dbhome_1:Y

使用 xftp 复制 资源文件 wisoft-oracle-auto-start.sh 到 /oracle 目录下

使用root账号对其赋权

chmod +x /oracle/wisoft-oracle-auto-start.sh

chown -R oracle:oinstall /oracle/wisoft-oracle-auto-start.sh

完成后用 /oracle/wisoft-oracle-auto-start.sh start/oracle/wisoft-oracle-auto-start.sh stop测试 是否能够正常启停oracle

如果你的 ORACLE_HOME不是本教程指定的 /oracle/product/11.2.0/dbhome_1,你需要重新编辑该脚本的默认路径。

把刚测试好的脚本复制到自动启动目录并赋予权限,添加为操作系统服务

cp /oracle/wisoft-oracle-auto-start.sh /etc/init.d/oracle

添加权限

chmod 755 /etc/rc.d/init.d/oracle

添加到系统服务

chkconfig --add oracle

检查系统服务

chkconfig --list oracle

结果如下:

完成,自启动配置,通过reboot 重启来确认是否自启动成功

你也可以通过服务命令来启动停止oracle

service oracle stop

service oracle start

6、oracle的自动备份

使用oracle账户,建立一个备份文件夹,例如 /oracle/wisoft-db-backup

mkdir -p /oracle/wisoft-db-backup

使用sqlplus登录,建立一个oracle数据库目录连接到 刚建立的 /oracle/wisoft-db-backup

1
CREATE  DIRECTORY wisoftdbbackup AS '/oracle/wisoft-db-backup';

如下图:

复制资源文件 wisoft-oracle-linux-backup.sh 到指定目录 /oracle

同样赋予权限

chmod +x /oracle/wisoft-oracle-linux-backup.sh

chown -R oracle:oinstall /oracle/wisoft-oracle-linux-backup.sh

修改 wisoft-oracle-linux-backup.sh 脚本

vi /oracle/wisoft-oracle-linux-backup.sh

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
#!/bin/bash
#############################################
# #
# wisoft linux oracle backup shell #
# v1.0 #
# created by wisoft devops group #
# test passed on centos 6.5 #
#############################################

PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin
export PATH
# ORACLE目录
export ORACLE_BASE=/oracle
# ORACLE安装目录
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1
export PATH=$PATH:$ORACLE_HOME/bin

# DATA_DIR 为ORACLE备份路径,与DUMP_DIR_NAME所映射的路径相同
export DATA_DIR=/oracle/wisoft-db-backup

# 删除时间之前的备份,默认为7天
export DELTIME=`date -d "7 days ago" +%Y%m%d`
export BAKUPTIME=`date +%Y%m%d%H%M%S`

# ORACLE用户
export USER=system
# ORACLE 用户密码
export PASSWORD=wisoft
# ORACLE 实例名
export ORACLE_SID=orcl
# ORACLE 自定义的dump文件夹名称
export DUMP_DIR_NAME=wisoftdbbackup

mkdir -p $DATA_DIR/$BAKUPTIME

echo "开始备份……"
echo "备份路径: $DATA_DIR/$BAKUPTIME.dmp"
expdp $USER/$PASSWORD@$ORACLE_SID directory=$DUMP_DIR_NAME dumpfile=$ORACLE_SID-$USER-$BAKUPTIME.dmp logfile=$ORACLE_SID-$USER-$BAKUPTIME.log
mv $DATA_DIR/$ORACLE_SID-$USER-$BAKUPTIME* $DATA_DIR/$BAKUPTIME/
echo "正在删除之前的备份……"
rm -rf $DATA_DIR/$DELTIME*
echo "备份完成。"

其中 DUMP_DIR_NAME=wisoftdbbackupDATA_DIR=/oracle/wisoft-db-backup 分别是我们刚建立的oracle

目录 和实际备份文件路径

确认其中所有配置项和你当前的oracle配置一致后,执行脚本即可备份

将该脚本添加到定时任务

su oracle

crontab -e

编辑如下脚本并保存

1
2
3
SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
30 2 * * * . /etc/profile; /bin/sh /home/oracle/wisoft-oracle-linux-backup.sh

切换到 root 账号 重启 定时服务;

service crond restart

搞定!!!

定时任务的配置如下

minute hour day month week command

其中:

minute: 表示分钟,可以是从0到59之间的任何整数。

hour:表示小时,可以是从0到23之间的任何整数。

day:表示日期,可以是从1到31之间的任何整数。

month:表示月份,可以是从1到12之间的任何整数。

week:表示星期几,可以是从0到7之间的任何整数,这里的0或7代表星期日。

上面脚本的30 2 * * * 即为每天凌晨2点半。

附:教程练习反馈

希望大家能在用虚拟机自己尝试搭建一个linux来做简单练习,只有在练习操作中才能提高自己。做完练习请反馈给我。

人员姓名 完成时间 评定 备注
XXXXXX 2019-7-25 ⭐⭐⭐⭐⭐
XXXXXX 2019-7-25 ⭐⭐⭐⭐⭐
XXXXXX 2019-7-25 ⭐⭐⭐⭐⭐
Powered By Valine
v1.5.2