1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > oracle asm 缺省用户 oracle asm自动存储使用及管理说明(下)

oracle asm 缺省用户 oracle asm自动存储使用及管理说明(下)

时间:2023-04-07 04:00:19

相关推荐

oracle asm 缺省用户 oracle asm自动存储使用及管理说明(下)

接上篇: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;

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。