ASM笔记4--智能存放



2.4.3.4 什么是智能数据存放(Intelligent Data Placement)?

2.4.3.4.1 什么是智能数据存放?
ASM diskgroup 中的智能数据存放(Intelligent Data Placement)
这个特性也是Oracle 11gR2中推出来的特性。 智能数据存放允许我们根据性能的需要,把数据存放在disk不同的区域上。
ASM diskgroup 中的智能数据存放(Intelligent Data Placement)
启用智能数据存放后,我们可以设置磁盘的区域,把频繁需要访问的数据放在最外面的柱面上,这样可以提高数据读取的速度。 这个区域也叫hot

region.
智能数据存放还允许我们把primary 和 mirror extents 分别存放在hot 或者 cold 区域上。
可以对某个文件或者某个disk group 的template 来设置智能数据存放的参数,在disk group 创建完成以后,也可以进行修改。

2.4.3.4.2 查看磁盘Region 信息
可以通过V$ASM_DISK, V$ASM_DISK_IOSTAT, V$ASM_FILE, 和 V$ASM_TEMPLATE 视图查看IDP的信息。
2.4.3.4.2.1 根据ASM 文件来查看
这里我们通过v$asm_file 查看具体diskgroup上存放文件的primary_gegion 和 mirror_region:
SELECT dg.name AS diskgroup,
       f.file_number,
       f.primary_region,
       f.mirror_region,
       f.hot_reads,
       f.hot_writes,
       f.cold_reads,
       f.cold_writes
  FROM V$ASM_DISKGROUP dg, V$ASM_FILE f
 WHERE dg.group_number = f.group_number AND dg.name = 'DAVE';

2.4.3.4.2.2 根据V$ASM_TEMPLATE 视图来查看
  SELECT dg.name AS diskgroup,
         t.name,
         t.stripe,
         t.redundancy,
         t.primary_region,
         t.mirror_region
    FROM V$ASM_DISKGROUP dg, V$ASM_TEMPLATE t
   WHERE dg.group_number = t.group_number AND dg.name = 'DAVE'
ORDER BY t.name;

2.4.3.4.3 修改IDP 信息
2.4.3.4.3.1 对磁盘组添加或修改template 信息
修改语法:
ALTER DISKGROUP ADD or MODIFY TEMPLATE SQL statements
--先查看某个具体diskgroup 的template 值:
col name for a40
select * from v$asm_attribute where name like 'template%' and group_number=3 order by 1;  --注意group_number要指定要看的磁盘组
这些模板是分别对应不同类型的文件。我们可以在这里修改某个template的属性值,也可以添加。
然后在创建文件的时候指定文件使用模板就可以控制IDP的位置了。
--添加TEMPLATE:
alter diskgroup dave add template datafile_hot
  attribute (
    hot
mirrorhot);
这里可以指定Template格式: hot/mirrorhot 或者 cold/mirrorcold。
--用刚刚创建的模版来建立表空间和文件
create tablespace dave_hot datafile '+dave(datafile_hot)' size 12m; --(datafile_hot)就是刚才创建的模版

--修改TEMPLATE:
--我们这里把默认TEMPLATE 中的DATAFILE 属性给修改了
--修改:
alter diskgroup dave modify template datafile
  attribute (
    hot
  mirrorhot);
我们的修改对已经存在的文件是不会生效的。 除非做rebalance之后,才会改变。

2.4.3.4.3.2 对具体的文件设置IDP 信息
ASMCMD lsof
dave     dave           +dave/dave/datafile/dave.256.844692805

alter diskgroup dave modify file '+dave/dave/datafile/dave.256.844692805'
  attribute (
    hot
mirrorhot);

2.4.3.4 什么是智能数据存放(Intelligent Data Placement)?
2.4.3.5 如何Resize Disks?--windows下比较有用
可以在alter diskgroup中使用resize 来修改disk 的大小,具体如下:
(1) resize diskgroup 中的所有disk
(2) resize 某个特定的disk
(3) resize 某个特定failure group 中的所有disk
如果我们在resize 时没有指定 具体的大小值,那么ORACLE ASM 会使用操作系统返回的大小。 修改之后的size 会写入到ASM disk header。
如果修改的值是增加,那么会立即分配增加的空间。
如果修改的值是减小,那么会立即进行rebalane操作,重新分配extents的空间位置。 如果rebalance 操作成功relocate 所有的extents,那么新的

size 成功,否则rebalance 失败。 但是修改还是成功的,只是rebalance 失败。
2.4.3.3.1 Resize failgroup 中的disk
--查看disk 信息:
select group_number,disk_number,total_mb,name,failgroup,path from v$asm_disk where group_number=3 order by 1;
alter diskgroup dave resize disks in failgroup fg1 size 2000m;
--不指定size选项:
alter diskgroup dave resize disks in failgroup fg1;

2.4.3.3.2 Resize diskgroup 中的某个disk
这里是我们的diskgroup ANQING:
select group_number,disk_number,total_mb,name,failgroup,path from v$asm_disk where group_number=4 order by 1;
这个diskgroup我们没有创建failure group:
alter diskgroup anqing resize disk ANQING_0000 size 2000M;
对磁盘组的所有disk使用磁盘本身大小,即不指定resize:
alter diskgroup anqing resize all;

2.4.3.2.3 对diskgroup 中的所有disk 一起resize
对磁盘组的所有disk使用磁盘本身大小,即不指定resize:
alter diskgroup anqing resize all;
alter diskgroup anqing resize all size 1888M;

2.4.3.5 如何Resize Disks?
alter diskgroup anqing resize all;

2.4.3.6 如何撤销diskgroup 的drop 操作?
那么如果我们误操作了,能不能及时的挽救呢?
ORACLE ASM 提供了挽救的命令: undrop disk。
语法:
alter diskgroup anqing undrop disks;
该命令会取消对disk groups中的disk的drop 操作,这里撤销成功的前提条件:
(1) drop 操作没有完成,如果disk已经drop成功了,就不能undrop了。该命令不能restore 已经drop 的disk,只能取消正在进行的操作。
(2) 如果drop 命令中使用了force 参数,这个undrop 也不能成功。

2.4.3.7 如果手工对diskgroup 进行rebalance 操作?
可以使用alter diskgroup 来手工的启用rebalance,不过一般很少会手工的来进行rebalance。
除非我们需要控制rebalance的速度,因为这个参数设置之后就会对当前的操作产生影响。
如果不需要控制rebalance的速度,用自动rebalance就可以了。
可以在ALTER DISKGROUP…REBALANCE 命令中指定power 控制rebalance的速度。
如果设置为0,则会halt正在进行的rebalance操作,直到隐式或者显式的触发rebalance操作才会继续进行。
power 值越大,rebalance的速度越快,对IO的影响也就越大。
默认的rebalance power值由初始化参数: ASM_POWER_LIMIT 决定。
--手工执行示例:
ALTER DISKGROUP data2 REBALANCE POWER 5 WAIT;
ALTER DISKGROUP data2 REBALANCE POWER 5;    --后台运行
ALTER DISKGROUP data2 REBALANCE POWER 5 WAIT 后再按crcl+c就变成后台执行。


2.4.4 如何基于性能和扩展性规划Disk Group?
2.4.4.1  如何决定Disk Group的数量?
可以根据如下的标准来决定创建多少个disk group:
1). 每个磁盘组里的磁盘应该大小一致,不能有太大差距,比如一个100G,一个200G,并且性能要一致,比如都是15k转速的。
如果我们的磁盘不满足这种需求,那么就把大小和性能差不多的放到一起,创建一个组。 这样可能就需要创建多个组。
2).对database files 和 fast recovery area 分别创建不同的diskgroup。 一般来说我们也可以把备份文件存放到FRA里。
所以Oracle 建议我们不要创建太多的diskgroup,2组就够了,一组DATA,一组FRA.  --12C的趋势是做一个磁盘组

2.4.4.2  如何规划Group Disks 的性能问题
Oracle ASM 的负载均衡是通过把文件均衡的分布在diskgroup上的所有的磁盘上来实现的。  因此也就要求我们的diskgroup 内的磁盘具有相似的性

能。
比如我们把最新,最快的磁盘放到同一个disk group里,存放数据文件,然后慢一点的磁盘放到一组,用做fast recovery area。
1.数据迁移
比如我们要把数据库从一个存储迁移到另一个存储。 对业务影响最小的,就是用ASM来操作,直接把新存储的disks 加到我们的旧的disk group里。

等rebalance 操作完成之后,在把原来的disk drop掉,就完成了数据迁移。 这个是零停机的。
2.更换新硬盘
可能以前硬盘容量下,磁盘转速低,我们加新硬盘,也要加上去,在rebalance,最后把旧的drop掉。

2.4.4.3  Oracle ASM 存储的限制问题
Oracle ASM 提供了几乎可以无限增常的空间,因为我们不断去添加disk,但所有的存储都是有大小限制。
ORACLE ASM  在磁盘组,磁盘和文件的限制如下:
(1)最多63个disk groups
(2)最多10000个ASM disks
(3)每个disk group里最多1百万个文件。
非Exadata 存储的情况下,ASM 存储大小限制:
(1)支持的每个ASM disk 最大容量是2 TB。
(2)整个ASM存储系统最大支持的空间是20 PB。
如果使用Oracle Exadata 的存储,那么Oracle ASM 存储限制如下:
(1) 每个ASM disk 支持的最大容量是4PB。
(2) 整个ASM 存储系统支持的最大容量是40 EB。

在disk group的COMPATIBLE.RDBMS参数值大于10.1 的情况下, ASM 的任何冗余,如External,Normal,High, 支持的file 总大小超过128TB。
如果磁盘组的COMPATIBLE.RDBMS等于10.1,那么file 总大小限制就会改变。
假设COMPATIBLE.RDBMS=10.1,AU SIZE=1M。 那么ASM file 限制如下:
(1) External redundancy: 16 TB
(2) Normal redundancy: 3.8 TB
(3) High redundancy: 3.9 TB

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值