文章
服务器与存储管理
作者:Tom Luckenbach
2013 年 2 月发布
本文讨论使用 Oracle Pillar Axiom 存储系统时如何启用混合列压缩。
|
注:请参见“另请参见”章节,详细了解使用混合列压缩的技术细节和商业优势。
混合列压缩技术实现了高级数据压缩,由于减少了 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 自动存储管理的更多信息。
要创建或使用数据库以利用混合列压缩,必须执行三个基本步骤:
以下章节将详细介绍这些步骤。
注:您也可安装补丁集更新 (PSU),补丁 13923374 (Oracle Grid Infrastructure 11.2.0.3.3),因为它包含混合列压缩补丁 (13041324) 和其他补丁。
GI_HOME 和 DB_HOME。要在数据库中启用混合列压缩,必须更改底层 Oracle 自动存储管理磁盘组的三个属性设置:
compatible.asm 必须设置为 11.2.0.3 或更高版本。compatible.rdbms 必须设置为 11.2.0.3 或更高版本。storage.type 必须设置为 AXIOM。有关如何设置磁盘组属性的更多内容,请在本文档中查找对混合列压缩的引用。
以下步骤说明如何创建与混合列压缩兼容的 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 命令还将列出多路径设备。
asmca 工具,创建一个或多个冗余级别设为 External 的磁盘组。注:使用 Oracle Linux 时,必须(当前)将默认磁盘路径设置为 /dev/oracleasm/disks。否则,可能无法将磁盘正确识别为 Pillar Axiom 存储。
set compatible 和 set 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 Parameters 将 compatible 参数设置为 11.2.0.3。然后,返回第 6 步,照常进行,但这次需要将存储类型设置为 Oracle Automatic Storage Management。
Tom Luckenbach 从 1988 年开始涉足企业软硬件领域。在过去 10 年间,他重点关注企业存储解决方案。虽然并非出生在加利福尼亚州,但他将旧金山视作自己的故乡。他的妻子是出生在加利福尼亚州的一名作家,现在他们夫妻和三个孩子一起生活在北卡罗来纳州的达勒姆市。空闲时间他喜欢垂钓。
| 修订版 1.0,2013 年 2 月 27 日 |