Oracle数据库部署

    在计算机信息安全领域中,数据库系统无疑有着举足轻重的地位,例如,微软的SQL Server、IBM公司的DB2,以及甲骨文公司的Oracle、MySQL等,都是知名的数据库管理软件。其中,Oracle属于很是安全、完善的大型数据库管理软件,在电信、银行、证券等大型应用场合拥有着绝对的优点。今天就来搭建并介绍Oracle的安装和基本的使用。Oracle能够安装到Windows和Linux系统上,但企业更多采用在Linux上安装,接下来我就以Redhat6.5为例,安装Oracle 11g数据库html



安装Oracle的准备工做linux

1. 系统及配置要求sql

*(1)物理内存,很多于1GB数据库

*(2)交换分区,为物理内存的1.5-2倍vim

*(3)磁盘空间,很多于8GB浏览器

(4)*拥有固定的FQDN名称,安装后不建议再更改安全

[root@oracle ~]# cat /etc/redhat-release     #查看Linux系统
Red Hat Enterprise Linux Server release 6.5 (Santiago)
[root@oracle ~]# grep MemTotal /proc/meminfo    #查看物理内存
MemTotal:        3909824 kB
[root@oracle ~]# grep SwapTotal /proc/meminfo   #查看交换分区
SwapTotal:       6097144 kB
[root@oracle ~]# hostname   #规划好IP地址和主机名,建议不要更改
oracle
[root@oracle ~]# vim /etc/hosts
192.168.10.1    oracle
[root@oracle ~]# df -hT /tmp          #建议为Oracle至少准备8GB硬盘空间
Filesystem                   Type  Size  Used Avail Use% Mounted on
/dev/mapper/VolGroup-lv_root ext4   18G  4.3G   13G  27% /


2. 软件环境要求bash

    Oracle的安装过程一般在图形桌面进行,所以须要在已经安装有GNOME桌面环境的服务器,必要的软件开发工具也必不可少的
服务器

    还须要安装pdksh包,可是Redhat6.5光盘中的ksh存在兼容性冲突,因此须要单独下载安装pdksh-5.2.14-37.el5_8.1.x86_64.rpm,使用rpm安装便可。session

[root@oracle ~]# yum -y install compat-libstdc*
[root@oracle ~]# yum -y install elfutils-libelf-devel*
[root@oracle ~]# yum -y install libaio-devel
[root@oracle ~]# yum -y install numactl-devel
[root@oracle ~]# yum -y install unixODBC*
[root@oracle ~]# rpm -ivh pdksh-5.2.14-37.el5_8.1.x86_64.rpm

    

3. 调整内核参数

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

[root@oracle ~]# vim /etc/sysctl.conf 
#net.bridge.bridge-nf-call-ip6tables = 0   #此三行加注释
#net.bridge.bridge-nf-call-iptables = 0
#net.bridge.bridge-nf-call-arptables = 0
fs.aio-max-nr = 1048576   
fs.file-max = 6815744     
kernel.shmall = 2097152   #此行默认已有,数值大于此值便可
kernel.shmmax = 536870912 #此行默认已有,数值大于此值便可
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048586
[root@oracle ~]# sysctl -p       #从新加载配置文件

    各参数解释以下:

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也应该提早建立好。

[root@oracle ~]# groupadd oinstall           #建立安装组
[root@oracle ~]# groupadd dba                #建立管理组
[root@oracle ~]# useradd -g oinstall -G dba oracle  #建立运行用户
[root@oracle ~]# passwd oracle               #设置密码
更改用户 oracle 的密码 。
新的 密码:
从新输入新的 密码:
passwd: 全部的身份验证令牌已经成功更新。
[root@oracle ~]# mkdir /opt/oracle           #创建基本目录
[root@oracle ~]# chown -R oracle:oinstall /opt/oracle/
[root@oracle ~]# chmod -R 755 /opt/oracle/
[root@oracle ~]# sudo mkdir /opt/tmp        #建立安装时使用的临时文件夹
[root@oracle ~]# sudo chmod a+wr /opt/tmp/

[root@oracle ~]# vim ~oracle/.bash_profile   #调整Oracle用户的环境配置
umask 022
export ORACLE_BASE=/opt/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2/db_1
export ORACLE_SID=orcl
export LANG=zh_CN.UTF-8
export NLS_LANG="AMERICAN_AMERICA".ZHS16GBK
export PATH=$ORACLE_HOME/bin:$PATH
export DISPLAY=:0.0

 



5. Oracle用户资源限制要求

[root@oracle ~]# vim /etc/pam.d/login        #启用pam_limits认证模块
session  required  /lib/security/pam_limits.so
session  required  pam_limits.so

[root@oracle ~]# vim /etc/security/limits.conf   #进程会话限制
oracle  soft  nproc  2047                #进程数软限制
oracle  hard  nproc  16384               #进程数硬限制
oracle  soft  nofile  1024               #文件数软限制
oracle  hard  nofile  65536              #文件数硬限制
oracle  soft  stack  10240               #Oracle软堆栈限制

[root@oracle ~]# vim /etc/profile    #添加如下内容
if [ $USER = "oracle" ]; then
  if [ $SHELL = "/bin/ksh" ]; then
    ulimit -p 16384
    ulimit -n 65536
  else
    ulimit -u 16384 -n 65536
  fi
fi

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



6. 关闭防火墙和selinux

[root@oracle ~]# vim /etc/sysconfig/selinux 
SELINUX=disabled
[root@oracle ~]# service iptables stop


7. 解决中文乱码问题

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

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

[root@oracle ~]# mkdir -p /usr/share/fonts/zh_CN/TrueType
[root@oracle ~]# cp zysong.ttf /usr/share/fonts/zh_CN/TrueType/
[root@oracle ~]# chmod o+r /usr/share/fonts/zh_CN/TrueType/zysong.ttf

Oracle的安装过程    

1. 下载Oracle11g软件包到系统/home/oracle中

2. 执行安装程序

xhost + oracle@localhost,表示容许用户oracle从本机访问,或者执行xhost + 表示取消全部限制

[oracle@oracle ~]$ ls
linux.x64_11gR2_database_1of2.zip  p8670579_112010_LINUX.zip
linux.x64_11gR2_database_2of2.zip  zysong.ttf
[oracle@oracle ~]$ unzip linux.x64_11gR2_database_1of2.zip 
[oracle@oracle ~]$ unzip linux.x64_11gR2_database_2of2.zip  
[oracle@oracle ~]$ ls database/
doc  install  response  rpm  runInstaller  sshsetup  stage  welcome.html 

[root@oracle ~]# xhost +  #取消全部限制,容许oracle用户使用图形终端,此操做须要在图形环境执行
access control disabled, clients can connect from any host
[root@oracle ~]# su - oracle
[oracle@oracle ~]$ cd database/
[oracle@oracle database]$ ./runInstaller    //打开图形化的Oracle安装程序
正在启动 Oracle Universal Installer...

检查临时空间: 必须大于 120 MB。   实际为 7730 MB    经过
检查交换空间: 必须大于 150 MB。   实际为 2047 MB    经过
检查监视器: 监视器配置至少必须显示 256 种颜色。    实际为 16777216    经过
准备从如下地址启动 Oracle Universal Installer /tmp/OraInstall2018-03-19_02-52-37AM. 请稍候...

杨书凡16.png



 

3. 典型安装过程

(1)配置安全更新

(2)安装选项,选择“建立和配置数据库”

杨书凡17.png

(3)在系统类中选择“服务器类”

杨书凡18.png


(4)网格选项中选择“单实例数据库安装”

杨书凡19.png

(5)安装类型选择“典型安装”

若是为各类管理帐号分别设置口令,或者选择语言版本,设置自动备份,存储管理等,则应选择“高级安装”。

杨书凡20.png

 

(6)典型安装的配置,必须设置管理员口令,其它参数采用默认值,系统将自动建立3个用户,分别是:超级管理员sys,system和数据库全部者sysman,当选择高级安装时,能够为3个用户分别设置口令,不然将使用同一个管理口令。

杨书凡21.png

 

(7)建立产品清单,将清单目录修改成/opt/oracle/oralnventory,以便oracle用户有权限写入oracle数据库的清单信息。

杨书凡22.png

 

(8)先决条件检查及概要,出现下面的程序包状态失败,由于这些包是32位的包,而咱们的系统是64位的,因此不用理会,点击“所有忽略”。而后点击“下一步”。

杨书凡23.png

杨书凡24.png 


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

 

(9)安装中......

杨书凡25.png

杨书凡26.png

 

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

杨书凡00.png

杨书凡01.png 


(11)完成安装

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

杨书凡02.png

 

杨书凡03.png


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

杨书凡04.png360截图20180319151630691.jpg 





4. 验证安装结果

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

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

杨书凡05.png


杨书凡06.png



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

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

杨书凡10.png


或者:

杨书凡09.png

 

(3)执行HELP INDEX命令查看全部可使用的命令

杨书凡08.png

 


5. 配置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,修改内容以下:

[root@oracle ~]# vim /etc/oratab
orcl:/opt/oracle/product/11.2.0/dbhome_1:Y    #N改成Y

 

(2)修改/etc/rc.local文件,在文件末尾增长以下:

[root@oracle ~]# vim /etc/rc.local 
su - oracle -c 'dbstart' 
su - oracle -c 'lsnrctl start'



6. 常见系统控制命令

(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;”指令也能够启用、关闭默认的数据库实例。

 

 

7. 配置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)安装

[root@oracle ~]# tar zxf IO-Tty-1.07.tar.gz
[root@oracle ~]# cd IO-Tty-1.07
[root@oracle IO-Tty-1.07]# perl Makefile.PL
[root@oracle IO-Tty-1.07]# make
[root@oracle IO-Tty-1.07]# make install
 
[root@oracle ~]# tar zxf Term-ReadLine-Gnu-1.16.tar.gz
[root@oracle ~]# cd Term-ReadLine-Gnu-1.16
[root@oracle Term-ReadLine-Gnu-1.16]# perl Makefile.PL
[root@oracle Term-ReadLine-Gnu-1.16]# make
[root@oracle Term-ReadLine-Gnu-1.16]# make install

[root@oracle ~]# tar zxf uniread-1.01.tar.gz
[root@oracle ~]# cd uniread-1.01
[root@oracle uniread-1.01]# perl Makefile.PL
[root@oracle uniread-1.01]# make
[root@oracle uniread-1.01]# make install



(3)登陆oracle:在命令前加 uniread 

[oracle@oracle ~]$ uniread sqlplus sys as sysdba
[uniread] Loaded history (0 lines)
SQL*Plus: Release 11.2.0.1.0 Production on Tue Mar 20 00:18:19 2018
Copyright (c) 1982, 2009, Oracle.  All rights reserved.
Enter password: 
Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
SQL> show user;
show user;
USER is "SYS"

原来登陆是: sqlplus sys AS SYSDBA

如今是: uniread sqlplus sys AS SYSDBA

    如今就可使用ctrl+l清屏了,还能够上下翻页。

 

 

8. 建立数据库

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

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

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

 

(1)执行netca启用监听的方法(若是没有启用须要作这一步)(为了使客户端能链接到oracle实例,以及有些命令也须要启用监听)


杨书凡18.png


杨书凡12.png

杨书凡13.png

杨书凡14.png 


 

后面下一步便可。

 

或者使用命令启动监听:

杨书凡15.png

 

(2)运行DBCA

杨书凡17.png

 

杨书凡19.png


杨书凡20.png 


杨书凡21.png 


杨书凡22.png


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

杨书凡23.png 


杨书凡24.png

 


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

杨书凡25.png 


杨书凡26.png 


 

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

杨书凡27.png


杨书凡28.png 


杨书凡29.png 


杨书凡30.png

 

杨书凡31.png


注意:建议一台服务器上只建立一个数据库,安装oracle的时候咱们建立过一个orcl数据库,平时作实验使用orcl便可。(固然,咱们须要学会建立新的数据库)

 

 

链接新创建的数据库

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

杨书凡32.png

 

2)选择数据库

杨书凡33.png

 

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

杨书凡34.png

 

4)启用监听

杨书凡35.png

 

5)链接到WLGCSZS数据库

杨书凡36.png

 

 

启动关闭数据库

一、数据库的启动

启动(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命令执行打开数据库操做,例如:若是以startup nomount方式打开数据库,也就是说实例已经启动,可是数据库没有安装和打开,这是必须运行下面的两条命令,数据库才能正确启动。
ALTER DATABASE MOUNT;

ALTER DATABASE OPEN;

 

若是以startup  mount方式启动数据库,只须要运行下面一条命令便可打开数据库

ALTER DATABASE OPEN

 

二、执行startup命令

杨书凡37.png


能够看出数据库已经打开

杨书凡38.png 

注意:

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

 

 

 

三、关闭数据库

杨书凡39.png

 

四、开始startup  nomount状态

杨书凡40.png

能够看出如今处于STARTED状态

杨书凡41.png


五、修改数据库到open状态

杨书凡42.png

 

六、数据库的关闭

normal:这是默认选项,使用该选项时,不容许任何新的用户链接,可是容许继续当前的全部链接,只有全部用户(自愿的)退出登陆时,数据库才能真正的关闭

一般,正常的数据库关闭是没有意义的,即便只剩下database control在运行,也老是存在未退出登陆的用户。也许关闭一个数据库须要几天或更长的事件(若是用户一直没有本身关闭)

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

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

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

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

2)须要当即关闭数据库

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

杨书凡43.png 


 

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

一、在win7上安装软件Navicat for Oracle。

杨书凡44.png

相关文章
相关标签/搜索