2011g新特性自动存储管理Word文档下载推荐.docx

上传人:b****3 文档编号:6529094 上传时间:2023-05-06 格式:DOCX 页数:46 大小:519.98KB
下载 相关 举报
2011g新特性自动存储管理Word文档下载推荐.docx_第1页
第1页 / 共46页
2011g新特性自动存储管理Word文档下载推荐.docx_第2页
第2页 / 共46页
2011g新特性自动存储管理Word文档下载推荐.docx_第3页
第3页 / 共46页
2011g新特性自动存储管理Word文档下载推荐.docx_第4页
第4页 / 共46页
2011g新特性自动存储管理Word文档下载推荐.docx_第5页
第5页 / 共46页
2011g新特性自动存储管理Word文档下载推荐.docx_第6页
第6页 / 共46页
2011g新特性自动存储管理Word文档下载推荐.docx_第7页
第7页 / 共46页
2011g新特性自动存储管理Word文档下载推荐.docx_第8页
第8页 / 共46页
2011g新特性自动存储管理Word文档下载推荐.docx_第9页
第9页 / 共46页
2011g新特性自动存储管理Word文档下载推荐.docx_第10页
第10页 / 共46页
2011g新特性自动存储管理Word文档下载推荐.docx_第11页
第11页 / 共46页
2011g新特性自动存储管理Word文档下载推荐.docx_第12页
第12页 / 共46页
2011g新特性自动存储管理Word文档下载推荐.docx_第13页
第13页 / 共46页
2011g新特性自动存储管理Word文档下载推荐.docx_第14页
第14页 / 共46页
2011g新特性自动存储管理Word文档下载推荐.docx_第15页
第15页 / 共46页
2011g新特性自动存储管理Word文档下载推荐.docx_第16页
第16页 / 共46页
2011g新特性自动存储管理Word文档下载推荐.docx_第17页
第17页 / 共46页
2011g新特性自动存储管理Word文档下载推荐.docx_第18页
第18页 / 共46页
2011g新特性自动存储管理Word文档下载推荐.docx_第19页
第19页 / 共46页
2011g新特性自动存储管理Word文档下载推荐.docx_第20页
第20页 / 共46页
亲,该文档总共46页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

2011g新特性自动存储管理Word文档下载推荐.docx

《2011g新特性自动存储管理Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《2011g新特性自动存储管理Word文档下载推荐.docx(46页珍藏版)》请在冰点文库上搜索。

2011g新特性自动存储管理Word文档下载推荐.docx

sysdba和sysasm角色将分成不同的OS组。

以sys用户身份连接到ASM实例后,您可以更新在口令文件中更新的SYS口令:

alterusersysidentifiedbyoracle

2/

Useraltered.

尽管这个ASM实例不带数据库,您仍然可以创建用户:

createuserasmoperidentifiedbydumboper

Usercreated.

现在,您可以将SYSASM角色授予该用户:

grantsysasmtoasmoper;

Grantsucceeded.

进行授权之后,asmoper用户(而非SYS用户)可以执行所有ASM管理功能。

该用户可以通过子句assysasm进行连接,该子句类似于常规数据库中的“assysdba”子句。

$sqlplusasmoper/dumboperassysasm

这个特性实现了迫切需要的ASM和DBA职责分离。

 

可变的区大小

ASM存储中结构最小的元素是分配单元(AU),与Oracle数据库块的概念类似。

创建表和索引之类的数据库段时,分配的最小单元不是一个块,而是一个包含多个块的区。

您可以更改段的区大小。

ASM中有一个非常类似的概念:

在ASM磁盘组上创建文件时,最小的可寻址单元是区,而不是AU。

在OracleDatabase10g中,AU和区是可互换的;

一个区只包含一个AU。

10g兼容的磁盘组需要共享池为每个区提供内存。

对于大型数据库,这又需要大量内存。

因此,如果AU大小为1MB(默认值),1TB的数据库需要在共享池中管理超过一百万个区。

在OracleDatabase11g中,区大小不再等于AU大小。

创建文件时,区大小从1MB开始。

文件达到某个阈值时,区大小增加至4MB,然后是16MB,最后当达到某个阈值后,区大小为64MB。

您不必担心大小;

ASM实例会自动分配合适的区大小。

由于较少数量的区即可容纳大量数据,因此可以大大减少共享池中的区总数,从而将性能提高数倍。

当文件急剧扩大和缩小时,可变的区大小可能会产生一些碎片。

如果需要进行碎片整理,ASM将自动解决该问题。

可变的AU大小

正如我在前面提到的,AU的默认大小为1MB。

对许多数据库而言,这可能足够大了,但请考虑一个大小超过10TB的大型数据库。

对象可能超过1MB,因此您可能希望扩大AU大小以减少AU数量。

在OracleDatabase10g中,您可以设置一个底线参数来更改AU大小。

然而,这会影响之后创建的所有磁盘组,而且还需要一个ASM实例回收来设置该参数。

在OracleDatabase11g中,只需在创建DG期间设置一个磁盘组属性au_size即可轻松完成此任务,如下所示:

creatediskgroupdg6

externalredundancy

disk

'

/dev/raw/raw13'

attribute'

au_size'

='

2M'

AU_SIZE应为1M、2M、4M、8M、16M、32M或64M(M代表MB)。

您还可以将该值设成一个绝对值(单位为字节):

2097152'

创建磁盘组之后,您可以通过以下查询来查看AU大小:

selectname,allocation_unit_size

fromv$asm_diskgroup

/

NAMEALLOCATION_UNIT_SIZE

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

DG11048576

DG31048576

DG62097152

DG51048576

DG41048576

DG21048576

注意各个磁盘组名称的AU大小。

现在,您可以创建具有合适AU大小的磁盘组,以满足每个应用程序的需要。

磁盘组属性

ASM是一个适用于从10g到当前版本的Oracle数据库的存储平台。

因此,11g上的ASM实例可以保存10g第1版、10g第2版以及11g第1版(以及更高版本)的数据库。

只要ASM版本与RDBMS的版本相同或者更高,就可以在该ASM实例上创建数据库。

如果ASM和RDBMS实例的版本不同,它们将如何通信呢?

很简单:

ASM将消息转换成适合RDBMS的版本。

默认情况下,ASM实例可以支持10g数据库。

但如果您希望在该ASM实例上仅放置11gRDBMS,该怎么办?

无需进行消息转换来支持版本差异。

但如果可以告诉ASM实例唯一支持的数据库是11g第1版,该怎么办?

这将消除,至少可以减少消息转换。

在OracleDatabase11g中,可以使用ASM兼容性和RDBMS兼容性磁盘组属性实现。

首先,我们将检查磁盘组的当前属性:

selectcompatibility,database_compatibility

2fromv$asm_diskgroup

3wherename='

DG1'

4/

COMPATIBILITYDATABASE_COMPATIBILITY

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

10.1.0.0.010.1.0.0.0

如您所见,ASM兼容性(由COMPATIBILITY显示)设置为10.1.0.0.0,这意味着该磁盘组最高可支持10.1ASM结构。

因此,该磁盘组可以具有任意RDBMS结构。

另一列DATABASE_COMPATIBILITY显示RDBMS兼容性设置为10.1。

这意味着,ASM磁盘组DG1可用于10.1版的任何RDBMS。

由于您只希望创建11gASM和RDBMS结构,因此无需拥有10g元素。

要将该磁盘组的ASM兼容性属性设置为11.1,您可以执行以下语句(在ASM实例中):

alterdiskgroupdg1setattribute'

compatible.asm'

='

11.1'

;

现在,如果您检查磁盘组的属性:

11.1.0.0.010.1.0.0.0

ASM兼容性设置为11.1;

但RDBMS兼容性仍然设置为10.1。

要将它也更改为11.1,请使用:

compatible.rdbms'

需要特别注意的是:

兼容性是针对磁盘组设置的,而不是针对整个ASM实例。

使用该特性,您只需使用一个ASM实例即可满足所有数据库版本类型的需要。

根据所使用的版本,您可以相应地设置属性,从而减少版本间通信。

首选的镜像读取

在OracleRAC数据库中,多个节点可能指向同一个ASM实例。

如果您在一个ASM磁盘组中使用正常镜像,访问磁盘的行为可能并不像您预想的那样。

假设您有一个名为DG2的磁盘组,它包含两个failgroup(DG2_0000和DG2_0001),每个具有一个单独的磁盘,如下图所示:

向磁盘组DG2写入某些内容时,会以循环方式写入区中:

第一个进入DG2_0000,副本进入DG2_0001,第二个进入DG2_0001,副本在DG2_0000上,第三个进入DG2_0000,副本在DG2_0001上,依此类推。

ASM以这种方式在一个磁盘上维护另一个磁盘的备份。

但是在读取这些区时,始终从主failgroup(在本例中为DG2_0000)中读取,而不是从辅助failgroup(DG2_0001)中读取。

仅当主failgroup不可用时才读取辅助failgroup。

这在大多数情况下可以正常工作,但有时可能不是所希望的。

在OracleDatabase11g中,您可以将一个节点配置为从特定failgroup中读取。

例如,在上面的示例中,如果您希望将实例1配置为从failgroupDG2_0000中读取,将实例2配置为从DG2_0001中读取,您可以设置这些磁盘组的首选读取组。

在实例1中执行的以下命令导致磁盘组DG2和DG3中的failgroupDG2_0000和DG3_0000分别是实例1上的首选磁盘:

altersystemsetasm_preferred_read_failure_groups='

DG2.DG2_0000'

'

DG3.DG3_0000'

同样,在另一个实例上,您可以执行以下命令使其他failgroup成为首选磁盘:

DG2.DG2_0001'

DG3.DG3_0001'

执行这些语句后,当来自实例1的某个会话希望从磁盘组DG2中读取时,将读取磁盘DG2_0000。

如果该磁盘不可用,则读取另一个磁盘DG2_0001。

同样,当某个连接到实例2的会话读取数据时,将读取磁盘DG2_0001。

如果您要检查磁盘组中不同磁盘的使用情况,可以参考一个新的字典视图V$ASM_DISK_IOSTAT,它模拟了UNIX系统中的IOSTAT实用程序:

select

instname,

dbname,

group_number,

failgroup,

disk_number,

reads,

writes

fromv$asm_disk_iostat

orderby1,2,3,4,5,6

示例输出如下:

INSTNAMDBNAMEGROUP_NUMBERFAILGROUPDISK_NUMBERREADSWRITES

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

PRONE31PRONE32DG2_000004450910

PRONE32PRONE32DG2_000112256910

PRONE31PRONE33DG3_0000030029

PRONE32PRONE33DG3_0001156029

该输出显示了实例PRONE31和PRONE32的首选failgroup分别为DG2_0000和DG2_0001。

注意WRITES列;

它们在910处相同。

这是因为统一写入到两个磁盘中。

现在,注意READS列。

针对实例PRONE31和PRONE32分别为4450和2256。

为什么?

因为实例PRONE3发出多次读取命令,这些读取均来自于其首选failgroupDG2_0000。

对于磁盘组DG3,实例PRONE32发出多次来自于其首选failgroup(DG3_0001)的读取命令,因此该磁盘显示更多读取。

首选读取在“拉伸”集群(节点之间地理距离较远的集群)中尤为有用。

首选读取通过将读取隔离到特定磁盘,加快了读取速度。

DropDiskgroupForce

当一个磁盘不再可用时(损坏到无法修复的程度)会发生什么?

您希望完全删除该磁盘组然后重新创建,或者将该磁盘组的磁盘添加到其他磁盘组。

该磁盘组尚未挂载。

由于其中一个磁盘缺少,您甚至无法挂载它。

要删除该磁盘组,您必须挂载它,但由于缺少磁盘,您无法进行挂载—绝对是一个“无法摆脱的困境”。

您应该做些什么?

在OracleDatabase10g中,您可以使用一种变通方法—使用dd命令擦除磁盘头:

$ddif=/dev/zeroof=/dev/raw/raw13bs=1024count=4

这将在磁盘/dev/raw/raw13的头中放入零,擦除所有信息。

如果该方法生效,它将完全擦除磁盘头的信息,并删除用作磁盘组一部分的磁盘。

在OracleDatabase11g中,您不必求助于该变通方法。

您只需执行带force选项的drop命令:

dropdiskgroupdg7forceincludingcontents;

使用该命令,即使没有挂载磁盘,也可以删除磁盘组。

可用的磁盘显示为FORMER;

即,它们用作某个磁盘组的一部分。

(注意:

您必须使用“includingcontents”子句。

元数据备份和恢复

许多人将ASM看作一个具有自己的存储的数据库。

事实并非如此,ASM并不存储数据,而是由数据库进行存储。

但ASM实例需要维护磁盘组名称、其中的磁盘、目录等元数据。

这些元数据存储在磁盘头中。

假设所有磁盘都损坏且头信息消失,您该怎么办?

当然,您已经使用RMAN对数据库进行了备份,因此可以恢复。

但您只有在创建了所有磁盘组和目录后才能进行恢复。

希望您保留了所有记录。

(对吗?

)即使您进行了备份,这个过程也需要时间。

如果您进行了备份,该怎么办呢?

在OracleDatabase11g中,您可以使用md_backup命令通过ASM命令行选项(ASMCMD)备份ASM实例的元数据。

$asmcmd-p

ASMCMD[+]>

md_backup

该命令将创建一个名为ambr_backup_intermediate_file的文件。

以下是该文件从顶部开始的一部分:

@diskgroup_set=(

{

'

DISKSINFO'

=>

DG1_0000'

DG1_0000'

TOTAL_MB'

103'

FAILGROUP'

NAME'

DGNAME'

PATH'

/dev/raw/raw5'

}

},

DGINFO'

DGTORESTORE'

0,

DGCOMPAT'

10.1.0.0.0'

DGDBCOMPAT'

DGTYPE'

EXTERN'

DGAUSZ'

1048576'

ALIASINFO'

{},

TEMPLATEINFO'

6'

STRIPE'

COARSE'

TEMPNAME'

ASM_STALE'

REDUNDANCY'

UNPROT'

SYSTEM'

Y'

...andmore...

它记录了所有磁盘组、磁盘、目录、磁盘属性,等等。

默认情况下,该文件会记录所有磁盘组。

如果您希望仅备份特定磁盘组,可以使用-g选项。

此外,您还可以使用-b选项创建特定的命名文件。

md_backup-gdg1-bprolin3_asm.backup

这会将磁盘组DG1的元数据备份到一个名为prolin3_asm.backup的文件,而不是默认的ambr_backup_intermediate_file。

该文件必须是新建的,如果在生成前该文件已存在,您必须删除它。

现在,让我们看看恢复操作是如何工作的。

恢复有不同的类型。

最简单的用法是恢复一个以前删除的磁盘组及其目录。

首选,在磁盘组上创建一个目录:

cdDG7

ASMCMD[+DG7]>

mkdirTEST

ls

TEST/

该磁盘组有一个名为TEST的目录。

现在,备份该磁盘组:

md_backup-gdg7-bg7.backup

备份之后,假设您删除该磁盘组来模拟一次意外删除:

dropdiskgroupdg7;

Diskgroupdropped.

现在,磁盘组DG7已从ASM实例删除,您希望使用以前的备份恢复它。

可以使用md_restore命令恢复它:

$asmcmdmd_restore-bdg7.backup-tfull

CurrentDiskgroupbeingrestored:

DG7

DiskgroupDG7created!

SystemtemplateTEMPFILEmodified!

SystemtemplateFLASHBACKmodified!

SystemtemplateARCHIVELOGmodified!

SystemtemplateBACKUPSETmodified!

SystemtemplateXTRANSPORTmodified!

SystemtemplateDATAGUARDCONFIGmodified!

SystemtemplateCONTROLFILEmodified!

SystemtemplateAUTOBACKUPmodified!

SystemtemplateDUMPSETmodified!

SystemtemplateONLINELOGmodified!

SystemtemplatePARAMETERFILEmodified!

SystemtemplateASM_STALEmodified!

SystemtemplateCHANGETRACKINGmodified!

SystemtemplateDATAFILEmodified!

Directory+DG7/TESTre-created!

看看输出;

它创建了该磁盘组以及模板和目录。

如果以前有任何数据,当然,这些数据将丢失。

md_backup不是数据的备份,而是ASM实例元数据的备份。

表面上,数据是由RMAN备份的。

创建磁盘组和所有目录之后,您可以将RMAN备份恢复到该磁盘组。

另一个选项-f使您可以将命令放在一个脚本文件中,而不是执行这些命令:

md_restore-bdg7.backup-tfull-fcr_dg7.sql

它会创建一个名为cr_dg7.sql的SQL脚本,该脚本用于创建磁盘组以及所有其他对象。

您可以在ASM实例中手动运行该脚本。

该文件如下所示:

creatediskgroupDG7EXTERNALredundancydisk'

/dev/raw/raw14'

nameDG7_0000size100M;

alterdiskgroup/*ASMCMDAMBR*/DG7altertemplateTEMPFILEattributes(UNPROTECTEDCOARSE);

alterdiskgroup/*ASMCMDAMBR*/DG7altertemplateFLASHBACKattributes(UNPROTECTEDFINE);

alterdiskgroup/*ASMCMDAMBR*/DG7altertemplateARCHIVELOGattributes(UNPROTECTEDCOARSE);

alterdiskgroup/*ASMCMDAMBR*/DG7altertemplateBACKUPSETattributes(UNPROTECTEDCOARSE);

alterdiskgroup/*ASMCMDAMBR*/DG7altertemplateXTRANSPORTattributes(UNPROTECTEDCOARSE);

alterdiskgroup/*ASMCMDAMBR*/DG7altertemplateDATAGUARDCONFIGattributes(UNPROTECTEDCO

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 表格模板 > 合同协议

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2