接上篇:oracle asm自动存储使用及管理说明(上)

六、文件及tempate

1、数据文件命名含义

SQL> select file_name from dba_data_files;

FILE_NAME

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

+ASM_DISKGROUP/ora10g/datafile/system.259.712716453

+DG1/ora10g/datafile/undotbs1.259.712716475

+ASM_DISKGROUP/ora10g/datafile/sysaux.260.712716487

+ASM_DISKGROUP/ora10g/datafile/users.261.712716503

格式说明:

+DATA/yoda/datafile/tbs_name.asm_filenumber.incarnation_number

+DATA: diskgroup名

yoda: 该数据库名

datafile: 文件类型,表示是数据文件

tbs_name: 表空间名

asm file#: 表示ASM file编号,$asm_file.file_number

incarnation number:  从时间戳提取,唯一值  。

2、在ASM实例中查询文件编号和大小

$export ORACLE_SID=+ASM

SQL>sqlplus '/as sysdba'

SQL> select file_number, bytes/1024/1024 from v$asm_file;

FILE_NUMBER        BYTES/1024/1024

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

259                      500.007813

260                      340.007813

261                      5.0078125

259                      340.007813

所查询到的值,与dba_data_files相匹配。

3、数据文件的模板(template)管理

查看数据文件属性

SQL>select name, redundancy, striped

from v$asm_alias a, v$asm_file b

where a.file_number = b.file_number

and  a.group_number = b.group_number

order by name;

NAME                                                        REDUND     STRIPE

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

Current.256.712716441                            HIGH           FINE

Current.257.712716441                            HIGH           FINE

Current.258.712716441                            HIGH           FINE

SYSAUX.260.712716487                          MIRROR      COARSE

SYSTEM.259.712716453                          MIRROR      COARSE

TEMP.260.712716493                               UNPROT     COARSE

UNDOTBS1.259.712716475                    UNPROT     COARSE

USERS.261.712716503                            MIRROR      COARSE

control01.ctl                                                  HIGH            FINE

control02.ctl                                                  HIGH            FINE

control03.ctl                                                  HIGH            FINE

group_1.256.712716443                          UNPROT      FINE

group_2.257.712716445                          UNPROT      FINE

group_3.258.712716447                          UNPROT      FINE

redo01.log                                                    UNPROT      FINE

redo02.log                                                    UNPROT      FINE

redo03.log                                                    UNPROT      FINE

spfile.262.712718229                                MIRROR      COARSE

spfileora10g.ora                                          MIRROR      COARSE

系统管理人员能改变系统缺省 template, 但不能删除该删除,管理员能增加自己的template,然后在该模板上创建数据文件。

SQL> alter diskgroup dg1 add template noncritical_files attributes (unprotected);

SQL> create tablespace test datafile '+DG1/test.dbf(noncritical_files)' size 100M;

更改template属性

SQL>alter diskgroup dg1 alter template noncritical_files attributes (coarse);

删除template

SQL> alter diskgroup dg1 drop template noncritical_files;

以下是ASM 缺省template信息

文件类型                              缺省模板                缺省条带化

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

archived redo logs       ARCHIVELOG             coarse

control files                   CONTROLFILE            fine

control files autobackup AUTOBACK              coarse

datafile                            DATAFILE                    coarse

datafile backup piece   BACKUPSET              coarse

DataGuard broker

configuration                  DATAGUARDCONFIG coarse

datapump Dumpset     DUMPSET                    coarse

flashback logs               FLASHBACK                fine

Online Redo Logs         ONLINELOG                fine

spfile                                PARAMETERFILE        coarse

tempfiles                         TEMPFILE                      coarse

查看ASM template

SQL>select * from v$asm_template;

七、asm命令使用

1、进入ASMCMD

$asmcmd -p    /* -p: 提示符显示当前的目录 */

2、列出目录信息

ASMCMD [+] > ls

ASMCMD [+] > ls -al

3、别名

ASMCMD [+ASM_DISKGROUP/ORA10G/DATAFILE] > ls -al

Type             Redund         Striped         Time        Sys  Name

DATAFILE   MIRROR      COARSE   MAR 16 08:00:00  Y   none => SYSAUX.260.712716487

DATAFILE   MIRROR     COARSE   MAR 10 18:00:00  Y   none => SYSTEM.259.712716453

DATAFILE   MIRROR      COARSE   MAR 10 18:00:00  Y   none => USERS.261.712716503

ASMCMD>mkalias SYSAUX.260.712716487 SYSAUX.dbf

ASMCMD>mkalias SYSTEM.259.712716453 SYSTEM.dbf

ASMCMD>mkalias USERS.261.712716503 USER.dbf

ASMCMD [+ASM_DISKGROUP/ORA10G/DATAFILE] > ls -al

Type         Redund      Striped         Time        Sys  Name

DATAFILE MIRROR COARSE MAR16 08:00:00 YSYSAUX.dbf => SYSAUX.260.712716487

DATAFILE MIRROR COARSE MAR10 18:00:00 YSYSTEM.dbf => SYSTEM.259.712716453

DATAFILE MIRROR COARSE MAR10 18:00:00 Y USER.dbf=> USERS.261.712716503

4、查看空间

ASMCMD>du

ASMCMD> lsdg

5、显示ASM和数据库实例连接情况

ASMCMD>lsct

DB_Name   Status         Software_Version  Compatible_version  Instance_Name

ora10g    CONNECTED       10.2.0.4.0          10.2.0.3.0                        ora10g

ora10g    CONNECTED       10.2.0.4.0          10.2.0.3.0                        ora10g

6、当文件关闭时候,可以使用rm 删除ASM文件

ASMCMD>rm 文件名

7、查找文件

ASMCMD> find +dg1 undo*

8、拷贝文件

ASMCMD> cp /tmp/control.ctl +datadg/mytest1/control01.ctl

八、asm文件迁移

--非ASM数据文件转发成ASM步骤:

1、创建测试表空间

SQL>create tablespace test datafile '/home/oracle/test.dbf' size 20M;

2、使用RMAN,将数据文件offline

SQL>rman target system/password

RMAN>sql 'alter tablespace test offline';

3、使用backup as copy命令迁移

RMAN>backup as copy tablespace 'TEST' format 'ASM_DISKGROUP';

4、切换表空间

RMAN>switch tablespace 'TEST' to copy;

5、将表空间online

RMAN>sql 'alter tablespace test online';

6、查看表空间信息

select file_name from dba_data_files where tablespace_name='TEST';

--将数据文件从一个diskgroup迁移到另一个diskgroup

1、查看需要迁移的数据文件#

SQL> select file_id from dba_data_files where TABLESPACE_NAME='TEST';

FILE_ID

----------

5

2、备份数据文件

RMAN> sql 'alter tablespace test offline';

RMAN>backup device type disk as copy datafile 5 format '+DG1';

3、切换

RMAN>switch datafile 5 to copy;

RMAN>recover datafile 5;

4、启动

RMAN>sql 'alter tablespace test online';

--将ASM文件转发成OS文件(除RMAN外的另一种方法)

1、查看数据文件

SQL> select file_name from dba_data_files

where tablespace_name='TEST';

FILE_NAME

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

+DG1/ora10g/datafile/test.261.713925727

2、将表空间offline

SQL>alter tablespace test offline;

3、创建ASM目录

SQL> create directory asmsrc as '+DG1/ora10g/datafile';

SQL> create directory osdesc as '/home/oracle';

4、执行转化

SQL> begin

dbms_file_transfer.copy_file('ASMSRC',

'TEST.261.713925727',

'OSDESC',

'TEST.DBF');

END;

/

5、将数据文件rename

SQL> alter database rename file

'+DG1/ora10g/datafile/test.261.713925727'

to '/home/oracle/TEST.DBF';

6、恢复数据文件

SQL> recover datafile 5;

7、将表空间online,并查看数据文件

SQL> alter tablespace test online;

SQL> select file_name from dba_data_files

where tablespace_name='TEST';

8、进入ASMCMD,将test.261.713925727删除

ASMCMD>rm test.261.713925727

九、asm操作原理

--数据库针对ASM文件操作原理

1、ASM文件创建步骤:

a)10g版本,数据库启动前台进程连接ASM实例中的NFG进程,11g版本,数据库进程池(o0nn进程)连接NFG进程,然后发送文件创建请求,请求中包含以下信息:diskgroup name,文件类型,文件块大小,文件大小,文件标签,还可包含templates名,别名。

b)ASM发送extent map给数据库实例,ASM创建COD(Continuing Operation Directory)记录来跟踪文件的创建。

c)数据库实例初始化文件,选择适宜的I/O,初始化完成,发送并提交创建完成信息给ASM。

d)ASM收到信息后,其进程LGWR将更新ACD(Active Change Directory)记录,DBWR进程将相关的分配表,文件目录,别名目录记录异步写到磁盘

e)如果创建过程中异常中断,ASM实例利用COD回滚文件的创建,回滚中相应删除ACD中相关记录。

2、ASM文件open

a)数据库通过进程(o0nn)发送请求打开的文件名.

b)ASM提取文件目录得到该文件的extent map信息回复给数据库实例。10g版本,ASM回复整个数据文件中的extent map,11g,初始化仅发送60个direct extents,其余的extents,存放在indirect extents,根据数据库实例具体请求而发送相应的extents。

c)打开spfile文件,是采用不同的打开方式,在数据库启动过程中,通过ASMB进程来处理。

d)ASM跟踪所有数据库实例打开的文件,阻止打开文件的删除,协同extent的分配

3、文件I/O

数据库实例通过文件打开过程中获取的extent map,直接对ASM disk进行读写操作

4、文件关闭

a)数据库实例发送信息给ASM实例

b)ASM清除文件内部状态,关闭文件不需要反馈信息给ASM实例

5、文件删除

a)发送请求给ASM实例。

b)ASM实例创建COD记录文件删除过程

c)将分配表记录标记为空闲,释放文件目录记录,删除相关别名目录信息。如果删除过程中失败,COD负责回滚删除动作。

--ASM文件分配

1、extents大小分配原则

a)如果diskgroup中的compatible.rdbms版本在11.1以下,所有的extents分配1AU。

b)如果是11.1版本及以上,文件中头20000 extents分配1AU,下一个20000 extents是8AU,40000以上的extents分配8AU。

2、ASM条带化(略)

3、ASM Redundancy

a)ASM是以extent进行镜像

b)将不同的电源、HBA或控制卡组成不同的failure group,保证磁盘的丢失,至少还有一个extent 备份。

4、disk partners

a)extents备份存放在disk partners,disk partnership是相同diskgroup,不同failure groups的两个磁盘

b)parnership信息存放在PST(Parnership Status Table)中,用户不能指定使用哪个partner,而是ASM基于failure group定义自动选择

c)diskgroup配置的改变,disk partnership也可能发生改变,PST跟踪先前的parnership直至rebanlance 完成。

d)因为PST空间限制,为更有效对diskgroup重配置,最好是批量进行,以避免频繁diskgroup 重配置导致PST空间不足,导致ORA-15074 错误。

5、ASM镜像文件I/O读写

ASM并行写所有镜像的extents,从primary extent读。

a)读错误:

--如果不能获取任何extent,则dismount磁盘组,如果不能从某个磁盘获取extents,则将该磁盘offline;

--在10g版本中,对整个盘读错误和某个扇区读错误,认为是一样的,将disk offline;而11g中如果是扇区错误,将触发数据库或ASM实例重新映射该扇区,ASM读取好的extent镜像数据,恢复读错误的extent,如果成功认为正常,如果不成功,将把extent写到报读错误盘上的其他位置,如果写成功,则将读错误extent标记为不可用,如果还是写失败,则将整个disk offline,该过程会体现在alert.log中。

b)写错误:

--数据库碰到写错误,将发送disk offline信息给ASM实例,如果数据库能够写入其中一个extent并从ASM实例接受到disk offline,则认为写成功,如果所有对extent的写都失败,则将采取适当行动,如表空间offline;

--ASM接受到信息后,查看PST看是否其他disk partner也offline,如果太多disk partner offline,则将diskgroup强制dismount,或者把相应的disk offline。

-- Disk offline是影响全局操作,ASM实例将发送消息给集群中其他ASM实例以及数据库实例,在10g版本中(或compatible.rdbms <11.1),ASM立即强制删除磁盘,但在11g(或compatible.rdbms >=11.1),磁盘不会立刻强制删除,要等到管理员执行online命令或者DISK_REPAIR_TIME计时器过期。

c)镜像过程中错误处理:

-- 在并行写过程中,如果发生进程中断或者节点宕机,有可能一个extent写完成,另一个没有写完成,mirror resilvering能够确保其数据一致;

--确保手段是先检查数据块是否损坏,如果镜像的数据块其中一个损坏,则检查并找出有效数据块版本,使用该数据块进行修复操作。数据块版本可以用SCN来进行判断。

6、Rebanlance (略)

7、Resync操作

当disk从offline变成online时候,将进行重新同步操作(Resync),只同步该磁盘offline期间,extents发生改变部分,具体实现机制如下:

--每个offline 盘ASM初始化SR(Saleness Registry) slot 给数据库和ASM实例,slot中的每位表示offline disk中的一个AU,当对该offline disk写extent失败,对应设置slot的相应的位。

--当disk online时候,数据库和ASM实例停止对SR slot设置,ASM重建磁盘的AT(分配表)和空闲空间表,通过与SR位图的比较,恢复对应extent,当完成上述动作后,将去除SR slot。

8、Relocation操作

在ASM diskgroup中,将一个extent从一个位置移到另一个位置,通常是在resync操作和坏数据块重映射上,他的操作是以extent为基础,具体机制如下:

--ASM先校验是否文件被实例打开,如果没有,ASM就直接relocate该文件,不需要发送信息给实例,读源盘extent内容,写到目标盘对应地方。

--如果文件是打开,则发送消息给所有集群中ASM实例,表明将relocate extent,数据库实例将延迟任何写操作,直至新的extent可用。

十、其它操作

1、mount diskgroup

SQL>alter diskgroup dskgrp_name mount;

11g版本,mount restricted 使用于新的快速rebanlance特性

SQL>alter diskgroup dskgrp_name mount restricted;

如果部分disk发生offline,使用force强制mount磁盘组

SQL>alter diskgroup dskgrp_name mount force;

2、Diskmount diskgroup

SQL>alter diskgroup dskgrp_name dismount;

添加diskgroup 模板

SQL>alter diskgroup dskgrp_name add template file_noprot (fine unprotected)

3、添加/删除ASM磁盘到diskgroup

SQL>alter diskgroup dskgrp_name add disk '/dev/raw/raw6';

SQL>alter diskgroup dskgrp_name add disk '/dev/raw/raw6' wait;

DBA选用该选项表示在rebalnace完全完成之后才使用新添磁盘空间

SQL>alter diskgroup dskgrp_name drop;

4、校验diskgroup一致性

该命令校验数据的一致性,不对表空间头文件和表数据内容进行校验,11g增加校验alias和template

SQL>alter diskgroup dskgrp_name check;

SQL>alter diskgroup dskgrp_name check repair;

5、更改rebanlance power level

SQL>alter diskgroup dskgrp_name rebanlance power 11;

6、删除diskgroup

SQL>drop diskgroup dskgrp_name including contents;

SQL>drop diskgroup dskgrp_name;

SQL>drop diskgroup dskgrp_name force including contents;

oracle asm 缺省用户,oracle asm自动存储使用及管理说明(下)相关推荐

  1. oracle同一个库不同用户,oracle同一个库上面,不同用户相互赋予权限

    用法: 有两个用户:user1和user2,都是在库TEST上,分别有表user1.table1,user2.table2 但是用user1登录的时候,user2上表就不能用,此时就可以使用grant ...

  2. oracle怎样创建scott用户,oracle 手工创建Scott用户

    oracle 手工创建Scott用户 1.登录数据库 sqlplus / as sysdba 2.创建scott用户 create user scott identified by tiger; 3. ...

  3. oracle怎么创建登录用户,Oracle学习第一课(登录oracle和创建用户)

    博客10:housen1987 housen1987.iteye.com/blog/1345496 [学习是螺旋上升的过程,由易到难,由少到多,由点到面,每一个步骤,每一个脚印,每一个见闻,每一个错误 ...

  4. oracle里的超级用户,Oracle中超级用户权限的管理

    Oracle 的用户根据所被授予的权限分为系统权限和对象权限.其中最高的权限是sysdba. Sysdba具有控制Oracle一切行为的特权,诸如创建.启动.关闭.恢复数据库,使数据库归档/非归档,备 ...

  5. oracle中没有ctxsys用户,Oracle自带全文索引

    使用场景: 当需要在大量文章中通过关键字搜索文章时,Oracle自带的全文索引对于提高搜索性能非常有帮助,并且使用也很方便. 使用前的准备工作: 1.先查看oracle是否自带有ctxsys用户,如果 ...

  6. oracle表空间更改用户,ORACLE创建表空间、创建用户、更改用户默认表空间以及授权、查看权限...

    ----创建表空间---- CREATE TABLESPACE UCITDB_data LOGGING DATAFILE '/home/app/oracle/app/oracle/oradata/UC ...

  7. oracle如何查看数据安全用户,oracle用户安全管理

    oracle的用户安全 作为dba一定要保证数据库的安全,备份是要时刻准备的,个人觉得数据库就好比一个座楼 ,要想最好的的保护楼,,最好是整个楼没有窗户和门等入口,我可以限制进入大楼的人, 对可以进入 ...

  8. oracle如何查看实例用户,oracle 如何显示当前执行的用户和操作实例

    今天参加了OCP的培训听老师讲了一个关于oracle的小技巧,感觉还是很有用的就记录下来. 这个在官网文档里面也有大家感兴趣也可以去查看一下,官网文件里面是精确到时间的. 在我们日常工作中使用sqlp ...

  9. oracle 查看过程的用户,Oracle 查看 用户拥有权限的过程

    Oracle 查看 用户拥有权限的过程 发布时间:2020-07-19 21:51:47 来源:51CTO 阅读:418 作者:ubuntuo create or replace procedure ...

最新文章

  1. 使用alterMIME实现添加message footer功能
  2. linux内核md5,浅谈MD5及简单使用
  3. c++/cli中调用C#类库中的out参数
  4. 2021牛客多校4 - Rebuild Tree(树形dp)
  5. idea mysql错误提示_idea提示错误:java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
  6. 20-10-020-安装-KyLin-2.1.3单机版安装(MAC)
  7. 世界范围内糖化血红蛋白报告的3种建议形式
  8. Unity屏幕坐标转UI坐标
  9. React和Vue的模块化
  10. 前四史 —— 《后汉书》
  11. php h5视频录制上传,基于koa的h5视频录制异步上传
  12. 玩转 ESP32 + Arduino (十八) 采用SIM800L发送短信和定位(基础知识)
  13. 碳足迹计算2021-02-06
  14. 奇迹,是为了信念牺牲一切(高策)
  15. B站视频、音频分开传输
  16. 配置Appium会话---capability配置信息
  17. 第7章页面布局-布局综合示例
  18. linux之getcwd函数解析,如何在Linux 中使用getcwd()函数
  19. 贴片电解电容47UF16V 6.3*4.5
  20. 转载:性格与健康(刘善人)之二

热门文章

  1. php qq登陆网站实例代码,QQ登陆网站实例代码
  2. 2018-2019-1 20189215 书籍速读
  3. 特斯拉充电电流设置多大_特斯拉再次升级Model S 充电状况不稳时自动降低电流...
  4. 帕德逼近matlab算法,一种基于帕德逼近的通信误差函数逼近方法与流程
  5. 游戏化方式学习Git指令
  6. 新人成长:实习一个月感悟
  7. mysql插入记录时违反唯一索引的处理
  8. 微信小程序|飞翔的圣诞老人
  9. Element ui 组件中用键盘事件
  10. [Unity]Optimize Your Mobile Game Performance中文版