Недавно я стал отвечать за администрирование приложения, которое, по сути, является интерфейсом для базы данных Sybase SQL Anywhere 9, включая саму базу данных. Я бы хотел использовать unload table
для эффективного экспорта данных для резервного копирования и, в случае нескольких таблиц, ETL для переноса их в базу данных отчетов / небольшое хранилище данных.
Проблема в том, что клиентское приложение дает сбой и довольно регулярно оставляет мертвые соединения и разделяемые блокировки, что, похоже, предотвращает unload table
от получения необходимых (кратких) эксклюзивных блокировок. В настоящее время я использую Sybase Central, чтобы убедиться, что эти соединения на самом деле являются зомби, и сам сбросить их в конце дня / недели.
Есть ли команда или сценарий для разрыва всех подключений? Возможность отказаться от всего сразу после проверки того, что они не нужны, была бы весьма полезной, но я не нашел способа сделать это.
Очищение через руководство вы можете захотеть dbstop
команда. Я думаю, что это отключит всех пользователей, -y
вариант. Вы также можете убедиться, что ваша база данных и файл журнала синхронизированы. У меня создалось впечатление, что dbstop сделает это, но я никогда раньше не делал ничего подобного.