oracle 11g for linux 6 的安装

一关于Oracle数据库

·Oracle简介

由甲骨文公司出品,目前最新版本为11g R2

官方网站:http://www.oracle.com/cn/

采用C/S模式、支持SQL查询语言

在稳定性、高性能、安全性等方面更适用于大型环境

·Oracle与sql的区别

1对os的支持

oracle支持多os系统,sql仅支持windows系统

2数据库的架构

在oracle数据库中,一个实例只能管理一个数据库,只有数据库咋群集的环境下才能实现多个数据库被一个实例管理;而sql数据库是一个实例管理多个数据库

3数据库的安全性

sqlserver没有通过安全性认证,而oracle数据库是获得ISO安全认证的数据库,所以说oracle的安全性更好一些

4内存分配

oracle的内存分配大部分是有init.Ora来决定的,而sql的内存分配主要由动态内存分配的静态内存分配

二 Oracle 11g的安装

·Oracle 11g的安装条件

系统及配置要求

1 RHEL 5.x系统、RHEL 6.x系统(这里使用rhel-server-6.0-i386系统)

oracle 11g for linux 6 的安装_数据库表

2物理内存,不少于1GB

oracle 11g for linux 6 的安装_云_02

3交换分区,为物理内存的1.5~2倍(物理内存1-2G时,交换分区为物理内存的1.5-2倍;物理内存2-16G时,交换分区和物理内存大小相同,16G以上时,交换分区保持16G)

oracle 11g for linux 6 的安装_马向军_03

4磁盘空间,不少于8GB(确保/tmp目录所在分区(跟分区)不少于1G)

oracle 11g for linux 6 的安装_数据库_04

5拥有固定的FQDN名称,安装后不建议再更改

oracle 11g for linux 6 的安装_数据库表_05

6 基本固定的IP地址以及定义自解析条目(更换IP时也要修改hosts文件)

oracle 11g for linux 6 的安装_数据库_06

软件环境要求

1图形桌面环境 + 开发工具

实际只有7个包是未安装的

oracle 11g for linux 6 的安装_云_07

2在实际安装测试中,ksh软件包的识别会存在兼容性冲突,只要卸载RHEL6X32中的ksh软件包,改用RHEL5.5光盘中的pdksh软件包,就可以避免这个问题

oracle 11g for linux 6 的安装_云_08内核及会话要求

1内核参数调整体现在/etc/sysctl.conf文件中。主要包括对内存调度、端口范围、I/O请求等相关的一些设置,相关数值不可低于安装要求(文件尾部添加的内容)

修改完毕后通过执行sysctl –p命令使新配置立即生效

oracle 11g for linux 6 的安装_云_09

各参数详解

fs.aio-max-nr:此参数限制并发未完成的请求,应该设置避免I/O子系统故障。

fs.file-max:该参数决定了系统中所允许的文件句柄最大数目,文件句柄设置代表linux系统中可以打开的文件的数量。

kernel.shmall:该参数控制可以使用的共享内存的总页数。Linux共享内存页大小为4KB,共享内存段的大小都是共享内存页大小的整数倍。一个共享内存段的最大大小是16G,那么需要共享内存页数是16GB/4KB=16777216KB /4KB=4194304(页),也就是64Bit系统下16GB物理内存,设置kernel.shmall = 4194304才符合要求.

kernel.shmmax:是核心参数中最重要的参数之一,用于定义单个共享内存段的最大值。设置应该足够大,设置的过低可能会导致需要创建多个共享内存段,这样可能导致系统性能的下降。至于导致系统下降的主要原因为在实例启动以及ServerProcess创建的时候,多个小的共享内存段可能会导致当时轻微的系统性能的降低(在启动的时候需要去创建多个虚拟地址段,在进程创建的时候要让进程对多个段进行"识别",会有一些影响),但是其他时候都不会有影响

官方建议值:

32位linux系统:可取最大值为4GB(4294967296bytes)-1byte,即4294967295。建议值为多于内存的一半,所以如果是32为系统,一般可取值为4294967295。

64位linux系统:可取的最大值为物理内存值-1byte,建议值为多于物理内存的一半,例如,如果为12GB物理内存,可取12*1024*1024*1024-1=12884901887。

kernel.shmmni:该参数是共享内存段的最大数量。shmmni缺省值4096,一般肯定是够用了。

kernel.sem:以kernel.sem = 250 32000 100 128为例:

250是参数semmsl的值,表示一个信号量集合中能够包含的信号量最大数目。

32000是参数semmns的值,表示系统内可允许的信号量最大数目。

100是参数semopm的值,表示单个semopm()调用在一个信号量集合上可以执行的操作数量

128是参数semmni的值,表示系统信号量集合总数。

net.ipv4.ip_local_port_range:表示应用程序可使用的IPv4端口范围。

net.core.rmem_default:表示套接字接收缓冲区大小的缺省值。

net.core.rmem_max:表示套接字接收缓冲区大小的最大值。

net.core.wmem_default:表示套接字发送缓冲区大小的缺省值。

net.core.wmem_max: 表示套接字发送缓冲区大小的最大值

2进程会话限制可以采用pam_limits认证模块来实现,通过修改登录程序login的PAM设置以启用该认证;修改/etc/security/limits.conf,能够增大用户oracle的进程数、文件数限制

oracle 11g for linux 6 的安装_数据库表_10

启用认证,在文件末尾添加下面内容

oracle 11g for linux 6 的安装_云_11

用户环境要求

1创建oracle 11g的安装组oinstall、管理组dba、运行用户oracle

oracle 11g for linux 6 的安装_云_12

2创建oracle 11g的运行用户oracle,并设置密码

oracle 11g for linux 6 的安装_数据库_13

3验证一下

oracle 11g for linux 6 的安装_数据库表_14

4为用户oracle设置环境变量

Oracle11g的安装任务应以运行用户oracle的身份执行,需适当调整oracle用户的环境配置以便满足要求。Oracle11g安装界的语言类型取决于环境变量LANG,若希望用中文安装界面,则应确保LANG变量的值为"zh_CN.UTF-8"。中文安装界面有时会因缺少字体、字体配置不当等原因导致界面乱码。这时可以改用"en_US.UTF-8"英文环境以回避类似问题

配置

oracle 11g for linux 6 的安装_数据库表_15

oracle 11g for linux 6 的安装_云_16

拷贝字体库安装到创建的相应目录(字体库百度自行下载)

oracle 11g for linux 6 的安装_oracle_17

oracle 11g for linux 6 的安装_oracle_18

设置权限

oracle 11g for linux 6 的安装_oracle_19

创建定义的基本目录并设置权限(目录是不存在的)

oracle 11g for linux 6 的安装_数据库表_20

·Oracle 11g的正式安装

1下载安装包并解压

正确选择所使用的系统平台(如linux x86),然后分别下载1of2、2of2这两个zip压缩包

解压后可获得database文件夹、oracle的安装脚本、产品手册等文档都位于此文件夹中。

注:以事先将下载的oracle11g两个压缩包拷贝到/usr/src目录中

oracle 11g for linux 6 的安装_oracle_21

2切换到oracle用户登录并运行脚本启动安装程序

oracle 11g for linux 6 的安装_马向军_22

弹出安装界面

如果已购买oracle11g数据库的授权,且服务器能连接INTERNET,建议正确填写电子邮件地址和oracle support口令,以便及时接收官方的安全更新通知。实验过程中建议将电子邮件地址留空,并消取对"我希望通过my oracle……"复选框的选择;默认下一步

oracle 11g for linux 6 的安装_马向军_23

安装选项:全新安装建议选择"创建和配置数据库"或者"仅安装数据库软件",后者将不会创建并配置数据库实例,只有对旧版本的oracle数据库进行升级时,才选择"升级现有数据库"默认下一步

oracle 11g for linux 6 的安装_马向军_24

系统类:选择"服务器类"进行安装,以便适用于企业环境的数据库系统。"桌面类"一般只建议个人用户使用,包含的配置和功能比较少;单机下一步

oracle 11g for linux 6 的安装_云_25

网格选项:选择"单实例数据库安装",大多数应用场合中oracle数据库的用途比较单一,每台oracle服务器只需要一个实例就可以了

oracle 11g for linux 6 的安装_云_26

安装类型:选择"典型安装",采用oracle11g的基本配置进行完全安装。若要为各种管理账户分别设置口令,或者选择语言版本、设置自动备份、存储管理等,则应该选择"高级安装"

oracle 11g for linux 6 的安装_云_27

典型安装配置:只需指定管理口令,其他默认;Oracle11g数据库自动建有三个用户:超级管理员sys、system和数据库所有者sysman,当选择"高级安装"时可以为三个用户分别设置口令,否则将使用同一个管理口令

oracle 11g for linux 6 的安装_数据库_28

创建产品清单:将清单目录修改为:/opt/oracle/oraInventory,以便oracle用户有权限写入oracle数据库的清单信息

oracle 11g for linux 6 的安装_数据库_29

先决条件检查及概要:针对各种前置条件进行检查,发现有未满足的条件后会给出提示,应根据检查结果进行修复或者安装必需的软件包。预安装检查,错误可忽略(软件版本问题,但必须确认软件包已安装)

oracle 11g for linux 6 的安装_数据库_30

如果所有条件都已满足,则会看到本次安装的概要信息,确定无误后单击"完成"按钮却完成设置,然后开始复制文件及部署数据库的安装过程

oracle 11g for linux 6 的安装_数据库表_31

完成安装:文件复制及相关部署结束后,会弹出"执行配置脚本"对话框,如图所示,根据提示切换为root用户并依次执行/opt/oracle/oraInventory/orainstRoot.sh、/opt/oracle/product/11.2.0/dbhome_1/root.sh脚本(在打开一个终端,使用su命令切换用户)

oracle 11g for linux 6 的安装_数据库_32

oracle 11g for linux 6 的安装_马向军_33

最后单击"确定"按钮,会提示方问https://dbserver:1158/em/,表示使用此URL地址可以访问OEM(oracle enterprise manager,oracle企业管理器)平台,以便对oracle11g的数据库实例进行管理

验证安装结果:使用浏览器访问OEM管理平台,以用户名sys、连接身份"SYSDBA"进行登录,密码为安装时指定的管理口令。登录成功后可以看到OEM管理控制台,如图所示,若显示数据库状态正常、无明显错误,则表示oracle11g安装成功

oracle 11g for linux 6 的安装_云_34

oracle 11g for linux 6 的安装_云_35

三 Oracle 11g服务的基本管理

·oracle的基本服务组件

根据上面的安装过程,oracle11g的数据库软件将安装在变量ORACLE_HOME所指定的位置。例如/opt/oracle/product/11.2.0/dbhome_1/,而各种服务器组件程序(也包括sqlplus命令)正是位于其中的bin子目录下

监听器lsnrctl:提供数据库访问,默认端口TCP1521

启动器dbstart、dushut:启动、停止数据库实例

控制器emctl:开启、关闭OEM平台,默认1158端口提供HTTPS访问,5520提供TCP访问

为了方便执行这些程序(oracle服务组件最好以oracle用户身份运行如:su – oracle)建议对所有用户的环境配置作进一步的优化调整、补充PATH路径、oracle终端类型等变量设置;除此以外,还应该修改/etc/oratab配置文件,以便运行dbstart时自动启用数据库实例oracle 11g for linux 6 的安装_马向军_36

oracle 11g for linux 6 的安装_云_37

这样一来,用户oracle就可以直接使用上述组件了; 例如:执行"lsnrctl start"命令可以启动oracle监听器,执行"lsnrctl status"命令可以查看oracle监听器的状态,执行"emctl stop dbconsole"命令可以关闭OEM管理控制台,执行"dbshut $ORACLE_HOME"命令可以停止数据库实例, 执行"dbstart $ORACLE_HOME"命令可以启动数据库实例

附:使用sqlplus命令工具时,若以超级管理员sys登录,则在"SQL>"环境中执行"STARTUP;"、"SHUTDOWN IMMEDIATE;"指令也可以启用、关闭默认的数据库实例

·添加oracle服务

虽然通过各种服务组件程序能够启动、停止整个oracle11g数据库系统,但显然还不够方便,在RHEL6服务器中,更好的做法是将相关操作编写为服务脚本,交给chkconfig工具来管理,从而实现随系统开、关机自动启动、停止oracle数据库

oracle 11g for linux 6 的安装_云_38

oracle 11g for linux 6 的安装_数据库_39

oracle 11g for linux 6 的安装_数据库_40

使用命令启动、停止oracle数据库

oracle 11g for linux 6 的安装_数据库表_41

oracle 11g for linux 6 的安装_数据库表_42