你好,游客 登录
背景:
阅读新闻

在云中运行 Oracle 数据库 XE

[日期:2009-07-11] 来源:Oracle  作者:Justin Lokitz [字体: ]

基于实用程序进行计算的承诺姗姗来迟。最开始只是大型计算机领域的一个构想,但如今已经有很多选择。无论您是在自己低成本的刀片服务器上使用 Oracle 真正应用集群运行 Oracle 网格,还是依赖于托管服务(如 Google Applications Engine 或 Amazon Web Services)利用计算机(配置为在您需要的时候提供所需功能)的强大功能和效率,都是完全转换自过去的“大铁块”模型。由于有足够的资源可用于在物理硬件上实施基于 Oracle 网格的系统,本文将重点讨论在虚拟服务器“云”(如那些通过 Amazon Elastic Compute Cloud (EC2) 由 Amazon 托管的服务器)上实施 Oracle 技术的方式。

2008 年 9 月 21 日,Oracle 正式对其在 Amazon Web Services 上的许多产品提供认证/支持和许可 — 而且,Oracle 现在还为 Oracle Enterprise Linux、Oracle 数据库 10g 快捷版 (XE)、所有 Oracle 数据库 11g 版本、Oracle 企业管理器以及各种 Oracle 融合中间件组件免费提供预先构建的虚拟机模板(Amazon 称之为 Amazon Machine Image)。因此,以下步骤是专为那些喜欢自己动手以及对于此类模板的构建方式感兴趣的人而准备 — 但如果您了解 OTN 读者的话,就会知道这个人群数量很庞大!(有关更多信息,请参见 OTN 上的云计算中心。)

Amazon EC2 概述

Amazon 的 Web 站点上写道,“Amazon Elastic Compute Cloud (Amazon EC2) 是一项能够在云中提供大小可调的计算容量的 Web 服务。它是专为简化开发人员的 Web 级计算而设计的。”继续深入了解,您会发现 Amazon 在此处提供的其实是一个机会,任何订阅者可以借助此机会利用其出众的网络、服务器硬件、专业知识以及通过 Web 服务管理整个体系结构。而且,由于所使用的硬件和网络分散在小型(不一定很小)虚拟块中,您可以先从单台服务器之类开始,然后几乎可以无限扩展,无需担心租用更多空间、购买硬件,甚至安装软件;最重要的是,您只需为自己使用的东西买单。

此处提供了详细信息,但关键在于您每小时只需支付 10 美分即可使用一个小型实例(1.7GB 内存、一个 EC2 计算单元 [一个虚拟内核,CPU 容量相当于 1.0GHz-1.2GHz 2007 Opteron 或 2007 Xeon 处理器]、160GB 实例存储以及 32 位平台)。而且,与使用任何其他虚拟化平台一样,您可以使用虚拟服务器映像(而非安装了软件的物理硬件)非常轻松地创建自己的复制、备份和发展战略。

实施概述

那么您希望只用一台“服务器”的低廉成本启动项目或者进行一些 Oracle Application Express 开发?没问题。感觉就像开始运作基于 Oracle 的项目,您需要更多的处理能力?这可能是您的答案。

尽管您可以在考虑如何实现 Oracle 软件强大功能与 Amazon EC2 灵活性(即弹性)之间的最佳匹配时提出很多案例,但目前为止最简单、最明显、最直接的是在小型 EC2 实例上实施 Oracle 数据库 XE。由于 Oracle 数据库 XE 提供了封装程度相对高、不太复杂的安装以及内嵌的 Web 监听器和 Oracle Application Express 前端,因此使用它是最好的入手方式。考虑到这些因素,本文基于 Amazon EC2“入门指南”提供有关在 Amazon EC2 上实施 Oracle 数据库快捷版的分步指导。

尽管本文所列说明意味着引导您完成实施的每个步骤,而无需之前具备大量的 Oracle、Linux 或 Amazon Web Services 使用经验,但还是假定您熟悉命令行指令以及 Oracle 和 Linux 命名法。而且,要使用 Amazon Web Service 命令行工具,您必须有权访问 SSH 客户端,如 PuTTY(针对 Windows),并且安装了与 Java 5 兼容的 Java 运行时环境 (JRE)。您可以在此处找到有关下载和安装 PuTTY 的说明,在此处找到有关下载和安装 Sun JRE 的说明。

在 Amazon EC2 上实施 Oracle 数据库 XE 的分步指导

注册 Amazon Web Services(EC2 和 S3)

要实施本文介绍的步骤,您必须注册三个不同的 Amazon 帐户:一个中央 Amazon Web Services 帐户、一个 Amazon Simple Storage Service (S3) 帐户(用于存储您的 Amazon 映像)以及一个 Amazon Elastic Compute Cloud 帐户。此处提供了有关所有这三个帐户以及 Amazon 其他服务的信息。要创建一个 Amazon Web Services 帐户,从这里开始。创建了 Amazon Web Services 帐户之后,记住您的帐户 ID。通过将鼠标悬停在 Your Web Services Account 按钮上,然后从出现的菜单中选择 Account Activity 链接,可以找到您的帐户 ID。在该页面顶部的 Account Activity 标题下方,您会看到一个 Account Number 标签,后面有包含连字符的数字(如 4952-1993-3132)。这就是您的 Amazon Web Services 帐户 ID,并且将作为您的 EC2 用户 ID(去掉连字符:495219933132)。

注册 Amazon S3

尽管本文主要介绍如何在 Amazon EC2 实例上安装和配置 Oracle 数据库快捷版,但其中一个最重要的步骤是在另一个名为 Amazon Simple Storage Service (S3) 的服务上创建和存储 Amazon Machine Image。与 Oracle 数据库的内部一样,Amazon EC2 也使用实例的概念,这意味着存储的物理映像必须先加载到内存中才能使用。否则,如果映像没有驻留在内存中,就必须永久存储在磁盘上的某个位置,直至再次使用它为止。由于 Amazon EC2 只有驻留在内存中时才提供存储、内存和计算功能(即,通过 Web 服务启动),在映像/实例不运行时并不提供持久存储,因此您必须创建一个 Amazon S3 帐户以在映像不运行时来存储它。要了解有关 Amazon S3 和/或注册 Amazon S3 帐户的更多信息,请访问 Amazon S3 主页并单击右上角的 Sign up for this service 按钮。如果您还没有 Amazon Web Services 帐户,系统将在登录过程中提示您创建一个帐户。

注册 Amazon EC2

创建了 Amazon S3 帐户之后,您需要创建一个 Amazon EC2 帐户,这需要您做大量工作。为此,登录到您的 Amazon Web Services 帐户,单击左侧 Browse Web Services 部分中的 Amazon EC2 链接。您将重定向到 EC2 主页,单击屏幕右上方的 Sign Up For Web Service 按钮,按照屏幕上的说明进行操作。

只要完成 EC2 帐户的创建,就需要创建一个新的 X.509 安全证书和相关联的密钥文件。稍后,您将使用它们远程登录到 EC2 服务。要创建新的 X.509 证书,将您的鼠标悬停在 Your Web Services Account 按钮上,然后从出现的菜单中选择 View Access Key Identifiers 链接。在 X.509 Certificate 部分中,单击 Create New 按钮。按照链接创建一个新 X.509 证书,保存证书和私钥。在您的主目录中创建一个 .ec2 目录,使用浏览器提供的文件名将这些文件保存在该目录中。完成这些步骤并保存了这些文件之后,最后应得到一个 PEM 编码的 X.509 证书和一个私钥文件,名称与以下示例中的名称类似:

  • cert-HKZYKTAIG2ECMXYIBH3HXV4ZBZQ55CLO.pem:PEM 编码的、签名的 X.509 证书
  • pk-HKZYKTAIG2ECMXYIBH3HXV4ZBZQ55CLO.pem:未加密的、PEM 编码的 RSA 私钥,对应于上面的 X.509 证书
您创建的 X.509 证书将与您的帐户相关联,直至您生成或上载一个新证书。如果您已经有一个喜欢使用的证书,可以稍后返回 Access Key Identifiers 页面并上载您的证书。

安装所需工具

Sun Microsystems JRE。 大多数用于管理 Amazon Web Services 的命令行工具都要求 Java 版本 5 或更高版本,因此您将需要安装和配置 Java 运行时环境 (JRE) 或 Java 开发工具包 (JDK)。Sun Microsystems 针对一系列平台(包括 Linux 和 Windows)提供了实施,如果没有配置好的实施,可以从此处下载和安装。

安装和配置了 JRE 或 JDK 后,设置一个 JAVA_HOME 环境变量(将供 Amazon Web Service 工具使用)。该变量应设置为目录的完整路径,该目录包含一个名为 bin 的子目录,bin 子目录中包含 java(在 Linux/UNIX 上)或 java.exe(在 Windows 上)可执行文件。您可能还希望在其他 Java 版本之前通过将该目录添加到您的路径来简化一切。

要在 Windows 中临时设置 JAVA_HOME 环境变量(通过命令提示符),执行以下命令:

C:\> set JAVA_HOME=<PATH>
您还可以通过执行以下操作在 Windows 中永久设置 JAVA_HOME 环境变量:
  1. 在“开始”菜单中,选择“设置”->“控制面板”
  2. 双击“系统”
  3. 在“高级”选项卡中,单击“环境变量”。
  4. 在“用户变量”或“系统变量”下,创建一个新的 JAVA_HOME 变量。
  5. 单击“确定”关闭。
要在 Windows 中确认您的 JAVA_HOME 环境变量(通过命令提示符),执行以下命令:
C:\> %JAVA_HOME%\bin\java version
java version "1.5.0_14"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_14-b03)
Java HotSpot(TM) Client VM (build 1.5.0_14-b03, mixed mode)
PuTTY 和相关工具。 由于本文包括的大部分实施都是通过 SSH 在 Linux 实例上远程执行的,因此您需要一个合适的 SSH 客户端。尽管大多数 UNIX/Linux 发布版本都自带了一个内置的 SSH 客户端,但 Windows 通常不提供。为此,如果您使用的是 Windows,则必须安装一个 SSH 客户端,如 PuTTY(它是一个很棒的免费 SSH 客户端,包括很多额外的东西)。

由于您将使用 PuTTY SSH 客户端以及本文所包括的 PSCP 和 PuTTYGen 实用程序,目前为止设置这些工具的最简单方法是从此处下载 putty.zip 文件。该文件包含所有必需的二进制文件(PuTTYtel 除外)和帮助文件。下载结束后

  1. 将 putty.zip 解压缩到 C:\Program Files 下名为 putty 的新目录中(即 C:\Program Files\putty)。
  2. 您可以通过在 C:\Program Files\putty 目录中双击 putty.exe 来运行 SSH 客户端。
  3. 在“高级”选项卡中,单击“环境变量”。
  4. 您可能还希望通过以下步骤将该环境变量添加到您的 Windows 路径:
    1. 在“开始”菜单中,选择“设置”->“控制面板”
    2. 双击“系统”
    3. 在“高级”选项卡中,单击“环境变量”。
    4. 编辑 Path 系统变量,将“;:\Program Files\putty”加到末尾(确保您用一个分号将这个 PuTTy 项与前面的项分隔开)。
    5. 单击“确定”关闭。

EC2 命令行工具

如前所述,Amazon 包括一组命令行工具,使您可以远程管理 Amazon EC2 实例。您可以在资源中心内的一个 Zip 文件中找到这些工具。与前面使用 PuTTY 工具一样,这些工具无需安装即可使用。只要正确设置了 JAVA_HOME 环境变量,您就只需将 Amazon EC2 命令行工具解压缩到一个新目录中。

将命令行工具解压缩到一个新目录(如 C:\Program Files\EC2)中之后,必须设置一个环境变量,告诉系统在哪里能找到这些工具。为此,您需要设置一个名为 EC2_HOME 的环境变量,它指向命令行工具文件夹(您解压缩工具的地方)。使用 Windows(通过命令提示符)执行以下命令:

C:\> set EC2_HOME=<path-to-tools>  
C:\> set PATH=%PATH%;%EC2_HOME%\bin
您也可以像以前一样,通过执行以下操作将 EC2_HOME 环境变量永久设置为用户变量或系统变量:
  1. 在“开始”菜单中,选择“设置”->“控制面板”
  2. 双击“系统”。在“高级”选项卡中,单击“环境变量”。
  3. 在“用户变量”或“系统变量”下,创建一个新的 EC2_HOME 变量。
  4. 单击“确定”关闭。
命令行工具还需要访问您在注册 Amazon EC2 服务之后生成的私钥和 X.509 证书。要简化这一切,您可以设置两个新的环境变量(EC2_PRIVATE_KEY 和 EC2_CERT),它们将分别指向您的私钥文件和 X509 证书。要设置这些环境变量,执行以下命令:
C:\> set EC2_PRIVATE_KEY=c:\ec2\pk-HKZYKTAIG2ECMXYIBH3HXV4ZBZQ55CLO.pem 
C:\> set EC2_CERT=c:\ec2\cert-HKZYKTAIG2ECMXYIBH3HXV4ZBZQ55CLO.pem  
与其他环境变量一样,您可以通过执行以下操作在 Windows 中永久设置 EC2_PRIVATE_KEY 和 EC2_CERT:
  1. 在“开始”菜单中,选择“设置”->“控制面板”
  2. 双击“系统”
  3. 在“高级”选项卡中,单击“环境变量”。
  4. 在“用户变量”下,创建一个新的 EC2_PRIVATE_KEY 变量和 EC2_CERT 变量。
  5. 单击“确定”关闭。

查找并启动 Amazon EC2 实例

Amazon EC2 最好、最节省时间的特性之一就是能够发布、查找、重用和修改 Amazon Machine Image (AMI)。

与其他大多数虚拟化解决方案一样,Amazon 使得创建和使用新映像变得非常简单。然而,Amazon EC2 不同之处在于,您创建的映像由 Amazon 维护而不是下载到本地计算机上,您可以共享和使用您和其他人创建的映像,包括 Amazon 创建的映像。由于可以从一个公共 AMI 目录中选择,在本文中就无需担心安装和配置操作系统了;我们只需找到一个我们喜欢的操作系统即可。

我在前面提到过,Oracle 现在免费提供预先构建的 AMI,下面描述的许多步骤现在仅适用于那些希望构建自己的 AMI 的人。然而请注意,只有 Oracle 提供的 AMI 是受许可和经过认证的。

查找 AMI

要找到一个适用于 Oracle 数据库 XE(或其他)的 AMI,只需运行一个 EC2 命令行工具 (ec2-describe-images)。在 Windows 中,执行如下所示的命令:

C:\>ec2-describe-images -o self -o amazon
IMAGE   ami-bd9d78d4    ec2-public-images/demo-paid-AMI.manifest.xml    amazon
available       public  A79EC0DB        i386    machine
IMAGE   ami-26b6534f    ec2-public-images/developer-image.manifest.xml  amazon
available       public          i386    machine
IMAGE   ari-a51cf9cc    ec2-public-images/ec2-initrd-2.6.21.7-2.fc8xen.i386.mani
fest.xml        amazon  available       public          i386    ramdisk

IMAGE   ari-b31cf9da    ec2-public-images/ec2-initrd-2.6.21.7-2.fc8xen.x86_64.ma
nifest.xml      amazon  available       public          x86_64  ramdisk

IMAGE   aki-a71cf9ce    ec2-public-images/ec2-vmlinuz-2.6.21.7-2.fc8xen.i386.man
ifest.xml       amazon  available       public          i386    kernel

IMAGE   aki-b51cf9dc    ec2-public-images/ec2-vmlinuz-2.6.21.7-2.fc8xen.x86_64.m
anifest.xml     amazon  available       public          x86_64  kernel

IMAGE   ami-f51aff9c    ec2-public-images/fedora-8-i386-base-v1.06.manifest.xml
amazon  available       public          i386    machine aki-a71cf9ce    ari-a51c
f9cc
IMAGE   ami-f21aff9b    ec2-public-images/fedora-8-x86_64-base-v1.06.manifest.xm
l       amazon  available       public          x86_64  machine aki-b51cf9dc
ari-b31cf9da
IMAGE   ami-a21affcb    ec2-public-images/fedora-core-6-x86_64-base-v1.06.manife
st.xml  amazon  available       public          x86_64  machine aki-a53adfcc
ari-a23adfcb
.....
您可以看到,有很多预先构建的公共 AMI 可供选择。我们将在本文中使用的是 ID 为 ami-f51aff9c、名称为 ec2-public-images/fedora-8-i386-base-v1.06.manifest.xml 的映像。这个 AMI 已预先加载到了 Fedora 8 Linux 版本中。

生成密钥对

由于从一个公共实例入手创建您自己的实例最简单,并且使用上述命令列出的公共实例没有口令,因此您需要一个公钥/私钥密钥对来登录到实例;这个密钥对中的一半将嵌入到您的实例中,使您能够使用另一半密钥对安全地登录(无需口令)。当您创建更高级的自定义 AMI 时,可以从更广泛的身份验证选项中选择。然而在本例中,我们将使用一个简单密钥对,它具有唯一的名称 gsg-keypair(您可以选择您能记住的任何名称)。要使用针对 Windows 的命令行工具生成名称为 gsg-keypair 的新密钥对,只需运行 ec2-add-keypair 命令行工具:

C:\>  ec2-add-keypair gsg-keypair 
KEYPAIR gsg-keypair  1f:51:ae:28:bf:89:e9:d8:1f:25:5d:37:2d:7d:b8:ca:9f:f5:f1:6f 
-----BEGIN RSA PRIVATE KEY-----
MIIEoQIBAAKCAQBuLFg5ujHrtm1jnutSuoO8Xe56LlT+HM8v/xkaa39EstM3/aFxTHgElQiJLChp
HungXQ29VTc8rc1bW0lkdi23OH5eqkMHGhvEwqa0HWASUMll4o3o/IX+0f2UcPoKCOVUR+jx71Sg
5AU52EQfanIn3ZQ8lFW7Edp5a3q4DhjGlUKToHVbicL5E+g45zfB95wIyywWZfeW/UUF3LpGZyq/
ebIUlq1qTbHkLbCC2r7RTn8vpQWp47BGVYGtGSBMpTRP5hnbzzuqj3itkiLHjU39S2sJCJ0TrJx5
i8BygR4s3mHKBj8l+ePQxG1kGbF6R4yg6sECmXn17MRQVXODNHZbAgMBAAECggEAY1tsiUsIwDl5
91CXirkYGuVfLyLflXenxfI50mDFms/mumTqloHO7tr0oriHDR5K7wMcY/YY5YkcXNo7mvUVD1pM
ZNUJs7rw9gZRTrf7LylaJ58kOcyajw8TsC4e4LPbFaHwS1d6K8rXh64o6WgW4SrsB6ICmr1kGQI7
3wcfgt5ecIu4TZf0OE9IHjn+2eRlsrjBdeORi7KiUNC/pAG23I6MdDOFEQRcCSigCj+4/mciFUSA
SWS4dMbrpb9FNSIcf9dcLxVM7/6KxgJNfZc9XWzUw77Jg8x92Zd0fVhHOux5IZC+UvSKWB4dyfcI
tE8C3p9bbU9VGyY5vLCAiIb4qQKBgQDLiO24GXrIkswF32YtBBMuVgLGCwU9h9HlO9mKAc2m8Cm1
jUE5IpzRjTedc9I2qiIMUTwtgnw42auSCzbUeYMURPtDqyQ7p6AjMujp9EPemcSVOK9vXYL0Ptco
xW9MC0dtV6iPkCN7gOqiZXPRKaFbWADp16p8UAIvS/a5XXk5jwKBgQCKkpHi2EISh1uRkhxljyWC
iDCiK6JBRsMvpLbc0v5dKwP5alo1fmdR5PJaV2qvZSj5CYNpMAy1/EDNTY5OSIJU+0KFmQbyhsbm
rdLNLDL4+TcnT7c62/aH01ohYaf/VCbRhtLlBfqGoQc7+sAc8vmKkesnF7CqCEKDyF/dhrxYdQKB
gC0iZzzNAapayz1+JcVTwwEid6j9JqNXbBc+Z2YwMi+T0Fv/P/hwkX/ypeOXnIUcw0Ih/YtGBVAC
DQbsz7LcY1HqXiHKYNWNvXgwwO+oiChjxvEkSdsTTIfnK4VSCvU9BxDbQHjdiNDJbL6oar92UN7V
rBYvChJZF7LvUH4YmVpHAoGAbZ2X7XvoeEO+uZ58/BGKOIGHByHBDiXtzMhdJr15HTYjxK7OgTZm
gK+8zp4L9IbvLGDMJO8vft32XPEWuvI8twCzFH+CsWLQADZMZKSsBasOZ/h1FwhdMgCMcY+Qlzd4
JZKjTSu3i7vhvx6RzdSedXEMNTZWN4qlIx3kR5aHcukCgYA9T+Zrvm1F0seQPbLknn7EqhXIjBaT
P8TTvW/6bdPi23ExzxZn7KOdrfclYRph1LHMpAONv/x2xALIf91UB+v5ohy1oDoasL0gij1houRe
2ERKKdwz0ZL9SWq6VTdhr/5G994CK72fy5WhyERbDjUIdHaK3M849JJuf8cSrvSb4g==
-----END RSA PRIVATE KEY-----
这创建了一个私钥,必须将其复制并保存到一个本地文件。为此,打开您喜爱的文本编辑器(对于 Windows,记事本效果最好),创建一个名为 id_rsa-gsg-keypair 的新文档,将“-----BEGIN RSA PRIVATE KEY-----”和“-----END RSA PRIVATE KEY-----”(包括在内)之间的代码行复制到这个文档中,然后将该文件存储到您希望的任何目录中。

如果您在 Windows 上使用 PuTTY,您刚创建的密钥对必须转换成符合 PuTTY 的格式。为此,执行以下步骤:

  1. 在 putty 目录中(您在其中解压缩了 putty 工具),双击 puttygen.exe 启动 PuTTYGen。

  2. 单击 File -> Load Private Key

  3. 找到您创建的密钥对文件 (id_rsa-gsg-keypair)。
  4. 当系统出现提示时,单击 OK

  5. 单击 Save private key 按钮。
  6. 将密钥保存为 id_rsa-gsg-keypair.ppk。
  7. 当 PuTTYgen 提示您是否保存密钥而无需口令短语时,单击 Yes

启动/运行实例

现在轮到此过程中最重要的部分了:启动服务器实例,您才可以开始在其上安装 Oracle 数据库 XE。尽管您可能认为为此或许需要大量的宣传和复杂的过程,尤其是在考虑到这是一个公共 Linux AMI 时,但实际上这个步骤非常简单。要启动您在之前的步骤中找到的 Fedora 8 实例,只需使用对 AMI 的引用以及您创建的密钥对运行 ec2-run-instances 命令行工具:

C:\> ec2-run-instances ami-f51aff9c -k gsg-keypair
RESERVATION     r-7430c31d      924417782495    default
INSTANCE        i-ae0bf0c7      ami-2bb65342    pending gsg-keypair   0    m1.small    
2008-03-21T16:19:25+0000 us-east-1a
(注:输出中第二个字段中的实例 ID [在本示例中为 i-ae0bf0c7] 是该示例的唯一标识符,稍后您将使用它来操作这个实例 [包括在您完成的时候终止它]。)

和基本所有其他服务器启动一样,这个服务器实例可能要花几分钟时间才能启动。您可以使用 ec2-describe-instances 命令行工具检查状态:

C:\>  ec2-describe-instances i-ae0bf0c7 
RESERVATION     r-7430c31d      924417782495    default
INSTANCE        i-ae0bf0c7      ami-2bb65342    ec2-67-202-7-236.compute-1.amazonaws.com        ip-10-251-31-162.ec2.internal   
running gsg-keypair 0 m1.small 2008-03-21T16:19:25+0000us-east-1a
(注:启动实例之后,您可以使用 ec2-describe-instances 命令行工具查找外部和内部的 DNS [网络] 名称。在本示例中,您将使用 ec2-67-202-7-236.compute-1.amazonaws.com 从外部访问您的实例,使用 ip-10-251-31-162.ec2.internal 从内部访问它。换言之,如果您在运行 ec2-describe-instance 时看到此消息,则表明您的服务器正在运行 [您还要在其上花时间]。)

配置网络访问

为了支持最大可用性和安全性,Amazon EC2 提供了几个命令行工具,可以帮助您配置与防火墙设置有关的网络访问和授权。由于您将希望通过 SSH(更有可能通过 HTTP)访问实例,因此需要使用 ec2-authorize 命令行工具打开对这些端口的访问:

C:\>  ec2-authorize default -p 22
PERMISSION     default  ALLOWS  tcp     22      22      FROM    CIDR   0.0.0.0/0
C:\>  ec2-authorize default -p 8090
PERMISSION     default  ALLOWS  tcp     8080      8080      FROM    CIDR   0.0.0.0/0
(注:本文介绍了如何将 Oracle 数据库 XE 配置为使用端口 8080。如果您要使用其他端口,必须通过使用上述示例中的 ec2-authorize 命令行工具授予对其他端口的访问权。)

使用 SSH 连接到实例

服务器已启动,其 SSH 端口(本示例中为 22)也已打开,您现在可以在任何其他远程服务器上使用 SSH 远程登录和访问您的实例。为此,执行以下步骤:

  1. 在 putty 目录中(您在其中解压缩了 putty 工具),双击 putty.exe 启动 PuTTY。
  2. PuTTY 启动后,转至 Connection -> SSH -> Auth
  3. Authentication parameters 下,单击 Browse... 并选择您之前生成的 PuTTY 私钥文件 (id_rsa-gsg-keypair.ppk)。

  4. 返回至该会话。
  5. 对于主机名,使用您的实例的唯一外部 DNS(在本示例中为 ec2-67-202-7-236.compute-1.amazonaws.com)。您只是提取和使用其中的 IP 地址。例如,ec2-67-202-7-236.compute-1.amazonaws.com 的 IP 地址为 67.202.7.236。
  6. 端口 22 保持不变。
  7. 单击 Open 按钮登录。
这将使您登录到您的实例,藉此您可以像在任何其他 Fedora Linux 服务器上一样使用所有标准的 Linux 命令了。

将 Oracle 数据库 XE 下载并安装到 Amazon EC2 实例上

与任何其他 Oracle 实施一样,您可以使用多种方式下载并实施 Oracle 软件,以满足您自己的需求或者特定项目和/或组织的需求。假设有多种实现方式,您可以用来实施的最佳实践与您希望或需要的完全相同。本部分将引导您在 Amazon EC2 实例上简单实施 Oracle 数据库 XE。您完成本部分之后,可能希望进行自己的研究,并根据您的需要以及其他最佳实践来添加到这些步骤。

下载并安装 Oracle 数据库 XE

要安装 Oracle,首先需要将 Oracle 数据库 XE 软件复制到您的 Linux 实例。尽管有多种实现方式,但最简单的可能也是最费时间的是登录 OTN,下载适用于 Linux 的 Oracle 数据库 XE 软件(RPM 版本),然后通过一条 SCP 命令(Windows 上为 PSCP 命令)将其复制到您的 Linux AMI 上。为此,将 Oracle 数据库 XE 软件下载到您运行 EC2 命令和 SSH 客户端的本地计算机上之后,使用如下所示的 SCP 命令(Windows 上为 PSCP 命令):

C:\ pscp -i id_rsa-gsg-keypair.ppk F:\Software\ora10g\xe\oracle-xe-10.2.0.1-1.0.i386.rpm [email protected] ec2-67-202-7-236.compute-1.amazonaws.com:/home
(注:这条命令使用 root 用户的帐户将 Oracle 数据库 XE 软件复制到主目录中。您可以根据需要进行修改。)

将 Oracle 数据库 XE 软件复制到您的 Linux AMI 时,使用 SSH (PuTTY) 登录到您的 Linux 实例,以便可以为新的主目录做一些最后的准备(阅读安装说明)。第一个准备步骤是配置一个名为 libaio 的新库,它是一个异步 I/O 库,并不要求所有 Linux 版本中都包含,但 Oracle 数据库绝对需要它。您可以在通过 SSH (PuTTY) 登录到您的实例时执行此步骤:

$yum install libaio
此命令会立即在几个镜像站点中找到最新最好的(使用最多的)libaio 库,并将继续询问您是否希望下载并安装它(无论您执行哪个操作)。输出如下所示:
Loading "fastestmirror" plugin
Determining fastest mirrors
 * fedora: mirror.cogentco.com
 * updates: mirror.cogentco.com
fedora                    100% |=========================| 2.1 kB    00:00
primary.sqlite.bz2        100% |=========================| 4.9 MB    00:00
updates                   100% |=========================| 2.3 kB    00:00
primary.sqlite.bz2        100% |=========================| 3.0 MB    00:00
Setting up Install Process
Parsing package install arguments
Resolving Dependencies
--> Running transaction check
---> Package libaio.i386 0:0.3.106-3.2 set to be updated
--> Finished Dependency Resolution

Dependencies Resolved
============================================================================
 Package                 Arch       Version          Repository        Size
============================================================================
Installing:
 libaio                  i386       0.3.106-3.2      fedora             19 k

Transaction Summary
============================================================================
Install      1 Package(s)
Update       0 Package(s)
Remove       0 Package(s)

Total download size: 19 k
Is this ok [y/N]: y
Downloading Packages:
(1/1): libaio-0.3.106-3.2 100% |=========================|  19 kB    00:00
Running rpm_check_debug
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing: libaio                       ######################### [1/1]

Installed: libaio.i386 0:0.3.106-3.2
Complete!
运行了该命令并将 Oracle 数据库 XE 软件成功复制到您的 Linux 实例上之后,您可以在 Linux 命令提示符处输入以下命令来继续安装:
$ rpm -ivh oracle-xe-10.2.0.1-1.0.i386.rpm
该命令首先解压缩 Oracle 数据库 XE 软件,然后根据输入进行安装和配置。在安装期间,您收到的第一个提示将如下所示:“You must run '/etc/init.d/oracle-xe configure' as the root user to configure the database.”由于您已经以 root 身份登录,可以仅在命令提示符下键入以下命令:
$ /etc/init.d/oracle-xe configure
输入这条命令并运行之后,Oracle 数据库 XE 将开始其配置后的步骤,要求您输入首选的 HTTP 端口(默认情况下为 8080)、数据库监听器(默认情况下为 1521)以及一个供所有 DBA 帐户使用的口令。然后,您将收到最后一条提示,询问您是否希望启动 Oracle 数据库 XE 实例。一切都说完了也做完了,您将在您的系统上启动并运行 Oracle 数据库 XE。现在,进入了关键部分:自定义实例。

自定义 AMI 和 Oracle 环境

在您的 Linux 实例上启动并运行了 Oracle 数据库 XE 之后,您可能希望花些时间来进行定制。您立即可以做的一件事就是为您的用户设置路径,以便可以从命令提示符处使用 SQL*Plus 而不必更改到 Oracle BIN 目录。要从 Linux 命令提示符处执行此操作,输入以下命令:

$ export ORACLE_HOME=/usr/lib/oracle/xe/app/oracle/product/10.2.0/server
$ export ORACLE_SID=XE
$ export PATH=$PATH:$ORACLE_HOME/bin
您还可以通过允许 Oracle 数据库快捷版监听远程连接(这将允许您和他人通过互联网连接到 Oracle Application Express)使事情变得有趣。要从 Linux 命令提示符执行此操作,输入以下命令:
$ sqlplus system/password (*where password is your system password)
$ EXEC DBMS_XDB.SETLISTENERLOCALACCESS(FALSE);
现在您应该能够在任何地方打开一个 Web 浏览器,通过导航到您的 Amazon EC2 公共地址后面加上端口 8080 (http://ec2-75-101-206-200.compute-1.amazonaws.com:8080/) 来使用您的 Oracle Application Express 实例。

如果您熟悉 Oracle 数据库 XE 和 Oracle Application Express 环境,您应该能够自定义所需的一切。

创建您自己的可重用 Oracle/Amazon Machine Image

至此,您一直在处理您通过另一个 公共 AMI 定制的实例。然而,一旦该实例终止,您的工作也将丢失,当然,除非您已经保留了所创建的内容并注册了自己的 AMI。(当然,您也可以始终使用 Oracle 提供的免费 AMI。)为此,您将使用一些简单的绑定命令,这些命令会将您的密钥应用于实例,绑定整个实例,然后将其复制到 Amazon S3。您绑定了实例并将其复制到 S3 的永久存储之后,您将能够重复使用它,而不必重新安装 Oracle 数据库 XE。要创建您自己的 AMI,执行以下操作:

  1. 打开一个新的命令提示符(在 Windows 中),将目录更改为您保存私钥和 X.509 证书的目录。
  2. 使用 SCP(在 Windows 中使用 PSCP)将以下内容复制到您的 Amazon Linux 实例:
    C:\> pscp -i id_rsa-gsg-keypair.ppk pk-OVELY2MOG3K2VUXVRI3GPZE4457E42LK.pem cert-OVELY2MOG3K2VUXVRI3GPZE4457E42LK.pem 
    [email protected]:/mnt
  3. 使用 SSH(在 Windows 上使用 PuTTY)以 root 用户身份登录到您的实例,使用 ec2-bundle-vol 工具绑定您的实例,使用私钥 (-k)、X.509 证书 (-c) 以及您的 AWS 帐户 ID 作为您的用户名(-u,不是您的 AWS 访问密钥 ID),这可能需要几分钟的时间:
    $ ec2-bundle-vol -d /mnt -k /mnt/pk-OVELY2MOG3K2VUXVRI3GPZE4457E42LK.pem -c 
    /mnt/cert-OVELY2MOG3K2VUXVRI3GPZE4457E42LK.pem -u 117080109999 -r i386
  4. 新绑定的 AMI 需要上载到现有的 Amazon S3 帐户,例如,您首次登录 Amazon EC2 时创建的帐户。该步骤使用 Linux ec2-upload-bundle,该工具使用一个新的存储桶(Amazon 在 S3 上将目录称为存储桶,在本例中,我们使用 oraclexe 作为存储桶名称,尽管您可以将其称之为您喜欢的任何名称)名称 (-b) 以及您的 AWS 访问密钥 ID (-a) 和 AWS 访问密钥 (-s)。如前文所述,您输入此条命令之后,需要花些时间才能完成:
    $ ec2-upload-bundle -b oraclexe -m /mnt/image.manifest.xml -a 1HAY961AK34CXHKWNWG2 
    -s LJiWWdBmk7fuaPYOzUtHfxwhCEOgASTmnUXTpxDM
  5. 您新创建的和绑定的 AMI 成功上载到 Amazon S3 之后,您只需将其注册到 Amazon EC2。该命令结束后,您将能够使用自己的 AMI ID(ec2-register 命令行工具完成后返回)启动/停止实例。您在 Windows 命令提示符处使用以下命令行工具完成此步骤:
    C:\> ec2-register oraclexe/image.manifest.xml
    IMAGE   ami-7daf4b14
    
    (注:本示例中返回的 AMI ID 是一个针对本文创建的实际 AMI 的 ID。请随便使用它作为参考。)
如前文所述,您到现在为止一直针对您的 EC2 实例使用一个公共 AMI。然而,您通过 Amazon EC2 和 S3 创建、上载和注册了实例之后,将拥有一些属于您自己的东西:针对您的规范构建的 AMI,您可以自己使用它,也可以与其他人共享。重要的是,您了解了将 AMI 作为一个实例启动或者向外界发布它时运行 Amazon Web Services 以及使用最佳判断和最佳实践的成本。

启动、停止和注销您自己的 Amazon Machine Image

完成了所有“困难的”步骤之后,现在您要做的就是启动和/或停止实例。如果您的实例目前正在运行,您只需使用 ec2-terminate-instances 命令行工具(在 Windows 中)后面加上实例 ID 来关闭实例。例如,要停止本文开篇处引用的 ID 为 i-ae0bf0c7 的实例,运行以下命令:

C:\> ec2-terminate-instances i-ae0bf0c7
这将停止与这个 ID 对应的实例,如果您希望再次启动它,则必须使用 ec2-run-instances 命令行工具加上为您创建的新 AMI ID (ami-7daf4b14):
C:\> ec2-run-instances ami-7daf4b14 -k gsg-keypair
如果您觉得希望从头到尾启动整个流程,并且希望删除您创建的 AMI 以及相关的绑定,可以使用以下步骤:
  1. 使用命令行工具注销您创建的 AMI:
    C:\> ec2-deregister ami-7daf4b14
    
  2. 从 Amazon S3 删除绑定,方法是通过 SSH (PuTTY) 登录到 Linux 实例,运行以下命令(-b 是存储桶名称,-a 是访问密钥 ID,-s 是 AWS 访问密钥):
    ec2-delete-bundle -b oraclexe -p image -a 1HAY961AK34CXHKWNWG2 -s LJiWWdBmk7fuaPYOzUtHfxwhCEOgASTmnUXTpxDM 
    
    大功告成!

结论

在许多情况下,云计算服务提供了其他托管服务无可比拟的环境。无论您是要寻求巨大的计算能力、无限的存储,还是廉价的开发服务器,Amazon 的 EC2 和 S3 之类的服务似乎都能满足。尽管本文介绍了如何很好地将 Amazon Web Services 与 Oracle 数据库 XE 结合使用,但也不是说什么问题都能解决。
推荐 打印 | 录入: | 阅读:
相关新闻      
本文评论   
评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款