powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / БД в Sybase неактивна
11 сообщений из 11, страница 1 из 1
БД в Sybase неактивна
    #39385808
phpmotor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте!
Имеется:
СУБД: 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

Несколько месяцев тому назад я создал базу данных следующими командами:
Код: sql
1.
2.
3.
4.
5.
6.
7.
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"



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

Вчера решил переименовать эту базу. Для этого ввел следующие команды:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
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, и я решил перезагрузить сервер командами
Код: sql
1.
2.
sync; sync; sync; sync; sync; sync; sync; sync; sync; sync; sync
/usr/sbin/shutdown -y -g0 -i6



Сервер перезагрузился, но теперь БД t_hlr_v9 стоит offline. При попытке сделать online выдается ошибка:
Код: sql
1.
2.
3.
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 почему-то нет.
Что можно и нужно сделать?
Спасибо!
...
Рейтинг: 0 / 0
БД в Sybase неактивна
    #39386667
fin3544
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
у Вас похоже с veritas проблема

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

vxprint -g ossdg -v
...
Рейтинг: 0 / 0
БД в Sybase неактивна
    #39386863
phpmotor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
fin3544,
команда
Код: sql
1.
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) заново созданная БД не пропадала при перезагрузках случайных или специальных.

Спасибо!
...
Рейтинг: 0 / 0
БД в Sybase неактивна
    #39387376
fin3544
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
...
Рейтинг: 0 / 0
БД в Sybase неактивна
    #39387639
phpmotor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
fin3544,
Я вспоминал свои действия и получилась следующая история.
Была БД pmdb. Я её удалил. Затем удалил девайсы, которые использовала эта БД.
Девайсы ссылались на тома веритаса. Когда я удалял девайсы, я про существование Veritas VM и его томов понятия не имел.
В папке
Код: plaintext
/dev/vx/rdsk/ossdg/
я увидел следующие "файлы":
Код: plaintext
1.
2.
3.
4.
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' в атрибутах тогда меня никак не смутила.
Эти "файлы" я переименовал в удобные мне названия командами:
Код: plaintext
1.
2.
3.
4.
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-файлов.
...
Рейтинг: 0 / 0
БД в Sybase неактивна
    #39387744
fin3544
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
phpmotor,

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

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
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

После старта сервер должен подняться
...
Рейтинг: 0 / 0
БД в Sybase неактивна
    #39388131
phpmotor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
fin3544,
На данный момент ситуация уже другая.
Вчера я удалил pmdb_data_lv001, pmdb_data_lv002, pmdb_data_lv003 и pmdb_log_lv001 из master..sysdevices командами
Код: plaintext
1.
2.
3.
4.
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 с прежними названиями с указанием прежних томов веритаса поможет?

Если восстановить базу нельзя, то освободилось ли занимаемое этой БД дисковое пространство в томах веритаса? Или теперь нужно удалять и тома веритаса, чтобы недоступные данные на дисках зря место не занимали?
...
Рейтинг: 0 / 0
БД в Sybase неактивна
    #39388499
fin3544
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
phpmotorfin3544,

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

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

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


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

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

Либо удалить тома веритас, на их месте создать новые с нужными названиями , потом все остальное.
...
Рейтинг: 0 / 0
БД в Sybase неактивна
    #39390002
phpmotor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
fin3544,
А можно переименовать том веритас? Если да, то как это можно сделать?
Спасибо!
...
Рейтинг: 0 / 0
БД в Sybase неактивна
    #39390207
phpmotor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Нашел вот это:
Код: plaintext
1.
2.
Renaming a disk:
 	vxedit -g <disk> rename <old disk name> <new disk name>
...
Рейтинг: 0 / 0
БД в Sybase неактивна
    #39390255
fin3544
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
phpmotorНашел вот это:
Код: plaintext
1.
2.
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
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / БД в Sybase неактивна
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]