RedHat6.7部署Oracle11g服务端

RedHat6.7部署Oracle11g服务端


1 安装准备工作

1.1 选择Oracle的版本

oracle 版本需要根据主机的操作系统确定要安装的 Oracle 数据库是 32 位还是 64
位。一般由于现在的服务器内存都较大,所以服务器操作系统也大多为 64 位,这样我们要选择
的 Oracle 版本也必须是 64 位,也就是必须要和服务器的 CPU 架构一致。
对于 linux,可以使用如下命令确定操作系统的信息:

# uname -m
x86_64
1.2 硬件检测

购的服务器,其硬件配置一般都能满足数据库的安装要求,但有一点需要注意,如
果安装操作系统时/tmp 文件系统单独划分,一定要保证其有 1GB 的空余空间,如果确实不满足要求,可以在oracle用户的 profile中临时指定一个其他目录代替。Oracle安装完毕后,运行程序所占用的空间至少为 5GB。

1.3 操作系统检测和配置
1.3.1 关闭防火墙与selinux
[root@emrtest ~]# service iptables stop
[root@emrtest ~]# vim /etc/sysconfig/selinux 
[root@emrtest ~]# setenforce 0
[root@emrtest ~]# getenforce
1.3.2 HOST 文件检查

操作系统的/etc/hosts 文件必须包含一个有效的主机名,配置hosts本地解析

[root@emrtest ~]# vim /etc/hosts
190.200.10.251 emrtest (虚拟机本机IP与主机名)
1.3.3 挂载镜像并配置yum源
[root@histest ~]# cd /mnt/
[root@histest mnt]# ls
[root@histest mnt]# mkdir cdrom
[root@histest mnt]# mount /dev/sr0 /mnt/cdrom/
[root@histest ~]# cd /etc/yum.repos.d/
[root@histest yum.repos.d]# ls
redhat.repo  rhel-source.repo
[root@histest yum.repos.d]# mkdir bak
[root@histest yum.repos.d]# mv * bak/
[root@histest yum.repos.d]# vim yum.repo
[baseos]
name=redhat6.7
baseurl=file:///mnt/cdrom
gpgcheck=0
enabled=1
1.3.4 下载所需依赖包与图形化插件
[root@emrtest ~]# yum install -y libaio* compat* elfutils* gcc* libstdc*
[root@emrtest ]# yum install -y xorg-x11*
1.3.5 创建必须的用户组和用户,并修改密码

创建相关用户和组,作为软件安装和支持组的拥有者。创建Oracle用户和密码(P@ssw0rd),输入命令:

[root@emrtest ~]# groupadd oinstall
[root@emrtest ~]# groupadd dba
[root@emrtest ~]# useradd -g oinstall -g dba -m oracle
[root@emrtest ~]# passwd oracle
更改用户 oracle 的密码 。
新的 密码:
重新输入新的 密码:
passwd: 所有的身份验证令牌已经成功更新。
1.3.6 设置 oracle 用户的 SHELL LIMIT

在Root用户下执行以下步骤:修改用户的SHELL的限制,修改/etc/security/limits.conf文件输入命令:vi /etc/security/limits.conf,按i键进入编辑模式,将下列内容加入该文件

[root@emrtest ~]# vim /etc/security/limits.conf
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536

修改/etc/pam.d/login 文件,输入命令:vi /etc/pam.d/login,按i键进入编辑模式,将下列内容加入该文件

[root@emrtest ~]# vim /etc/pam.d/login
session required /lib/security/pam_limits.so
session required pam_limits.so

编辑 /etc/profile ,输入命令:vi /etc/profile,按i键进入编辑模式,将下列内容加入该文件

[root@emrtest ~]# vim /etc/profile
unset i
unset -f pathmunge
if [ $USER = "oracle" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
fi
1.3.7 配置操作系统核心参数

修改linux内核,修改/etc/sysctl.conf文件,输入命令: vi /etc/sysctl.conf ,按i键进入编辑模式,将下列内容加入该文件

[root@emrtest ~]# vim /etc/sysctl.conf
kernel.shmall = 4294967296
fs.file-max = 6815744
fs.aio-max-nr = 1048576
kernel.shmall = 2097152
kernel.shmmax = 2147483648
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default = 4194304
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576
fs.file-max = 6815744
fs.aio-max-nr = 1048576
kernel.shmall = 2097152
kernel.shmmax = 2147483648
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default = 4194304
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576

/etc/sysctl.conf 更改立即生效,执行以下命令。 输入:sysctl -p 显示如下:
[root@emrtest ~]# sysctl -p
1.3.8 修改 oracle 用户的环境变量

配置oracle用户的环境变量(注意根据目录位置修改,我这里要求数据库安装到/u01目录下),首先,切换到新创建的oracle用户下,输入:su – oracle ,然后直接在输入 : vi .bash_profile按i编辑 .bash_profile,进入编辑模式,增加以下内容:

[root@emrtest ~]# su - oracle
[oracle@emrtest ~]$ vim .bash_profile
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2/db_1
export ORACLE_SID=iesdb
export PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib

在/home/oracle 目录下执行. .bash_profile 使变量生效(注意两个.之间有空格)

[oracle@emrtest ~]$ cd /home/oracle/
[oracle@emrtest ~]$ . .bash_profile
1.3.9 创建安装目录

创建数据库软件目录和数据文件存放目录,目录的位置,根据自己的情况来定,注意磁盘空间即可,这里我把其放到oracle用户下,例如:输入命令:

[root@emrtest ~]# mkdir -p /u01/app/oracle/product/11.2/db_1

更改目录属主为Oracle用户所有,输入命令:

[root@emrtest ~]# chown -R oracle:oinstall /u01/
[root@emrtest ~]# chmod -R 775 /u01/

1.4 准备安装介质

1.4.1 安装包下载

Oracle 11.2.0.1 安装介质可以从 OTN 网站免费下载:
http://www.oracle.com/technetwork/database/enterprise-edition/downloads/index.html
最新的补丁集 11.2.0.3 是“完整”的安装包,也就是安装 11.2.0.3 版本不需要像 10g 时要先安
6
装初始版本,直接用 11.2.0.3 的补丁集即可全新安装。最新的补丁集需要 ORACLE 服务号才能
从 MOS 下载,现在此版本各平台的安装包已经保存在系统集成室的 FTP 服务器上,有需要可以
自行下载,注意用二进制模式下载

FTP SERVER: 172.18.60.58
USER:list
PASSWORD:listlist
1.4.2 Linux-x64 平台下7个安装包的区别

Linux-x64 平台下安装包共 7 个,其中 1-2 为数据库服务端软件,3 为 GRID 软件,在安装 RAC
时使用,单机不用,4 为客户端软件,剩余三个我们用不到。

p10404530_112030_Linux-x86-64_1of7.zip
p10404530_112030_Linux-x86-64_2of7.zip
p10404530_112030_Linux-x86-64_3of7.zip
p10404530_112030_Linux-x86-64_4of7.zip
p10404530_112030_Linux-x86-64_5of7.zip
p10404530_112030_Linux-x86-64_6of7.zip
p10404530_112030_Linux-x86-64_7of7.zip
1.4.3 解压安装包

单独创建一个目录放置安装包,并将目录属主设置为 oracle:oinstall,解压完成后会自动合并生成 database 目录

[root@emrtest ~]# ll
总用量 3664264
-rw-------. 1 root root       1473 327 10:35 anaconda-ks.cfg
-rw-r--r--. 1 root root      28739 327 10:35 install.log
-rw-r--r--. 1 root root       7572 327 10:35 install.log.syslog
-rw-r--r--. 1 root root 1395582860 328 15:25 p13390677_112040_Linux-x86-64_1of7.zip
-rw-r--r--. 1 root root 1151304589 328 15:26 p13390677_112040_Linux-x86-64_2of7.zip
-rw-r--r--. 1 root root 1205251894 328 15:26 p13390677_112040_Linux-x86-64_3of7.zip

unzip命令解压oracle安装文件

[root@emrtest ~]# unzip p13390677_112040_Linux-x86-64_1of7.zip
[root@emrtest ~]# unzip p13390677_112040_Linux-x86-64_2of7.zip

解压完成后 cd 进入其解压后的目录database,查看是否生成文件

[root@emrtest ~]# ls
anaconda-ks.cfg  database  install.log  install.log.syslog  p13390677_112040_Linux-x86-64_1of7.zip  p13390677_112040_Linux-x86-64_2of7.zip  p13390677_112040_Linux-x86-64_3of7.zip
[root@emrtest ~]# cd database/
[root@emrtest database]# ls
install  readme.html  response  rpm  runInstaller  sshsetup  stage  welcome.html

切换到/root/目录下将database移动到/u01/下,并更改目录属主为Oracle用户所有

[root@emrtest database]# cd
[root@emrtest ~]# mv database/ /home/oracle/
[root@emrtest ~]# chown -R oracle.oinstall /home/oracle/database/

2 以图形化显示

2.1 root用户下操作

允许root以外的用户使用图形化界面,前提是虚拟机有图形化,没有则需要其他软件显示图形化界面,我这里使用的是xmanager5 passive

[root@emrtest ~]# xhost +
access control disabled, clients can connect from any host
[root@emrtest ~]# export DISPLAY=192.168.40.179:0.0  (宿主机内网IP)
[root@emrtest ~]# xhost +
2.2 oracle用户下操作

让Oracle允许使用图形化界面,此处IP是windows宿主机本地ip,内网的

[root@emrtest ~]# su - oracle
[oracle@emrtest ~]$ xhost +
[oracle@emrtest ~]$ export DISPLAY=192.168.40.179:0.0
[oracle@emrtest ~]$ xhost +

3 安装 Oracle 数据库软件

以 oracle 用户登陆本地显示器或其他图形终端工具(禁止用 root 登录后 su 到 oracle 账户,
下同),登陆语言环境需要改为英语,即执行下列命令:

[oracle@emrtest ]$ echo $LANG
zh_CN.UTF-8 (此处是中文改成英文)
[oracle@emrtest ]$ LANG=en_US.utf-8
[oracle@emrtest ]$ echo $LANG
en_US.utf-8

说明:
在执行安装命令之前,应该确保 oracle 用户的 profile 文件已经生效,可以使用 echo
$ORACLE_HOME 检查。可以通过用 oracle 用户重新登录或者在/home/oracle 目录下执
行. .bash_profile 使变量生效(注意两个.之间有空格)

执行安装,输入命令:/home/oracle/runstaller

[oracle@emrtest ~]$ /home/oracle/database/runstallers

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

进行安装条件检查,由于我们前期已经做过设置,因此没有错误,直接跳转到安装总结面,如有条件不满足按照提示进行修改即可,一般常见的缺少pdksh rpm包去下载一个安装进去就好了,kernel.shmmax等级显示warning,在root用户/etc/sysctl.conf文件里修改成所提供的kernel.shmmax预期值就可以了,修改完成切记要sysctl -p 立即生效配置,swap警告下方有解决方案

# swap warning
[root@emrtest ~]# cd /tmp/
[root@emrtest tmp]# dd if=/dev/zero of=swapfree bs=32k count=65515
记录了65515+0 的读入
记录了65515+0 的写出
2146795520字节(2.1 GB)已复制,1.36356 秒,1.6 GB/秒
[root@emrtest tmp]# mkswap swapfree 
mkswap: swapfree: warning: don't erase bootbits sectors
        on whole disk. Use -f to force.
Setting up swapspace version 1, size = 2096476 KiB
no label, UUID=3874c2a3-922a-46a0-a350-98d0f0f9f77b
[root@emrtest tmp]# swapon  swapfree
[root@emrtest tmp]# free -g
             total       used       free     shared    buffers     cached
Mem:            31         13         17          0          0         12
-/+ buffers/cache:          0         30 
Swap:           15          0         15 
[root@emrtest tmp]# echo "/tmp/swapfree swap swap defaults 0 0" >> /etc/fstab 
[root@emrtest tmp]# free -m
             total       used       free     shared    buffers     cached
Mem:         32074      14036      18037          0        176      12854
-/+ buffers/cache:       1005      31069 
Swap:        16103          0      16103

在这里插入图片描述
在这里插入图片描述

[root@emrtest ~]# /u01/app/oraInventory/orainstRoot.sh
[root@emrtest ~]# /u01/app/oracle/product/11.2.0/db_1/root.sh

在这里插入图片描述

4 创建监听

先创建监听,否则建库过程中无法配置企业管理器。以 oracle 用户登录,输入 netca,开始 创建监听

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

5 创建数据库

以 oracle 用户登录,输入 dbca,开始建库

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

6 数据库管理与配置

6.1 修改密码策略

步骤仅对 11g,10g 不需此操作
Oracle11g 新特性之一是用户的密码必须 180 天更新一次,否则会出现无法连接数据库的现
象,为减少由此带来的影响,修改密码策略为无时间限制
使用 sqlplus 连接到数据库(必须是 sysdba 或 system 用户),查询当前策略

[oracle@emrtest ~]$ sqlplus / as sysdba
SQL> startup;
SQL> SELECT * FROM dba_profiles WHERE profile='DEFAULT' AND resource_name='PASSWORD_LIFE_TIME';

PROFILE 		       RESOURCE_NAME			RESOURCE
------------------------------ -------------------------------- --------
LIMIT
----------------------------------------
DEFAULT 		       PASSWORD_LIFE_TIME		PASSWORD
180

修改此策略
SQL> ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;

Profile altered.
6.2 取消数据库审计功能

从 11g 开始,Oracle 在建库后就默认启动了数据库的审计功能,可以记录每一次 SQL 连接
的信息,并把这些内容默认存储到 SYSTEM 表空间,如果不及时进行清理,会造成 SYSTEM 表
27
空间快速增长,建议在没有必要的情况下,一定要关闭此功能:
以 sysdba 用户登陆进行修改并重启实例

SQL> alter system set audit_trail=none scope=spfile;

System altered.

SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup
ORACLE instance started.

Total System Global Area 1.3395E+10 bytes
Fixed Size		    2265904 bytes
Variable Size		 6912216272 bytes
Database Buffers	 6476005376 bytes
Redo Buffers		    4759552 bytes
Database mounted.
Database opened.
SQL> show parameter audit_trail;   (确认修改结果)

NAME				     TYPE	 VALUE
------------------------------------ ----------- ------------------------------
audit_trail			     string	 NONE
SQL> truncate table SYS.AUD$;  (删除原来的审计信息)

Table truncated.
6.3 配置启停数据库和监听
6.3.1 修改/etc/oratab 文件

以 oracle 用户登录,将 SID 对应的一行最后“N”修改为“Y”

[oracle@emrtest ~]$ vim /etc/oratab
iesdb:/u01/app/oracle/product/11.2/db_1:Y
6.3.2 修改 dbstart 和 dbshut 脚本

修改 dbstart 和 dbshut 脚本,以 oracle 用户登录。两个脚本具体路径在$ORACLE_HOME/bin 下,相同方法修改 dbshut 脚本,分别执行两个脚本并用 ps –ef |grep ora_观察进程是否成功运行或关闭

[oracle@emrtest ~]$ cd $ORACLE_HOME
[oracle@emrtest db_1]$ cd bin/
[oracle@emrtest bin]$ vim dbstart
ORACLE_HOME_LISTNER=$1
修改为
ORACLE_HOME_LISTNER=$ORACLE_HOME
[oracle@emrtest bin]$ vim dbshut
ORACLE_HOME_LISTNER=$1
修改为
ORACLE_HOME_LISTNER=$ORACLE_HOME
配置数据库自启动

以 root 用户在/etc/rc.d/init.d 目录下新建 oracle 文件

[root@emrtest ~]# cd /etc/rc.d/init.d/
[root@emrtest init.d]# vim oracle
#!/bin/sh
# /etc/rc.d/init.d/oracle
# Description: Starts and stops the Oracle database, listeners and
Enterprise Manager
case "$1" in
start)
echo "Starting Oracle"
su - oracle -c dbstart
echo "Done."
echo "Starting Oracle Enterprise Manager"
su - oracle -c "emctl start dbconsole"
echo "Done."
;;
stop)
echo "Shutting Down Oracle Enterprise Manager"
su - oracle -c "emctl stop dbconsole"
echo "Done."
echo "Shutting Down Oracle Databases: "
su - oracle -c dbshut
echo "Done."
;;
*)
echo "Usage: oracle {start|stop}"
exit 1
esac
修改脚本使其具有可执行权限
[root@emrtest init.d]# chmod +x /etc/rc.d/init.d/oracle
创建启动和关闭链接
[root@emrtest init.d]# ln -s /etc/rc.d/init.d/oracle /etc/rc.d/rc5.d/S99oracle
[root@emrtest init.d]# ln -s /etc/rc.d/init.d/oracle /etc/rc.d/rc6.d/K01oracle
重启操作系统测试是否可以将数据库、监听及企业管理器一起启动
6.5 创建服务名

单机数据库创建完毕后,在数据库服务器的 tnsnames.ora 的文件中会自动产生一个服务名
iesdb(与 ORACLE_SID 同名),可以复制这段描述,分别将名字修改为 a_ms_1、b_ms_1、a_ls_1、b_ls_1(如果是现场是两个网段,则还要创建 a_ms_2、b_ms_2、a_ls_2、b_ls_2 服务名)

[oracle@emrtest ~]$ vim /u01/app/oracle/product/11.2/db_1/network/admin/tnsnames.ora
a_ms_1 =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 190.200.10.251)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = iesdb)
    )
  )

对于集群数据库,服务名有特殊格式,不可使用 netmgr 或 netca 工具创建或修改

7 报错解决

7.1 缺少initorcl.ora文件

(ORA-01102)没有initorcl.ora文件 could not open parameter file ‘/u01/app/oracle/product/11.2/db_1/dbs/initorcl.ora’

[oracle@emrtest product]$ cd $ORACLE_BASE
[oracle@emrtest oracle]$ ls
admin  cfgtoollogs  checkpoints  diag  iesdb  product
[oracle@emrtest oracle]$ cd admin/
[oracle@emrtest admin]$ ls
iesdb
[oracle@emrtest admin]$ cd iesdb/
[oracle@emrtest iesdb]$ ls
adump  dpdump  pfile
[oracle@emrtest iesdb]$ cd pfile/
[oracle@emrtest pfile]$ ls
init.ora.229202320469
[oracle@emrtest pfile]$ cp -r init.ora.229202320469 /u01/app/oracle/product/11.2/db_1/dbs/initorcl.ora
[oracle@emrtest pfile]$ ll /u01/app/oracle/product/11.2/db_1/dbs/
7.2 进程被占用

(ORA-01078)failure in processing system parameters sid实例名

SQL> shutdown immediate;
[oracle@emrtest ~]$ echo $ORACLE_SID
orcl
[oracle@emrtest ~]$ vim .bash_profile
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2/db_1
export ORACLE_SID=iesdb
export PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib
[oracle@emrtest ~]$ lsnrctl stop
[oracle@emrtest ~]$ lsnrctl start
[root@emrtest /]# reboot
[root@emrtest ~]# su - oracle
[oracle@emrtest ~]$ lsnrctl status
[oracle@emrtest ~]$ lsnrctl start
[oracle@emrtest ~]$ sqlplus / as sysdba
SQL> startup;

图形化软件包名
xorg-x11-utils-7.5-23.el7.x86_64

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

随便投投

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值