oracle 数据存储ASM管理与维护
oracle 数据存储ASM管理与维护
2、Oracle ASM 存储结构与基础知识
-----------------------------------------------------------------------
--2.1 ASM基础知识讲解
...
--2.2. Oracle ASM日常操作与使用
sqlplus "/as sysasm"
sqlplus "/as sysdba"
asmcmd
crsctl check has
crsctl stop has
crsctl start has
crsctl status res -t
[grid@xxdb139:/home/grid]$crsctl status res -t
--------------------------------------------------------------------------------
Name Target State Server State details
--------------------------------------------------------------------------------
Local Resources
--------------------------------------------------------------------------------
ora.DGDATA01.dg
ONLINE ONLINE xxdb139 STABLE
ora.DGDATA02.dg
ONLINE ONLINE xxdb139 STABLE
ora.DGGRID.dg
ONLINE ONLINE xxdb139 STABLE
ora.DGRECOVERY.dg
ONLINE ONLINE xxdb139 STABLE
ora.DGSYSTEM.dg
ONLINE ONLINE xxdb139 STABLE
ora.LISTENER.lsnr
ONLINE ONLINE xxdb139 STABLE
ora.asm
ONLINE ONLINE xxdb139 Started,STABLE
ora.ons
OFFLINE OFFLINE xxdb139 STABLE
--------------------------------------------------------------------------------
Cluster Resources
--------------------------------------------------------------------------------
ora.cssd
1 ONLINE ONLINE xxdb139 STABLE
ora.diskmon
1 OFFLINE OFFLINE STABLE
ora.driver.afd
1 ONLINE ONLINE xxdb139 STABLE
ora.evmd
1 ONLINE ONLINE xxdb139 STABLE
ora.xxdb.db
1 ONLINE ONLINE xxdb139 Open,HOME=/oracle/ap
p/oracle/product/19c
/db_1,STABLE
--------------------------------------------------------------------------------
...
ASMCMD> lsdsk
ASMCMD> help lsdsk
ASMCMD> lsdsk -t -G dgsystem
ASMCMD> lsdsk -p -G dgdata01
ASMCMD> lsct
DB_Name Status Software_Version Compatible_version Instance_Name Disk_Group
+ASM CONNECTED 19.0.0.0.0 19.0.0.0.0 +ASM DGSYSTEM
xxdb CONNECTED 19.0.0.0.0 19.0.0.0.0 xxdb DGDATA01
xxdb CONNECTED 19.0.0.0.0 19.0.0.0.0 xxdb DGRECOVERY
xxdb CONNECTED 19.0.0.0.0 19.0.0.0.0 xxdb DGSYSTEM
ASMCMD> lsof
ASMCMD-8022: unknown command 'losf' specified
ASMCMD> lsof
DB_Name Instance_Name Path
xxdb xxdb +DGDATA01/xxDB/CONTROLFILE/current.260.1140457453
xxdb xxdb +DGDATA01/xxDB/DATAFILE/itpux.264.1140458405
xxdb xxdb +DGDATA01/xxDB/ONLINELOG/group_1.261.1140457453
xxdb xxdb +DGDATA01/xxDB/ONLINELOG/group_2.262.1140457453
xxdb xxdb +DGDATA01/xxDB/ONLINELOG/group_3.263.1140457453
xxdb xxdb +DGSYSTEM/xxDB/CONTROLFILE/current.256.1140457453
xxdb xxdb +DGSYSTEM/xxDB/DATAFILE/sysaux.262.1140457457
xxdb xxdb +DGSYSTEM/xxDB/DATAFILE/system.264.1140457455
xxdb xxdb +DGSYSTEM/xxDB/DATAFILE/undotbs1.261.1140457457
xxdb xxdb +DGSYSTEM/xxDB/DATAFILE/users.263.1140457463
xxdb xxdb +DGSYSTEM/xxDB/ONLINELOG/group_1.259.1140457453
xxdb xxdb +DGSYSTEM/xxDB/ONLINELOG/group_2.258.1140457453
xxdb xxdb +DGSYSTEM/xxDB/ONLINELOG/group_3.257.1140457453
xxdb xxdb +DGSYSTEM/xxDB/TEMPFILE/temp.260.1140457457
[grid@xxdb139:/home/grid]$asmcmd lsdsk -p
[grid@xxdb139:/home/grid]$asmcmd lsdsk --candidate -p
[grid@xxdb139:/home/grid]$kfod
[grid@xxdb139:/home/grid]$kfod disks=all
sqlplus "/as sysdba"
startup
alter system checkpoint;
shutdown immediate;
#shutdown;
3、Oracle ASM 磁盘组管理
-----------------------------------------------------------------------
192.168.1.58:
--3.1 ASM 磁盘组相关参数
01.ASM实例参数
#show parameter sga
#show parameter memory
#show parameter large
#show parameter pfile
#alter system set large_pool_size=200m scope=spfile;
#show parameter proc;
#show parameter power;
11.2.0.3/4+
12c已解决
故障示例:
ASM diskgroup dismount with "Waited 15sec for write IO to PST"
alter system set "_asm_hbeatiowait"=15 scope=spfile;
120s
02.ASM磁盘组属性参数
select
a.ksppinm "Parameter",
a.ksppdesc "Description",
b.ksppstvl "Session Value",
c.ksppstvl "Instance Value"
from
x$ksppi a,
x$ksppcv b,
x$ksppsv c
where
a.indx= b.indx
and a.indx= c.indx
and a.ksppinm like '%asm%' escape '\'
order by 1
/
select
a.ksppinm "Parameter",
a.ksppdesc "Description",
b.ksppstvl "Session Value",
c.ksppstvl "Instance Value"
from
x$ksppi a,
x$ksppcv b,
x$ksppsv c
where
a.indx = b.indx
and a.indx = c.indx
and a.ksppinm like '%hbeatio%' escape '\'
order by 1
/
02.ASM磁盘组属性参数
V$ASM_ATTRIBUTE
OR:
asmcmd lsattr -G DGDATA01 -l
[grid@xxdb139:/home/grid]$asmcmd lsattr -G dgdata01 -l
#本机安装19c客户端并配置
#WINDOWS.X64_193000_client.zip
#参考"... 企业级Oracle数据库底层技术与基础深入.pptx" 125-127页
C:\Users\Admin>tnsping xxdb
TNS Ping Utility for 64-bit Windows: Version 19.0.0.0.0 - Production on 25-6月 -2023 20:31:00
已使用的参数文件:
D:\app\client\Admin\product\19.0.0\client_1\network\admin\sqlnet.ora
已使用 TNSNAMES 适配器来解析别名
尝试连接 (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.137.139)(PORT = 1521))) (CONNECT_DATA = (SERVICE_NAME = xxdb)))
OK (0 毫秒)
#连接没问题
SELECT SUBSTR(dg.name,1,12) AS diskgroup, SUBSTR(a.name,1,24) AS name,SUBSTR(a.value,1,24) AS value, read_only FROM V$ASM_DISKGROUP dg,V$ASM_ATTRIBUTE a WHERE dg.name = 'DGDATA01' AND dg.group_number = a.group_number AND a.name NOT LIKE '%template%';
asmcmd setattr -G dgdata01 compatible.asm 19.0.0.0.0
asmcmd setattr -G dgdata01 compatible.rdbms 19.0.0.0.0
参数1:AU_SIZE
ASM 在分配空间时,以AU 为单位进行,AU 即Allocation units,是组成ASM disk 的基本单元。
此属性指定分配单元(AU)大小,并且只能在创建磁盘组时设置。
DGDATA01 au_size 8388608 Y
select group_number,name,sector_size,block_size,allocation_unit_size from v$asm_diskgroup;
参数2:COMPATIBLE.RDBMS
此属性指定磁盘组的数据库兼容性级别。当磁盘组被创建并在磁盘组被修改时,可以设置兼容性属性,但是兼容性属性不能向低版本修改。
compatible.advm:指定磁盘组的Oracle 自动存储管理集群文件系统(Oracle ACFS)和Oracle ASM 动态卷管理器(Oracle ADVM) 兼容性级别。
--3.2 图形界面管理ASM磁盘组
oracle10g:
su - oracle
#vncserver
dbca
oracle11g+
su - grid
#vncserver
asmca
--3.3 命令行管理ASM磁盘组
外部冗余(external redundancy)
普通冗余(normal redundancy)
高冗余(high redundancy)
--3.3.1 ASM磁盘组的创建与管理-外部冗余(external redundancy)
01.检查系统中可用的磁盘
compatible.asm:指定了可以使用磁盘组的ASM 实例的最低软件版本
compatible.rdbms:指定磁盘组的数据库兼容性级别
sector_size:(一般默认)可以设置为512,4096 或者4k,默认值依OS 平台而定
[grid@xxdb58:/home/grid]$ kfod
--------------------------------------------------------------------------------
Disk Size Path User Group
================================================================================
1: 2621440 MB /dev/asm-data11 grid asmadmin
2: 2621440 MB /dev/asm-data12 grid asmadmin
3: 2621440 MB /dev/asm-data13 grid asmadmin
4: 2621440 MB /dev/asm-data14 grid asmadmin
5: 2621440 MB /dev/asm-data15 grid asmadmin
6: 2621440 MB /dev/asm-data16 grid asmadmin
7: 2621440 MB /dev/asm-data17 grid asmadmin
8: 2621440 MB /dev/asm-data18 grid asmadmin
9: 2621440 MB /dev/asm-data19 grid asmadmin
10: 2621440 MB /dev/asm-data20 grid asmadmin
--------------------------------------------------------------------------------
ORACLE_SID ORACLE_HOME
================================================================================
+ASM /oracle/app/19c/grid
[grid@xxdb58:/home/grid]$ asmcmd lsdsk --candidate -p
ls -lsa /dev/asm*
如果是asmlib
oracleasm listdisks
ASM实例里面
查看现有磁盘组信息
sqlplus "/as sysasm"
set lin 200
set pagesize 200
select GROUP_NUMBER ,NAME,STATE,TYPE,TOTAL_MB,FREE_MB,USABLE_FILE_MB,OFFLINE_DISKS from v$asm_diskgroup;
查看磁盘信息
col NAME format a20
col PATH format a30
SQL> select NAME,header_STATUS,MOUNT_STATUS,STATE,DISK_NUMBER "DNO",PATH,TOTAL_MB,FREE_MB,GROUP_NUMBER "GNO" from v$ASM_DISK;
三个重要的参数:
磁盘状态:STATE
UNKNOWN 自动存储管理磁盘状态未知(通常磁盘未装入)
NORMAL 磁盘联机且运行正常
ADDING 正在将磁盘添加到磁盘组,并且正在等待已装入磁盘组的所有实例的验证
DROPPING 磁盘已手动脱机,磁盘的空间分配或数据访问将停止,重新平衡将开始将数据从磁盘重新定位到磁盘组中的其他磁盘,完成重新平衡后,磁盘将从组中排出。
HUNG 磁盘删除操作无法继续,因为没有足够的空间重新定位正在删除的磁盘中的数据
FORCING 正在从磁盘组中删除磁盘,而不尝试卸载其数据。在可能的情况下,将从冗余副本中恢复数据。
DROPPED 磁盘已从磁盘组中完全排出
挂载状态:MOUNT_S
MISSING 自动存储管理元数据表示已知该磁盘是自动存储管理磁盘组的一部分,但在存储系统中找不到具有指定名称的磁盘
CLOSED 存储系统中存在磁盘,但自动存储管理无法访问该磁盘
OPENED 磁盘存在于存储系统中,并通过自动存储管理进行访问。这是数据库实例中磁盘的正常状态,这些磁盘是实例正在使用的磁盘组的一部分。
CACHED 磁盘存在于存储系统中,是自动存储管理实例访问的磁盘组的一部分。这是自动存储管理实例中磁盘的正常状态,该实例是已装入磁盘组的一部分。
IGNORED
系统中存在磁盘,但由于以下原因之一而被ASM 忽略:
-系统库检测到该磁盘,但由于ASM 库发现了同一磁盘,因此将忽略该磁盘
-ASM 已确定磁盘标头声明的成员身份不再有效
CLOSING ASM 正在关闭此磁盘
磁盘头状态:HEADER_STATUS
UNKNOWN 尚未读取自动存储管理磁盘标头
CANDIDATE 磁盘不是磁盘组的一部分,可以使用ALTER DISKGROUP 语句添加到磁盘组
INCOMPATIBLE 磁盘标头中的版本号与自动存储管理软件版本不兼容。
PROVISIONED 磁盘不是磁盘组的一部分,可以使用ALTER DISKGROUP 语句添加到磁盘组。已设置的标头状态与候选标头状态不同,因为已设置意味着管理员已采取其他特定于平台的操作,以使磁盘可用于自动存储管理。
--MEMBER
磁盘是现有磁盘组的成员。不应尝试将磁盘添加到其他磁盘组,ALTER DISKGROUP 语句将拒绝此类添加,除非使用FORCE 选项重写
FORMER 磁盘曾经是磁盘组的一部分,但已完全从组中删除。可以使用ALTER DISKGROUP 语句将其添加到新磁盘组。
CONFLICT 由于冲突,未装入自动存储管理磁盘
FOREIGN 磁盘包含由非ASM 的Oracle 产品创建的数据。这包括数据文件、日志文件和OCR 磁盘。
02.创建ASM磁盘组
create diskgroup dgdata02 EXTERNAL REDUNDANCY
disk '/dev/asm-data11'
ATTRIBUTE
'au_size'='8M',
'compatible.asm' = '11.2.0.0',
'compatible.rdbms' = '11.2.0.0';
03.ASM 磁盘状态查询
set lin 200
set pagesize 200
col DGNAME format a15
col DISKNAME format a15
col PATH format a20
col NAME format a20
select GROUP_NUMBER ,NAME,STATE,TYPE,TOTAL_MB,FREE_MB,USABLE_FILE_MB,OFFLINE_DISKS from v$asm_diskgroup;
select NAME,MOUNT_STATUS,STATE,DISK_NUMBER "DNO",PATH,TOTAL_MB,FREE_MB,GROUP_NUMBER "GNO" from v$ASM_DISK;
select a.GROUP_NUMBER GNO,a.MOUNT_STATUS,a.STATE,a.TOTAL_MB "DT_MB",b.TOTAL_MB "GT_MB",a.DISK_NUMBER DNO,a.PATH,a.name as diskname,b.name as dgname from v$ASM_DISK a,v$asm_diskgroup b where b.name='DGDATA02' and a.GROUP_NUMBER=b.GROUP_NUMBER order by a.group_number;
--查看客户端连接信息
SELECT dg.name AS diskgroup,SUBSTR(c.instance_name,1,12) AS instance,SUBSTR(c.db_name,1,12) AS dbname,SUBSTR(c.SOFTWARE_VERSION,1,12) AS software,SUBSTR(c.COMPATIBLE_VERSION,1,12) AS compatible FROM V$ASM_DISKGROUP_STAT dg, V$ASM_CLIENT c WHERE dg.group_number = c.group_number;
3.3.2 磁盘组增加/删除磁盘
查空盘:
select NAME,MOUNT_STATUS,STATE,DISK_NUMBER "DNO",PATH,TOTAL_MB,FREE_MB,GROUP_NUMBER "GNO" from v$ASM_DISK;
检查:
select a.GROUP_NUMBER GNO, a.MOUNT_STATUS, a.STATE, a.TOTAL_MB "DT_MB", b.TOTAL_MB "GT_MB", a.DISK_NUMBER DNO, a.PATH, a.name as diskname, b.name as dgname from v$ASM_DISK a, v$asm_diskgroup b where b.name = 'DGDATA02' and a.GROUP_NUMBER = b.GROUP_NUMBER order by a.group_number;
磁盘组中添加磁盘
alter diskgroup dgdata02 add disk '/dev/asm-data12';
alter diskgroup dgdata02 add disk '/dev/asm-data13' rebalance power 8;
因为磁盘要做rebalance,最好再rebalance完后再使用磁盘组
查看后台平衡的情况
select * from v$asm_operation;
其中重点:
SOFAR 已经平衡的数量
EST_WORK 剩余需要平衡的数据量
EST_MINUTES:操作剩余部分预计需要的估计时间量(分钟)
RAC环境下,在a机创建的diskgroup会自动mount,而b机需手工mount后才可使用。
删除磁盘:
删除的时候,需要删除磁盘别名:
alter diskgroup dgdata02 drop disk 'DGDATA02_0000';
mount/umount 磁盘组:
alter diskgroup dgdata02 dismount;
alter diskgroup dgdata02 mount;
SQL> select GROUP_NUMBER ,NAME,STATE,TYPE,TOTAL_MB,FREE_MB,USABLE_FILE_MB,OFFLINE_DISKS from v$asm_diskgroup;
3.删除磁盘组
drop diskgroup dgdata02;
drop diskgroup dgdata02 including contents;
--3.3.2 磁盘组的创建与管理-普通冗余(normal redundancy)
create diskgroup dgdata02 normal redundancy disk '/dev/asm-data11', '/dev/asm-data12' ATTRIBUTE 'au_size'='8M', 'compatible.asm' = '11.2.0.0', 'compatible.rdbms' = '11.2.0.0';
select GROUP_NUMBER ,NAME,STATE,TYPE,TOTAL_MB,FREE_MB,USABLE_FILE_MB,OFFLINE_DISKS from v$asm_diskgroup;
select group_number, name, total_mb, free_mb, total_mb-free_mb used_mb from v$asm_disk_stat where GROUP_NUMBER=2;
alter diskgroup dgdata02 add disk '/dev/asm-data13','/dev/asm-data14' rebalance power 8;
select * from v$asm_operation;
select NAME,MOUNT_STATUS,STATE,DISK_NUMBER "DNO",PATH,TOTAL_MB,FREE_MB,GROUP_NUMBER "GNO" from v$ASM_DISK;
alter diskgroup dgdata02 drop disk 'DGDATA02_0002';
alter diskgroup dgdata02 drop disk 'DGDATA02_0003';
alter diskgroup dgdata02 dismount;
alter diskgroup dgdata02 mount;
3.删除磁盘组
drop diskgroup dgdata02;
drop diskgroup dgdata02 including contents;
4.normal redundancy+failgroup
FAILGROUP 实际上故障组就是ASM DISK的一个逻辑组合,如果不指定哪些ASM DISK属于哪个FAILGROUP,那么可以理解为每个ASM DISK都是一个FAILGROUP,磁盘组比较好理解,就是ASM DISK的组合。
create diskgroup dgdata02 normal redundancy failgroup dgdata02_xx01 disk '/dev/asm-data11', '/dev/asm-data12', '/dev/asm-data13' failgroup dgdata02_xx02 disk '/dev/asm-data14', '/dev/asm-data15', '/dev/asm-data16' ATTRIBUTE 'au_size'='8M', 'compatible.asm' = '11.2.0.0', 'compatible.rdbms' = '11.2.0.0';
alter diskgroup dgdata02 add failgroup dgdata02_xx01 disk '/dev/asm-data17' failgroup dgdata02_xx02 disk '/dev/asm-data18' rebalance power 8;
select GROUP_NUMBER ,NAME,STATE,TYPE,TOTAL_MB,FREE_MB,USABLE_FILE_MB,OFFLINE_DISKS from v$asm_diskgroup;
查看空间:
select group_number, name, total_mb, free_mb, total_mb-free_mb used_mb,FAILGROUP from v$asm_disk_stat where GROUP_NUMBER=2 order by FAILGROUP;
2.磁盘组增加、删除磁盘
drop diskgroup dgdata02 including contents;
--3.3.3 磁盘组的创建与管理-高冗余(high redundancy)
1.创建磁盘组
select NAME,MOUNT_STATUS,STATE,DISK_NUMBER "DNO",PATH,TOTAL_MB,FREE_MB,GROUP_NUMBER "GNO" from v$ASM_DISK;
create diskgroup dgdata02 high redundancy disk '/dev/asm-data11', '/dev/asm-data12', '/dev/asm-data13' ATTRIBUTE 'au_size'='8M', 'compatible.asm' = '11.2.0.0', 'compatible.rdbms' = '11.2.0.0';
select GROUP_NUMBER ,NAME,STATE,TYPE,TOTAL_MB,FREE_MB,USABLE_FILE_MB,OFFLINE_DISKS from v$asm_diskgroup;
select group_number, name, total_mb, free_mb, total_mb-free_mb used_mb from v$asm_disk_stat where GROUP_NUMBER=2;
2.磁盘组增加、删除磁盘
也可以一个一个加盘,建议一次加3个:
alter diskgroup dgdata02 add disk '/dev/asm-data14','/dev/asm-data15','/dev/asm-data16' rebalance power 8;
因为磁盘要做rebalance,最好再rebalance完后再使用磁盘组
查看后台平衡的情况
select * from v$asm_operation;
删除磁盘
删除的时候,需要删除磁盘别名:
select NAME,MOUNT_STATUS,STATE,DISK_NUMBER "DNO",PATH,TOTAL_MB,FREE_MB,GROUP_NUMBER "GNO" from v$ASM_DISK;
alter diskgroup dgdata02 drop disk 'DGDATA02_0003';
mount/umount磁盘组
alter diskgroup dgdata02 dismount;
alter diskgroup dgdata02 mount;
3.删除磁盘组
drop diskgroup dgdata02;
drop diskgroup dgdata02 including contents;
4.high redundancy+failgroup
--3.3.3 磁盘组目录文件
create diskgroup dgdata02 high redundancy failgroup dgdata02_xx01 disk '/dev/asm-data11', '/dev/asm-data12' failgroup dgdata02_xx02 disk '/dev/asm-data13', '/dev/asm-data14' failgroup dgdata02_xx03 disk '/dev/asm-data15', '/dev/asm-data16' ATTRIBUTE 'au_size'='8M', 'compatible.asm' = '11.2.0.0', 'compatible.rdbms' = '11.2.0.0';
可以直接在sql下创建目录
alter diskgroup dgdata02 add failgroup dgdata02_xx01 disk '/dev/asm-data17' failgroup dgdata02_xx02 disk '/dev/asm-data18' failgroup dgdata02_xx03 disk '/dev/asm-data19' rebalance power 8;
select GROUP_NUMBER ,NAME,STATE,TYPE,TOTAL_MB,FREE_MB,USABLE_FILE_MB,OFFLINE_DISKS from v$asm_diskgroup;
select group_number, name, total_mb, free_mb, total_mb-free_mb used_mb,FAILGROUP from v$asm_disk_stat where GROUP_NUMBER=2 order by FAILGROUP;
drop diskgroup dgdata02 including contents;
create diskgroup dgdata02 external redundancy disk '/dev/asm-data11', '/dev/asm-data12', '/dev/asm-data13', '/dev/asm-data14', '/dev/asm-data15' ATTRIBUTE 'au_size'='8M','compatible.asm' = '11.2.0.0','compatible.rdbms' = '11.2.0.0';
alter diskgroup dgdata02 add directory '+dgdata02/xxdb';
可以在asmcmd下面直接查看
[grid@xxdb58:/home/grid]$asmcmd ls -l +dgdata02/
Type Redund Striped Time Sys Name
N xxdb/
asmcmd
ASMCMD> cd dgdata02
ASMCMD> mkdir xxdb2
删除目录
ASMCMD> rm xxdb2
-- 目录重命名
SQL> alter diskgroup dgdata02 rename directory '+dgdata02/xxdb' TO '+dgdata02/xxdb2' ;
删除目录:
alter diskgroup dgdata02 drop directory '+dgdata02/xxdb2';
关于别名:
磁盘组中的一个文件,最多只能建立一个别名,可以通过v$asm_alias视图查看别名的相关信息
col file_name format a30
col alias_name format a30
在asmcmd中 ls -lsa可以看到是不是别名。
su - grid:
cd /oracle/app/19c/grid/dbs/
more init+ASM.ora
SELECT f.name file_name,a.name alias_name from V$ASM_ALIAS A , v$asm_alias F where f.system_created='Y' AND f.alias_directory='N' and a.system_created='N' and a.file_number=f.file_number and a.group_number=f.group_number;
4.关于ASM磁盘头损坏修复的故障说明
-----------------------------------------------------------------------
10.2.0.5之前,10.2.0.5+之后有备份块。
由于ASM严格的封装性与源码不公开,ASM如果一旦出现故障,处理起来非常麻烦。
而ASM中最为脆弱的又是ASM disk header,如果disk header出现损坏,整个disk group将不能够mount, 依赖于ASM实例的database也将不能够startup。
--思路1:通过kfed工具手工反编译修复磁盘头
手工修复过程说明:
如果两个盘是同时创建,比较容易。不同时间加入的盘,更复杂。
不可以恢复的情况是:
1.asm磁盘组只有一个磁盘
2.asm磁盘组中disk directory所在的磁盘信息丢失
以上两种情况恢复比较困难
--思路2:bbed不支持asm文件,所以必须要把asm文件dd出来,变成文件后才可以使用asm,修复后再通过dd追加进去即可。
--思路3:dd备份磁盘头4K大小,如果损坏再通过dd还原即可。
dd if=/dev/sda1 of=/backup/aaa.bak count=1 bs=1M
dd of=/dev/sda1 if=/backup/aaa.bak count=1 bs=1M
浙公网安备 33010602011771号