Sybase теряет данные при использовании утилиты ASE ISQL?

Я администрирую базу данных Sybase ASE(15.0.7), которая работает на Solaris(11). Я новичок в Sybase ASE, но в целом хорошо разбираюсь в работе с базами данных, такими как SQL Server. В последнее время, когда я выполнял такие задачи, как загрузка скриптов программистов и т. д., мне сказали не использовать его с ASE ISQL и переходите прямо из утилиты командной строки (isql), поскольку в противном случае часть данных будет потеряна. Я был очень сбит с толку, как он мог что-то потерять при передаче сценария в БД. Я пытался обсудить это с людьми на работе, говоря, что это звучит довольно странно.

Никто из нас не является настоящим многоопытным админом Sybase и, как правило, аргументированных ответов по делу мне дать не смогли. Так что они просто заявляют, что ASE isql - нет-нет.

Может ли это быть правдой?


person Kirill Pashkov    schedule 28.09.2014    source источник


Ответы (1)


Это абсолютно не так. Утилита командной строки Sybase 'isql' очень интенсивно используется клиентами Sybase. Я думаю, что путаница может возникнуть из-за того, что isql не выполняет «автофиксацию», как это часто бывает в клиентских инструментах для многих других баз данных. В результате, когда вы запускаете явную транзакцию (НАЧАЛО ТРАНЗАКЦИИ) в режиме несвязанных транзакций по умолчанию или когда вы работаете в режиме сцепленных транзакций и когда вы выходите из «isql», транзакция не была зафиксирована, поэтому сервер ASE откатить его обратно. Это может быть истолковано как «потеря данных», но на самом деле это не так. Таким образом, в ASE вы должны явно COMMIT транзакцию, или она в конечном итоге будет отменена.

(просто для полноты, в режиме несвязанной транзакции по умолчанию, если вы не используете BEGIN TRANSACTION, каждая команда DML будет немедленно зафиксирована, когда она будет готова. Это не то же самое, что автоматическая фиксация, хотя иногда ее так и называют.)

person RobV    schedule 30.09.2014
comment
Я думаю, что есть путаница. Он имеет в виду проект с открытым исходным кодом ASEisql, который был создан после того, как Sybase изменила графический интерфейс, когда они переделали кучу элементов управления на Java. Проверьте ссылку в вопросе, и вы увидите, что он имеет в виду. - person Michael Gardner; 30.09.2014