如何增加 Oracle 存储系统的容量

利用混合列压缩

作者:Tom Luckenbach

在 Oracle Pillar Axiom 存储系统上启用混合列压缩;这样可以有效地将存储容量增加 10-15 倍,提高性能并节约硬件成本。  


2013 年 2 月发布

本文讨论使用 Oracle Pillar Axiom 存储系统时如何启用混合列压缩。

想对本文发表评论吗?请参见 Facebook 上的帖子。有类似文章要分享?请将其发布到 Facebook 上,我们来进行讨论。

:请参见“另请参见”章节,详细了解使用混合列压缩的技术细节和商业优势。

关于混合列压缩

混合列压缩技术实现了高级数据压缩,由于减少了 I/O,所以能够节约成本和空间,并提高性能。该技术经过优化,可同时使用 Oracle 存储设备上的数据库和存储功能,是仓库压缩和存档压缩的支持技术。

根据实施的不同混合列压缩级别,平均可节省 10 到 15 倍的存储空间;而真实客户基准测试下的存储空间节省可达 204 倍。

即便平均存储空间节省量为 10 倍,也可减少甚至消除数年内购买新存储的需求。例如,实现 10 倍存储空间节省的 100 TB 数据库仅需使用 10 TB 的物理存储。由于现在有 90 TB 的可用存储空间,因此在相当长一段时间内可能不再需要购买存储。通过将每个数据库中 100 TB 的数据压缩到 10 TB 的实际磁盘空间,90 TB 的存储空间甚至还可再存储九个这样的数据库。

前提条件和步骤概述

仅 Oracle 存储系统支持混合列压缩。以下章节中的步骤概述如何配置 Oracle Database 以便与 Pillar Axiom 600 存储系统上的混合列压缩结合使用。无论是创建新数据库还是压缩现有数据库中的表,步骤大致相同。

Pillar Axiom 存储系统上的混合列压缩随 Oracle Database 11g 第 2 版一起提供。在 Pillar Axiom 存储系统上启用混合列压缩只有一个前提条件:您必须使用 Oracle 自动存储管理进行卷管理。

:请参见“另请参见”章节,获取 Oracle 自动存储管理的更多信息。

要创建或使用数据库以利用混合列压缩,必须执行三个基本步骤:

  1. 将 Oracle Database 和 Grid Infrastructure 软件安装或更新到所需的补丁级别(详见下一节)。
  2. 创建或修改一个或多个具有正确属性设置的 Oracle 自动存储管理磁盘组,支持混合列压缩。
  3. 通过在新数据库或现有数据库中创建新表,在配置用于压缩的 Oracle 自动存储管理磁盘组上创建压缩数据。

以下章节将详细介绍这些步骤。

安装软件和补丁

  1. 使用补丁 10404530 和补丁 13041324 安装 Oracle Database 和 Grid Infrastructure 11.2.0.3。

    :您也可安装补丁集更新 (PSU),补丁 13923374 (Oracle Grid Infrastructure 11.2.0.3.3),因为它包含混合列压缩补丁 (13041324) 和其他补丁。

  2. 同时将以下两个目录中的 OPatch 实用工具更新到 11.2.0.3 版:GI_HOMEDB_HOME

创建 Oracle 自动存储管理磁盘组

要在数据库中启用混合列压缩,必须更改底层 Oracle 自动存储管理磁盘组的三个属性设置:

  • 属性 compatible.asm 必须设置为 11.2.0.3 或更高版本。
  • 属性 compatible.rdbms 必须设置为 11.2.0.3 或更高版本。
  • 属性 storage.type 必须设置为 AXIOM

有关如何设置磁盘组属性的更多内容,请在本文档中查找对混合列压缩的引用。

以下步骤说明如何创建与混合列压缩兼容的 Oracle 自动存储管理磁盘组:

  1. 在 Pillar Axiom 存储系统上创建一组 LUN,并将它们映射到目标服务器。
  2. 必要时,重启服务器或重新扫描总线可以导入和创建 LUN 多路径设备。如果服务器上安装了 Oracle Pillar Axiom Path Manager,那么 Oracle Pillar Axiom Storage Services Manager GUI 将报告主机服务器上设备的原始磁盘名称,以供 Oracle 自动存储管理进行选择。可以对这些 LUN(磁盘)设备进行标记,以供 Oracle 自动存储管理进行选择。

    :建议您将整个磁盘用作 Oracle 自动存储管理磁盘。无需明确地创建任何分区。

    例如,在 Oracle Linux 中,root 用户可使用以下命令将整个磁盘标记为 Oracle 自动存储管理候选磁盘:

    # oracleasm createdisk DATA01 /dev/mapper/2000b080000001269
    

    在 Oracle Solaris 中,root 用户必须运行以下命令将 Oracle 自动存储管理使用的每个设备的所有权更改为 oracle 用户和组,例如:

    # chown -L oracle:oinstall /dev/rdsk/c0t000B080001003904d0s2
    

    mpathadm list LU 命令还将列出多路径设备。

  3. 使用 Grid Infrastructure 11.2.0.3 asmca 工具,创建一个或多个冗余级别设为 External 的磁盘组。

    :使用 Oracle Linux 时,必须(当前)将默认磁盘路径设置为 /dev/oracleasm/disks。否则,可能无法将磁盘正确识别为 Pillar Axiom 存储。

  4. 使用磁盘组的 set compatibleset attribute 命令设置兼容级别和存储类型。例如,清单 1 显示名为 DATA 的磁盘组示例。

    [Oracle @ myhost] $ export ORACLE_HOME=/u01/app/11.2.0.3/grid  
    [Oracle @ myhost] $ export ORACLE_SID=+ASM
    [Oracle @ myhost] $ sqlplus / as sysasm
    SQL * Plus: Release 11.2.0.3.0 Production on Tue May 1 18:04:06 2012   Copyright (c) 1982, 2011, Oracle.  All rights reserved.    Connected to:  Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production With the Real Application Clusters and Automatic Storage Management options    
      
    SQL> alter system set 'compatible'='11.2.0.3' scope=spfile sid='*';
    System altered.
    SQL> alter diskgroup DATA set attribute 'compatible.asm'='11.2.0.3';
    Disk group altered.   
    SQL> alter diskgroup DATA set attribute 'compatible.rdbms'='11.2.0.3';
    Disk group altered. 
    SQL> alter diskgroup DATA set attribute 'storage.type'='AXIOM';
    Disk group altered. 
    

    清单 1

    :系统将检验磁盘组是否确实为 Pillar Axiom 存储。如果试图对非 Oracle 存储执行上一条 SQL 命令,您将收到类似如下内容的错误消息:

    ORA-15287: could not set disk group attribute storage.type due to incompatible disks  
    ORA-15285: disk '/dev/mapper/XXXXXXXX' violates disk group attribute storage.type 
    

创建压缩数据

剩余步骤用于处理数据库中的数据。无论您是为压缩数据创建新数据库还是在现有数据库中创建新表,基本要求完全一样。也就是说,无论在什么情况下,您都将使用与混合列压缩兼容的 Oracle 自动存储管理磁盘组上的表空间。

可以在现有磁盘组上创建混合列压缩的压缩表,也可以创建新磁盘组,具体取决于空间或操作上的考虑。这一步的关键是,数据库的兼容性设置必须与磁盘组一致。也就是说,您还必须将数据库兼容性设置为与磁盘组相同的版本,即 11.2.0.3 或更高版本。

最后,实际创建压缩数据的方法有多种。以下是使用混合列压缩创建压缩表数据的两个 SQL 语句示例。下面第一条命令将创建表的副本用于存档。第二条命令将使用“alter table move”方法直接压缩表数据(而非创建新表)。这将使用指定的压缩类型对数据进行“动态”压缩(适用于联机用例)。

SQL> create table MYDATA_COMP_ARCHIVE compress for ARCHIVE HIGH as select * from MYDATA;
SQL> alter table MYDATA move compress for QUERY LOW;

有关混合列压缩的详细介绍,尤其是表迁移方法和其他最佳实践,请参见白皮书:“Exadata 上的混合列压缩 (HCC)”。

支持混合列压缩的 Oracle 数据库备份将保留恢复时的设置。如果在 Oracle 源数据库上设置了 compatible=11.2.0.3,那么已安装相应补丁的目标在恢复时可使用混合列压缩。

如果要创建新数据库,可以使用 Oracle Database Creation Assistant (dbca)。使用 dbca 工具时,在设置数据库兼容性方面有“小窍门”。在执行第 6 步(共 12 步)时,可能会收到提示 Oracle 自动存储管理磁盘组与数据库兼容性不匹配的警告消息。要符合此要求并消除警告,可临时将存储类型设置为 File System,然后一直单击至第 9 步。单击 All Initialization Parameterscompatible 参数设置为 11.2.0.3。然后,返回第 6 步,照常进行,但这次需要将存储类型设置为 Oracle Automatic Storage Management

另请参见

关于作者

Tom Luckenbach 从 1988 年开始涉足企业软硬件领域。在过去 10 年间,他重点关注企业存储解决方案。虽然并非出生在加利福尼亚州,但他将旧金山视作自己的故乡。他的妻子是出生在加利福尼亚州的一名作家,现在他们夫妻和三个孩子一起生活在北卡罗来纳州的达勒姆市。空闲时间他喜欢垂钓。

修订版 1.0,2013 年 2 月 27 日

关注我们:
博客 | Facebook | Twitter | YouTube