Oracle数据库部署
1、系统及配置要求
1)确认linux系统的版本
Oracle11g明确支持的Linux系统包括Asianux2.0/3.2、Oracle Enterprise Linux4.0/5.0、Red Hat Enterprise 4.0/5.0、SUSE Enterprise Server10.0/11.0。在其他Linux系统中安装时,个别软件或配置文件可能需要做出适当调整。
2) 物理内存:必须高于1G。
物理内存应不少于1GB,对于VMWARE虚拟机建议不少于1.5GB.对于系统中的交换分区设置,应参以下约定:物理内存为1GB~2GB时,交换分区为物理内存的1.5~2倍;物理内存为2GB~16GB时,交换分区与物理内存大小相同;物理内存超过16GB时,交换分区使用16GB就可以了。
3) 硬盘空间:对于Oracle11g,若程序文件和数据文件安装在同一分区,则分区的银盘空间要求为:标准版5.38G,企业版需要5.65G,还要确保/tmp目录所在的分区空间不少于1G,建议总的空间给10G以上
4) 确定主机名之后修改hosts文件(安装好oracle之后再修改主机名会导致数据库启动失败)
2、配置yum,安装支持包
Vim oracle.repo
还需要安装pdksh包,但是Redhat6.5光盘中的ksh存在兼容性冲突,所以需要单独安装pdksh-5.2.14-37.el5_8.1.x86_64.rpm,使用rpm安装即可。
3、调整内核参数
内核参数调整体现在/etc/sysctl.conf文件中。主要包括对内存调度、端口范围、打开文件数、I/O请求等相关的一些设置,相关数值不可低于安装要求。修改完毕后通过执行sysctl –p命令使新配置立即生效。
vim /etc/sysctl.conf 在文件尾部添加如下内容:
在下面的三行前面加上#注释。
各参数详解:
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:
表示套接字发送缓冲区大小的最大值。
4、 oracle用户要求
Oracle需要固定的运行用户oracle,安装组oinstall,管理组dba,这些账号需要提前建立好。此外用来存放oracle程序及数据库文件的基本目录/opt/oracle也应该提前创建好。
1)建立用户和组
4)、为oracle用户设置Shell限制:为了优化性能,需要添加oracle用户的限制参数。进程会话限制可以采用pam_limits认证模块来实现,通过修改登录程序login的PAM设置以启用该认证。
修改/etc/security/limits.conf,将用户oracle能够打开的进程数、进程使用的文件数加在。加入如下内容:
第1行是设置进程数软限制;第2行是设置进程数硬限制;第3行是设置文件数软限制;第4行是设置文件数硬限制
修改/etc/pam.d/login,加入如下内容:
5)配置oracle用户资源限制,不配置也不会影响oracle数据库的成功安装,但是考虑到若有糟糕的sql语句对服务器资源的无限占用,导致长时间对用户请求无响应,建议提前限制oracle用户资源。
配置方法如下:
vim /etc/profile,输入以下内容:
在RHEL6.5中安装oracle11g时,中文安装界面乱码,解决方法:
在Linux命令提示符下执行以下命令,把字体库安装到相应位置即可
mkdir -p /usr/share/fonts/zh_CN/TrueType
cp zysong.ttf /usr/share/fonts/zh_CN/TrueType/
chmod o+r /usr/share/fonts/zh_CN/TrueType/zysong.ttf
7)关闭防火墙和selinux,并设置永久ip地址和主机名
8)准备工作完成后,重启系统
二.正式安装Oracle
1、下载oracle11g软件包到系统/home/oracle中
2、 解压缩软件包
ls
/database查看解压后得到的文件
3.授权允许用户oracle使用图形终端,例如执行:xhost
+ [email protected],表示允许用户oracle从本机访问,或者执行xhost
+ 表示取消所有限制,这里执行xhost
+即可
4、 执行安装程序
7、在系统类中选择“服务器类”
8、网格选项中选择“单实例数据库安装”
9、安装类型选择“典型安装”。如果为各种管理账号分别设置口令,或者选择语言版本,设置自动备份,存储管理等,则应选择“高级安装”。
10、典型安装的配置,必须设置管理员口令,其它参数采用默认值,系统将自动创建3个用户,分别是:超级管理员sys,system和数据库所有者sysman,当选择高级安装时,可以为3个用户分别设置口令,否则将使用同一个管理口令。
11、 创建产品清单,将清单目录修改为/opt/oracle/oralnventory,以便oracle用户有权限写入oracle数据库的清单信息。
12.先决条件检查及概要,出现下面的程序包状态失败,因为这些包是32位的包,而我们的系统是64位的,所以不用理会,点击“全部忽略”。然后点击“下一步”
15、完成安装
文件复制及相关部署结束之后,会弹出“执行配置脚本”对话框,根据提示切换为root用户并以此执行脚本,如下所示。
最后单击“确定”按钮,会提示访问https://oracleserver:1158/em/,使用此地址访问OEM(企业管理器)平台,以便对oracle数据库实例进行管理。
三、 验证安装结果
1、访问OEM平台(OEM平台可以进行图像化管理oracle,比较方便)。
在浏览器中输入:https://oracleserver:1158/em/,输入用户名:sys,密码pwd123,连接身份选择SYSDBA
2、 使用sqlplus命令行访问oracle数据库
在命令行界面中输入:sqlplus sys/pwd123 AS SYSDBA
1)执行HELP INDEX命令查看所有可以使用的命令
2)执行SHOW USER可以查看当前登录的用户
四、 配置oracle和OEM随机启动
完成oracle11g数据库的安装后,相关服务器会自动启用,但并不表示下次开机后oracle服务器仍然可用。下面将介绍oracle的基本服务组件,以及如何编写服务脚本来控制oracle数据库系统的自动运行。
根据上面的安装过程,oracle11g的数据库软件将安装在变量ORACLE_HOME所北定的位置。例如/opt/oracle/product/11.2.0/dbhome_1/,而各种服务器组件程序(也包括sqlplus命令)正是位于其中的bin子目录下。
Oracle11g数据库的基本服务组件如下所述:(注:oracle服务组件最好以oracle用户身份运行如:su - oracle)
lsnrctl:监听器程序,用来提供数据库访问,默认监听TCP 1521端口。
dbstart、dbshut:数据库控制程序,用来启动、停止数据库实例。
emctl:管理器控制工具,用来控制OEM平台的开启与关闭,OEM平台通过1158端口提供HTTPS访问,5520端口提供TCP访问。
为了方便执行oracle11g的服务组件程序,建议对所有用户的环境配置作进一步的优化调整、补充PATH路径、oracle终端类型等变量设置。除此以外,还应该修改/etc/oratab配置文件,以便运行dbstart时自动启用数据库实例。
1、修改/etc/oratab,修改内容如下:
vim /etc/oratab
orcl:/opt/oracle/product/11.2.0/dbhome_1:Y(N改为Y)
2、修改/etc/rc.local文件,在文件末尾增加如下:
su - oracle -c 'dbstart'
su - oracle -c 'lsnrctl start'
3、建立oracle服务的启动脚本:(可以不做)
虽然通过各种服务组件程序能够启动、停止整个oracle11g数据库系统,但显然还不够方便,在RHEL6服务器中,更好的做法是将相关操作编写为服务脚本,交给chkconfig工具来管理,从而实现随系统开、关机自动启动、停止oracle数据库。
vi /etc/init.d/oracle ,输入如下内容:
太多了,大家不用看,我在windows上面编写好了,通过WinSCP软件直接上传到服务器的/home/oralce下
拷贝到/etc/init.d下,并设置权限。
给脚本设置权限并添加为系统服务
添加好oracle服务后,就可以通过脚本的start、stop、status、restart参数来控制oracle数据库的启动、停止、查看状态、重启了。
五、常见系统控制命令
1、执行”lsnrctl start”命令可以启动oracle监听器。
2、执行”lsnrctl status”命令可以查看oracle监听器的状态。
3、执行”emctl stop dbconsole”命令可以关闭OEM管理控制台。
4、执行”dbshut $ORACLE_HOME”命令可以停止数据库实例。
5、执行”dbstart $ORACLE_HOME”命令可以启动数据库实例。
6、使用sqlplus命令工具时,若以超级管理员sys登录,则在”SQL>”环境中执行”STARTUP;”、”SHUTDOWN IMMEDIATE;”指令也可以启用、关闭默认的数据库实例。
六、 配置oracle命令行可以翻页和清屏
1、下载3个包:
1)IO-Tty-1.07.tar.gz
2)Term-ReadLine-Gnu-1.16.tar.gz
3)uniread-1.01.tar.gz
2、安装
1)解压缩
[[email protected] Desktop]# tar -xvf IO-Tty-1.07.tar.gz
[[email protected] Desktop]# tar -xvf Term-ReadLine-Gnu-1.16.tar.gz
[[email protected] Desktop]# tar -xvf uniread-1.01.tar.gz
2)安装第一个包
[[email protected] Desktop]# cd IO-Tty-1.07
[[email protected] IO-Tty-1.07]# perl Makefile.PL
[[email protected] IO-Tty-1.07]# make
[[email protected] IO-Tty-1.07]# make install
3)安装第二个包
[[email protected] IO-Tty-1.07]# cd ../Term-ReadLine-Gnu-1.16
[[email protected] Term-ReadLine-Gnu-1.16]# perl Makefile.PL
[[email protected] Term-ReadLine-Gnu-1.16]# make
[[email protected] Term-ReadLine-Gnu-1.16]# make install
4)安装第三个包
[[email protected] Term-ReadLine-Gnu-1.16]# cd ../uniread-1.01
[[email protected] uniread-1.01]# perl Makefile.PL
[[email protected] uniread-1.01]# make
[[email protected] uniread-1.01]# make install
3、登录oracle:在命令前加 uniread
原来登录是: sqlplus sys/123456 AS SYSDBA
现在是: uniread sqlplus sys/123456 AS SYSDBA