Шрифт:
Интервал:
Закладка:
Хотя isql имеет некоторые удобные интерактивные возможности, она не ограничена только этим режимом. Многие интерактивные команды доступны также в виде переключателей командной строки. Некоторые функции isql, такие как извлечение метаданных, доступны только из окна командной строки. Операции над входными и выходными файлами не обязательно должны быть интерактивными- фактически вызов isql с переключателями -i[nput] и -o[utput] не вызывает интерактивного режима.
Команды выполняются и после завершения, они автоматически возвращают управление окну командной строки. Вызовы isql также могут находиться внутри скриптов командной строки или внутри пакетных файлов.
Некоторые переключатели могут быть использованы при вызове интерактивного окна isql. Они представлены в табл. 37.1.
Выполнение isql в командном режиме
Откройте окно командной строки и перейдите в каталог Firebird /bin вашей инсталляции сервера или клиента Firebird. Используйте следующий синтаксис для вызовов isql:
isql [режимы] [имя-базы-данных] [-u[ser] <имя-пользователя> -pas[sword] <пароль>]
Для операций SYSDBA вы можете задать переменные операционной системы ISC_USER и ISC_PASSWORD и не вводить их в командах. Для деятельности пользователей, не являющихся SYSDBA, вам всегда нужно задавать учетные данные для операций с базой данных и/или с объектами.
Терминатором по умолчанию является точка с запятой (;). Вы можете заменить ее любым символом или группой символов с помощью режима в командной строке.
! ! !
ПРИМЕЧАНИЕ. Если вы выполняете команду соединения с базой данных для выполнения скрипта, а его набор символов по умолчанию NONE, вам нужно в ваш скрипт включить команду SET NAMES.
. ! .
Вы можете установить диалект isql из командной строки при вызове isql:
isql -s n ;
где n = 1, 2 или 3.
Переключатели командной строки
Требуются только начальные символы переключателей. Вы также можете набрать любую часть текста в квадратных скобках, показанного в табл. 37.1, включая полное название режима. Например, задание -n, -no, -noauto имеет одинаковый эффект.
Таблица 37.1. Переключатели для режимов командной строки isql
Режим
Описание
-a
Извлекает все операторы DDL из указанной базы, а также операторы, не являющиеся операторами DDL
-d[atabase] имя
Используется с переключателем -x (извлечь). Изменяет имя базы данных в операторе CREATE DATABASE, извлеченном в файл. Путь к файлу должен быть полностью определен. Без переключателя -d CREATE DATABASE появляется в виде комментария в стиле языка С с использованием имени базы данных, заданным в командной строке
-с[ache]
Задает количество страниц в кэше, применяемом в этом соединении с базой данных. Вы можете использовать этот переключатель для того, чтобы на время перекрыть размер кэша, установленный на текущий момент для базы данных
-е[cho]
Отображает каждый оператор перед его выполнением (так называемое эхо)
-ex[tract]
Извлекает операторы DDL из указанной базы данных и отображает их на экране, если только вывод не был переназначен в файл
-i[nput] файл
Читает команды не с клавиатурного ввода, а из входного файла. В аргументе файл должен быть указан полный путь. Входные файлы могут содержать команды -input, которые вызывают другие файлы, позволяя выполнить ветвление, а затем вернуться, isql подтверждает работу текущего файла до открытия следующего
-m[erge stderr]
Объединяет вывод stderr с stdout. Полезно для помещения вывода и ошибок в один файл при выполнении isql в скрипте командной строки или из пакетного файла
-n[oauto]
Отключает автоматическое подтверждение операторов DDL. По умолчанию операторы DDL подтверждаются автоматически в раздельных транзакциях
-nowarnings
Отображает предупреждающие сообщения, если и только если появилась ошибка (по умолчанию isql отображает любое сообщение, возвращенное в векторе состояния, даже если не появлялось ошибок)
-o[utput] файл
Записывает результаты в выходной файл, а не в стандартный вывод. Аргумент файл должен содержать полный путь к файлу
-pas[sword] пароль
Используется вместе с -user для задания пароля при соединении с удаленным сервером или когда это требуется для локальной операции. Для доступа пароль и пользователь должны представлять существующую запись в базе данных безопасности на сервере
-page[length] n
В результате запроса выводит заголовки столбцов через каждые n строк, а не через 20 заданных по умолчанию
-q[uiet]
Подавляет вывод сообщения "Use CONNECT or CREATE DATABASE . . ." при отсутствии пути к базе данных в командной строке
-r[ole] имя-роли
Передает имя-роли вместе с учетными данными пользователя при соединении с базой данных
-s[ql dialect] n
Интерпретирует последовательность команд как диалект n до конца сессии или пока диалект не будет изменен оператором SET SQL DIALECT. См. разд. "Установка диалекта в isql" ранее в этой главе
-t[erminator] x
Изменяет символ завершения оператора со значения по умолчанию точка с запятой (;) на x, где x- один символ или любая последовательность символов
-u[ser] пользователь
Используется вместе с -password. Задает имя пользователя при соединении с удаленным сервером. Для доступа пароль и пользователь должны представлять существующую запись в базе данных безопасности на сервере
-x
То же самое, что и -extract
-z
Отображает версию программы isql
Извлечение метаданных
В командной строке вы можете использовать режим -extract для вывода операторов DDL, которые определяют метаданные в базе данных.
Все зарезервированные слова и объекты извлекаются в файл в виде символов в верхнем регистре, если только локальный язык не использует набор символов, который не имеет верхнего регистра. Выходной скрипт создается с подтверждением каждого набора команд, следовательно, на каждую таблицу можно ссылаться в последующих определениях. Выходной файл включает имя объекта и его владельца, если он определен.
Необязательный флаг -output перенаправляет вывод в указанный файл. Используйте следующий синтаксис:
isql [[-extract | -x][-a] [[-output | -о] выходной-файл]] база-данных
Режим -x может быть использован в качестве сокращения для -extract. Флаг -а указывает утилите isql на необходимость извлечения всех объектов базы данных. Обратите внимание, что спецификация выходного файла выходной-файл должна содержать полный путь к файлу и должна следовать после флага -output. Имя файла и путь извлекаемой базы данных могут находиться в конце команды.
Вы можете использовать результирующий текстовый файл для:
* проверки текущего состояния системных таблиц базы данных перед планированием изменений. Это особенно полезно, если база данных значительно изменялась после ее создания;
* создания базы данных со схемой, идентичной схеме извлекаемой базы данных;
* открытия в вашем текстовом редакторе для выполнения изменений определения базы данных или для создания нового исходного файла базы данных.
! ! !
ПРИМЕЧАНИЕ. Функция -extract не всегда бывает столь разумной, как должна бы быть по отношению к зависимостям. Иногда необходимо редактировать выходной файл для изменения порядка создания таблиц.
. ! .
Использование isql -extract
Следующий оператор извлекает схему SQL из базы данных employee.fdb в файл скрипта схемы с именем employee.sql:
isql -extract -output /data/scripts/employee.sql /data/employee.fdb Эта команда эквивалентна:
isql -x -output /data/scripts/employee.sql /data/employee.fdb He извлекаются следующие объекты и элементы:
* системные таблицы и просмотры, системные триггеры;
* коды внешних функций и фильтров BLOB (они не являются частью базы данных);
* атрибуты владельца объектов.
Использование isql -a
Режим -(е)x (tract) извлекает метаданные только для объектов SQL. Если вы хотите извлечь скрипт схемы, который включает такие объявления, как DECLARE EXTERNAL FUNCTION и DECLARE FILTER, используйте режим -а.
Например, для извлечения операторов DDL из базы данных employee.fdb и помещения в файл employee.sql введите:
isql -a -output /data/scripts/employee.sql /data/employee.fdb
Пора дальшеТеперь мы рассмотрим gbak, утилиту командной строки для резервного копирования и чистки базы данных.
ГЛАВА 38. Резервное копирование и восстановление баз данных (gbak).
Корректное резервное копирование базы данных Firebird компактно сохраняет метаданные и данные базы данных в файле на жестком диске или на другом запоминающем устройстве. Настоятельно рекомендуется перезаписывать файлы резервных копий на сменные носители и хранить в физически защищенном месте в стороне от сервера.
- Delphi. Учимся на примерах - Сергей Парижский - Программирование
- Сделай видеоигру один и не свихнись - Слава Грис - Программирование / Руководства
- Психбольница в руках пациентов - Алан Купер - Программирование