今天是2014-03-13,學習一下acfs基本知識。
oracle acfs 簡介:
Oracle Automatic Storage Management Cluster File System (Oracle ACFS) is a multi-platform, scalable file system, and storage management technology that extends Oracle Automatic Storage Management (Oracle ASM) functionality to support customer files maintained
outside of Oracle Database. Oracle ACFS supports many database and application files, including executables, database trace files, database alert logs, application reports, BFILEs, and configuration files. Other supported files are video, audio, text, images,
engineering drawings, and other general-purpose application file data.
一、創建acfs文件系統:
1)創建acfs文件系統的前提要求是:
數據庫版本為11G R2,已經安裝了gi和asm實例且存在磁盤組,磁盤組的屬性compatible.asm 是11.2之上,另外compatible.advm為11.2之上
2)創建邏輯卷
在創建acfs文件系統之前需要先創建動態卷(advm),注意在創建動態卷之前必須要加載acfs 文件系統驅動,否則會報錯。如果啟動acfs volume driver需要使用root權限進行啟動。啟動之後即可創建卷組。
eg:
SQL> alter diskgroup datagroup2 add volume acfsvol0 size 512M; alter diskgroup datagroup2 add volume acfsvol0 size 512M * ERROR at line 1: ORA-15032: not all alterations performed ORA-15477: cannot communicate with the volume driver SQL> exit Disconnected from Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production With the Automatic Storage Management option -bash-4.1$ cd $ORACLE_HOME -bash-4.1$ cd bin/ -bash-4.1$ ./acfsload start ACFS-9130: Root access required [root@oracle-one ~]# /ginf/grid/product/11.2.0/grid_1/bin/acfsload start ACFS-9391: Checking for existing ADVM/ACFS installation. ACFS-9392: Validating ADVM/ACFS installation files for operating system. ACFS-9393: Verifying ASM Administrator setup. ACFS-9308: Loading installed ADVM/ACFS drivers. ACFS-9154: Loading 'oracleoks.ko' driver. ACFS-9154: Loading 'oracleadvm.ko' driver. ACFS-9154: Loading 'oracleacfs.ko' driver. ACFS-9327: Verifying ADVM/ACFS devices. ACFS-9156: Detecting control device '/dev/asm/.asm_ctl_spec'. ACFS-9156: Detecting control device '/dev/ofsctl'. ACFS-9322: completed [root@oracle-one ~]# -bash-4.1$ sqlplus / as sysasm SQL*Plus: Release 11.2.0.4.0 Production on Thu Mar 13 15:05:24 2014 Copyright (c) 1982, 2013, Oracle. All rights reserved. Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production With the Automatic Storage Management option SQL> alter diskgroup datagroup2 add volume acfsvol0 size 512M; Diskgroup altered. SQL> exit Disconnected from Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production With the Automatic Storage Management option -bash-4.1$ asmcmd -p ASMCMD [+] > volcreate -G datagroup2 -s 512M acfsvol1 ASMCMD [+] > volinfo -G datagroup2 -a Diskgroup Name: DATAGROUP2 Volume Name: ACFSVOL0 Volume Device: /dev/asm/acfsvol0-142 State: ENABLED Size (MB): 512 Resize Unit (MB): 32 Redundancy: MIRROR Stripe Columns: 4 Stripe Width (K): 128 Usage: Mountpath: Volume Name: ACFSVOL1 Volume Device: /dev/asm/acfsvol1-142 State: ENABLED Size (MB): 512 Resize Unit (MB): 32 Redundancy: MIRROR Stripe Columns: 4 Stripe Width (K): 128 Usage: Mountpath: ASMCMD [+] >
查看卷組信息:
SQL> set linesize 200 SQL> col volume_device for a50 SQL> col volume_name for a40 SQL> select volume_name,size_mb,state,volume_device from v$asm_volume; VOLUME_NAME SIZE_MB STATE VOLUME_DEVICE ---------------------------------------- ---------- -------- -------------------------------------------------- ACFSVOL1 512 ENABLED /dev/asm/acfsvol1-142 ACFSVOL0 512 ENABLED /dev/asm/acfsvol0-142 SQL>
3)格式化文件系統為acfs
eg:
[root@oracle-one ~]# /sbin/mkfs -t acfs -n acfsvol0 /dev/asm/acfsvol0-142 mkfs.acfs: version = 11.2.0.4.0 mkfs.acfs: on-disk version = 39.0 mkfs.acfs: volume = /dev/asm/acfsvol0-142 mkfs.acfs: volume size = 536870912 mkfs.acfs: Format complete. [root@oracle-one ~]# /sbin/mkfs -t acfs -n acfsvol1 /dev/asm/acfsvol1-142 mkfs.acfs: version = 11.2.0.4.0 mkfs.acfs: on-disk version = 39.0 mkfs.acfs: volume = /dev/asm/acfsvol1-142 mkfs.acfs: volume size = 536870912 mkfs.acfs: Format complete. [root@oracle-one ~]#
4)注冊acfs文件系統信息;
[root@oracle-one ~]# mkdir -p /ginf/grid/acfs acfssystem/ acfsvolume/ [root@oracle-one ~]# mkdir -p /ginf/grid/acfssystem/acfsvol0 You have new mail in /var/spool/mail/root [root@oracle-one ~]# mkdir -p /ginf/grid/acfssystem/acfsvol1 [root@oracle-one ~]# /sbin/acfsutil registry -a -f /dev/asm/acfsvol0-142 /ginf/grid/acfssystem/acfsvol0 acfsutil registry: mount point /ginf/grid/acfssystem/acfsvol0 successfully added to Oracle Registry [root@oracle-one ~]# /sbin/acfsutil registry -a -f /dev/asm/acfsvol1-142 /ginf/grid/acfssystem/acfsvol1 acfsutil registry: mount point /ginf/grid/acfssystem/acfsvol1 successfully added to Oracle Registry [root@oracle-one ~]#
5)掛在acfs文件信息:
[root@oracle-one ~]# mount.acfs -o all [root@oracle-one ~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/mapper/vg_oracleone-lv_root 5.0G 3.9G 876M 82% / tmpfs 1.0G 83M 942M 9% /dev/shm /dev/sda1 485M 55M 405M 12% /boot /dev/mapper/vg_oracleone-LogVol02 5.0G 2.2G 2.6G 46% /home /dev/mapper/vg_oracleone-LogVol03 13G 7.0G 4.8G 60% /opt /dev/sdf1 5.0G 139M 4.6G 3% /tmp /dev/sdg1 16G 4.3G 11G 29% /ginf /dev/asm/acfsvol0-142 512M 40M 473M 8% /ginf/grid/acfssystem/acfsvol0 /dev/asm/acfsvol1-142 512M 40M 473M 8% /ginf/grid/acfssystem/acfsvol1 [root@oracle-one ~]#
至此acfs文件系統創建完成。
二)動態擴展acfs文件系統。
acfs可以支持卷組的動態擴展類似aix的chfs -a size=xx directory,只要磁盤組有足夠的空間就可進行動態擴展。
eg:
-bash-4.1$ sqlplus / as sysdba SQL*Plus: Release 11.2.0.4.0 Production on Thu Mar 13 15:23:53 2014 Copyright (c) 1982, 2013, Oracle. All rights reserved. Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production With the Automatic Storage Management option SQL> col volume_device for a50 SQL> col volume_name for a40 SQL> set linesize 200 SQL> select volume_name,size_mb,state,volume_device from v$asm_volume; VOLUME_NAME SIZE_MB STATE VOLUME_DEVICE ---------------------------------------- ---------- -------- -------------------------------------------------- ACFSVOL1 512 ENABLED /dev/asm/acfsvol1-142 ACFSVOL0 512 ENABLED /dev/asm/acfsvol0-142 SQL> select name ,state,type,total_mb,free_mb from v$asm_diskgroup; NAME STATE TYPE TOTAL_MB FREE_MB ------------------------------ ----------- ------ ---------- ---------- DATAGROUP1 MOUNTED NORMAL 16376 9758 DATAGROUP2 MOUNTED NORMAL 8188 5946 DATAGROUP3 MOUNTED NORMAL 4076 3966 SQL> exit Disconnected from Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production With the Automatic Storage Management option -bash-4.1$ exit [root@oracle-one ~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/mapper/vg_oracleone-lv_root 5.0G 3.9G 876M 82% / tmpfs 1.0G 83M 942M 9% /dev/shm /dev/sda1 485M 55M 405M 12% /boot /dev/mapper/vg_oracleone-LogVol02 5.0G 2.2G 2.6G 46% /home /dev/mapper/vg_oracleone-LogVol03 13G 7.0G 4.8G 60% /opt /dev/sdf1 5.0G 139M 4.6G 3% /tmp /dev/sdg1 16G 4.3G 11G 29% /ginf /dev/asm/acfsvol0-142 512M 40M 473M 8% /ginf/grid/acfssystem/acfsvol0 /dev/asm/acfsvol1-142 512M 40M 473M 8% /ginf/grid/acfssystem/acfsvol1 [root@oracle-one ~]# acfsutil size +512m /ginf/grid/acfssystem/acfsvol0 acfsutil size: new file system size: 1073741824 (1024MB) [root@oracle-one ~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/mapper/vg_oracleone-lv_root 5.0G 3.9G 876M 82% / tmpfs 1.0G 83M 942M 9% /dev/shm /dev/sda1 485M 55M 405M 12% /boot /dev/mapper/vg_oracleone-LogVol02 5.0G 2.2G 2.6G 46% /home /dev/mapper/vg_oracleone-LogVol03 13G 7.0G 4.8G 60% /opt /dev/sdf1 5.0G 139M 4.6G 3% /tmp /dev/sdg1 16G 4.3G 11G 29% /ginf /dev/asm/acfsvol0-142 1.0G 41M 984M 4% /ginf/grid/acfssystem/acfsvol0 /dev/asm/acfsvol1-142 512M 40M 473M 8% /ginf/grid/acfssystem/acfsvol1 [root@oracle-one ~]#
另外還可以動態縮小:
eg:
[root@oracle-one ~]# acfsutil size -512M /ginf/grid/acfssystem/acfsvol0 acfsutil size: new file system size: 536870912 (512MB) [root@oracle-one ~]# [root@oracle-one ~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/mapper/vg_oracleone-lv_root 5.0G 3.9G 876M 82% / tmpfs 1.0G 83M 942M 9% /dev/shm /dev/sda1 485M 55M 405M 12% /boot /dev/mapper/vg_oracleone-LogVol02 5.0G 2.2G 2.6G 46% /home /dev/mapper/vg_oracleone-LogVol03 13G 7.0G 4.8G 60% /opt /dev/sdf1 5.0G 139M 4.6G 3% /tmp /dev/sdg1 16G 4.3G 11G 29% /ginf /dev/asm/acfsvol0-142 512M 41M 472M 8% /ginf/grid/acfssystem/acfsvol0 /dev/asm/acfsvol1-142 512M 40M 473M 8% /ginf/grid/acfssystem/acfsvol1 [root@oracle-one ~]#
三)查看acfs文件系統信息:
可以通過v$asm_diskgroup,v$asm_volume,v$asm_acfsvolume進行信息查看
SQL> col vol_label for a20 SQL> col fs_name for a40 SQL> select * from v$asm_acfsvolumes; FS_NAME VOL_DEVICE VOL_LABEL PRIMA TOTAL_MB FREE_MB ---------------------------------------- ---------------------------------------- -------------------- ----- ---------- ---------- /ginf/grid/acfssystem/acfsvol0 /dev/asm/acfsvol0-142 acfsvol0 TRUE 512 471.742188 /ginf/grid/acfssystem/acfsvol1 /dev/asm/acfsvol1-142 acfsvol1 TRUE 512 472.742188 SQL>
通過asmcmd查看:
ASMCMD [+] > volinfo -G datagroup2 -a Diskgroup Name: DATAGROUP2 Volume Name: ACFSVOL0 Volume Device: /dev/asm/acfsvol0-142 State: ENABLED Size (MB): 512 Resize Unit (MB): 32 Redundancy: MIRROR Stripe Columns: 4 Stripe Width (K): 128 Usage: ACFS Mountpath: /ginf/grid/acfssystem/acfsvol0 Volume Name: ACFSVOL1 Volume Device: /dev/asm/acfsvol1-142 State: ENABLED Size (MB): 512 Resize Unit (MB): 32 Redundancy: MIRROR Stripe Columns: 4 Stripe Width (K): 128 Usage: ACFS Mountpath: /ginf/grid/acfssystem/acfsvol1 ASMCMD [+] > ASMCMD [+] > lsdg State Type Rebal Sector Block AU Total_MB Free_MB Req_mir_free_MB Usable_file_MB Offline_disks Voting_files Name MOUNTED NORMAL N 512 4096 1048576 16376 9758 4094 2832 0 N DATAGROUP1/ MOUNTED NORMAL N 512 4096 1048576 8188 5946 0 2973 0 N DATAGROUP2/ MOUNTED NORMAL N 512 4096 1048576 4076 3966 1019 1473 0 N DATAGROUP3/ ASMCMD [+] >
另外還有一個與acfs文件系統交互的命令acfsutl
eg:
[root@oracle-one ~]# acfsutil info fs /ginf/grid/acfssystem/acfsvol0 ACFS Version: 11.2.0.4.0 flags: MountPoint,Available mount time: Thu Mar 13 15:15:52 2014 volumes: 1 total size: 536870912 total free: 494657536 primary volume: /dev/asm/acfsvol0-142 label: acfsvol0 flags: Primary,Available,ADVM on-disk version: 39.0 allocation unit: 4096 major, minor: 251, 72707 size: 536870912 free: 494657536 ADVM diskgroup DATAGROUP2 ADVM resize increment: 33554432 ADVM redundancy: mirror ADVM stripe columns: 4 ADVM stripe width: 131072 compatible.advm: 11.2.0.0.0 number of snapshots: 0 snapshot space usage: 0 replication status: DISABLED /ginf/grid/acfssystem/acfsvol1 ACFS Version: 11.2.0.4.0 flags: MountPoint,Available mount time: Thu Mar 13 15:15:53 2014 volumes: 1 total size: 536870912 total free: 495706112 primary volume: /dev/asm/acfsvol1-142 label: acfsvol1 flags: Primary,Available,ADVM on-disk version: 39.0 allocation unit: 4096 major, minor: 251, 72706 size: 536870912 free: 495706112 ADVM diskgroup DATAGROUP2 ADVM resize increment: 33554432 ADVM redundancy: mirror ADVM stripe columns: 4 ADVM stripe width: 131072 number of snapshots: 0 snapshot space usage: 0 replication status: DISABLED [root@oracle-one ~]#
四)創建文件系統快照保護。
其實創建快照就是類似cp的過程。eg:
root@oracle-one acfsvol0]# dd if=/dev/zero of=./test.log bs=100M count=1; 1+0 records in 1+0 records out 104857600 bytes (105 MB) copied, 0.28981 s, 362 MB/s [root@oracle-one acfsvol0]# ls -l total 107584 drwx------ 2 root root 65536 Mar 13 15:15 lost+found -rw-r--r-- 1 root root 104857600 Mar 13 15:35 test.log [root@oracle-one acfsvol0]# pwd /ginf/grid/acfssystem/acfsvol0 [root@oracle-one acfsvol0]# acfsutil snap create acfsvol0_bak /ginf/grid/acfssystem/acfsvol0 acfsutil snap create: Snapshot operation is complete. [root@oracle-one acfsvol0]# cd .ACFS [root@oracle-one .ACFS]# ls repl snaps [root@oracle-one .ACFS]# cd snaps/ [root@oracle-one snaps]# pwd /ginf/grid/acfssystem/acfsvol0/.ACFS/snaps [root@oracle-one snaps]# ls -l total 4 drwxr-xr-x 4 root root 4096 Mar 13 15:36 acfsvol0_bak [root@oracle-one snaps]# cd acfsvol0_bak/ [root@oracle-one acfsvol0_bak]# ls -l ls: cannot access lost+found: Permission denied total 107520 d????????? ? ? ? ? ? lost+found -rw-r--r-- 1 root root 104857600 Mar 13 15:35 test.log [root@oracle-one acfsvol0_bak]# pwd /ginf/grid/acfssystem/acfsvol0/.ACFS/snaps/acfsvol0_bak [root@oracle-one acfsvol0_bak]# ls -h ls: cannot access lost+found: Permission denied lost+found test.log [root@oracle-one acfsvol0_bak]#
刪除acfs文件系統快照
eg:
[root@oracle-one snaps]# ls acfsvol0_bak [root@oracle-one snaps]# acfsutil snap delete acfsvol0_bak /ginf/grid/acfssystem/acfsvol0 acfsutil snap delete: Snapshot operation is complete. [root@oracle-one snaps]# ls [root@oracle-one snaps]#
五)卸載acfs文件系統:
1、取消acfs文件系統的注冊
[root@oracle-one snaps]# acfsutil registry -d /ginf/grid/acfssystem/acfsvol0 acfsutil registry: successfully removed ACFS mount point /ginf/grid/acfssystem/acfsvol0 from Oracle Registry [root@oracle-one snaps]# acfsutil registry -d /ginf/grid/acfssystem/acfsvol1 acfsutil registry: successfully removed ACFS mount point /ginf/grid/acfssystem/acfsvol1 from Oracle Registry [root@oracle-one snaps]#
2、卸載acfs卷
[root@oracle-one ~]# umount -t acfs -a
[root@oracle-one ~]#
如果卸載單個卷umount -t acfs /directory
3、刪除acfs
eg:
[root@oracle-one ~]# acfsutil rmfs /dev/asm/acfsvol0-142
[root@oracle-one ~]# acfsutil rmfs /dev/asm/acfsvol1-142
[root@oracle-one ~]#
4、disable 卷組並 刪除卷組:
eg:
-bash-4.1$ asmcmd voldisable -G datagroup2 -a
-bash-4.1$ asmcmd voldelete -G datagroup2 acfsvol0
-bash-4.1$ asmcmd voldelete -G datagroup2 acfsvol1
-bash-4.1$ sqlplus / as sysdba
SQL*Plus: Release 11.2.0.4.0 Production on Thu Mar 13 15:44:50 2014
Copyright (c) 1982, 2013, Oracle. All rights reserved.
Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Automatic Storage Management option
SQL> select * from v$asm_volume;
no rows selected
SQL> select * from v$asm_acfsvolumes;
no rows selected
SQL>
that‘s all!