欢迎测试同行进来留言

在 Linux x86 上安装 Oracle 数据库 10g

上一篇 / 下一篇  2010-02-03 11:02:32

第 1 部分:安装 Linux

本指南采用具有以下硬件配置的服务器:

  • 两个 800MHz Pentium III CPU
  • 512MB RAM
  • 两个 SCSI 主机适配器 (Ultra SCSI 160)
  • 八个 SCSI 磁盘驱动器 (2 x 9GB + 6 x 36GB)
  • 一个 100Base-T 以太网适配器
  • 一个 1000Base-T 以太网适配器

对磁盘进行配置,使每个 SCSI 主机适配器连接到一个 9GB 磁盘和三个 36GB 磁盘。

请注意,尽管这根本算不上是一个“强大”的设置,但即便是使用再低的设置也可以完成本指南介绍的大部分任务。基本数据库安装只需要一个 CPU、512MB 内存和一个可用空间至少为 6.5GB 的磁盘驱动器(IDE、SCSI 或 FireWire)。

现在,我们将逐步演示在服务器上安装 Linux 操作系统的过程。本文假设进行 Linux 系统全新安装(有别于升级),并假设服务器为 Oracle 所专用,且服务器上没有其他操作系统或数据。

Red Hat Enterprise Linux 2.1

Oracle 10g经认证可以在 Red Hat Enterprise Linux 2.1(Advanced Server 和 Enterprise Server)(Update 3) 或更高版本上运行。Red Hat Network(RHN) 提供更新,这些更新可以作为用于创建 CD 的 ISO 文件或作为单个程序包更新下载。

要对全新 Linux 安装应用更新,最简单、最快速的方法是使用更新 CD 执行安装。如果 Linux 已经安装或 CD 上没有更新,则可以通过 RHN 应用这些更新。由于本指南针对的是全新 Linux 安装,因此您将使用更新 CD。

  1. 使用更新 CD 集中的第一张 CD 启动服务器。
    • 您可能需要更改 BIOS 设置,以允许从 CD 启动。
  2. 启动屏幕上出现时在底部显示 boot:。
    • 选择Enter,从控制台上执行图形安装。(对于其他安装方法和选项,请参阅Red Hat 安装指南。)
    • 安装程序扫描硬件,短暂显示 Red Hat 闪屏,然后开始显示一系列屏幕提示。
  3. 选择语言
    • 接受默认值。
  4. 配置键盘
    • 接受默认值。
  5. 配置鼠标
    • 接受默认值。
  6. 安装类型
    • 接受默认值。
  7. 设置磁盘分区
    • 本文不介绍磁盘分区的详细方法,而是假设您熟悉磁盘分区方法。

(警告:对磁盘进行错误分区是删除硬盘上所有内容的最可靠、最快捷的方法之一。如果不确定如何分区,请先停下来,找人帮帮您,否则您将冒丢失数据的危险!)

本文使用以下分区方案(文件系统均为 ext3):

第一个控制器 (/dev/sda) 上的 9GB 磁盘包含以下分区,用于存放所有 Linux 和 Oracle 软件:
- 100MB /boot 分区(对于 RHEL 2.1,最小为 50MB)
-1,500MB 交换分区 — 将此分区大小至少设置为系统 RAM 的两倍,但不要超过 2GB(32 位系统不支持大于 2GB 的交换文件)。如果需要大于 2GB 的交换空间,则创建多个交换分区。
-7,150MB 根分区 — 该分区将用于所有目录,包括 /usr、/tmp、/var、/opt、/home 等。这样做纯粹是为了讲解本指南而简化安装。更可靠的分区方案是将这些目录划分到单独的文件系统。

  1. 配置启动加载程序
    • 接受默认值。
  2. 配置启动加载程序口令
    • 如果要为 GRUB 设置口令,请在此处输入。对于评估系统,无需设置该项。
  3. 配置网络
    • 通常情况下,最好使用静态 IP 地址配置数据库服务器。为此,取消选中Configure using DHCP并输入服务器的网络配置。确保输入了主机名且已选中Activate on boot
  4. 配置防火墙
    • 出于本演示的需要,将不配置防火墙。选择No firewall(安全管理员,请不要生气)。
  5. 其他语言支持
    • 接受默认值。
  6. 选择时区
    • 选择适合您区域的时间设置。将系统时钟设置为 UTC 对服务器而言通常是一个很好的做法。为此,单击System clock uses UTC
  7. 配置帐户
    • 为 root 用户选择一个口令,并将其输入所给的域中。为自己创建一个帐户。(不要在此时创建 oracle 帐户;我们将在稍后创建它。)
  8. 选择程序包组
    • 选择 Gnome 或 KDE(或两者都选择)图形用户界面(默认为 Gnome)。注意:这两个 GUI 都非常受欢迎,其中 Gnome 在美国使用更普遍。我个人偏爱 KDE,这是因为它的终端模拟器可轻松实现剪切和粘贴,从而可将输入复制到多个连接(例如,当您在多个节点上配置 RAC 时,这将节省键入操作)。
    • 选择Software Development
  9. 未解决的相关性
    • 如果看到此屏幕,只需选择Install packages to satisfy dependencies(默认值)并继续操作。
  10. 配置图形界面 (X)
    • 接受默认值,除非安装程序无法识别您的视频卡。如果您的视频卡无法被识别,则将无法继续操作。
  11. 准备安装
    • 单击Next
  12. 安装程序包
    • 软件将被复制到硬盘并被安装。根据提示更改磁盘,然后在安装完成时单击Next
  13. 创建启动磁盘
    • 如果需要,创建一张启动磁盘,或选择Skip boot disk creation
  14. 配置监视器
    • 如果安装程序正确识别了您的监视器,则接受默认值。否则,从列表中选择一个兼容的监视器。
  15. 恭喜
    • 从系统中取出安装介质,然后单击Next

系统自动重新启动,并显示一个图形登录屏幕。如果您是使用基本产品 CD 而非更新 CD 执行的安装,则在继续操作前必须通过 RHN 应用更新。

验证您的安装

如果完成了以上步骤,您应该具备 Oracle 10g所需的所有程序包和更新。您可以执行以下步骤验证您的安装。

所需内核版本:2.4.9-e.25(或更高版本)

通过运行以下命令检查内核版本:

uname -r

 

例如:

# uname -r

2.4.9-e.27smp

其他所需程序包的版本(或更高版本):

  • gcc-2.96-124
  • make-3.79
  • binutils-2.11
  • openmotif-2.1.30-11
  • glibc-2.2.4-31

1.要查看系统上安装了这些程序包的哪些版本,运行以下命令:

rpm -q gcc make binutils openmotif glibc

 

例如: 

# rpm -q gcc make binutils openmotif glibc

gcc-2.96-118.7.2

make-3.79.1-8

binutils-2.11.90.0.8-12

openmotif-2.1.30-11

glibc-2.2.4-32.8

如果系统上缺少任何程序包版本,或版本比以上指定的版本旧,则可以从 Red Hat Network 下载并安装更新。

2.要查看系统上安装了这些程序包的哪些版本,以 root 用户身份运行以下命令:

rpm -q gcc make binutils openmotif setarch compat-db compat-gcc \

compat-gcc-c++ compat-libstdc++ compat-libstdc++-devel

 

例如:

# rpm -q gcc make binutils openmotif setarch compat-db compat-gcc \

>      openmotif compat-gcc-c++ compat-libstdc++ compat-libstdc++-devel

 

 

第 2 部分:针对 Oracle 配置 Linux

Linux 软件现已安装完毕,您需要针对 Oracle 对其进行配置。本部分将逐步讲解针对 Oracle 数据库 10g配置 Linux 的过程。

验证系统要求

要验证系统是否满足 Oracle 10g数据库的最低要求,以 root 用户身份登录并运行以下命令。

要查看可用 RAM 和交换空间大小,运行以下命令:

grep MemTotal /proc/meminfo

grep SwapTotal /proc/meminfo

 

例如:

# grep MemTotal /proc/meminfo

MemTotal:512236 kB

# grep SwapTotal /proc/meminfo

SwapTotal:1574360 kB

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

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

df -h

 

例如:

# df -h

Filesystem        Size  Used Avail Use% Mounted on

/dev/sda3         6.8G  1.3G  5.2G  20% /

/dev/sda1         99M   17M   77M  18% /boot

该示例表明,/tmp 目录没有自己的文件系统。(对本指南而言,它是根文件系统的一部分。)根文件系统可用空间为 5.2 GB,除了满足安装 (2.5 + 1.2 + 0.4 = 4.1GB) 外还小有富余。

创建 Oracle 组和用户帐户

接下来,创建用于安装和维护 Oracle 10g软件的 Linux 组和用户帐户。用户帐户将称为 oracle,而组将称为 oinstall 和 dba。以 root 用户身份执行以下命令:

/usr/sbin/groupadd oinstall

/usr/sbin/groupadd dba

/usr/sbin/useradd -m -g oinstall -G dba oracle

id oracle

 

例如:

# /usr/sbin/groupadd oinstall

# /usr/sbin/groupadd dba

# /usr/sbin/useradd -m -g oinstall -G dba oracle

# id oracle

uid=501(oracle) gid=501(oinstall) groups=501(oinstall),502(dba)

设置 oracle 帐户的口令:

passwd oracle

 

例如:

# passwd oracle

Changing password for user oracle.

New password:

Retype new password:

passwd:all authentication tokens updated successfully.

创建目录

现在,创建存储 Oracle 10g 软件和数据库文件的目录。本指南在创建目录结构时所用的命名惯例符合最佳灵活结构 (OFA) 规范。有关 OFA 标准的更多信息,请参阅针对 UNIX系统的 Oracle数据库 10g安装指南附录 D

以下假设在根文件系统中创建目录。这样做是为了简便起见,不建议将其作为通用做法。这些目录通常被创建为单独的文件系统。

以 root 用户身份执行以下命令:

mkdir -p /u01/app/oracle

mkdir -p /u02/oradata

chown -R oracle:oinstall /u01/app/oracle /u02/oradata

chmod -R 775 /u01/app/oracle /u02/oradata

 

例如:

# mkdir -p /u01/app/oracle

# mkdir -p /u02/oradata

# chown -R oracle:oinstall /u01/app/oracle /u02/oradata

# chmod -R 775 /u01/app/oracle /u02/oradata

配置 Linux 内核参数

Linux 内核非常出色。与大多数其他 *NIX 系统不同,Linux 允许在系统启动和运行时修改大多数内核参数。完成内核参数更改后不必重新启动系统。Oracle 数据库 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

如果您按照以上说明安装了 Linux,且内核参数全部采用默认值,则只需在以 root 用户身份登录后执行下命令。

cat >> /etc/sysctl.conf <<EOF

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

EOF

/sbin/sysctl -p

 

例如:

# cat >> /etc/sysctl.conf <<EOF

> 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

> EOF

# /sbin/sysctl -p

net.ipv4.ip_forward = 0

net.ipv4.conf.default.rp_filter = 1

kernel.sysrq = 0

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

以 root 用户身份运行以下命令来验证您的设置:

/sbin/sysctl -a | grep shm

/sbin/sysctl -a | grep sem

/sbin/sysctl -a | grep file-max

/sbin/sysctl -a | grep ip_local_port_range

 

例如:

# /sbin/sysctl -a | grep shm

kernel.shmmni = 4096

kernel.shmall = 2097152

kernel.shmmax = 2147483648

kernel.shm-use-bigpages = 0

# /sbin/sysctl -a | grep sem

kernel.sem = 250        32000   100     128

# /sbin/sysctl -a | grep file-max

fs.file-max = 65536

# /sbin/sysctl -a | grep ip_local_port_range

net.ipv4.ip_local_port_range = 1024     65000

如果系统的参数设置的比上述参数值小,则编辑 /etc/sysctl.conf 文件,添加或更改这些参数。完成后,运行以下命令激活更改:

/sbin/sysctl -p

 

 

第 3 部分:安装 Oracle

可以从 OTN 下载 Oracle 数据库 10g。Oracle 提供了一个免费的开发和测试许可。但不提供支持,且

该许可不允许用于生产目的。OTN 提供了完整的许可协议。

要使 Oracle 10g 发行套件介质可以在服务器上使用,最简单的方法是将其直接下载到服务器。

使用图形登录以 oracle 身份登录。

创建一个目录以存放 Oracle 10g 发行套件:

mkdir 10g_db

要从 OTN 下载 Oracle 数据库 10g,请将浏览器(Mozilla 比较好用)指向

http://www.oracle.com/technology/software/products/database/oracle10g/htdocs/linuxsoft.html

。填写 Eligibility Export Restrictions 页面,并阅读 OTN 许可协议。如果您接受限制和许可协议

,则单击 I Accept。

单击 ship.db.cpio.gz 链接,并将该文件保存在为此目的创建的目录 (10g_db) 中 — 如果尚未登录到

OTN,则此时可能提示您登录。

解压缩此文件:

cd 10g_db

gunzip ship.db.cpio.gz

cpio -idmv < ship.db.cpio

安装软件

使用 oracle 帐户登录。

指定数据库名称 (ORACLE_SID)。该名称通常不多于五个字符。对此安装使用 demo1。

设置环境变量:

Borne shell 和 Korn shell
·                ORACLE_BASE=/u01/app/oracle; export ORACLE_BASE

·                ORACLE_SID=demo1; export ORACLE_SID

C shell
·                setenv ORACLE_BASE /u01/app/oracle

·                setenv ORACLE_SID demo1

将目录更改为 Oracle 10g 软件解压缩到的位置。

例如:

$ cd $HOME/10g_db

将目录更改为 Disk1。

例如:

$ cd Disk1

启动 Oracle 通用安装程序。

$ ./runInstaller

欢迎
单击 Next。
指定清单目录和证书
如果您一直在依循本指南中的步骤,则使用默认值即可。否则,编辑清单目录的路径,以指向正确目录


操作系统组名称应为 oinstall。
如果这是首次在此机器上安装 Oracle,则您将收到一个弹出窗口,提示需要以 root 用户身份运行

orainstRoot.sh 脚本。以 root 用户身份登录,更改到窗口中指定的目录,执行该脚本,然后继续操作


指定文件位置
如果您一直在依循本指南中的步骤,则使用默认值即可。否则,在继续操作前确保源路径和目标路径正

确。
选择安装类型
接受默认值 Enterprise Edition。
与特定产品相关的先决条件的检查
如果您一直在依循本指南中的步骤,则所有检查都应顺利通过。如果一个或多个检查失败,则在继续操

作前纠正该问题。
选择数据库配置
接受默认值 Create a starter database 和 General Purpose。
指定数据库配置选项
输入数据库的全局数据库名称。该名称应包含 ORACLE_SID 和服务器域名(例如,demo1.orademo.org,

其中 demo1 是 ORACLE_SID,orademo.org 是域名)。
输入全局数据库名称时,SID 框将自动填充。
接受默认的数据库字符集。
选择 Create database with sample schemas。
选择数据库管理选项
选择 Use Database Control for Database Management。
指定数据库文件存储选项
选择 File System,然后输入数据库文件要使用的路径名(在本例中为 /u02/oradata)。
指定备份和恢复选项
选择 Do not enable Automated backups。
指定数据库模式口令
选择 Use the same password for all the accounts。
选择一个口令,然后输入两次进行确认。
摘要
显示已安装产品的摘要。
单击 Install。
安装
此屏幕历经安装和链接 Oracle 软件的几个阶段。
安装过程结束时弹出一个窗口显示配置信息。记下 Enterprise Manager URL,然后单击 OK 关闭该窗口


弹出一个“Setup Privileges”窗口,提示需要以 root 用户身份运行配置脚本。以 root 用户身份登

录,切换到该窗口中指示的目录,然后执行 root.sh 脚本。该脚本提示输入本地 bin 目录的位置。按

Enter 键接受默认值。当脚本完成时,返回到 Setup Privileges 窗口并单击 OK。(如下所示。)

 

安装结束
记下摘要中显示的 URL,并在准备好时单击 Exit。
恭喜!您的新 Oracle 10g 数据库已经启动并可以使用。

第 4 部分:配置存储

我们在第 3 部分中创建的数据库使用单一文件系统 (/u02/oradata) 进行磁盘存储。但为 Oracle 数据

库配置存储的方式有多种。

第 4 部分介绍了为此数据库配置磁盘存储的其他方法。尤其是,它描述了如何创建其他文件系统以及如

何使用自动存储管理 (ASM)。如何使用原始设备和 Oracle 集群文件系统 (OCFS) 将在本系列的另一篇

文章中介绍,该篇文章介绍了如何使用 Oracle 真正应用集群 (RAC) 创建集群数据库。

文件系统

文件系统是为 Oracle 数据库存储数据文件、重做日志和控制文件最常用的方法。文件系统易于实施,

并且无需第三方软件来管理。

大多数情况下,文件系统在 Linux 的初始安装过程中创建。但有时必须在初始安装后(如安装新磁盘驱

动器后)创建新文件系统。

本部分介绍了如何构建新文件系统以及如何在 Oracle 数据库中使用它。除非另有说明,否则必须以

root 用户身份运行所有命令。

对磁盘进行分区

必须使用空磁盘分区来创建文件系统。如果已经有一个空的可用磁盘分区,则跳到下一步。

以下是一个为 Linux 文件系统创建新分区的示例。(警告:对磁盘进行错误分区是删除硬盘上所有内容

的最可靠、最快捷的方法之一。如果不确定如何分区,请先停下来,找人帮帮您,否则您将冒丢失数据

的危险。)

此示例使用 /dev/sdb(一个没有分区的空 SCSI 磁盘)为整个磁盘 (36 GB) 创建单个分区。

例如:

# fdisk /dev/sdb

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

Building a new DOS disklabel.Changes will remain in memory only,

until you decide to write them.After that, of course, the previous

content won't be recoverable.

 

 

The number of cylinders for this disk is set to 4427.

There is nothing wrong with that, but this is larger than 1024,

and could in certain setups cause problems with:

1) software that runs at boot time (e.g., old versions of LILO)

2) booting and partitioning software from other OSs

(e.g., DOS FDISK, OS/2 FDISK)

 

Command (m for help):p

 

Disk /dev/sdb:255 heads, 63 sectors, 4427 cylinders

Units = cylinders of 16065 * 512 bytes

 

Device Boot    Start       End    Blocks   Id  System

 

Command (m for help):n

Command action

e   extended

p   primary partition (1-4)

p

Partition number (1-4): 1

First cylinder (1-4427, default 1):

Using default value 1

Last cylinder or +size or +sizeM or +sizeK (1-4427, default 4427):

Using default value 4427

 

Command (m for help):w

The partition table has been altered!

 

Calling ioctl() to re-read partition table.

 

WARNING:If you have created or modified any DOS 6.x

partitions, please see the fdisk manual page for additional

information.

Syncing disks.

现在验证新分区:

例如:

# fdisk /dev/sdb

 

The number of cylinders for this disk is set to 4427.

There is nothing wrong with that, but this is larger than 1024,

and could in certain setups cause problems with:

1) software that runs at boot time (e.g., old versions of LILO)

2) booting and partitioning software from other OSs

(e.g., DOS FDISK, OS/2 FDISK)

 

Command (m for help):p

 

Disk /dev/sdb:255 heads, 63 sectors, 4427 cylinders

Units = cylinders of 16065 * 512 bytes

 

Device Boot    Start       End    Blocks   Id  System

/dev/sdb1             1      4427  35559846   83  Linux

 

Command (m for help):q

创建文件系统

使用 ext3 创建这个新的文件系统。也可以使用其他文件系统,但 ext3 在系统崩溃时可提供最快的恢

复。

例如:

# mke2fs -j /dev/sdb1

mke2fs 1.26 (3-Feb-2002)

Filesystem label=

OS type:Linux

Block size=4096 (log=2)

Fragment size=4096 (log=2)

4447744 inodes, 8889961 blocks

444498 blocks (5.00%) reserved for the super user

First data block=0

272 block groups

32768 blocks per group, 32768 fragments per group

16352 inodes per group

Superblock backups stored on blocks:

        32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632,

        2654208, 4096000, 7962624

 

Writing inode tables:done

Creating journal (8192 blocks):done

Writing superblocks and filesystem accounting information:done

 

This filesystem will be automatically checked every 23 mounts or

180 days, whichever comes first.Use tune2fs -c or -i to override.

创建挂载点

文件系统必须有一个挂载点,它只是一个空的目录,新文件系统在这里与系统目录树“相连”。挂载点

的命名应遵循 Oracle 灵活结构 (OFA) 标准。有关 OFA 标准的更多信息,请参阅 Oracle 10g 数据库

安装指南 的附录 D。

由于您已经在第 1 部分中使用了 /u01 和 /u02 目录名称,因此在本示例中使用 /u03。

例如:

# mkdir /u03

将新文件系统添加到 /etc/fstab

因此新文件系统将在系统启动时自动挂载,您需要向描述新文件系统及其安装位置的 /etc/fstab 文件

中添加一行。使用文本编辑器向 /etc/fstab 中添加如下所示的一行。

/dev/sdb1         /u03           ext3    defaults       1 1

挂载新文件系统

文件系统挂载后就可以使用了。只有挂载了文件系统,才能在其中存储文件。使用以下命令挂载文件系

统并验证它是否可用。

mount /u03

df -h /u03

 

例如:

# mount /u03

# df -h /u03

Filesystem            Size  Used Avail Use% Mounted on

/dev/sdb1             33G   33M  31G   1%   /u03

创建 Oracle 目录并设置权限

现在,创建一个用于存放 Oracle 文件的目录。该示例中使用的目录名遵循数据库的 OFA 标准命名惯例

,即 ORACLE_SID=demo1。

mkdir -p /u03/oradata/demo1

chown -R oracle:oinstall /u03/oradata

chmod -R 775 /u03/oradata

在新文件系统中创建一个新表空间

新文件系统已可以使用。接下来,在文件系统中创建一个用于存储数据库对象的新表空间。以 SYSTEM

用户身份连接到数据库,然后执行 CREATE TABLESPACE 语句,并在新文件系统中指定数据文件。

例如:

$ sqlplus

 

SQL*Plus:Release 10.1.0.2.0 - Production on Sun Jun 13 15:01:08 2004

 

Copyright (c) 1982, 2004, Oracle.All rights reserved.

 

Enter user-name:system

Enter password:

 

Connected to:

Oracle Database 10g Enterprise Edition Release 10.1.0.2.0 - Production

With the Partitioning, OLAP and Data Mining options

 

SQL> create tablespace data1

2  datafile '/u03/oradata/demo1/data1_01.dbf' size 100M

3  extent management local

4  segment space management auto;

 

Tablespace created.

现在,可以使用此新表空间存储数据库对象,如表和索引。

例如:

SQL> create table demotab (id number(5) not null primary key,

2  name varchar2(50) not null,

3  amount number(9,2))

4  tablespace data1;

Table created.

 

自动存储管理 (ASM)

我把最重要的内容留在了最后。ASM 是 Oracle 数据库 10g 中一个非常出色的新特性,它以平台无关的

方式提供了文件系统、逻辑卷管理器以及软件 RAID 等服务。ASM 可以条带化和镜像磁盘,从而实现了

在数据库被加载的情况下添加或移除磁盘以及自动平衡 I/O 以删除“热点”。它还支持直接和异步的

I/O 并使用 Oracle9i 中引入的 Oracle 数据管理器 API(简化的 I/O 系统调用接口)。

ASM 不是一个通用的文件系统,并只能用于 Oracle 数据文件、重做日志以及控制文件。ASM 中的文件

既可以由数据库自动创建和命名(通过使用 Oracle 管理文件特性),也可以由 DBA 手动创建和命名。

由于操作系统无法访问 ASM 中存储的文件,因此对使用 ASM 文件的数据库执行备份和恢复操作的唯一

途径就是通过恢复管理器 (RMAN)。

ASM 作为单独的 Oracle 实例实施,只有它在运行时其他数据库才能访问它。在 Linux 上,只有运行

OCSSD 服务(由 Oracle 通用安装程序默认安装)才能使用 ASM。ASM 需要的内存不多:对大多数系统

,只需 64 MB。

安装 ASM

在 Linux 平台上,ASM 可以使用原始设备,或通过 ASMLib 接口管理的设备。出于易于使用和性能方面

的原因,Oracle 建议在原始设备上使用 ASMLib。ASMLib 现在可以从 OTN 免费下载。本部分逐步讲解

使用 ASMLib 配置一个简单 ASM 实例和构建一个使用 ASM 进行磁盘存储的数据库的全过程。

确定所需的 ASMLib 版本

ASMLib 以三个 Linux 程序包组成的程序包集提供:

oracleasmlib - ASM 库
oracleasm-support - 用于管理 ASMLib 的实用程序
oracleasm - ASM 库的内核模块
每个 Linux 发行套件都有其自己的 ASMLib 程序包集。在每个发行套件中,每个内核版本都有一个相应

的 oracleasm 程序包。以下部分介绍如何确定所需的程序包集。

首先,以 root 用户身份登录并运行以下命令来确定所使用的内核:

uname -rm

 

例如:

# uname -rm

2.4.9-e.27smp i686

该示例表明,这是一个使用 Intel i686 CPU 的 SMP(多处理器)系统的 2.4.9 内核。

使用此信息在 OTN 上查找相应的 ASMLib 程序包:

将 Web 浏览器指向 http://www.oracle.com/global/cn/technology/tech/linux/asmlib
选择适用于您的 Linux 版本的链接。
下载适用于您的 Linux 版本的 oracleasmlib 和 oracleasm-support 程序包
下载与您的内核相对应的 oracleasm 程序包。对于以上示例,下载 oracleasm-2.4.9-e-smp-1.0.0-

1.i686.rpm 程序包。
接下来,通过以 root 用户身份执行以下命令来安装程序包:

rpm -Uvh oracleasm-kernel_version-asmlib_version.cpu_type.rpm \

oracleasmlib-asmlib_version.cpu_type.rpm \

oracleasm-support-asmlib_version.cpu_type.rpm

 

例如:

# rpm -Uvh \

> oracleasm-2.4.9-e-smp-1.0.0-1.i686.rpm \

> oracleasmlib-1.0.0-1.i386.rpm \

> oracleasm-support-1.0.0-1.i386.rpm

Preparing...                #################################### [100%]

1:oracleasm-support      #################################### [ 33%]

2:oracleasm-2.4.9-e-smp  #################################### [ 66%]

Linking module oracleasm.o into the module path [  OK  ]

3:oracleasmlib           #################################### [100%]

配置 ASMLib

使用 ASMLib 之前,必须运行配置脚本以准备驱动程序。以 root 用户身份运行以下命令,并响应如下

示例中所显示的提示。

# /etc/init.d/oracleasm configure

Configuring the Oracle ASM library driver.

 

This will configure the on-boot properties of the Oracle ASM library

driver.The following questions will determine whether the driver is

loaded on boot and what permissions it will have.The current values

will be shown in brackets ('[]').Hitting <ENTER> without typing an

answer will keep that current value.Ctrl-C will abort.

 

Default user to own the driver interface []:oracle

Default group to own the driver interface []:dba

Start Oracle ASM library driver on boot (y/n) [n]:y

Fix permissions of Oracle ASM disks on boot (y/n) [y]:y

Writing Oracle ASM library driver configuration            [  OK  ]

Creating /dev/oracleasm mount point                        [  OK  ]

Loading module "oracleasm"                                 [  OK  ]

Mounting ASMlib driver filesystem                          [  OK  ]

Scanning system for ASM disks                              [  OK  ]

现在,如下所示启用 ASMLib 驱动程序。

# /etc/init.d/oracleasm enable

Writing Oracle ASM library driver configuration            [  OK  ]

Scanning system for ASM disks                              [  OK  ]

为 ASM 配置磁盘

接下来,告诉 ASM 驱动程序您要使用的磁盘。请注意,这些磁盘是不包含任何内容(甚至不包含分区)

的空磁盘。可以将磁盘分区用于 ASM,但建议您不要这样做。

通过以 root 用户身份运行以下命令来标记由 ASMLib 使用的磁盘:

/etc/init.d/oracleasm createdisk DISK_NAME device_name

(提示:DISK_NAME 应由大写字母组成。当前版本有一个错误,即如果使用小写字母,ASM 实例将无法

识别磁盘。)

例如:

# /etc/init.d/oracleasm createdisk VOL1 /dev/sdb

Marking disk "/dev/sdb" as an ASM disk                     [  OK  ]

# /etc/init.d/oracleasm createdisk VOL2 /dev/sdc

Marking disk "/dev/sdc" as an ASM disk                     [  OK  ]

# /etc/init.d/oracleasm createdisk VOL3 /dev/sdd

Marking disk "/dev/sdd" as an ASM disk                     [  OK  ]

# /etc/init.d/oracleasm createdisk VOL4 /dev/sdf

Marking disk "/dev/sdf" as an ASM disk                     [  OK  ]

# /etc/init.d/oracleasm createdisk VOL5 /dev/sdg

Marking disk "/dev/sdg" as an ASM disk                     [  OK  ]

# /etc/init.d/oracleasm createdisk VOL6 /dev/sdh

Marking disk "/dev/sdh" as an ASM disk                     [  OK  ]

以下示例演示了如何列出标记为由 ASMLib 使用的所有磁盘。

# /etc/init.d/oracleasm listdisks

VOL1

VOL2

VOL3

VOL4

VOL5

VOL6

既然已经安装了 ASMLib,且已将磁盘标记为可用,下面,您便可以创建一个 ASM 实例,并构建一个使

用 ASM 进行磁盘存储的数据库。最容易的方法就是使用数据库配置助手 (DBCA) 来完成此操作。

以 oracle 身份登录并启动 DBCA:

$ dbca

欢迎
单击 Next。
操作
选择 Create a Database。
数据库模板
选择 General Purpose。
数据库标识
输入全局数据库名称。
管理选项
选择 Configure the Database with Enterprise Manager。
选择 Use Database Control for Database Management。
数据库证书
选择 Use Same Password for All Accounts。
输入口令并确认。
存储选项
选择 Automatic Storage Management (ASM)。
创建 ASM 实例
输入 ASM 实例的口令并确认。
弹出一个窗口,提示 DBCA 将立即创建并启动 ASM 实例。
单击 OK。
创建 ASM 实例时弹出一个带齿轮箱窗口。
ASM 磁盘组
由于这是新 ASM 实例且您尚未创建任何 ASM 实例,因此该窗口未显示可用磁盘组。
单击 Create New。
创建磁盘组
磁盘组名称
- 输入磁盘组名称,如 DATA1。
冗余
- High 镜像数据两次。
- Normal 镜像数据一次。
- External 不镜像 ASM 中的数据。如果外部 RAID 阵列提供冗余,则通常使用此选项。
选择成员磁盘
- 您必须手动指示 ASM 到什么地方查找 ASMLib 磁盘,因此,单击 Change Disk Discovery Path
- 弹出一个窗口,提示输入磁盘发现路径。如下所示将磁盘发现路径更改为“ORCL:*”。
- 单击 OK 继续。

 

您将返回到 Select Member Disks 窗口。您的所有 ASMLib 磁盘现在应显示在此窗口中。
单击该行开头的框,选择加入磁盘组的磁盘。完成后单击 OK。

 

ASM 磁盘组
您将返回到 ASM Disk Groups 窗口。此时,出现在上一步中创建的磁盘组。
单击该行开头的框选择此磁盘组。(在此实例中使用单个磁盘组。)
单击 Next。
数据库文件位置
选择 Use Oracle-Managed Files。
确保已将 Database Area 设置为您创建的磁盘组。它包含一个前导加号 — 例如,+DATA1。
恢复配置
选择 Specify Flash Recovery Area。
- 快速恢复区 — 输入要用于快速恢复的 ASM 磁盘组。
- 快速恢复区大小 — 接受默认值 2048。
如果要使用归档日志模式,则选中 Enable Archiving。对于评估数据库,可以不选该项。
数据库内容
选择 Sample Schemas。
我们不使用定制脚本,因此单击 Next。
初始化参数
接受默认值,然后单击 Next。
数据库存储
接受默认值,然后单击 Next。
创建选项
选择 Create Database(默认值)并单击 Finish。
确认
检查完数据库详细信息后单击 OK。
DBCA 显示一个操作列表和一个进度条。根据硬件的不同,数据库创建可能需要几分钟到几小时的时间。
当数据库创建完成时,将显示一个显示摘要窗口。记下 Enterprise Manager URL,然后单击 Exit。

 


--------------------------------------------------------------------------------

结论

现在,您的数据库已经启动并运行,您可以开始使用 Oracle 10g 中提供的许多新特性。最好从 Oracle

Enterprise Manager 开始使用,这是因为它是彻底地重新编写的,采用了基于 Web 的界面。如果不确

定从何处开始,Oracle 概念指南 和 DBA 两日速成指南 将帮助您熟悉新数据库。OTN 还提供了一些旨

在帮助您充分利用 10g 的文章。我最喜欢的是由 Arup Nanda 编写的系列文章“Oracle 数据库 10g:

为 DBA 提供的 20 个最重要的特性。”

在下一篇文章中,我们将逐步讲解如何安装和配置一个功能齐全的双节点 Oracle RAC 10g 数据库。


--------------------------------------------------------------------------------

附录

使用 SQL*Plus 访问数据库

以 oracle 身份登录到 Linux。设置环境。

设置 Oracle 环境变量:

$ export ORACLE_BASE=/u01/app/oracle

$ export ORACLE_SID=demo1

$ export ORACLE_HOME=$ORACLE_BASE/product/10.1.0/db_1

$ export PATH=$PATH:$ORACLE_HOME/bin

运行 SQL*Plus:

$ sqlplus

 

SQL*Plus:Release 10.1.0.2.0 - Production on Sat Jun 5 16:59:21 2004

 

Copyright (c) 1982, 2004, Oracle.All rights reserved.

 

Enter user-name:/ as sysdba

 

Connected to:

Oracle Database 10g Enterprise Edition Release 10.1.0.2.0 - Production

With the Partitioning, OLAP and Data Mining options

 

SQL>

使用 Oracle Enterprise Manager 10g 数据库控制

在 Web 浏览器中,连接到安装过程中提供的 URL。

例如:
http://ds1.orademo.org:5500/em(如果服务器不在 DNS 中,则必须使用 IP 地址代替主机名。)

用户名:SYS
口令:<安装过程中选择的口令>
连接为:SYSDBA

单击 <Login>


 

欢迎走入 Oracle Enterprise Manager 10g 数据库控制的精彩世界!

启动和停止 Oracle Enterprise Manager 数据库控制:

$ emctl start dbconsole

$ emctl stop dbconsole

使用 iSQL*Plus 访问数据库

iSQL*Plus 是历史悠久的 SQL*Plus 交互式工具的基于 Web 的版本,用于访问数据库。要使用

iSQL*Plus,请单击 OEM 控制台 Related Links 部分中的 iSQL*Plus 链接,或将浏览器指向安装过程

中提供的 iSQL*Plus URL。

例如:
http://ds1.orademo.org:5560/isqlplus(如果数据库服务器不在 DNS 中,则必须使用 IP 地址代替主

机名。)

用户名:SYSTEM
口令:<安装过程中选择的口令>

单击 <Login>。

在 Workspace 框中输入 SQL 命令,然后单击 Execute。


 

启动和停止 iSQL*Plus:

$ isqlplusctl start

$ isqlplusctl stop

启动和停止监听器:

监听器接受客户端的连接请求,并在验证证书后创建数据库连接。要使用 OEM 或 iSQL*Plus,必须先启

动监听器。

$ lsnrctl start

$ lsnrctl stop

启动和停止数据库:

启动和停止数据库的最简单方法是从 OEM 控制台启动和停止。要从命令行执行此操作,请在以 oracle

身份登录后使用 SQL*Plus,如下所示:

启动:

$ sqlplus

 

SQL*Plus:Release 10.1.0.2.0 - Production on Sun Jun 13 22:27:48 2004

 

Copyright (c) 1982, 2004, Oracle.All rights reserved.

 

Enter user-name:/ as sysdba

Connected to an idle instance.

 

SQL> startup

ORACLE instance started.

 

Total System Global Area  188743680 bytes

Fixed Size                   778036 bytes

Variable Size             162275532 bytes

Database Buffers           25165824 bytes

Redo Buffers                 524288 bytes

Database mounted.

Database opened.

SQL> exit

Shutdown:

$ sqlplus

 

SQL*Plus:Release 10.1.0.2.0 - Production on Sun Jun 13 22:25:55 2004

 

Copyright (c) 1982, 2004, Oracle.All rights reserved.

 

Enter user-name:/ as sysdba

 

Connected to:

Oracle Database 10g Enterprise Edition Release 10.1.0.2.0 - Production

With the Partitioning, OLAP and Data Mining options

 

SQL> shutdown immediate

Database closed.

Database dismounted.

ORACLE instance shut down.

SQL> exit

列出 Oracle 进程:

$ ps a?癴uoracle

什么是 ocssd.bin 进程?

Oracle 集群同步服务 (OCSSD) 是 Oracle 集群就绪服务 (CRS) 的一个组件,用于 RAC 和使用 ASM 的

单个实例数据库。它在默认情况下安装,使用很少的系统资源,并在 /etc/inittab 中进行配置。这些

进程在系统每次启动时自动启动。Oracle 建议不要禁用 OCSSD,即使您未运行 ASM。

 后记:

为使/u01/app/oracle/oracle/product/10.2.0/db_1/bin/dbstart可以运行,需要做两件事情:

1、/etc/oratab文件中的ORACLE_SID:ORACLE_HOME:{Y|N}这里应该设成y

2、因为Oracle10g把listener的启动也加到dbstart脚本里了,只要$ORACLE_HOME/bin/dbstart文件
设置环境变量
ORACLE_HOME_LISTNER

 

 


TAG:

 

评分:0

我来说两句

Open Toolbar