重庆思庄Oracle、Redhat认证学习论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 4989|回复: 0
打印 上一主题 下一主题

[认证考试] OCP课程24:管理Ⅰ之数据库安装

[复制链接]
跳转到指定楼层
楼主
发表于 2016-1-6 09:15:10 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

课程目标:

  • 单实例GI的安装
  • 数据库软件的安装

1、DBA的工作

第一,评估数据库服务器的硬件,根据业务的需求,比如数据量,业务量等,决定服务器的配置

第二,安装数据库软件

第三,规划数据库及安全策略

第四,创建,迁移然后打开数据库

第五,备份数据库

第六,创建用户,配置网络连接

第七,部署应用,创建表空间,创建表,创建存储过程,创建触发器等

第八,恢复出问题的数据库

第九,监控数据库的性能


2、管理数据库的工具

为完成上面的任务,oracle提供了一些工具

  • 安装数据库软件可以使用统一安装器(runInstaller)
  • 创建数据库可以用数据库配置助手(dbca)
  • 升级可以使用数据库升级助手(dbua)
  • 配置网络可以使用网络管理器或者网络配置助手(netmgr、netca)
  • 管理Oracle可以使用企业管理器(emctl、emca)
  • 安装GI后,管理服务可以使用服务控制工具(srvctl)
  • SQL*Plus使用命令行工具管理数据库(sqlplus)
  • 备份恢复可以使用恢复管理器(rman)
  • 数据的导入,导出,迁移可以使用数据泵(impdp、expdp)
  • 使用SQL*Loader导入数据(sqlldr)

3、安装规划

(1)首先要明确安装目的,是要安装一个单实例的数据库还是一个RAC的数据库,如果只是安装单实例的数据库,那就直接安装数据库就可以了,如果要部署RAC,那么就需要先安装GI,配置ASM。管理Ⅰ不包括RAC的内容,但是包括ASM的内容,故需要先安装GI,然后创建一个单实例的数据库。

(2)明确对硬件的最低要求,一般通过联机文档或者MOS进行查看确认,如果没有MOS账户,可以查看http://blog.itpub.net/17252115/viewspace-751427/

(3)对于安装顺序,如果是部署RAC,推荐是先安装GI,配置ASM,再安装数据库。如果先安装数据库,再去安装GI,就需要手工注册你的数据库并将文件迁移到ASM,就很麻烦了。

(4)安装的时候如果需要用到存储,还需要存储的工程师进行配合。


4、GI和数据库安装的系统要求

内存的要求:

  • 安装带EM的数据库,至少需要1GB的内存
  • 安装GI,至少需要1.5GB的内存

磁盘空间的要求:

  • 如果只是安装数据库,内存为2GB,swap为3GB,就是说内存为1GB到2GB,那么swap为内存的1.5倍,内存为2GB到16GB,那么swap等于内存,内存大于16GB,那么swap就为16GB;如果安装GI,内存为2GB到8GB,那么swap为内存的2倍,如果内存为8GB到32GB,那么swap为内存的1.5倍,如果内存大于32GB,那么swap就为32GB.
  • /tmp目录的空间至少为1GB
  • 数据库软件需要3.8GB空间
  • GI软件需要4.5GB空间

5、操作系统的组和用户

安装之前需要创建相关的组和用户,对于用户,如果只是安装Oracle,一般就创建用户Oracle,如果要安装GI,一般创建用户Grid,对于组,如果只是安装数据库软件,只需要创建oinstall组和dba组,如果还要安装GI,还可以创建asmdba,asmoper,asmadmin,当然你也可以只使用dba这个组,使用这么多组的原因就是细分权限。

组名
作用
oinstall
oinstall 组是Oracle推荐创建的OS用户组之一,建议在系统第一次安装oracle软件产品之前创建该oinstall组,理论上该oinstall组应当拥有oracle软件产品目录(例如$CRS_HOME和$ORACLE_HOME)和oracle Inventory信息目录仓库,oracle Inventory信息目录记录了系统上安装过的oracle产品的记录。

dba
是我们必须要创建的一种系统DBA用户组(dba),若没有该用户组我们将无法安装数据库软件及执行管理数据库的任务。

oper是一种额外的用户组(oper),我们可以选择要不要创建该用户组,创建该用户组可以满足让os用户行使某些数据库管理权限(包括SYSOPER角色权限)的目的。注意SYSOPER的权限包括startup和shutdown,所以要小心为该用户组添加成员。

asmadmin
如果使用ASM,那么我们创建osasm(asmadmin)用户组,该OSASM用户组的成员将被赋予SYSASM权限,以满足组成员管理Oracle Clusterware和Oracle ASM的权限需求。

asmdba
该用户组的成员将被赋予读写访问ASM文件的权限。GI/CRS拥有者用户和所有oracle数据库软件的拥有者必须是该组的成员。同时所有dba用户组的成员也必须是asmdba组的成员。

asmoper
asmoper和oper类似都是额外的可选择创建的用户组,创建该独立的用户组以满足赋予用户一套受限的ASM实例管理权限(ASM的SYSOPER角色),该权限包括了启动和停止ASM实例,默认情况下OSASM(asmadmin)组成员将拥有所有SYSOPER的ASM管理权限。




6、设置环境变量

Oracle推荐在安装之前设置以下这4个环境变量:

  • ORACLE_BASE:Oracle目录结构的起始点,Oracle所有的文件都位于这个目录下面,一般都设置为/u01/app/oracle
  • ORACLE_HOME:Oracle产品运行的目录,如果设置了ORACLE_BASE,可以不设置,为方便维护和管理一般设置为/u01/app/oracle/product/11.2.0/dbhome_1
  • ORACLE_SID:Oracle System Identifier,用于在1台服务器上面标识不同的实例,默认情况下,实例名就是ORACLE_SID的值。
  • NLS_LANG:National Language Support,用于定义语言,地域及客户端字符集,格式是NLS_LANG=language_territory.charset,Linux/Unix下NLS_LANG是一个环境变量,Windows下NLS_LANG一般是在注册表里面设置,Linux/Unix下的设置方式为:export NLS_LANG=AMERICAN_AMERICA.WE8ISO8859P1,Windows下在HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\ORACLE\KEY_目录下

DB也有自己的NLS_LANG参数,来标识数据库的语言,地域,字符集。可以通过以下的SQL来查看:

SELECT * FROM v$nls_parameters; DB的NLS_LANG和客户端环境变量中NLS_LANG尽可能的保持一致。那么为什么要保持一致呢?那是因为如果字符集不匹配,有可能在DB和Client间相互转换的过程中,出现字符转换错误的情况。

7、检查系统

运行runInstaller,会去检查temp目录空间,操作系统版本,补丁包,依赖包,系统和内核参数,X server权限,DISPLAY环境变量,swap空间,ORACLE_HOME目录等。


8、安装方案

第一部分:安装GI

第二部分:安装DB


9、安装GI

(1)创建依赖包列表文件,并安装依赖包

[root@localhost ~]# cat ora_software.txt

binutils*

compat-libstdc++*

compat-libcap1*

elfutils-libelf*

elfutils-libelf-devel*

elfutils-libelf-devel-static*

gcc*

gcc-c++*

glibc*

glibc-common*

glibc-devel*

glibc-headers*

kernel-headers*

libaio*

libaio*

libgcc*

libgomp*

libstdc++*

libstdc++-devel*

make*

pdksh*

sysstat*

unixODBC*

unixODBC-devel*

挂载光驱

[root@oracletest ~]# mount /dev/cdrom /media/

mount: block device /dev/sr0 is write-protected, mounting read-only

创建本地YUM的脚本

[root@precise ~]# cat createlocalyum.sh

#!/bin/bash

cd /etc/yum.repos.d/

mkdir bak

mv *.repo bak/

cat << EOF > local.repo

[Local]

baseurl=file:///media/Server

gpgcheck=0

enabled=1

EOF

yum clean all

yum makecache

创建本地YUM并安装依赖包

[root@oracletest ~]# sh createlocalyum.sh

[root@localhost ~]#cat ora_software.txt | xargs yum install -y

(2)创建用户、组及目录脚本,并运行脚本

[root@localhost ~]# cat ora_user_dir.sh

#!/bin/bash

groupadd oinstall

groupadd dba

useradd -g oinstall -G dba oracle

useradd -g oinstall -G dba grid

echo "123456" | passwd --stdin oracle

echo "123456" | passwd --stdin grid

mkdir -p /u01/app/grid

mkdir -p /u01/app/grid/product/11.2.0/gird

chown -R grid:oinstall /u01

mkdir -p /u01/app/oracle

chown oracle:oinstall /u01/app/oracle

chmod -R 775 /u01

[root@localhost ~]#sh ora_user_dir.sh

(3)创建环境变量列表文件,并增加环境变量到配置文件

[root@localhost ~]# cat ora_env.txt

# Oracle Settings

ORACLE_BASE=/u01/app/oracle; export ORACLE_BASE

ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1; export ORACLE_HOME

ORACLE_SID=stone; export ORACLE_SID

NLS_LANG=american_america.zhs16gbk;export NLS_LANG

PATH=$ORACLE_HOME/bin:$PATH; export PATH

[root@localhost ~]#cat ora_env.txt >> /home/oracle/.bash_profile

[root@localhost ~]# cat gi_env.txt

#Grid Settings

ORACLE_BASE=/u01/app/grid

ORACLE_HOME=$ORACLE_BASE/product/11.2.0/grid

ORACLE_SID=+ASM

PATH=$ORACLE_HOME/bin:$PATH

export ORACLE_BASE ORACLE_HOME ORACLE_SID PATH

[root@localhost ~]#cat gi_env.txt >> /home/grid/.bash_profile

切换到oracle用户,确认环境变量已生效

[root@ localhost ~]# su - oracle

[oracle@ localhost ~]$ env | grep ORACLE

ORACLE_SID=stone

ORACLE_BASE=/u01/app/oracle

ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1

切换到grid用户,确认环境变量已生效

[root@oracletest1 ~]# su - grid

[grid@oracletest1 ~]$ env | grep ORACLE

ORACLE_SID=+ASM

ORACLE_BASE=/u01/app/grid

ORACLE_HOME=/u01/app/grid/product/11.2.0/grid

(4)使用root用户创建裸设备

先分别为磁盘创建分区

[root@oracletest1 ~]# fdisk /dev/sdb

Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel

Building a new DOS disklabel with disk identifier 0xaa0a029a.

Changes will remain in memory only, until you decide to write them.

After that, of course, the previous content won't be recoverable.

Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)

WARNING: DOS-compatible mode is deprecated. It's strongly recommended to

         switch off the mode (command 'c') and change display units to

         sectors (command 'u').

Command (m for help): n

Command action

   e   extended

   p   primary partition (1-4)

p

Partition number (1-4): 1

First cylinder (1-261, default 1):

Using default value 1

Last cylinder, +cylinders or +size{K,M,G} (1-261, default 261):

Using default value 261

Command (m for help): p

Disk /dev/sdb: 2147 MB, 2147483648 bytes

255 heads, 63 sectors/track, 261 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

Sector size (logical/physical): 512 bytes / 512 bytes

I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk identifier: 0xaa0a029a

   Device Boot      Start         End      Blocks   Id  System

/dev/sdb1               1         261     2096451   83  Linux

Command (m for help): w

The partition table has been altered!

Calling ioctl() to re-read partition table.

Syncing disks.

分区结果

[root@oracletest1 ~]# cat /proc/partitions

major minor  #blocks  name

   8        0   41943040 sda

   8        1     204800 sda1

   8        2    4096000 sda2

   8        3   37641216 sda3

   8       16    2097152 sdb

   8       17    2096451 sdb1

   8       32    2097152 sdc

   8       33    2096451 sdc1

   8       48    2097152 sdd

   8       49    2096451 sdd1

   8       64    2097152 sde

   8       65    2096451 sde1

   8       80    2097152 sdf

   8       81    2096451 sdf1

   8       96    2097152 sdg

   8       97    2096451 sdg1

使分区生效

[root@oracletest1 ~]# partprobe

将分区映射为raw设备:

[root@oracletest1 ~]# vim /etc/udev/rules.d/60-raw.rules

[root@oracletest1 ~]# tail -12 /etc/udev/rules.d/60-raw.rules

ACTION=="add", KERNEL=="sdb1", RUN+="/bin/raw /dev/raw/raw1 %N"

KERNEL=="raw1", OWNER="grid",GROUP="dba", MODE="0666"

ACTION=="add", KERNEL=="sdc1", RUN+="/bin/raw /dev/raw/raw2 %N"

KERNEL=="raw2", OWNER="grid",GROUP="dba", MODE="0666"

ACTION=="add", KERNEL=="sdd1", RUN+="/bin/raw /dev/raw/raw3 %N"

KERNEL=="raw3", OWNER="grid",GROUP="dba", MODE="0666"

ACTION=="add", KERNEL=="sde1", RUN+="/bin/raw /dev/raw/raw4 %N"

KERNEL=="raw4", OWNER="grid",GROUP="dba", MODE="0666"

ACTION=="add", KERNEL=="sdf1", RUN+="/bin/raw /dev/raw/raw5 %N"

KERNEL=="raw5", OWNER="grid",GROUP="dba", MODE="0666"

ACTION=="add", KERNEL=="sdg1", RUN+="/bin/raw /dev/raw/raw6 %N"

KERNEL=="raw6", OWNER="grid",GROUP="dba", MODE="0666"

[root@oracletest1 ~]# ls /dev/raw/

rawctl

[root@oracletest1 ~]# start_udev

Starting udev: udevd[29597]: GOTO 'pulseaudio_check_usb' has no matching label in: '/lib/udev/rules.d/90-pulseaudio.rules'

                                                           [  OK  ]

[root@oracletest1 ~]# ls /dev/raw/

raw1  raw2  raw3  raw4  raw5  raw6  rawctl

(5)使用grid用户解压grid安装文件

[grid@oracletest1 ~]$ unzip /mnt/hgfs/data/oracle/software/11204/p13390677_112040_Linux-x86-64_3of7.zip

(6)使用oracle用户解压oracle安装文件

[oracle@oracletest1 ~]$ unzip /mnt/hgfs/data/oracle/software/11204/p13390677_112040_Linux-x86-64_1of7.zip

[oracle@oracletest1 ~]$ unzip /mnt/hgfs/data/oracle/software/11204/p13390677_112040_Linux-x86-64_2of7.zip

(7)安装GI

[root@oracletest1 ~]# su - grid

[grid@oracletest1 ~]$ export DISPLAY=192.168.230.1:0.0

[grid@oracletest1 ~]$ cd grid/

[grid@oracletest1 grid]$ ./runInstaller

选择语言,如果这儿选择了简体中文,软件启动后就可以显示中文了。

配置磁盘组,此处只能配置一个磁盘组,可以在安装完成后使用asmca来增加磁盘组,Oracle建议在大部分环境下创建2个磁盘组,一个用于存放数据,一个用于快速恢复区。

为sys和asmsnmp账户设置密码,由于ASM实例不包含数据字典,所有认证方式只有操作系统认证和密码文件认证,sys用户将会被加入到密码文件中(orapw+ASM)并授予sysdba,sysoper和sysasm权限,asmsnmp用户也会被加入到密码文件中但只授予sysdba权限。

指定OSASM,OSDBA,OSOPER组,因为此处只是安装单个实例(standalone server),通常就只使用一个所有者组dba。

此处“Oracle Base”为环境变量ORACLE_BASE的值,“Software Location”为ORACLE_HOME的值。

指定Inventory目录及所有者组,Inventory存储Oracle软件安装的目录信息,数据库的升级、增删组件都需要用到Inventory。Inventory的目录推荐为/u01/app/oraInventory/,所有者组推荐为oinstall,此处输入和选择的内容会写入到/etc/oraInst.loc文件。

此处进行条件检查,不满足安装条件的项目会列出来,如果是缺少相关软件包,就需要先去安装软件包,如果是参数不合适,可以点击“Fix&Chec Again”,以root身份运行一个生成的修复脚本。暂时解决不了又不影响安装的问题,可以勾选“Ignore All”。

以root用户运行脚本:

[root@oragrid ~]# /tmp/CVU_11.2.0.4.0_grid/runfixup.sh

对前面选择的安装选项进行确认。还可以将前面的操作保存为一个响应文件,用于后续相同情况下的静默安装。响应文件是一个文本文件,可以编辑用于不同的安装环境。最后点击“Install”进行安装。

监控安装过程。

“Execute Configuration Scripts”对话框出现,表示需要使用root用户执行这两个脚本,/u01/app/oraInventory/orainstRoot.sh这个脚本修改Invertory目录的权限;

/u01/app/grid/product/11.2.0/grid/root.sh这个脚本复制可执行文件到/usr/local/bin目录,创建/etc/oratab文件,为grid用户创建OCR keys,启动ohasd守护进程,并修改/etc/inittab文件以便在服务器启动的时候启动ohasd。

[root@oragrid ~]# /u01/app/oraInventory/orainstRoot.sh

[root@oragrid ~]# /u01/app/grid/product/11.2.0/grid/root.sh

安装完成后,使用下面的命令可以查看各个资源的状态:

[grid@oracletest1 grid]$ crsctl stat res -t

(8)创建磁盘组

由于在安装GI的时候只能创建一个磁盘组,如果需要增加磁盘组的话,在GI安装完成后,使用asmca命令增加磁盘组。

[grid@oragrid grid]$ export DISPLAY=192.168.230.1:0.0

[grid@oragrid grid]$ asmca

增加完成后,使用下面的命令查看资源状态:

[grid@oracletest1 grid]$ crsctl stat res -t

没有问题的话,建议重启服务器后再次运行上面的命令,确保Oracle Restart正常。


10、安装数据库软件

安装完成GI后,再安装Oracle数据库软件。

[root@oracletest1 ~]# su - oracle

[oracle@oracletest ~]$ export DISPLAY=192.168.230.1:0.0

[oracle@oracletest ~]$ cd database/

[oracle@oracletest database]$ ./runInstaller

选择“Install database software only”,只安装数据库。

选择“Single instance database Installation”,安装单实例数据库。

选择语言。

选择安装版本,一般选择“Enterprise Edition”。

此处“Oracle Base”为环境变量ORACLE_BASE的值,“Software Location”为ORACLE_HOME的值。注意不能包含空格。

指定OSDBA和OSOPER组,默认情况下,指定OSDBA为dba组,获取sysdba权限,指定OSOPER为oper组,获取sysoper权限。这里由于单实例安装不执行职责划分,故都选择dba组。因为oracle用户是属于dba组的,故oracle用户就有了创建数据库的权限(sysdba)。

此处进行条件检查,不满足安装条件的项目会列出来,如果是缺少相关软件包,就需要先去安装软件包,如果是参数不合适,可以点击“Fix&Chec Again”,以root身份运行一个生成的修复脚本。暂时解决不了又不影响安装的问题,可以勾选“Ignore All”。

以root用户运行脚本:

[root@oragrid ~]# /tmp/CVU_11.2.0.4.0_oracle/runfixup.sh

对前面选择的安装选项进行确认。还可以将前面的操作保存为一个响应文件,用于后续相同情况下的静默安装。响应文件是一个文本文件,可以编辑用于不同的安装环境。最后点击“Install”进行安装。

“Execute Configuration Scripts”对话框出现,表示需要使用root用户执行这个脚本。

[root@oragrid ~]# /u01/app/oracle/product/11.2.0/dbhome_1/root.sh

安装完成。


11、静默安装

步骤:

(1)准备响应文件,可以通过安装产生,也可以对模版进行修改。

(2)运行OUI在静默模式:./runInstaller -silent -responsefile ,安装完成后运行相应的脚本(/u01/app/oraInventory/orainstRoot.sh和$ORACLE_HOME/root.sh)。


12、相关习题:

(1)Which task would you perform before you run Oracle Universal Installer (OUI) in silent or suppressed mode for an installation?
A.  Run the root.sh script.
B.  Create the oraInst.loc file.
C.  Create the tnsnames.ora file.
D.  Run the oraInstRoot.sh script.

答案:B

(2)You  are  installing  Oracle  Database  11g  on  your  server.  During  the  installation  Oracle Universal  Installer  (OUI)  prompts  you  to  enter  the  path  of  the  inventory  directory  and  also prompts you to specify an operating system group name.   Which statement is true in this case? A.  The ORACLE_BASE parameter is not set. B.  The installation is being performed by the root user. C.  The operating system group that will be specified should have root user as its member D.  The installation is being performed without the "Create Starter Database" option selected. E.  The operating system group that will be specified must have permission to write to the inventory director 答案:E (3)You  are  installing  Oracle  Database  11g  on  a  machine.  When  you  run  the  installer,  the Universal  Installer  (OUI)  shows  the  message  that  says  one  of  the  product-specific prerequisite checks has failed:     Checking available swap space requirements ...    Expected result: 1512MB    Actual Result: 1018MB    Check  complete.  The  overall  result  of  this  check  is:  Failed  <<<<  Problem:  The system does not have the required swap space. What happens to the installation in this situation? A.  It can be continued. B.  It resizes the swap space automatically when you proceed further. C.  It can be continued, but the instance cannot be started without increasing the swap space. D.  It shows a message saying one or more prerequisite checks have failed and the installation cannot proceed. 答案:A
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 支持支持 反对反对
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|手机版|小黑屋|重庆思庄Oracle、Redhat认证学习论坛 ( 渝ICP备12004239号-4 )

GMT+8, 2024-11-25 13:12 , Processed in 0.123101 second(s), 20 queries .

重庆思庄学习中心论坛-重庆思庄科技有限公司论坛

© 2001-2020

快速回复 返回顶部 返回列表