mdadm + lvm2: уничтоженный все суперблоки случайно

от Oracle sqlplus руководство

СТРАНИЦЫ НАБОРА [IZE] {14 | n} Определяют номер строк на каждой странице вывода. Можно обнулить РАЗМЕР СТРАНИЦЫ для подавления всех заголовков, разрывов страницы, заголовков, начальной пустой строки и другой информации о форматировании.

поэтому добавьте a set pagesize 0 к Вашему сценарию для предотвращения направляющейся пустой строки.

для большинства моих сценариев я использую настройки в следующей части кода кода:


dt=`sqlplus -s user/pwd@servicename < < EOF
set feedback off
set pagesize 0
set trimout on
set trimspool on
set linesize 300
set echo off
set verify off

select  replace(to_char((sysdate-7),'YYYYMonDD')||'_'
||to_char((sysdate-1),'YYYYMonDD'),chr(10), '') from dual;
exit;
EOF`

echo "test $dt$dt"

2
04.11.2013, 09:05
1 ответ

Если это 0.90 формат суперблока, необходимо смочь просто использовать участника непосредственно (в режиме только для чтения пожалуйста). Это предоставляет Вам доступ к Вашим данным, и затем можно создать новый новый RAID-1 только с другим диском, скопировать данные, затем добавить исходный диск к RAID.

Если это - что-то еще хотя (как 1.2 метаданные) необходимо было бы сначала найти смещение фактического раздела, прежде чем Вы сможете смонтировать его. Например, если это - LVM, Вы получаете смещение как это:

# grep -a -b --only-matching LEVELONE /dev/disk
1049088:LABELONE

Substract 512, так как первый сектор на PV свободен; если это на самом деле было 0.90 или 1.0 метаданные grep должны показать 512: вместо этого, что означает фактическое смещение 0; если Вы получаете что-то большее, Ваш RAID использовал некоторый другой формат.

В этом случае можно создать циклическое устройство с корректным смещением:

# losetup -f --show --read-only --offset $((1049088-512)) /dev/disk
/dev/loop0
# file -s /dev/loop0
LVM2 ...

И это должно быть Вашим PV и vgscan / vgchange -a y должен заботиться об остальных.


Что касается mdadm --create, это может быть сделано, если Вы знаете то, что Вы делаете. Просто необходимо быть очень, очень осторожны с ним. Это - последнее средство только.

Если смещение 0 удостоверьтесь, что Вы используете 0.90 метаданные (если Вы уверены, что это - то, что Вы использовали); если смещение - что-то еще, удостоверяются mdadm --create будет использовать то же смещение снова. Это обычно не делает как mdadmзначения по умолчанию изменяются со временем. Поэтому укажите его непосредственно на использовании командной строки --data-offset.

Кроме того, создайте его с одним диском только. Оставьте другой диск как missing. Это - лучший способ сделать это, чем --assume-clean поскольку можно сначала проверить, ли создавание, обработанное вообще или не (данные по /dev/md? применимое устройство?) и затем синхронизировали другой диск правильно.

3
27.01.2020, 22:06

Теги

Похожие вопросы