powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Проблемы при переходе с версии Sybase ASA 10.0.1.4310 на версию 12.0.1.3742
16 сообщений из 16, страница 1 из 1
Проблемы при переходе с версии Sybase ASA 10.0.1.4310 на версию 12.0.1.3742
    #37895343
Aleximos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день!
Возникло несколько проблем при переводе базы данных на более новую версию Sybase.
Во-первых, начали себя вести странно локальные временные таблицы (объявляемые через #). Странность заключалась в том, что некоторые из запросов, в составе которых создавались и использовались временные таблицы, начали выдавать ошибку (ссылка на официальную страницу ошибки - http://dcx.sybase.com/1200/en/saerrors/errm1397.html). Причём ошибку выдавало 1 раз из 4-х (цифра примерная, точной статистики привести не могу), т.е. какой-либо "стабильности" в её выдаче не наблюдалось. Способ решения данной ошибки, рекомендуемый в официальном мануале к Sybase (запуск процедуры с параметром
Код: sql
1.
with recompile

), ничего не дал.
Во-вторых, при падении базы данных, она (база) откатилась к состоянию на момент последнего checkpoint'а, чего не наблюдалось на 10 версии (т.е. были потеряны данные за час, против потерь данных за 5-10 минут на 10 версии).

Вопросы:
1) Чем отличается поведение временных таблиц в 12 версии от 10 версии?
2) Какие ещё есть возможные решения по данной ошибке?
3) Почему могли быть потеряны данные за такой промежуток времени?

Большое спасибо за ответы.
...
Рейтинг: 0 / 0
Проблемы при переходе с версии Sybase ASA 10.0.1.4310 на версию 12.0.1.3742
    #37895941
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> которых создавались и использовались временные таблицы, начали выдавать ошибку
> (ссылка на официальную страницу ошибки -
> http://dcx.sybase.com/1200/en/saerrors/errm1397.html).

Повтори сслыку на ошибку и продублируй текстом.
А то не открывается.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Проблемы при переходе с версии Sybase ASA 10.0.1.4310 на версию 12.0.1.3742
    #37896000
Фотография ASCRUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Исправил заголовок. На самом деле речь идет про ASA.
...
Рейтинг: 0 / 0
Проблемы при переходе с версии Sybase ASA 10.0.1.4310 на версию 12.0.1.3742
    #37896052
Anton Frolov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
...
Рейтинг: 0 / 0
Проблемы при переходе с версии Sybase ASA 10.0.1.4310 на версию 12.0.1.3742
    #37896093
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AleximosВо-первых, начали себя вести странно локальные временные таблицы (объявляемые через #). Странность заключалась в том, что некоторые из запросов, в составе которых создавались и использовались временные таблицы,
Код покажешь?

AleximosВо-вторых, при падении базы данных, она (база) откатилась к состоянию на момент последнего checkpoint'а, чего не наблюдалось на 10 версии (т.е. были потеряны данные за час, против потерь данных за 5-10 минут на 10 версии).На чекпоинте все транзакции зарегестрированные в логе, но не наложенные на собственно базу данных - накладываются (транзакции переходят из dirty pages в white pages). То есть при утере лога, но нормальном файле базы ты получишь базу на момент чекпоинта. Если хочешь вытянуть из старого лога отложенные транзакции, запускай сервер с ключом -а и старым логом.
Если это уже сделано, а транзакции из старого лога не появились, значит падение базы затронуло лог и был поврежден как раз участок лога с грязными транзакциями.
От версии это не зависит.
...
Рейтинг: 0 / 0
Проблемы при переходе с версии Sybase ASA 10.0.1.4310 на версию 12.0.1.3742
    #37897379
Sergey Orlov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AleximosВопросы:
1) Чем отличается поведение временных таблиц в 12 версии от 10 версии?
2) Какие ещё есть возможные решения по данной ошибке?
3) Почему могли быть потеряны данные за такой промежуток времени?
Большое спасибо за ответы.
Как пытались перевести с 9-ки на 12-тую, у меня были проблемы при работе 8-ной базы под 9-тым сервером.
После некоторых раздумий, была выбрана след. последовательность действий, была выгружена структура из 8-ки и пытались этим sql-скриптом загрузить в 9-ку, естественно она на кое-что ругалась, анализировалась ругань, вносились изменения в 8-мую базу и процесс повторялся... Ну а потом, поскольку базы были маленькими(1-2гига), то они были выгружены в скрипт со структурой и данными, затем в скриптах была убита статистика и все это богатство загружено в 9-ку...
...
Рейтинг: 0 / 0
Проблемы при переходе с версии Sybase ASA 10.0.1.4310 на версию 12.0.1.3742
    #37897436
Aleximos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
White Owl,
Вначале создаётся временная таблица:
Код: sql
1.
2.
3.
Create Table #SSpec(DetID Integer, Qty Numeric(20,4), sale Numeric(20,4) Null, sale1 Numeric(20,4) Null, 
ParentID Integer Null, SchetInID Integer Default Autoincrement, Schet VarChar(50) Null, IsError bit default 0,
BaseCurID integer Null, SellAllowed bit default 0, Reserv integer default 0)


Впоследствии в одной из подпроцедур создаётся таблица с таким-же именем и структурой.
Код: sql
1.
2.
3.
Create Table #SSpec(DetID Integer, Qty Numeric(20,4), sale Numeric(20,4) Null, sale1 Numeric(20,4) Null, 
                        ParentID Integer Null, SchetInID Integer Default Autoincrement, Schet VarChar(50) Null, 
                        IsError bit default 0, BaseCurID integer Null, SellAllowed bit default 0, Reserv integer default 0)


Ошибка возникала при обращении к данным, записанным в таблицы, причём как к первой, так и ко второй.
...
Рейтинг: 0 / 0
Проблемы при переходе с версии Sybase ASA 10.0.1.4310 на версию 12.0.1.3742
    #37897483
Aleximos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
White Owl,
А точнее примерно вот такая последовательность:
В общей коннекции:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
Create Table #SSpec(....)
Exec SP1
......    
    Select
    From  #SSpec
            Inner join ........
..... 
 Exec SP2
.....
     Update #SSpec
.....
Exec SP3
.....................
        Create Table #SSpec(....)
        Exec SP1
        Exec SP3
........................
...
Рейтинг: 0 / 0
Проблемы при переходе с версии Sybase ASA 10.0.1.4310 на версию 12.0.1.3742
    #37898022
Фотография Ggg_old
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
-Доктор, а если я сделаю так, то у меня болит. Что мне делать?
-Не делайте так!
(старый народный анекдот)

Мораль: не создавайте времянок с одинаковым именем, данные которых вы еще пытаетесь шарить. Я бы ожидал, что на втором create должна была выскочить ошибка, что объект уже существует.

P.S. если приводить до ума бажный код нет никакой возможности, то попробуйте использовать диалект watcom и вместо #t использовать объявления declare local temporary table. А вось попустит на некторое недолгое время.
...
Рейтинг: 0 / 0
Проблемы при переходе с версии Sybase ASA 10.0.1.4310 на версию 12.0.1.3742
    #37898211
Aleximos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ggg_old,

Спасибо за совет, но объявление временной таблицы на Watcom'е тоже не помогало.
Есть ли ещё какие-то варианты?
...
Рейтинг: 0 / 0
Проблемы при переходе с версии Sybase ASA 10.0.1.4310 на версию 12.0.1.3742
    #37898444
Фотография Ggg_old
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Aleximos,

вариант только один - исправлять ваш кривой код. То что оно работало раньше считайте чудом и удачей.
...
Рейтинг: 0 / 0
Проблемы при переходе с версии Sybase ASA 10.0.1.4310 на версию 12.0.1.3742
    #37899991
Anton Frolov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ggg_old,

И как должен быть написан такой код? Можете аналог предложить?
...
Рейтинг: 0 / 0
Проблемы при переходе с версии Sybase ASA 10.0.1.4310 на версию 12.0.1.3742
    #37900293
Фотография Ggg_old
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
да какой там аналог? Просто не делайте два раза create table. Create должен быть только один. Если одинаковость имени - принципиальна, и данные как-то переползают из старой таблицы в новую то делайте где-то внутрях alter table, а лучше делайте временную таблицу с другим именем.
...
Рейтинг: 0 / 0
Проблемы при переходе с версии Sybase ASA 10.0.1.4310 на версию 12.0.1.3742
    #37900660
Sergey Orlov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну и или перед 2-ым create table... сделайте drop table...
...
Рейтинг: 0 / 0
Проблемы при переходе с версии Sybase ASA 10.0.1.4310 на версию 12.0.1.3742
    #37900674
Sergey Orlov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вообще-то я перед созданием временки проверял ее наличие...
...
Рейтинг: 0 / 0
Проблемы при переходе с версии Sybase ASA 10.0.1.4310 на версию 12.0.1.3742
    #37900732
Фотография Ggg_old
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
временная таблица - это динамический сессионный объект, который не имеет никакого отношения к процессу компиляции кода времянки. Во всяком случае это верно для SA. (прим.: это не верно верно для ASE, где при компиляции ХП проверяется существование объектов, которые в ней используются, в т.ч. и ХП).
Поэтому в коде скрипты, который вы вызываете должен прямо прописан код проверяющий, существует или нет такая временная таблица и делающая ей drop.
...
Рейтинг: 0 / 0
16 сообщений из 16, страница 1 из 1
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Проблемы при переходе с версии Sybase ASA 10.0.1.4310 на версию 12.0.1.3742
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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