OCP认证考试指南(2):安装Oracle Database 10G

想在Linux系统把Oralce安装好,确实是个不小的挑战,最起码的,首先要对Linux系统有所了解,不说多的,简单的一些配置文件和常用命令总要知道,要不真不知道如何下手。今天按书本的启示,和网上别人写的文章还有Oralce官方的帮助感觉都对我帮助甚微啊。。。不过感觉最后还是在QQ群和百度的帮助下,当然书本和那些文章都起到了作用,终于把Oracle安装好了。

所以在这里,我准备把安装步骤详细点写清,网上看了半天,都只会说,有代码的,象对Linux了解不深的根本看不明白,好象看他们写的东西都是高手看的一样,都高手了,还用得着天天百度嘛。。。

1、最优灵活体系结构(Optimal Flexible Architecture,简称OFA)

我所理解的OFA其实就是一种Oracle的一种规范。其意义就是用一种统一的给文件和文件夹的规则,和文件存放目录的规则做一个约定。这样,我们不管是安装多个版本的Oracle Database也好,因为目录规范,命名规范,这样软件不会冲突,方便管理,文件也方便查找,好处大大的有。

在Linux/Unix平台上,建议遵循的OFA的命名模式包含下列内容:

  • 使用通用串常量和变量值的组合来命名所有装载点,这个组合的形式为/pm ,其中p 是一个串常量,m 是一个变量值。例如:/u01、/u02、/ora01、/ora02都是不错的选择。

     

  • 在装载点之内,采用形式 /pm /h /u /product/v 命名安装Oracle软件的目录,其中/pm 是如前所说的装载点,h 是指示用途的标准目录名(如app、db、home),u 是目录拥有者的名称,product是一个字面值,v 指定目录中安装的Oracle产品的版本。例如:操作系统用户oracle拥有的Oracle 10G数据库的位置可以为/ora01/db/oracle/product/10.2.0,Oracle 8I数据库的位置则为/ora02/db/oracle/product/8.1.7。
  • 在目录结构之内可以创建一个admin目录,并且在目录内创建存储Oracle所使用的特定文件类型的其他子目录。目录完整路径名为/pm /h /admin/d /a ,其中admin是字面值,d 是数据库的系统标识符(System Identifier,简称SID),a 是用于存储特定管理文件类型的子目录。常见的有:
子目录名用途示例
adhoc存储数据库专用的SQL和PL/SQL脚本/ora01/db/admin/ocp10g/adhoc
arch存储已归档的重做日志文件/ora01/db/admin/ocp10g/arch
adump存储审计文件的目录(需要首先设置AUDIT_FILE_DEST)参数/ora01/db/admin/ocp10g/adump
bdump存储后台进程跟踪文件与警告日志文件。使用BACKGROUND_DUMP_DEST参数进行设置/ora01/db/admin/ocp10g/bdump
cdump存储核心堆积文件。使用CORE_DUMP_DEST参数进行设置/ora01/db/admin/ocp10g/cdump
create存储用于创建数据库的脚本。在创建新的数据库时,DBCA将创建数据库的脚本设置在这个目录中/ora01/db/admin/ocp10g/create
exp建议存储使用Export实用程序或Oracle Data Pump创建的数据库导出文件的目录/ora01/db/admin/ocp10g/exp
logbook存储数据库历史与状态日志文件/ora01/db/admin/ocp10g/logbook
pfile用于启动数据库的参数文件被放置在这个目录中/ora01/db/admin/ocp10g/pfile
udump存储用户进程跟踪文件。使用USER_DUMP_DEST参数进行设置/ora01/db/admin/ocp10g/udump

Oracle数据文件的根是一个形式为/pm /q/d 的字典,其中/pm 是装载点,q是一个字面值,这个字面值包含Oracle数据库结构的字典(例如:oradta、oracle),d 则是数据库的名称。例如:/ora01/oradata/ocp10g和/u01/oracle/mydb都是正确的形式。

Oracle数据库文件的推荐命名的约定:

子目录名用途命名约定
控制文件用于存储与数据库、数据库文件及其状态相关的信息推荐为control.ctl或controlnn .ctl,其中nn 是一个数字(例如control01.ctl)
重做日志文件在数据库数据发生变化时存储这些变化的记录推荐为redonn .log,其中nn 是一个数字(例如redo01.log)
数据文件存储数据库数据推荐为tablespacenamenn .dbf,其中tablespacename 是Oracle数据库逻辑存储结构的名称,nn 是一个数据(例如system01.dbf、undo01.dbf)

2、使用Oracle Universal Installer 安装Oracle

现在要开始我们的重点了,就是Linux下Oracle Database的安装,我所应用的操作系统平台为Red Hat Enterprise Linux AS 5,如果不会的请参考本博“本地硬盘安装Red Hat Enterprise Linux AS 5”。

2.1、验证系统要求

这个不想多说和多做,有个自己感觉还不错的电脑就OK了,硬是要搞个256M的内存来安装个Oracle我也无语。

grep MemTotal /proc/meminfo
MemTotal:       961480 kB
# grep SwapTotal /proc/meminfo
SwapTotal:     2031608 kB

Oracle官方要求所需最小 RAM 为 512MB,而所需最小交换空间为 1GB。对于 RAM 小于或等于 2GB 的系统,交换空间应为 RAM 数量的两倍;对于 RAM 大于 2GB 的系统,交换空间应为 RAM 数量的一到两倍。

Oracle 10g 软件还需要 2.5GB 的可用磁盘空间,而数据库则另需 1.2GB 的可用磁盘空间。/tmp 目录至少需要 400MB 的可用空间。要检查系统上的可用磁盘空间,运行以下命令:

df -h
文件系统                   容量    已用   可用 已用% 挂载点
/dev/mapper/VolGroup00-LogVol00
                       71G   5.2G   62G   8% /
/dev/hdb1              99M    12M   82M  13% /boot
tmpfs                  471M     0  471M   0% /dev/shm

好了,我的硬件当然是OK拉。

2.2、创建用户帐户和用户组

# groupadd oinstall
# groupadd dba
# useradd -m -g oinstall -G dba oracle
# id oracle
uid=500(oracle) gid=500(oinstall) groups=500(oinstall),501(dba)

设置帐户oracle的密码:

passwd oracle
Changing password for user oracle.
New UNIX password:
Retype new UNIX password:
passwd: all authentication tokens updated successfully.

2.3、创建Oracle Database安装目录

mkdir -p /ora01/db/oracle
# mkdir -p /ora02/oradata
# chown -R oracle:oinstall /ora01/db/oracle /ora02/oradata
# chmod -R 775 /ora01/db/oracle /ora02/oradata

2.4、配置Linux内核参数

Oracle Database 10G 需要以下所示的内核参数设置。其中给出的是最小值,因此如果您的系统使用的值较大,则不要更改它。
需要的参数最少值为:

kernel.shmall = 2097152
kernel.shmmax = 2147483648
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
fs.file-max = 65536
net.ipv4.ip_local_port_range = 1024 65000

首先,我们不用急着改,先查看一下吧。

# sysctl -a | grep shm
kernel.shmmni = 4096
kernel.shmall = 268435456
kernel.shmmax = 4294967295
# sysctl -a | grep sem
kernel.sem = 250        32000   32      128
# sysctl -a | grep file-max
fs.file-max = 92438
# sysctl -a | grep ip_local_port_range
net.ipv4.ip_local_port_range = 32768    61000

还行吧,都比较大呢。电脑好,没办法。

2.5、oracle用户的环境变量

要使用 Oracle 产品,应该或必须设置几个环境变量。对于数据库服务器,建议设置以下环境变量:

ORACLE_BASE
ORACLE_HOME
ORACLE_SID
PATH

如果您在同一服务器上安装了多个 Oracle 产品或数据库,则 ORACLE_HOME、ORACLE_SID 和 PATH 变量可能会更改。ORACLE_BASE 变量不应更改,并可以在需要时在您的登录配置文件中设置它。

(哎,Linux会一点,又不是很厉害,环境变量这东西又是安装Oracle的一个重点,教程、书本,网文都没写清怎么搞,郁闷,当然拉,也是自己的水平问题,但写的那些根本就不合适初学者了嘛。搞的我研究半天,看我写的多清楚。)

以下操作,以oracle的身份登录Linux操作(请注意前面的#已经换成了$)。

$ vi .bash_profile

进入编辑模式中,按 I 键进行编辑操作,在适当部分加入环境变量。

# .bash_profile
 
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
        . ~/.bashrc
fi
 
# User specific environment and startup programs
 
ORACLE_BASE=/ora01/db/oracle; export ORACLE_BASE
ORACLE_SID=ocp; export ORACLE_SID
ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db export ORACLE_HOME
PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin; export PATH

改完以后,按ESC键,退出编辑模式,再输入 :wq(保存退出)

2.6、安装Oracle

终于到达这一步了,真辛苦,首先要做的是把Oracle Database 10G放到Linux系统上面来,这不用教了吧,很多种方法,可以用远程连接软件发送压缩包过来,可以用U盘、移动硬盘、双硬盘的方式直接Copy到Linux电脑上(Fat32格式应该是直接能挂载,NTFS格式不能挂载的请参考本博“Linux下挂载NTFS格式分区”)

Oracle 的官方下载地址:http://www.oracle.com/technology/global/cn/software/products/database/index.html

好了,开始安装吧(让我们把安装文件放在/DB文件夹里吧),不过,这又有个小问题(当然不是大问题拉),因为Oracle Database虽说是跨平台的数据库,但真正由Oracle官方认证过的系统却没几个,所以当我们直接进入安装目录安装的时候就会发现:

$ cd /DB
$ ./runInstaller
正在启动 Oracle Universal Installer...
 
正在检查安装程序要求...
 
检查操作系统版本: 必须是redhat-3, SuSE-9, redhat-4,
                                  UnitedLinux-1.0, asianux-1 or asianux-2
                                      未通过 <<<<
 
正在退出 Oracle Universal Installer。您可以在
/home/oracle/oraInventory/logs/installActions2008-09-13_03-30-02AM.log
中找到本次会话的日志

这里我们有2种解决方式:

第一种最快的,最方便的,就是多打几个字母的方法,呵呵,加参数。

$ ./runInstaller -ignoreSysPrereqs

第二种方法,修改参数文件,让它认为我们的系统是认证系统。

$ cd /DB/install
$ vi oraparam.ini

编辑方法前面说过了,我们找到

[Certified Versions]
Linux=redhat-3,SuSE-9,redhat-4,UnitedLinux-1.0,asianux-1,asianux-2

在中间把我们的系统版本加进去,就OK了。

[Certified Versions]
Linux=redhat-3,redhat-5,
SuSE-9,redhat-4,UnitedLinux-1.0,asianux-1,asianux-2

哦,My God!又出问题,安装Oracle真是很艰难啊。
Oracle的安装界面好不容易是出来了,可连个字都没有(有的人说个是口口口,而我没发生这种情况,我的是空白),辛苦啊,改英文吧,用英文起码还能看到个字母在上面。(ITPUT论坛里也有牛人们把中文搞出来了,不过过程之复杂,我想也是一定的,再说学Oracle看点英文也不算什么,加油吧!)
于是,我们这样设置:

$ LANG="en_US"
$ ./runInstaller

终于OK,虽然说是洋文的安装界面,但辛苦这久,终于是出来东西了,让我们好好享受,这Next,Next带来的快感吧。这里我没办法做到Linux下的截图,放上Windows的载图。(这图是中文的,正好对着Linux下的英文翻译)。

oracle1

这里我们选高级安装。

oracle2

默认的,企业版。

oracle3 

上面写的是Windows的路径,Linux下可不是这样,如果环境变量先前配置好的话,在这会自动写上的(/ora01/db/oracle/product/10.2.0/db)

oracle4 

安装条件检查,前面如果一直是按步骤来的话,一般是不会出问题的,如果有问题,检查下前面哪里没搞好吧。

oracle5 

在安装Oracle的时候就创建一个数据库吧。我们选第一个。

oracle6 

接受默认值 Create a starter database 和 General Purpose 。

oracle7 

环境变量的SID配置的话,这里就会自己写上去,选择下面的 Create database with sample schemas 。

oracle8 

Use Database Control for Database Manangement 。

oracle9 

选择File System ,我们特意建了一个/ora02/oradata存放数据库文件。

oracle10 

Do not enable Automated backups 。

oracle11 

设置密码,选下面的,可以给所有的设置一个统一的密码,方便管理。

oracle12 

摘要列表,这些都是要准备安装的,点击Install之后开始。

oracle13 

OK,到这里可以暂时放松一下了。(为什么是暂时。。。因为还有工作要做。)

2.7、执行脚本

安装全是自动化,真方便,到最后时刻会有个窗口弹出,大堆英文,不过意思很明白,叫你以root身份登录,并执行2个脚本orainstRoot.sh和Root.sh(别人和我的版本不同吗?为什么到处都是说只执行一个orainstRoot.sh)。

$ su
口令:
# cd /ora01/db/oracle/oraInventory/
# ./orainstRoot.sh
Changing permissions of /ora01/db/oracle/oraInventory to 770.
Changing groupname of /ora01/db/oracle/oraInventory to oinstall.
The execution of the script is complete/ora01/db/oracle/oracle/product/10.2.0/db/
# ./root.sh
Running Oracle10 root.sh script...
 
The following environment variables are set as:
    ORACLE_OWNER= oracle
    ORACLE_HOME=  /ora01/db/oracle/oracle/product/10.2.0/db
 
Enter the full pathname of the local bin directory: [/usr/local/bin]:

说明:
orainstRoot.sh 给oracle安装文件夹读写权限的
root.sh 设置环境变量

OK,到这一步,根本上Oracle 10G的安装过程基本结束了,最后一步时,记下摘要中显示的 URL,单击 Exit。

感觉我写的还是很明白吧?中间的要怎么安装起码都很明显表示出来了,应该算是不错的教程了。如果还有不明白的,这里给大家一个Oracle官方的中文文档(感觉我的其实还好些,呵呵)

Oracle 官方中文安装文档:http://www.oracle.com/technology/global/cn/pub/articles/smiley_10gdb_install.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值