Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Sybase ASA, ASE, IQ Новый топик    Ответить
 БД в Sybase неактивна  [new]
phpmotor
Member

Откуда:
Сообщений: 16
Здравствуйте!
Имеется:
СУБД: Adaptive Server Enterprise/15.0.2/EBF 15679 ESD#5/P/Sun_svr4/OS 5.8/ase1502/2528/64-bit/FBO
Машина: SunOS osssvr-1 5.10 Generic_141414-07 sun4u sparc SUNW,Sun-Fire-V890

Несколько месяцев тому назад я создал базу данных следующими командами:
disk init name = hlrlogdb_data_lv001_dev,size="100G",physname="/dev/vx/rdsk/ossdg/hlrlogdb_data_lv001"
disk init name = hlrlogdb_data_lv002_dev,size="100G",physname="/dev/vx/rdsk/ossdg/hlrlogdb_data_lv002"
disk init name = hlrlogdb_data_lv003_dev,size="50G",physname="/dev/vx/rdsk/ossdg/hlrlogdb_data_lv003"
disk init name = hlrlogdb_log_lv001_dev,size="50G",physname="/dev/vx/rdsk/ossdg/hlrlogdb_log_lv001"

create database hlrlogdb on hlrlogdb_data_lv001_dev = "100G", hlrlogdb_data_lv002_dev = "100G", 
hlrlogdb_data_lv003_dev = "50G" log on hlrlogdb_log_lv001_dev = "50G"


Данные записывались и всё было хорошо.

Вчера решил переименовать эту базу. Для этого ввел следующие команды:
sp_dboption hlrlogdb, single, true
go
use hlrlogdb
go
checkpoint 
go
sp_renamedb hlrlogdb, t_hlr_v9
go
use master
go
sp_dboption t_hlr_v9, single, false 
go
use t_hlr_v9
go
checkpoint
go
use master
go
checkpoint
go


После этого ODBC не стало подключаться к БД t_hlr_v9, и я решил перезагрузить сервер командами
sync; sync; sync; sync; sync; sync; sync; sync; sync; sync; sync
/usr/sbin/shutdown -y -g0 -i6


Сервер перезагрузился, но теперь БД t_hlr_v9 стоит offline. При попытке сделать online выдается ошибка:
Device 'hlrlogdb_data_lv001_dev' (with physical name '/dev/vx/rdsk/ossdg/hlrlogdb_data_lv001', 
and virtual device number 16) has not been correctly activated at startup time.  
Please contact a user with System Administrator (SA) role.


В папке /dev/vx/rdsk/ossdg/ файлов hlrlogdb_data_lv001, hlrlogdb_data_lv002, hlrlogdb_data_lv003, hlrlogdb_log_lv001 почему-то нет.
Что можно и нужно сделать?
Спасибо!
17 янв 17, 07:00    [20112765]     Ответить | Цитировать Сообщить модератору
 Re: БД в Sybase неактивна  [new]
fin3544
Member

Откуда:
Сообщений: 48
у Вас похоже с veritas проблема

проверить командой

vxprint -g ossdg -v
18 янв 17, 11:07    [20117488]     Ответить | Цитировать Сообщить модератору
 Re: БД в Sybase неактивна  [new]
phpmotor
Member

Откуда:
Сообщений: 16
fin3544,
команда
vxprint -g ossdg -v

вывела список. Два момента:
1. Нет файлов hlrlogdb_data_lv001_dev, hlrlogdb_data_lv002_dev, hlrlogdb_data_lv003_dev, hlrlogdb_log_lv001_dev. Эти файлы были привязаны к БД hlrlogdb.
2. Есть файлы pmdb_data_lv001_dev, pmdb_data_lv002_dev, pmdb_data_lv003_dev, pmdb_log_lv001_dev. Но в списке баз данных нет БД pmdb. БД pmdb была, но я её (вроде бы) удалил пару месяцев тому назад.

Подскажите, пожалуйста, как грамотно осуществить следующее или где об этом можно почитать:
1. Удалить остатки БД pmdb.
2. Удалить остатки БД hlrlogdb (неудачно переименованную в t_hlr_v9).
3. Создать БД t_hlr_v9.

Данные в t_hlr_v9 запишу из исходников. Главный акцент надо сделать на то, чтобы:
1) не осталось ненужных файлов, которые зря будут занимать дисковое пространство;
2) заново созданная БД не пропадала при перезагрузках случайных или специальных.

Спасибо!
18 янв 17, 14:06    [20118517]     Ответить | Цитировать Сообщить модератору
 Re: БД в Sybase неактивна  [new]
fin3544
Member

Откуда:
Сообщений: 48
phpmotor,

Во первых очень надеюсь что это не продакшн...
Потому что у Вас явно не хватает знаний.

Давайте по порядку.
Как мне кажется, Судя по названиям в путях у Вас установлен Veritas VM.

перед тем как создавали девайсы в бд командой disk init Вы создавали сами тома в Veritas Volume manager ? мне почему то кажется что нет...
Чтобы ничего не пропадало надо сначала создать том (vxassist make) потом как минимум командой vxedit установить атрибуты тома , владельца

почитать можно здесь:
https://docs.oracle.com/cd/E19668-01/875-3897-10/875-3897-10.pdf

Уже потом использовать девайсы в ASE.

Это наверное ответ на третий вопрос.

По поводу удалить остатки pmdb тома можно удалить командой vxassist -g имя_группы remove volume имя_тома
Предварительно рекомендую 100 раз проверить что эти тома не используются (man fuser)

Насчет удаления бд hlrlogdb
Используйте dbcc dbrepair (database_name, dropdb)
http://www.rocket99.com/techref/sybase8019.html
затем удалите девайсы которые смотрят в никуда sp_dropdevice
19 янв 17, 10:01    [20121476]     Ответить | Цитировать Сообщить модератору
 Re: БД в Sybase неактивна  [new]
phpmotor
Member

Откуда:
Сообщений: 16
fin3544,
Я вспоминал свои действия и получилась следующая история.
Была БД pmdb. Я её удалил. Затем удалил девайсы, которые использовала эта БД.
Девайсы ссылались на тома веритаса. Когда я удалял девайсы, я про существование Veritas VM и его томов понятия не имел.
В папке
/dev/vx/rdsk/ossdg/
я увидел следующие "файлы":

crw-rw-r-- 1 dbuser dbgroup 315, 18013 Jan 19 11:48 pmdb_data_lv001
crw-rw-r-- 1 dbuser dbgroup 315, 18014 Jan 19 11:48 pmdb_data_lv002
crw-rw-r-- 1 dbuser dbgroup 315, 18015 Jan 19 11:48 pmdb_data_lv003
crw-rw-r-- 1 dbuser dbgroup 315, 18016 Jan 19 11:48 pmdb_log_lv001
Тогда это для меня были просто файлы, как файлы для TABLESPACE Оракла в Windows. И буква 'c' в атрибутах тогда меня никак не смутила.
Эти "файлы" я переименовал в удобные мне названия командами:

mv pmdb_data_lv001 hlrlogdb_data_lv001
mv pmdb_data_lv002 hlrlogdb_data_lv002
mv pmdb_data_lv003 hlrlogdb_data_lv003
mv pmdb_log_lv001 hlrlogdb_log_lv001
Создал на них девайсы и БД hlrlogdb. Затем создал таблицы, и начал записывать данные.
СУБД Sybase остановил и запустил заново. Всё было отлично.
После переименования БД hlrlogdb в t_hlr_v9 ODBC не стало работать (почему?).
Тут я перезапустил машину.
В этот момент переименованные мною "файлы" (тома веритас) возвращают себе старые названия (pmdb_...).
Соответственно, девайсы БД hrllogdb ссылаются в никуда и БД становится inactive.
Я начинаю пробовать разные команды. И на данный момент ни БД hlrlogdb, ни связанных с ней девайсов нет.
Тома pmdb_data_lv001, pmdb_data_lv002, pmdb_data_lv003, pmdb_log_lv001 есть.

Теперь как всё сделать правильно, чтобы после очередной перезагрузки не потерять данные?
Те, что сейчас потерялись, я запишу заново из исходных CSV-файлов.
19 янв 17, 14:23    [20122852]     Ответить | Цитировать Сообщить модератору
 Re: БД в Sybase неактивна  [new]
fin3544
Member

Откуда:
Сообщений: 48
phpmotor,

ну вы блин даете :-)
проще восстановить то что есть.
переименуйте названия файлов в системной таблице master..sysdevices база должна подняться

sp_configure 'allow update',1
go
use master
go
update master..sysdevices set physname ='/dev/vx/rdsk/ossdg/pmdb_data_lv001' 
where physname="/dev/vx/rdsk/ossdg/hlrlogdb_data_lv001"
go
update master..sysdevices set physname ='/dev/vx/rdsk/ossdg/pmdb_data_lv002' 
where physname="/dev/vx/rdsk/ossdg/hlrlogdb_data_lv002"
go
update master..sysdevices set physname ='/dev/vx/rdsk/ossdg/pmdb_data_lv003' 
where physname="/dev/vx/rdsk/ossdg/hlrlogdb_data_lv003"
go
update master..sysdevices set physname ='/dev/vx/rdsk/ossdg/pmdb_log_lv001' 
where physname="/dev/vx/rdsk/ossdg/hlrlogdb_log_lv001"
go
sp_configure 'allow update',0
go


потом погасить сервер (sybase) командой
shutdown with nowait

После старта сервер должен подняться
19 янв 17, 15:38    [20123357]     Ответить | Цитировать Сообщить модератору
 Re: БД в Sybase неактивна  [new]
phpmotor
Member

Откуда:
Сообщений: 16
fin3544,
На данный момент ситуация уже другая.
Вчера я удалил pmdb_data_lv001, pmdb_data_lv002, pmdb_data_lv003 и pmdb_log_lv001 из master..sysdevices командами

sp_dropdevice hlrlogdb_data_lv001_dev
sp_dropdevice hlrlogdb_data_lv002_dev
sp_dropdevice hlrlogdb_data_lv003_dev
sp_dropdevice hlrlogdb_log_lv001_dev
Также успел перезапустить Sybase и перезагрузить операционную систему.
Тома веритаса пока не трогал.

Есть шанс восстановить базу?
Если да, то как это сделать? Заново создать девайсы командой disk init с прежними названиями с указанием прежних томов веритаса поможет?

Если восстановить базу нельзя, то освободилось ли занимаемое этой БД дисковое пространство в томах веритаса? Или теперь нужно удалять и тома веритаса, чтобы недоступные данные на дисках зря место не занимали?
20 янв 17, 09:20    [20125578]     Ответить | Цитировать Сообщить модератору
 Re: БД в Sybase неактивна  [new]
fin3544
Member

Откуда:
Сообщений: 48
phpmotor
fin3544,

Есть шанс восстановить базу?
Если да, то как это сделать? Заново создать девайсы командой disk init с прежними названиями с указанием прежних томов веритаса поможет?

Если восстановить базу нельзя, то освободилось ли занимаемое этой БД дисковое пространство в томах веритаса? Или теперь нужно удалять и тома веритаса, чтобы недоступные данные на дисках зря место не занимали?


Попробовать восстановить можно , пока тома еще остались(reinit/refit), почитать можно по ссылке
http://infocenter.sybase.com/help/index.jsp?topic=/com.sybase.infocenter.dc31644.1600/doc/html/san1371158803233.html
Но на практике не всегда получается.


Насчет места на дисках ..
Место в дисковой группе не освободится пока не удалите тома.

Если Вы решили заново создать бд , то можете заново использовать существующие тома (disk init в sybase)
СУБД заново разметит сырой диск.

Либо удалить тома веритас, на их месте создать новые с нужными названиями , потом все остальное.
20 янв 17, 14:54    [20127439]     Ответить | Цитировать Сообщить модератору
 Re: БД в Sybase неактивна  [new]
phpmotor
Member

Откуда:
Сообщений: 16
fin3544,
А можно переименовать том веритас? Если да, то как это можно сделать?
Спасибо!
24 янв 17, 07:33    [20138018]     Ответить | Цитировать Сообщить модератору
 Re: БД в Sybase неактивна  [new]
phpmotor
Member

Откуда:
Сообщений: 16
Нашел вот это:

Renaming a disk:
vxedit -g <disk> rename <old disk name> <new disk name>
24 янв 17, 12:53    [20139256]     Ответить | Цитировать Сообщить модератору
 Re: БД в Sybase неактивна  [new]
fin3544
Member

Откуда:
Сообщений: 48
phpmotor
Нашел вот это:

Renaming a disk:
vxedit -g <disk> rename <old disk name> <new disk name>


Я сам такими извращениями вещами не занимался , мне всегда проще было удалить ошибочно созданный том и создать новый. Но судя по документации должно работать

https://sort.veritas.com/public/documents/vom/4.0/windowsandunix/productguides/html/vom_winadm_addon_users/apas13s03.htm
24 янв 17, 13:37    [20139596]     Ответить | Цитировать Сообщить модератору
Все форумы / Sybase ASA, ASE, IQ Ответить