码迷,mamicode.com
首页 > 数据库 > 详细

Oracle数据库部署

时间:2016-12-23 02:08:48      阅读:346      评论:0      收藏:0      [点我收藏+]

标签:杨文   linux   oracle   甲骨文   

防伪码:快马加鞭君为先,自古英雄出少年。

前言:Oracle Database,又名Oracle RDBMS,或简称Oracle。是甲骨文公司的一款关系型数据库管理系统。它是在数据库领域一直处于领先地位的产品。可以说Oracle数据库系统是目前世界上流行的关系数据库管理系统,系统可移植性好、使用方便、功能强,适用于各类大、中、小、微机环境。它是一种高效率、可靠性好的 适应高吞吐量的数据库解决方案。

一、 安装oracle的准备工作

1、 系统及配置要求

1) 确认linux系统的版本

技术分享

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

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

技术分享

3) 硬盘空间:企业版需要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安装即可。

技术分享

2、 调整内核参数

内核参数调整体现在/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:

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

3、 oracle用户要求

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

1)建立用户和组

技术分享

2)建立相关目录

技术分享

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

技术分享

技术分享

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

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

技术分享

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

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

技术分享

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

配置方法如下:

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

技术分享

7、 解决中文乱码问题

在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

技术分享

8、 关闭防火墙和selinux,并设置永久ip地址和主机名

技术分享

配置永久ip地址

技术分享

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

二、 正式安装oracle

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

技术分享

2、 解压缩软件包

技术分享

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

技术分享

4、运行runInstaller安装程序

技术分享

5、配置安全更新

技术分享

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

技术分享

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

技术分享

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

技术分享

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

技术分享

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

技术分享

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

技术分享

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

技术分享

技术分享

可以保存响应文件,以后安装oracle时可以使用这个脚本执行安装,就不用配置这么多了。

13、安装中

技术分享

技术分享

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

技术分享

技术分享

15、完成安装

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

技术分享

技术分享

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

三、 验证安装结果

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

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

技术分享

技术分享

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

在命令行界面中输入:sqlplus  sys/123456 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,修改内容如下:

技术分享

2、修改/etc/rc.local文件,在文件末尾增加如下:
su - oracle -c ‘dbstart‘
su - oracle -c ‘lsnrctl start‘

技术分享

五、常见系统控制命令

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)解压缩

技术分享

2)安装第一个包

技术分享

3) 安装第二个包

技术分享

4)安装第三个包

技术分享

3、登录oracle:在命令前加 uniread

原来登录是: sqlplus sys/123456 AS SYSDBA

现在是: uniread sqlplus sys/123456 AS SYSDBA

技术分享

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

七、创建数据库

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

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

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

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

技术分享

技术分享

技术分享

技术分享

后面下一步即可。

或者使用命令启动监听:

lsnrctl

LSNRCTL>stop(停止监听)

LSNRCTL>start(开始监听)

2、运行DBCA

技术分享

技术分享

技术分享

输入数据库名称:

技术分享

默认即可

技术分享

练习时可以选择“所有管理员口令使用同一口令”,当然生产环境中为了安装最好设置为不同的密码。

技术分享

默认即可

技术分享

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

技术分享

默认即可

技术分享

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

技术分享

技术分享

技术分享

技术分享

技术分享

注意:建议一台服务器上只创建一个数据库,安装oracle的时候我们创建过一个orcl数据

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

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

技术分享

2) 选择数据库yangwen

技术分享

3) 将数据库benet注册给监听器

技术分享

技术分享

技术分享

4) 启用监听

技术分享

5) 连接到benet数据库

技术分享

八、 启动关闭数据库

1、 数据库的启动

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

1) 启动oracle实例

2) 由实例安装数据库

3) 打开数据库

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

NOMOUNT选项:

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

MOUNT选项:

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

Open选项:

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

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

 

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

ALTER DATABASE OPEN;

 

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

ALTER DATABASE OPEN

2、执行startup命令

技术分享

可以看出数据库已经打开

注意:

oracle11g数据库在执行dbca或者调整sga后重启oracle的时候可能会出现ORA-00845 MEMORY_TARGET not supported on this system 错误。

究其原因就是Linux系统的shm的大小比SGA设置的小,造成的,距离来说,SGA设置4G,而shm可能只有1G

解决办法:

调整shm的大小,具体操作如下:

vi /etc/fstab

修改如下行的设置

tmpfs /dev/shm tmpfs defaults 0 0

改成

tmpfs /dev/shm tmpfs defaults,size=6G 0 0

保存退出

重新mount下shm使其生效

mount -o remount /dev/shm

 

3、关闭数据库

技术分享

4、开始startup  nomount状态

技术分享

可以看出现在处于STARTED状态

技术分享

5、修改数据库到open状态

技术分享

6、数据库的关闭

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

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

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

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

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

建议在以下情况使用这种方式。

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

2) 需要立即关闭数据库

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

技术分享

补充:

使用scott用户连接数据库服务器

如果锁定了scott,则需要解锁

修改密码并且登录服务器

技术分享

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

Navicat for Oracle是一套专为Oracle设计的强大数据库管理及开发工具。它可以用于任何版本的Oracle数据库,并支援大部份Oracle的功能,包括触发器、索引、检视等。

1、新建连接

 

技术分享

2、点击高级---角色选择sysdba,位置选择图片设置的位置。

技术分享

查看数据库

技术分享

谢谢观看,真心的希望能帮到您!


本文出自 “一盏烛光” 博客,谢绝转载!

Oracle数据库部署

标签:杨文   linux   oracle   甲骨文   

原文地址:http://yw666.blog.51cto.com/11977292/1885316

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!