Oracle数据库(甲骨文)
所属篇章:第二学年——Linux安全高级应用——第3章:部署Oracle数据库
大纲
1. 安装Oracle 11g数据库
1.1 前置条件的准备
1.2 Oracle 11g 安装过程
2. Oracle 11g的基本管理
2.1 启动、停止oracle数据库
2.2 数据库的逻辑备份
此次实验环境使用:Red Hat Enterprise Linux Server release 6.1 32位
系统配置的一般要求:
物理内存,不少于2GB
交换分区,为物理内存的1.5~2倍(4G以上)
磁盘空间,不少于8GB
拥有固定的主机名或域名,安装后不建议再更改
存放Oracle数据库的/opt/oracle/目录也要足够大
简介
在计算机信息安全领域中,数据库系统无疑有着举足轻重的地位,例如微软的SQLServer、IBM公司的DB2,以及甲骨文公司的Oracle、MySQL等,都是比较知名的数据库管理软件,其中Oracle数据库更是在电信、银行、证券、交通等大型应用场合拥有着绝对领先的优势。
1. 安装Oracle 11g数据库
Oracle的中文官方网址为http://www.oracle.com/cn/,它提供Oracle 11g安装文件的免费下载(需注册账号)。正确选择所使用的系统平台(如Linux x86)然后分别下载1of2、2of2这两个zip压缩包,解压后可获得database文件夹,Oracle的安装脚本、产品手册等文档都位于此文件夹中。
|
Oracle 11g的安装主要通过runlnstaller脚本进行,访问网页welcome.html可以查阅产品手册,其中包括产品说明、发行注记、安装指南等文档,为管理员提供了极为丰富的帮助信息。
1.1 前置条件的准备
oracle数据库是一个相对庞大的应用软件,对服务器的系统类型、内存和交换分区、硬盘空间,内核参数、软件环境、用户环境等都有着相应的要求。只有满足了这些必备的条件,才能够确保Oracle11g安装成功、运行稳定。
1.系统及配置要求
oracle11g明确支持的Linux系统包括Asianux2.0/3.0、Oracle Enterprise Linux4.0/5.0、Red Hat Enterprise 4.0/5.0、SUSE Linux Enterprise Server 10.0/11.0。在其他Linux系统中安装时,个别软件或配置文件可能需要做适当调整。
|
物理内存应不少于1GB,对于VMware虚拟机建议不少于1200MB。对于系统中的交换分区设置,应参考以下约定:物理内存为1GB~2GB时,交换分区为物理内存的1.5~2倍;物理内存为2GB~16GB时,交换分区与物理内存大小相同;物理内存超过16GB时,交换分区使用16GB就可以了。
|
对于32位的Oracle 11g数据库,若程序文件和数据库文件安装在同一个分区,则该分区的硬盘空间要求分别为:企业被5.65GB,标准版5.38GB;除此以外,还应该确保/tmp目录所在的分区空间不少于1GB。总的来说,建议Oracle 11g准备至少8GB的硬盘空间。
|
服务器的主机名,IP地址也应该提前确认无误,一旦Oracle数据库安装完毕,建议不要再修改主机名,否则会导致数据库启动失败。
|
2.软件环境要求
Oracle11g的安装过程通常在图形桌西中进行,因此建议使用已安装有GNOME中文桌面环境的RHEL6服务器。软件开发工具当然也是必不可少的,如gec,gllbc、binutlls等软件包(详见doc/中的安装指南),建议使用yum工具来安装必要的软件环境。
[[email protected] home]
# vim /etc/resolv.conf
nameserver 114.114.114.114
[[email protected] home]
# yum -y install binutils compat-libstdc++-33 compat-libstdc++ elfutils-libelf elfutils-libelf-devel gcc gcc-c++ glibc glibc glibc-common glibc-devel glibc-devel glibc-headers ksh libaio libaio libaio-devel libaio-devel libgcc libgcc libstdc++ libstdc++ libstdc++- devel make sysstat unixODBC unixODBC unixODBC-devel unixODBC-devel
经实际安装测试,当在RHEL-6系统中安装oracle11g时,对ksh软件包的识别会存在兼容性冲突。只要卸载RHEL6中的ksh软件包,改用RHEL5光盘中的pdksh软件包,就可以避免这个问题。
|
Oracle11g自身集成了Java运行环境,但安装界面中对中文的支持并不完善。因此若希望使用中文的oracle安装界面,建议提前安装好java-1.6.0软件包,并对中文字体配置进行少许调整;否则可以跳过此处的Java安装及配置操作。
|
3 .用户环境要求
Oracle 11g需要固定的运行用户oracle,安装组oinstall,管理组dba,这些账号应提前建立好。用来存放Oracle程序及数据库文件的基本目录(如/opt/oracle)也应该提前创建好。
|
oracle11g的安装任务应以运运行用户oracle的身份执行,需适当调整oracle用户的环境配置以便满足要求。oracle11g安装界面的语言类型取决于环境变量LANG,若希望用中文安装界面,则应确保LANG变量的值为“zh_CN.UTF-8”。中文安装界面有时会因缺少字体,字体配置不当等原因导致界面乱码,也可改用“en_US.UTF-8”,英文环境以回避类似问题。
|
如果当前的图形桌面环境是以其他用户(如root)登录的,则还应添加授权以允许用户oracle使用图形终端,例如执行“xhost [email protected]”表示允许用户oracle从本机访问、执行,“xhost +”表示取消所有限制。
|
4.内核及会话要求
为了确保数据库运行稳定,Oracle11g针对Linux内核参数,进程会话限制提出了一些要求,其中一部分设置可以在安装过程中自动检测并修复,但并不一定很完整,所以最好的做法还是根据安装文档提前进行配置。
内核参数调整体现在/etc/sysctl.conf文件中,主要包括对内存调度,端口范围,打开文件数、I/O请求等相关的一些设置,相关数值不可低于安装要求。修改完毕后通过执行“sysctl -p”命令使新配置立即生效。
|
进程会话限制可以采用pam_limits认证模块来实现,通过修改登录程序login的PAM设置以启用该认证,然后修改/etc/security/limits.conf文件,将用户oracle能够打开的进程数,进程使用的文件数加大。
|
1.2 Oracle 11g 安装过程
所有前置条件都准备好以后,就可以正式开始安装了。以用户oracle登录到RHEL6的图形桌面环境,启动database/目录下的runlnstaller脚本文件,若要使用RHEL6的中文java支持,注意应添加-jreLoc选项来指定JRE(Java Runtime Environment,Java运行环境)的安装位置。
|
针对/tmp目录,交换分区,显示器的基本检测通过以后,将会打开图形化的Oracle安装程序,如图所示,下面将依次讲解oracle11g的主要安装步骤。
1. 典型安装过程
1)配置安全更新
如果已购买oracle11g数据库的授权,且服务器能够连接internet,建议正确填写电子邮件地址和Oracle Support口令,以便及时接收官方的安全更新通知。实验过程中建议将电子邮件地址留空并取消对”我希望通过MyOracle......”复选框的选择。
2)安装选项
全新安装建议选择”创建和配置数据库“或者”仅安装数据库软件“,后者将不会创建并配置数据库实例。只有在对旧版本的Oracle数据库进行升级时,才选择”升级现有的数据库“。
3)系统类
选择”服务器类”进行安装,以便适用于企业环境的数据库系统。“桌面类”一般只建议个人用户使用,包含的配置和功能比较少。
4)网格达项
选择”单实例数据库安装“,大多数应用场合中Oracle数据库的用途比较单一,每台Oracle服务器只需要一个实例就可以了。
5)安装类型
选择“典型安装",采用Oracle11g的基本配置进行完全安装,若要为各种管理帐号分别设置口令,或者选择语言版本,设置自动备份,存储管理等则应该选择”高级安装“。
6)典型安装配置
在“典型安装”步骤中,可以指定Oracle11g的基本目录,软件安装目录,数据库存放目录,并选择要安装的数据库版本(企业版,标准版),指定全局数据库名称,设置管理口令,如图所示:
必须设置管理口令(大写字母、小写字母、数字),其他参数可采用默认值。Oracle11g数据库自动建有三个用户——超级管理员sys,system和数据库所有者sysman,当选择“高级安装”时可以为三个用户分别设置口令,否则将使用同一个管理口令。
7)创建产品清单
将清单目录修改为”/opt/oracle/oralnventory",以便oracle用户有权限写入Oracle数据库的清单信息。
8)先决条件检查及概要
针对各种前置条件进行检查,发现有未满足的条件后会给出提示,应根据检查结果进行修复或者安装必需的软件包。如果所有条件都己满足,则会看到本次安装的概要信息,如图所示,确认无误后单击“完成”技钮即完成设置,然后开始复制文件及部署数据库的安装过程。
如果提示“没有足够的总交换空间”,可以手动新增swap交换空间
#在opt目录下新建swap交换文件,并设置其大小为4G(目录可以任选)
|
#设置文件为交换空间,使用命令mkswap
|
#启用新增的4G交换空间,并使用free -m 查看是否已经生效
|
在此步骤中,还可以单击“保存响应文件”按钮将本次安装设置保存下来,例如可保存为/home/oracle/db.rsp文件。rsp文件是Oracle数据库的应答响应文件,可用来免除安装过程中的手动交互环节,便于oracle的重复部署或者在文本界面中安装。
出现乱码界面,点击最后面一个安装
9)完成安装
文件复制及相关部署结束以后,会弹出“执行配置脚本”对话框,如图所示,根据提示切换为root用户并依次执行/opt/oracle/oralnventory/orainstRoot.sh,/opt/oracle/product/11.2.0/dbhome_1/root.sh脚本。
最后单击“确定”按钮,会提示访问https://你的主机名:1158/em/,表示使用此URL地址可以访问OEM(Oracle Enterprise Manager,Oracle企业管理器)平台,以便对Oracle11g的数据库实例进行管理。
2.验证安装结果
使用浏览器访问0EM管理平台,以用户名sys,连接身份“SYSDBA”进行登录,密码为安装时指定的管理口令。登录成功后可以看到0EM管理控制台,如图所示:
2. Oracle 11g的基本管理
关于Oracle11g数据库的SOL优化、数据整理等技术将不在本章讨论,但从数据库安全及运维的角度来看,对oracle服务的控制、数据库的基本备份操作却是Linux管理员必须掌握的。
2.1 启动、停止oracle数据库
完成oracle11g数据库的安装以后,相关服务器组件会自动启用,但并不表示下次开机后Oracle服务器仍然可用。下面将介绍Oracle的基本服务组件,以及如何编写服务脚本来控制Oracle数据库系统的自动运行。
1.Oracle的服务组件
根据上面的安装过程,oracle11g的数据库软件将安装在变量ORACLE_HOME所指定的位置,例如/opt/oracle/product/11.2.0/dbhome_1/,而各种服务器组件程序(也包括sqlplus命令)正是位于其中的bin/子目录下。
oracle 11g数据库的基本服务组件如下所述:
? lsnrctl:监听器程序,用来提供数据库访问,默认监听TCP1521端口。
? dbstart、dushut:数据库控制程序,用来启动、停止数据库实例。
? emctl:管理器控制工具,用来控制0EM平台的开启与关闭,OEM平台通过1158端口提供HTTPS访问、5520端口提供TCP访问。
为了方便执行oracle11g的服务组件程序,建议对所有用户的环境配置作进一步的优化调整,补充PATH路径,Oracle终端类型等变量设置。除此以外,还应修改/etc/oratab配置文件以便运行dbstart时自动启用数据库实例。
|
使用sqlplus命令可以在命令行界面中访问Oracle11g数据库,其用途类似于MySQL的客户端程序mysql。例如,以下操作将以超级管理员sys、SYSDBA的身份连接到本机的Oracle11g数据库,根据提示需验证管理口令(也可改用“户名/密码”的形式直接写在命令行中)。
|
进入到SQL>环境以后,可以执行各种SQL操作语句来对oracle数据库进行管理。例如,执行“HELP INDEX”语句可以查看SQL Plus所支持的指令列表,执行"SHOW USER"可以查看当前登录的用户名称。
|
这样一来,用户oracle就可以直接使用上述组件了。例如执行“lsnrctl status”命令可以查看Oracle监听器的状态,执行“emctl stop dbconsole"命令可以关闭OEM管理控制台,执行"dbshut"命令可以停止数据库实例。
2.添加oracle服务
虽然通过各种服务组件程序能够启动、停止整个Oracle11g数据库系统,但显然还不够方便。在RHEL6服务器中,更好的做法是将相关操作编写为服务脚本,交给chkconfig工具来管理,从而实现随系统开、关机自动启动、停止oracle数据库。
|
在oracle脚本文件中,数据库的启动、停止操作均通过“su - oracle -c 命令行"的形式来执行,这是为了获得oracle用户的登录环境,且因为由root切换为普通用户无需验证密码,从而省去了交互式登录的过程,便于脚本的后台执行。
添加好oracle服务以后,就可以通过脚本的start、stop、status、restart参数来控制oracle数据库的启动、停止、查看状态、重启了。
|
2.2 数据库的逻辑备份
Oracle 11g提供了两个命令工具expdp、impdp,前者用来对数据库进行逻辑备份,后者用来执行恢复操作。导出、导入操作可以在不同的Oracle 11g服务器中执行,从而便于实现数据的迁移。
1,配置备份目录
在使用expdp备份工具之前,需要预先创建备份目录,定义给Oracle11g数据库进行维护,并为指定的用户赋予读写权限,例如,以下操作可以将/opt/mybackup作为expdp的备份目录,允许数据库用户sysman写入备份文件。
|
2. 备份(导出)数据
执行备份操作时,需指定备份操作用户(如sysman),然后结合DIRECTORY参数指定Oracle管理的备份位置、结合DUMPFILE参数指定备份文件名称,例如,以下操作将把用户sysman所拥有的数据导出为orc120111014.dmp文件,保存到/opt/mydbbackup目录。
|
3. 恢复(导入)数据
执行恢复操作时同样需指定操作用户(如sysman),然后结合DIRECTORY参数指定Oracle管理的备份位置,结合DUMPFILE参数指定备份文件。例如,以下操作将备份文件orcl20111014.dmp中读取数据,导入到用户sysman所拥有的数据库中。
[[email protected] bin]
# impdp stsman DIRECTORY=dmpdir DUMPFILE=lisi-20111014.dmp REUSE_DATAFILES=Y TABLE_EXISTS_ACTION=REPLACE <==恢复用户sysman的数据库
...... //恢复过程省略
[[email protected] bin]
# impdp system/123456 DIRECTORY=dmpdir DUMPFILE=orcl-full-20111014.dmp REUSE_DATAFILES=Y TABLE_EXISTS_ACTION=REPLACE FULL=Y <==恢复整个数据库
...... //恢复过程省略
其中,REUSE_DATAFILES=Y表示重用原有的数据文件,TABLE_EXISTS_ACTION=REPLACE表示覆盖已存在的表。