安装部署oracle数据库

前端之家收集整理的这篇文章主要介绍了安装部署oracle数据库前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

部署Oracle数据库

防伪码:宝剑锋从磨砺出,梅花香自苦寒来。

前言:前面我们学习过微软的sqlserver,还有甲骨文公司的MysqL,也理解了数据库系统的作用,这两种数据库管理系统适用于软件,网站,游戏等后台数据库,例如我们在学习MysqL的时候搭建过动态网站。但oracle属于非常安全、完善的大型数据库管理软件,在电信、银行、证券等大型应用场合拥有着绝对的优势。那么今天就给搭建介绍oracle的安装和基本的使用。Oracle可以安装到windowslinux系统上,但企业更多采用在linux上安装,接下来我就以redhat6.5为例。

实验环境:

ip192.168.2.6

主机名:oracleserver

用户名hexiaoshuai

内存:4G

硬盘:100G

建议Oracle 11g准备至少40硬盘空间(包括系统占用)

安装要求:

防火墙配置:禁用

SElinux:禁用

默认安装:软件开发

二、安装oracle的准备工作

1、系统及配置要求

1)确认linux系统的版本

wKiom1hdKQjztMM0AAAOyXAdC20376.png-wh_50

2)物理内存:必须高于1G

物理内存应不少于1GB,对于VMWARE虚拟机建议不少于1200MB.对于系统中的交换分区设置,应参以下约定:物理内存为1GB~2GB时,交换分区为物理内存的1.5~2倍;物理内存为2GB~16GB时,交换分区与物理内存大小相同;物理内存超过16GB时,交换分区使用16GB就可以了。

wKioL1hdKSKh-RdeAAAVcYKAk2E785.png-wh_50

3)硬盘空间:企业版需要5.65G,还要确保/tmp目录所在的分区空间不少于1G,建议总的空间给10G以上

wKioL1hdKYWy5nbdAAAUdQMdd44111.png-wh_50

4)确定主机名之后修改hosts文件(安装好oracle之后再修改主机名会导致数据库启动失败)

wKiom1hdKabjdPqRAAAhQEKnO_s134.png-wh_50

2、配置yum,安装支持

wKiom1hdKymyWwjSAAAJnNKhqt4372.png-wh_50

wKioL1hdK0WxIMqqAAAPbKxtP80985.png-wh_50

还需要安装pdksh包,但是Redhat6.5光盘中的ksh存在兼容性冲突,所以需要单独安装pdksh-5.2.14-37.el5_8.1.x86_64.rpm,使用rpm安装即可

wKiom1hdK2CQPaWAAABAd4y149o340.png-wh_50

2、调整内核参数

内核参数调整体现在/etc/sysctl.conf文件中。主要包括对内存调度、端口范围、打开文件数、I/O请求等相关的一些设置,相关数值不可低于安装要求。修改完毕后通过执行sysctl �Cp命令使新配置立即生效。

vim/etc/sysctl.conf 文件尾部添加如下内容

wKioL1hdK7qx7Nt-AAAZL-6QK4s520.png-wh_50

在下面的三行前面加上#注释

wKioL1hdK_jwSMRJAAANC_Zf-MI993.png-wh_50

wKioL1hdLCqjCChkAABBDPm5Uso770.png-wh_50

各参数详解:

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创建的时候,多个小的共享内存段可能会导致当时轻微的系统性能的降低(在启动的时候需要去创建多个虚拟地址段,在进程创建的时候要让进程对多个段进行“识别”,会有一些影响),但是其他时候都不会有影响。

官方建议值:

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

64linux系统:可取的最大值为物理内存值-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

表示套接字发送缓冲区大小的最大值。

3、oracle用户要求

Oracle需要固定的运行用户oracle,安装组oinstall,管理组dba,这些账号需要提前建立好。此外用来存放oracle程序及数据库文件的基本目录/opt/oracle也应该提前创建好。

1)建立用户和组

wKioL1hdLIGi9m5dAAAkBLoWpQE257.png-wh_50

2)建立相关目录

wKiom1hdLJnyylfTAAAc5V3D0Qc660.png-wh_50

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

vim~oracle/.bash_profile

添加如下内容

wKioL1hdLK-TBk2WAAAdekrjWhs521.png-wh_50

6oracle用户设置Shell限制:为了优化性能,需要添加oracle用户限制参数。进程会话限制可以采用pam_limits认证模块来实现,通过修改登录程序loginPAM设置以启用该认证。

修改/etc/security/limits.conf,将用户oracle能够打开的进程数、进程使用的文件数加在。加入如下内容

wKiom1hdLMfgtnSeAAAKrcjjPj4125.png-wh_50

1行是设置进程数软限制;第2行是设置进程数硬限制;第3行是设置文件数软限制;第4行是设置文件数硬限制

修改/etc/pam.d/login,加入如下内容

wKioL1hdLOPQtpEeAAAKNwLakwc644.png-wh_50

7、配置oracle用户资源限制,不配置也不会影响oracle数据库的成功安装,但是考虑到若有糟糕的sql语句对服务器资源的无限占用,导致长时间对用户请求无响应,建议提前限制oracle用户资源。

配置方法如下:

vim/etc/profile,输入以下内容

wKiom1hdLPmAx-7aAAAOVrPTOps994.png-wh_50

8、解决中文乱码问题

RHEL6.5中安装oracle11g时,中文安装界面乱码,解决方法

在Linux命令提示符下执行以下命令,把字体库安装到相应位置即可

mkdir-p /usr/share/fonts/zh_CN/TrueType

cpzysong.ttf /usr/share/fonts/zh_CN/TrueType/

chmodo+r /usr/share/fonts/zh_CN/TrueType/zysong.ttf

准备工作完成之后重新启动系统

三、正式安装oracle

1、下载oracle11g软件包到系统/home/oracle

wKiom1hdLROAd3fYAABdCHLX7W0944.png-wh_50

2、解压缩软件包

wKiom1hdLT6QQrG_AAAYvLYY8ww738.png

3、授权允许用户oracle使用图形终端,例如执行:xhost+ oracle@localhost,表示允许用户oracle从本机访问,或者执行xhost + 表示取消所有限制,这里执行xhost +即可。

wKioL1hdLe6QbZc8AAAbYeT7LR8915.png-wh_50

4、执行安装程序

wKiom1hdLguwZ-BdAABRkfOAR_o922.png-wh_50

5、配置安全更新

wKioL1hdLizixRtiAADQzch4N_E653.png-wh_50

6、安装选项,选择“创建和配置数据库

wKiom1hdLlLwiwajAADGBPyLZ9E816.png-wh_50

7、在系统类中选择“服务器类”

wKioL1hdLouzGSnlAAC0EijCiTg077.png-wh_50

8、网格选项中选择“单实例数据库安装”

wKiom1hdLtiw7zJYAAC_Fc2I_5g218.png-wh_50

9、安装类型选择“典型安装”。如果为各种管理账号分别设置口令,或者选择语言版本,设置自动备份,存储管理等,则应选择“高级安装”。

wKiom1hdLxXDQcaxAAAa-rVfYAs717.png-wh_50

10、典型安装的配置,必须设置管理员口令,其它参数采用默认值,系统将自动创建3用户,分别是:超级管理员syssystem数据库所有者sysman,当选择高级安装时,可以为3用户分别设置口令,否则将使用同一个管理口令。

wKioL1hdL5HRB914AAELB3ZwuR0173.png-wh_50

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

wKioL1hdL6zi4mapAACJCzwQ2b4405.png-wh_50

12、先决条件检查及概要,出现下面的程序包状态失败,因为这些包是32位的包,而我们的系统是64位的,所以不用理会,点击“全部忽略”。然后点击“下一步”。

wKiom1hdL87yiQhFAACzj78VWWU928.png-wh_50

wKioL1hdL-bDRXzfAADwQW0LBYc128.png-wh_50

13、安装中......

wKiom1hdMA6h_L2QAAELAaWH49k297.png-wh_50

14、当弹出“口令管理”的窗口时,单击“口令管理”按钮,将用户scott解锁,修改完成后,单击“确定”按钮。

wKioL1hdMCfjFgBMAAB5LNN7qFg225.png-wh_50

将原来的勾去掉

wKiom1hdMGGg6Sn3AABHzKfiv4g565.png-wh_50

15、完成安装

文件复制及相关部署结束之后,会弹出“执行配置脚本”对话框,根据提示切换为root用户并以此执行脚本,如下所示。

wKiom1hdMIChp50DAABC8SJD4cs880.png-wh_50

wKioL1hdMJqyR3zqAAC7qaZn_Mo510.png-wh_50

最后单击“确定”按钮,会提示访问https://oracleserver:1158/em/,使用此地址访问OEM(企业管理器)平台,以便对oracle数据库实例进行管理。

四、验证安装结果

1、访问OEM平台(OEM平台可以进行图像化管理oracle,比较方便)。

在浏览器中输入:https://oracleserver:1158/em/,输入用户名sys,密码pwd123,连接身份选择SYSDBA

wKioL1hdMLTw21YxAAFvdO7fBGA054.png-wh_50

2、使用sqlplus命令行访问oracle数据库

在命令行界面中输入:sqlplus sys/123.com AS SYSDBA

wKiom1hdMNTT6fwpAABOQ2O2-mE335.png-wh_50

或者

wKiom1hdMPXDZZr9AABUw0h1JXU329.png-wh_50

1)执行HELP INDEX命令查看所有可以使用的命令

wKioL1hdMQvyDhseAAB51hO-ZAU963.png-wh_50

2)执行SHOW USER可以查看当前登录用户

wKiom1hdMSSS5_Q3AAAMvYl9AT8165.png-wh_50

五、配置oracleOEM随机启动

完成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'

wKioL1hdMUzjz4LGAAAp4jCyteI391.png-wh_50

wKiom1hdMWSjzZyWAAAeRsU-cus157.png-wh_50

3建立oracle服务的启动脚本:(可以不做)

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

vi /etc/init.d/oracle ,输入如下内容

#!/bin/bash

# chkconfig: 2345 99 10

# description: Startup Script for oracle Databases

# /etc/init.d/oracle

export ORACLE_BASE="/opt/oracle"

export ORACLE_HOME=$ORACLE_BASE/product/11.2/db_1

export ORACLE_OWNER=oracle

case "$1" in

start)

su -$ORACLE_OWNER -c "$ORACLE_HOME/bin/lsnrctl start"

su -$ORACLE_OWNER -c "$ORACLE_HOME/bin/dbstart $ORACLE_HOME"

su -$ORACLE_OWNER -c "$ORACLE_HOME/bin/emctl start dbconsole"

touch/var/lock/subsys/oracle11g

;;

stop)

su -$ORACLE_OWNER -c "$ORACLE_HOME/bin/emctl stop dbconsole"

su -$ORACLE_OWNER -c "$ORACLE_HOME/bin/dbshut $ORACLE_HOME"

su -$ORACLE_OWNER -c "$ORACLE_HOME/bin/lsnrctl stop"

rm -fr/var/lock/subsys/oracle11g

;;

status)

if ( pgrep"tnslsnr" && netstat -anpt | grep ":1521" )&> /dev/null

then

echo"Oracle 11g Net Listener is running."

else

echo"Oracle 11g Net Listener is not running."

fi

if (netstat -anpt | grep ":1158" && netstat -anpt | grep":5520" ) &> /dev/null

then

echo"Oracle 11g Enterprise Manager is running."

else

echo"Oracle 11g Enterprise Manager is not running."

fi

;;

restart)

$0 stop

$0 start

;;

*)

echo"Usage: $0 {start|stop|restart|status}"

exit 1

;;

esac

exit 0

添加好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个包:

wKioL1hdMbbjR-iPAAAw04GJKdw605.png

2、安装

1)解压缩

wKioL1hdMc6xidiYAABBuvl0tR4994.png-wh_50

3登录oracle:在命令前加 uniread

原来登录: sqlplus sys/123.com AS SYSDBA

现在是: uniread sqlplus sys/123.comAS SYSDBA

wKiom1hdMgmyjLGcAABRTrQnPQs251.png-wh_50

现在就可以使用ctrl+l清屏了,还可以上下翻页

八、创建数据库

如果在安装oracle产品时选择不建立数据库,那么要使用oracle系统就必须先创建数据库,如果在安装oracle产品时选择建立数据库,也可以再创建第二个数据库

创建数据库有两种方法:一种通过图形界面;另一种采用create database命令,下面介绍图形界面的方法

linux中,运行数据库配置助手(DBCA),执行$ORACLE_HOME/bin目录下执行DBCA

1、执行netca启用监听的方法(如果没有启用需要做这一步)(为了使客户端能连接到oracle实例,以及有些命令也需要启用监听)

wKiom1hdMlOQP7KDAAFFrFCT3Dk527.png-wh_50

wKiom1hdMp7zJ8lXAADV7dUyLE8968.png-wh_50

wKioL1hdMt7zck0sAADPmIksbdc564.png-wh_50

wKiom1hdMwXggjDcAADbyCKCLVU674.png-wh_50

后面下一步即可。

或者使用命令启动监听:

先停止后启动

wKioL1hdMy_yksKRAAChBknGwRQ869.png-wh_50

1、运行DBCA,创建数据库

wKioL1hdM07DEbFgAADg2gR9buI707.png-wh_50

wKiom1hdM3iTTtcjAADUiBCuZJY649.png-wh_50

wKiom1hdM47TbMBpAADWHMGDW1U777.png-wh_50

输入数据库名称

wKiom1hdM6azckdLAAC76lcga6E309.png-wh_50

默认即可。

wKioL1hdM8ay5AStAADYZxSjzfQ934.png-wh_50

所有管理员口令使用同一口令,当然生产环境中为了安装最好设置为不同的密码。

wKiom1hdM9_R6zNXAADMuY15sA0351.png-wh_50

默认即可.

wKioL1hdM_Ph9F7uAAD72FRkLHo550.png-wh_50

wKioL1hdNArASs_FAADq_n8eyKY044.png-wh_50

为了在系统出现故障时能够恢复数据库中存储的数据,需要制定快速恢复区,采用默认即可。

wKiom1hdNCHxoTagAADbjRFKG-c064.png-wh_50

默认即可。

wKioL1hdNDmTlA_dAADND38mbSQ956.png-wh_50

设置内存、SGAPGA的大小,值越大,oracle性能越好,这里就默认了。

wKiom1hdNFLRrC2FAADmEIe9lw0373.png-wh_50

wKiom1hdNGnxIfJVAACC1SZpa3g334.png-wh_50

wKioL1hdNIPhuiW7AADHbyNLJFA120.png-wh_50

wKioL1hdNJySh2FrAABStAVq2oc871.png-wh_50

wKiom1hdNLTDnPzxAACj0wLPWro760.png-wh_50

补充:连接新建立的数据库

1)打开dbca配置数据库监听

wKioL1hdNMqhwyItAADbpl1UcXs656.png-wh_50

wKiom1hdNO2AekiiAADWDqtk3Nk200.png-wh_50

wKiom1hdNQKCF5CmAACxs8oEFdc863.png-wh_50

3)数据库t366注册给监听器

wKiom1hdNR6jnJbjAAD1AvtiGQc460.png-wh_50

后面下一步就行了

4)启用监听

wKioL1hdNUvTsh2BAAAqhq_KuXw746.png

5)连接到benet数据库

wKiom1hdNWeywDcPAADDSJDDh9A515.png-wh_50

九、启动关闭数据库

1、数据库的启动

启动(startup)一个数据库需要3个步骤

1)启动oracle实例

2)由实例安装数据库

3)打开数据库

startup命令中,可以通过不同的选项来控制数据库的不同的启动步骤。

NOMOUNT选项:

nomount:已经通过参数文件知道控制文件在哪个位置,但是还没有读取控制文件。主要的作用就是启动一个实例,读取init.ora初始化参数文件,启动后台进程,初始化全局SGA

MOUNT选项:

读取了控制文件,通过控制文件知道了其他文件(数据文件和日志文件),此时并没有读取数据文件和日志文件,这个状态叫mount状态。启动实例并且安装了数据库,但没有打开数据库。这种打开方式常在数据库维护操作中使用,例如对数据文件更名,改变重做日志及打开归档方式等,在这种打开方式下,除了可以看到SGA 系统列表以外,系统还会给出“数据库装载完毕”提示


Open选项:

读取完控制文件之后,找到了数据文件和日志文件数据库就处于OPEN状态了。

startupnomount|mount|open

shudownnormal|immedieate|transactional|abort

注意:如果仅仅执行startup命令,将会完成启动实例,安装实例和打开数据库的所有3个步骤,这是系统出了可以看到前面startup mount方式下所有提示外,还会给出一个“数据库已经打开”的提示,此时,数据库系统处于正常的工作状态,可以接收用户请求。

如果使用startup nomount 命令或者startup mount命令,必须采用alter database命令执行打开数据库操作,例如:如果以startupnomount方式打开数据库,也就是说实例已经启动,但是数据库没有安装和打开,这是必须运行下面的两条命令,数据库才能正确启动。
ALTER DATABASE MOUNT;

ALTER DATABASE OPEN;

如果以startup mount方式启动数据库,只需要运行下面一条命令即可打开数据库

ALTER DATABASE OPEN

2、执行startup命令

wKioL1hdNYHi4zx-AAB8DB_JPw0819.png-wh_50

wKiom1hdNZny3ymGAAA4_iK6ABQ915.png-wh_50

可以看出数据库已经打开

3关闭数据库

wKioL1hdNa2xX4j4AABHPArMPnA494.png-wh_50

4、开始startup nomount状态

wKiom1hdNcrD7yYlAABvk3_hVb0536.png-wh_50

可以看出现在处于STARTED状态

wKioL1hdNd-TBacZAAA1_VekXl8244.png-wh_50

5修改数据库open状态

wKiom1hdNfLAULrgAACOPjYNRZM611.png-wh_50

6数据库关闭

normal:这是默认选项,使用该选项时,不允许任何新的用户连接,但是允许继续当前的所有连接,只有所有用户(自愿的)退出登录时,数据库才能真正的关闭

通常,正常的数据库关闭是没有意义的,即使只剩下database control在运行,也总是存在未退出登录用户。也许关闭一个数据库需要几天或更长的事件(如果用户一直没有自己关闭

immediate使用这个选项时,不允许任何新的用户连接,当前的所有连接的会话都被终止。任何活动的事务都会都将回滚,随后数据库会被关闭。是一种常用的关闭数据库方式,快速关闭数据库

transactional:使用这个选项时,不允许任何新的用户连接,没有存在于某个事务中的现有会话被终止,允许当前位于某个事务中的会话在完成该事务之后终止。一但所有会话终止,数据就会被关闭(使用shutdown immediate

abort:oracle而言,使用这个选项相当于断电。实例被立即终止。此时,任何数据都不会被写入磁盘。但是在下一次启动数据库的时候,速度比较慢(需要实例恢复)。建议在以下情况使用这种方式。

1)数据库一直处于非正常的工作状态,不能用shutdownnormal或者shutdown immediate命令关闭

2)需要立即关闭数据库

3)在启动数据库实例时遇到问题

十、使用Navicat for Oracle工具远程图形化管理oracle

wKiom1hdNoSiFByPAAEHZtEp2eI952.png-wh_50

wKioL1hdNrazE8kPAADYAZv0WJ0900.png-wh_50

简单的创建一个表

wKiom1hdNtOhnctnAAFHArloOlM355.png-wh_50

原文链接:https://www.f2er.com/oracle/211153.html

猜你在找的Oracle相关文章