在云中运行 Oracle 数据库 XE

基于实用程序进行计算的承诺姗姗来迟。最开始只是大型计算机领域的一个构想,但如今已经有很多选择。无论您是在自己低成本的刀片服务器上使用 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 环境变量: 在“开始”菜单中,选择“设置”->“控制面板”。 双击“系统”。 在“高级”选项卡中,单击“环境变量”。 在“用户变量”或“系统变量”下,创建一个新的 JAVA_HOME 变量。 单击“确定”关闭。 要在 Windows 中确认您的 JAVA_HOME 环境变量(通过命令提示符),执行以下命令: C:\> %JAVA_HOME%\bin\java versionjava 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 除外)和帮助文件。下载结束后

将 putty.zip 解压缩到 C:\Program Files 下名为 putty 的新目录中(即 C:\Program Files\putty)。 您可以通过在 C:\Program Files\putty 目录中双击 putty.exe 来运行 SSH 客户端。 在“高级”选项卡中,单击“环境变量”。 您可能还希望通过以下步骤将该环境变量添加到您的 Windows 路径: 在“开始”菜单中,选择“设置”->“控制面板”。 双击“系统”。 在“高级”选项卡中,单击“环境变量”。 编辑 Path 系统变量,将“;:\Program Files\putty”加到末尾(确保您用一个分号将这个 PuTTy 项与前面的项分隔开)。 单击“确定”关闭。 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 环境变量永久设置为用户变量或系统变量: 在“开始”菜单中,选择“设置”->“控制面板”。 双击“系统”。在“高级”选项卡中,单击“环境变量”。 在“用户变量”或“系统变量”下,创建一个新的 EC2_HOME 变量。 单击“确定”关闭。 命令行工具还需要访问您在注册 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: 在“开始”菜单中,选择“设置”->“控制面板”。 双击“系统”。 在“高级”选项卡中,单击“环境变量”。 在“用户变量”下,创建一个新的 EC2_PRIVATE_KEY 变量和 EC2_CERT 变量。 单击“确定”关闭。 查找并启动 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 amazonIMAGE ami-bd9d78d4 ec2-public-images/demo-paid-AMI.manifest.xml amazonavailable public A79EC0DB i386 machineIMAGE ami-26b6534f ec2-public-images/developer-image.manifest.xml amazonavailable public i386 machineIMAGE ari-a51cf9cc ec2-public-images/ec2-initrd-2.6.21.7-2.fc8xen.i386.manifest.xml amazon available public i386 ramdiskIMAGE ari-b31cf9da ec2-public-images/ec2-initrd-2.6.21.7-2.fc8xen.x86_64.manifest.xml amazon available public x86_64 ramdiskIMAGE aki-a71cf9ce ec2-public-images/ec2-vmlinuz-2.6.21.7-2.fc8xen.i386.manifest.xml amazon available public i386 kernelIMAGE aki-b51cf9dc ec2-public-images/ec2-vmlinuz-2.6.21.7-2.fc8xen.x86_64.manifest.xml amazon available public x86_64 kernelIMAGE ami-f51aff9c ec2-public-images/fedora-8-i386-base-v1.06.manifest.xmlamazon available public i386 machine aki-a71cf9ce ari-a51cf9ccIMAGE ami-f21aff9b ec2-public-images/fedora-8-x86_64-base-v1.06.manifest.xml amazon available public x86_64 machine aki-b51cf9dcari-b31cf9daIMAGE ami-a21affcb ec2-public-images/fedora-core-6-x86_64-base-v1.06.manifest.xml amazon available public x86_64 machine aki-a53adfccari-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/aFxTHgElQiJLChpHungXQ29VTc8rc1bW0lkdi23OH5eqkMHGhvEwqa0HWASUMll4o3o/IX+0f2UcPoKCOVUR+jx71Sg5AU52EQfanIn3ZQ8lFW7Edp5a3q4DhjGlUKToHVbicL5E+g45zfB95wIyywWZfeW/UUF3LpGZyq/ebIUlq1qTbHkLbCC2r7RTn8vpQWp47BGVYGtGSBMpTRP5hnbzzuqj3itkiLHjU39S2sJCJ0TrJx5i8BygR4s3mHKBj8l+ePQxG1kGbF6R4yg6sECmXn17MRQVXODNHZbAgMBAAECggEAY1tsiUsIwDl591CXirkYGuVfLyLflXenxfI50mDFms/mumTqloHO7tr0oriHDR5K7wMcY/YY5YkcXNo7mvUVD1pMZNUJs7rw9gZRTrf7LylaJ58kOcyajw8TsC4e4LPbFaHwS1d6K8rXh64o6WgW4SrsB6ICmr1kGQI73wcfgt5ecIu4TZf0OE9IHjn+2eRlsrjBdeORi7KiUNC/pAG23I6MdDOFEQRcCSigCj+4/mciFUSASWS4dMbrpb9FNSIcf9dcLxVM7/6KxgJNfZc9XWzUw77Jg8x92Zd0fVhHOux5IZC+UvSKWB4dyfcItE8C3p9bbU9VGyY5vLCAiIb4qQKBgQDLiO24GXrIkswF32YtBBMuVgLGCwU9h9HlO9mKAc2m8Cm1jUE5IpzRjTedc9I2qiIMUTwtgnw42auSCzbUeYMURPtDqyQ7p6AjMujp9EPemcSVOK9vXYL0PtcoxW9MC0dtV6iPkCN7gOqiZXPRKaFbWADp16p8UAIvS/a5XXk5jwKBgQCKkpHi2EISh1uRkhxljyWCiDCiK6JBRsMvpLbc0v5dKwP5alo1fmdR5PJaV2qvZSj5CYNpMAy1/EDNTY5OSIJU+0KFmQbyhsbmrdLNLDL4+TcnT7c62/aH01ohYaf/VCbRhtLlBfqGoQc7+sAc8vmKkesnF7CqCEKDyF/dhrxYdQKBgC0iZzzNAapayz1+JcVTwwEid6j9JqNXbBc+Z2YwMi+T0Fv/P/hwkX/ypeOXnIUcw0Ih/YtGBVACDQbsz7LcY1HqXiHKYNWNvXgwwO+oiChjxvEkSdsTTIfnK4VSCvU9BxDbQHjdiNDJbL6oar92UN7VrBYvChJZF7LvUH4YmVpHAoGAbZ2X7XvoeEO+uZ58/BGKOIGHByHBDiXtzMhdJr15HTYjxK7OgTZmgK+8zp4L9IbvLGDMJO8vft32XPEWuvI8twCzFH+CsWLQADZMZKSsBasOZ/h1FwhdMgCMcY+Qlzd4JZKjTSu3i7vhvx6RzdSedXEMNTZWN4qlIx3kR5aHcukCgYA9T+Zrvm1F0seQPbLknn7EqhXIjBaTP8TTvW/6bdPi23ExzxZn7KOdrfclYRph1LHMpAONv/x2xALIf91UB+v5ohy1oDoasL0gij1houRe2ERKKdwz0ZL9SWq6VTdhr/5G994CK72fy5WhyERbDjUIdHaK3M849JJuf8cSrvSb4g==-----END RSA PRIVATE KEY-----这创建了一个私钥,必须将其复制并保存到一个本地文件。为此,打开您喜爱的文本编辑器(对于 Windows,记事本效果最好),创建一个名为 id_rsa-gsg-keypair 的新文档,将“-----BEGIN RSA PRIVATE KEY-----”和“-----END RSA PRIVATE KEY-----”(包括在内)之间的代码行复制到这个文档中,然后将该文件存储到您希望的任何目录中。

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

在 putty 目录中(您在其中解压缩了 putty 工具),双击 puttygen.exe 启动 PuTTYGen。
单击 File -> Load Private Key。
找到您创建的密钥对文件 (id_rsa-gsg-keypair)。 当系统出现提示时,单击 OK。
单击 Save private key 按钮。 将密钥保存为 id_rsa-gsg-keypair.ppk。 当 PuTTYgen 提示您是否保存密钥而无需口令短语时,单击 Yes。 启动/运行实例

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

C:\> ec2-run-instances ami-f51aff9c -k gsg-keypairRESERVATION r-7430c31d 924417782495 defaultINSTANCE 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 defaultINSTANCE 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 22PERMISSION default ALLOWS tcp 22 22 FROM CIDR 0.0.0.0/0C:\> ec2-authorize default -p 8090PERMISSION default ALLOWS tcp 8080 8080 FROM CIDR 0.0.0.0/0(注:本文介绍了如何将 Oracle 数据库 XE 配置为使用端口 8080。如果您要使用其他端口,必须通过使用上述示例中的 ec2-authorize 命令行工具授予对其他端口的访问权。) 使用 SSH 连接到实例

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

在 putty 目录中(您在其中解压缩了 putty 工具),双击 putty.exe 启动 PuTTY。 PuTTY 启动后,转至 Connection -> SSH -> Auth。 在 Authentication parameters 下,单击 Browse... 并选择您之前生成的 PuTTY 私钥文件 (id_rsa-gsg-keypair.ppk)。
返回至该会话。 对于主机名,使用您的实例的唯一外部 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。 端口 22 保持不变。 单击 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 root@ 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" pluginDetermining fastest mirrors * fedora: mirror.cogentco.com * updates: mirror.cogentco.comfedora 100% |=========================| 2.1 kB 00:00primary.sqlite.bz2 100% |=========================| 4.9 MB 00:00updates 100% |=========================| 2.3 kB 00:00primary.sqlite.bz2 100% |=========================| 3.0 MB 00:00Setting up Install ProcessParsing package install argumentsResolving Dependencies--> Running transaction check---> Package libaio.i386 0:0.3.106-3.2 set to be updated--> Finished Dependency ResolutionDependencies Resolved============================================================================ Package Arch Version Repository Size============================================================================Installing: libaio i386 0.3.106-3.2 fedora 19 kTransaction Summary============================================================================Install 1 Package(s)Update 0 Package(s)Remove 0 Package(s)Total download size: 19 kIs this ok [y/N]: yDownloading Packages:(1/1): libaio-0.3.106-3.2 100% |=========================| 19 kB 00:00Running rpm_check_debugRunning Transaction TestFinished Transaction TestTransaction Test SucceededRunning Transaction Installing: libaio ######################### [1/1]Installed: libaio.i386 0:0.3.106-3.2Complete!运行了该命令并将 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,执行以下操作:

打开一个新的命令提示符(在 Windows 中),将目录更改为您保存私钥和 X.509 证书的目录。 使用 SCP(在 Windows 中使用 PSCP)将以下内容复制到您的 Amazon Linux 实例: C:\> pscp -i id_rsa-gsg-keypair.ppk pk-OVELY2MOG3K2VUXVRI3GPZE4457E42LK.pem cert-OVELY2MOG3K2VUXVRI3GPZE4457E42LK.pem

root@ec2-75-101-206-200.compute-1.amazonaws.com:/mnt使用 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新绑定的 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您新创建的和绑定的 AMI 成功上载到 Amazon S3 之后,您只需将其注册到 Amazon EC2。该命令结束后,您将能够使用自己的 AMI ID(ec2-register 命令行工具完成后返回)启动/停止实例。您在 Windows 命令提示符处使用以下命令行工具完成此步骤: C:\> ec2-register oraclexe/image.manifest.xmlIMAGE 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 以及相关的绑定,可以使用以下步骤: 使用命令行工具注销您创建的 AMI: C:\> ec2-deregister ami-7daf4b14从 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 结合使用,但也不是说什么问题都能解决。

时间: 2024-09-20 06:12:18

在云中运行 Oracle 数据库 XE的相关文章

一个小时学会Oracle数据库

一.数据库概要 二.Oracle简介 三.安装运行Oracle数据库 四.使用GUI操作MySQL 五.使用SQL访问Oracle数据库 六.下载程序.帮助.视频 Oracle视频下载(111班):https://pan.baidu.com/s/1pLz16JL 密码: 7edn Oracle视频下载( 67 班):https://pan.baidu.com/s/1cowJOa 密码: n88w Oracle11g/12c安装包下载:http://www.oracle.com/technetwo

tomcat-linux下运行jsp站点访问另一台服务器oracle数据库错误。

问题描述 linux下运行jsp站点访问另一台服务器oracle数据库错误. 本人是java菜鸟.我在本机上开发了一个jsp+oracle站点.本机环境:winXP+tomcat5.5+JDK1.5+Oracle 11g本地运行没有任何问题.但是部署到服务器上就报错. 两台服务器,一台存放应用,一台存放数据库.应用服务器环境是linux系统+JDK1.5+tomcat5.5数据库服务器是oracle 10g 然后我进行了如下的测试:1.启动应用服务器上的tomcat,没有错误.2.我写了个测试的

使用NHibernate连接Oracle数据库运行时报错cannot open connection

问题描述 仿照别人的例子用VS2008写了个Console程序,工程名为NHOracleTest.NHibernate用的是NHibernate-2.0.1.GA版本.数据库是Oracle10g.程序编译没有问题,运行后报错:未处理的ADOException:cannotopenconnection.我怀疑是hibernate.cfg.xml文件写得有些问题,但是也是参照着NHibernate-2.0.1.GA-srcsrcNHibernate.Config.Templates中oracle数据

oracle数据库怎么运行数据库语句?找不到输入数据库语句的地方

问题描述 oracle数据库怎么运行数据库语句?找不到输入数据库语句的地方 就是登陆oracle数据库界面后,在哪输入数据库语句?找不到呀,有没有人知道? 解决方案 新建 SQL窗口 在里面输入就行 解决方案二: 看你用数据库的什么软件了,pl/sql的话就是在左上角新建一个SQL窗口或者一个命令窗口都可以,然后左上角有执行的按钮

oracle 数据库运行模式

可以通过如下命令查看oracle数据库的运行模式: SQL>CONNECT /AS SYSDBA; SQL>ARCHIVE LOG LIST Database log mode              Archive Mode Automatic archival             Enabled Archive destination            D:\oracle\RDBMS Oldest online log sequence     10 Next log seque

oracle数据库学习入门篇

oracle创建表空间及用户 oracle的学习对于像我这样的新手,还是要一步一步来,先把基本概念搞清楚. 我觉得oracle学习可以分为几个部分: 系统基本使用 系统调优 sql语句编写 sql调优 PL/SQL程序开发 以下讨论都是在单主机模式下进行.欢迎讨论指正. 问题1:什么是实例? 一个oracle软件安装完之后,它有一个默认的实例(instance),同时用户还可以在oracle中增加实例. 实例是一个内存结构(SGA+后台进程),每个实例有一组自己的进程组,用来管理运行实例.实例中

更改Oracle数据库表的表空间

oracle|数据|数据库 在Oracle数据库管理系统中,创建库表(table)时要分配一个表空间(tablespace),如果未指定表空间,则使用系统用户确省的表空间. 在Oracle实际应用中,我们可能会遇到这样的问题.处于性能或者其他方面的考虑,需要改变某个表或者是某个用户的所有表的表空间.通常的做法就是首先将表删除,然后重新建表,在新建表时将表空间指定到我们需要改变的表空间.如果该用户已经保存了大量数据,这种办法就就显得不是很方便,因为有大量数据需要提前备份出来.下面介绍一种利用数据库

Oracle数据库学习之第一篇

  权限管理: oracle 9里面默认的三个用户名和密码: sys change_on_install //权限最高的管理员 system manager //普通的管理员 scott tiger //普通用户 在oracle 10中,仍然使用这三个用户作为默认用户.但sys和system用户的密码不再默认.在安装数据库的时候,可以由用户指定 .从安全角度考虑,scott用户默认被锁定,所以要使用该用户,需要先解除锁定. 注意:我们要使用oracle数据库,至少要启动两个服务,一个是监听服务,

Oracle数据库备份策略的相关概念及使用

这篇论坛文章主要介绍了Oracle数据库备份策略的相关概念及使用中的注意事项,详细内容请大家参考下文 一.了解备份的重要性 可以说,从计算机系统出世的那天起,就有了备份这个概念,计算机以其强大的速度处理能力,取代了很多人为的工作,但是,往往很多时候,它又是那么弱不禁风,主板上的芯片.主板电路.内存.电源等任何一项不能正常工作,都会导致计算机系统不能正常工作.当然,这些损坏可以修复,不会导致应用和数据的损坏.但是,如果计算机的硬盘损坏,将会导致数据丢失,此时必须用备份恢复数据. 其实,在我们的现实