天天看點

ORACLE ASM 存儲磁盤管理

-- oracle asm 自動存儲管理

-- 1、磁盤組的建立與删除

sqlplus / as sysasm

create diskgroup data normal redundancy failgroup f1 disk

'/dev/data1',

'/dev/data2',

failgroup f2 disk

'/dev/data3',

'/dev/data4';

删除磁盤組:

alter drop diskgroup data dismount;

drop diskgroup data;

如果磁盤組中還包含檔案,那麼上述指令将執行失效。則需要在删除磁盤組指令中指定 including contents 語句

drop diskgroup data including contents;

-- 2、磁盤的添加與删除

添加磁盤:

alter diskgroup data add disk '/dev/data5' name ds5, '/dev/data6' name ds6;

删除磁盤:

alter diskgroup data drop disk ds5;

删除失敗組 f2 中的所有磁盤:

alter diskgroup data drop disks in failgroup f2;

取消還未完成的删除操作:

alter diskgroup data undrop disks;

-- 3、查詢磁盤組相關資訊

select name,state,type,total_mb,free_mb from v$asm_diskgroup;

select group_number,path,state,total_mb,free_mb from v$asm_disk;

select group_number,instance_name,db_name,status from v$asm_client;

-- 4、磁盤重平衡

平衡級别 0-11(0停止重平衡,11最快重平衡)平衡預設級别由初始化參數 asm_power_limit 限制

alter diskgroup data rebalance power 3;

alter diskgroup data rebalance power 3 wait;

-- 5、磁盤組的挂載和解除安裝

alter diskgroup data(all) mount;

alter diskgroup data(all) dismount force;

-- 6、磁盤組中檔案和目錄的管理

在asm磁盤組中建立目錄

alter diskgroup data add directory '+data/d1';

alter diskgroup data rename directory '+data/d1' to '+data/d2';

alter diskgroup data drop directory '+data/d2' force;

alter diskgroup data add alias '+data/d2/tmp01.dbf' for '+/data/orcl/datafile/tmp01.421.3';

alter diskgroup data rename alias '+data/d2/tmp01.dbf' to '+data/d2/tmp01_1.dbf';

alter diskgroup data delete alias '+data/d2/tmp01_1.dbf';

-- 7、自動檔案管理功能 omf

使用oracle自動檔案管理時,需要設定如下參數:

db_create_file_dest

db_create_online_log_dest_n

db_recovery_file_dest

-- 8、建立omf資料庫 不指定local則為字典管理:

db_create_file_dest = '+data'

db_create_online_log_dest_1 = '+data'

db_create_online_log_dest_2 = '+data'

create database test_db extent management local;

如指定參數建立資料庫:

create database test_db

datafile size 500m autoextend on next 20m

sysaux datafile size 200m autoextend on next 20m

undo tablespace uts1 datafile size 20m autoextend on next 10m

default temporary tablespace temp tempfile size 50m;

-- 9、建立omf表空間(oracle managed files)

alter system set db_create_file_dest = '+data';

create tablespace tbs datafile size 200m maxsize 30g autoextend on;:

alter tablespace tbs add datafile size 200m autoextend on next 2m maxsize 30g;

select file_name,tablespace_name from dba_data_files;

-- 10、建立omf重做日志檔案

db_create_online_log_dest_2 = '+fra'

alter database add logfile size 50m;

select * from v$logfile;

-- 11、存儲歸檔日志

歸檔日志存儲位置由初始化參數 log_archive_dest_n 決定 (n->1-31),名稱由 log_archive_format 指定。

-- 12、asmcmd 指令的用法

asmcmd> startup --nomount --pfile asm_init.ora

shutdown

shutdown --abort

lspwusr 

orapwusr 

orapwusr --add --privilege sysasm usr

sqlplus usr/123456 as sysasm

select * from v$pwfile_users;

orapwusr --modify --password usr

orapwusr --delete usr

asm 參數管理:

asmcmd> spget

spset +data/asm/asmparameterfile/asmspfile.ora

spbackup +data/asm/asmparameterfile/asmspfile.ora /u01/backuppfile.ora 

spcopy -u /u01/backuppfile.ora +data/backuppfile.ora

spmove  /u01/backuppfile.ora +data/testspfileasm.ora

管理磁盤組:

lsdg data --檢視磁盤組資訊(==v$asm_diskgroup)

lsdsk -g data --檢視磁盤組中的磁盤 (v$asm_disk v$asm_disk_stat)

lsdsk --statistics -g data         --獲得磁盤組中所有磁盤的i/o資訊

lsdsk --candidate -p  --擷取系統中的候選磁盤(不屬于任何磁盤組的磁盤)

lsod --檢視磁盤組中被打開的磁盤

使用方式如下:

lsod -g data --process lgwr --檢視lgwr背景程序正在通路的磁盤

lsod --process lgwr disk --檢視lgwr背景程序正在通路并且名稱中包含字元 disk 的磁盤。

lsattr -l -g data --檢視磁盤組的屬性資訊

setattr --用于修改磁盤組屬性值

setattr -g data compatible.rdbms 11.2.0.0.0

磁盤組的建立與删除:

asmcmd> mkdg /u01/app/data.xml

mkdg '<dg name="data"><dsk string="/dev/sdb[4-5]"/></dg>'

dropdg -r -f data

磁盤組的解除安裝與挂載:

mount -a

mount data

umount -a

umount data

使磁盤組脫機:-t 參數可以指定脫機時間

offline -g data -d data_0001 -t 2h

使磁盤組聯機:

online -g data -a

online -g data -d data_0001

磁盤重平衡:

rebal --power 4 data -w

lsop  --檢視磁盤組上正在運作的操作

下面指令擷取磁盤組data中各個磁盤的讀寫資料量、所用時間、發生錯誤次數、讀寫次數:

iostat -g data

iostat -t -g data

iostat -e -g data

iostat --io -g data

通過asmcmd管理磁盤組中的檔案:

find +data ttmp0121.dbf --用于在磁盤組中查找檔案

find --type controlfile +data/orcl *          --查找類型為controlfile 的所有檔案

lsof -g data --檢視磁盤組data中被打開的檔案

lsof -c orcl1 --檢視所有被orcl1執行個體打開的檔案

lsof --dbname orcl --檢視屬于資料庫orcl的被打開的問件

-- 13、acfs檔案系統管理:

在advm(asm dynamic volume manager)中建立acfs檔案系統:

#/u01/app/grid/bin scfsload start

volcreate -g data -s 500m v1

volinfo -a

volinfo -g data v1

volinfo -g data -a

volinfo --show_diskgroup /dev/asm/v1_303

volinfo --show_volume /dev/asm/v1_303

volresize -g data -s 1000m v1

voldisable -a

voldisable -g data -a

voldisable -g data v1

volenable -a

volenable -g data -a

volenable-g data v1

voldelete -g data v1

select volume_name,volume_device from v$asm_volume where volume_name='v1';

sql>alter diskgroup oradg enable volume 'v1';

$/sbin/mkfs -t acfs /dev/asm/v1-123

#/bin/mount -t acfs /dev/asm/v1-123 /u01/app/grid/myacfs

$/sbin/acfsutil registry -a /dev/asm/v1-123 /u01/app/grid/myacfs

$/sbin/acfsutil registry -d  /u01/app/grid/myacfs

#/bin/umount  /u01/app/grid/myacfs

$/sbin/acfsutil rmfs /dev/asm/v1-123

-- 14、acfsutil 工具的用法

$ asmcmd volinfo -g data -a  

$ asmcmd lsdg  

$/sbin/acfsutil size 30g /u01/app/grid/myacfs          --把檔案系統擴充到30gb

$/sbin/acfsutil size +500m /u01/app/grid/myacfs --把檔案系統擴充500m的存儲空間

$/sbin/acfsutil size -500m /u01/app/grid/myacfs         --把檔案系統減小500m的存儲空間

$/sbin/acfsutil registry -a  /dev/asm/v1-123 /u01/app/grid/myacfs  --對檔案系統進行注冊,使其随叢集啟動而啟動

$/sbin/acfsutil registry -d  /u01/app/grid/myacfs  --删除注冊資訊

$/sbin/acfsutil registry -m  /dev/asm/v1-123    --檢視檔案系統挂接在那個目錄下

$/sbin/acfsutil info fs /u01/app/grid/myacfs    --檢視檔案系統的詳細資訊

$/sbin/acfsutil info info /u01/app/grid/myacfs            --檢視詳細資訊

$/sbin/acfsutil rmfs /dev/asm/v1-123 --删除卷上的檔案系統

注意:該檔案系統删除後檔案并沒有真正删除,檔案系統所在卷也沒有被删除,隻要該卷沒有再次建立檔案系統并使用,以前檔案系統的資料可以通過 fsck 指令進行恢複。

-- 15、磁盤狀态

member -- 屬于目前diskgroup的disk

former -- 這個disk以前屬于一個diskgroup,現在這個diskgroup被删除了

candidate -- 當使用裸裝置,一個新的可以被diskgroup所用的disk

provisioned-- 當使用asmlib,一個新的可以被diskgroup所用的disk

-- 16、磁盤組狀态

•connected - disk group is in use by the database instance

•broken         - database instance lost connectivity to the automatic storage management instance that mounted the disk group

•unknown         - automatic storage management instance has never atttmp01ted to mount the disk group

•dismounted       - disk group was cleanly dismounted by the automatic storage management instance following a successful mount

•mounted         - instance is successfully serving the disk group to its database clients

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

•connected         -- 資料庫執行個體正在使用磁盤組

•broken -- 資料庫執行個體失去了與挂載磁盤組的自動存儲管理執行個體的連接配接

•unknown         -- 自動存儲管理執行個體從未嘗試挂載磁盤組

•dismounted -- 成功挂載之後,自動存儲管理執行個體幹淨地解除安裝了磁盤組

•mounted         -- 執行個體正在成功地将磁盤組服務于其資料庫用戶端