- Вопрос: Как задать значения переменных среды Oracle?
- Вопрос: Как можно просмотреть список всех установленных продуктов?
- Вопрос: Можно ли осуществить экспорт непосредственно на ленту?
- Вопрос: Можно ли архивировать сразу на ленту?
- Вопрос: Что делать, если недостаточно места для экспорта базы?
- Вопрос: Как выполнить экспорт/импорт быстрее?
- Вопрос: Как выбрать значение из таблицы в переменную?
- Вопрос: Как отследить что делает тот или иной процесс?
- Вопрос: Как заставить один скрипт работать со всеми БД?
- Вопрос: Почему Oracle не освобождает файловое пространство, когда удаляется табличная область (через команду drop)?
- Вопрос: Как скопировать Oracle software с машины на машину?
Вопрос: Как задать значения переменных среды Oracle?
Ответ: Скрипт Оraenv поставляется с программой инсталляции. Вы можете использовать его для задания значений переменных среды, таких как ORACLE_HOME, ORACLE_SID. Переменную Oracle Home directory однако не следует задавать в скрипте явно.
Следующий пример показывает, как вызывать скрипт oraenv (в неинтерактивном режиме):
export ORACLE_S >export ORAENV_ASK=NO
Замечание: точка перед "oraenv" необходима, чтобы скрипт oraenv выполнился вашей текущей оболочкой (shell) .
Вопрос: Как можно просмотреть список всех установленных продуктов?
Ответ: Для просмотра списка всех установленных продуктов и версий выполните команду:
Вопрос: Можно ли осуществить экспорт непосредственно на ленту?
Ответ: Да, используйте вместо имени файла имя ленточного устройства. Например,
Замечание: Размер задается числом и заканчивается указанием a m, k, b (M, K, B). По умолчанию байты.
Вопрос: Можно ли архивировать сразу на ленту?
Ответ: Да, установите log_archive_dest = /dev/rmt0:100M в своем файле инициализации init.ora.
Можно также использовать ARCHMON с ARCH. Когда достигнут конец ленты, ARCH останавливается, дает сигнал ARCHMON и пользователю сообщается о необходимости установить новую ленту. Когда лента смонтирована, процесс архивирования возобновляется. Эта операция требует оперативного мониторинга.
Вопрос: Что делать, если недостаточно места для экспорта базы?
Ответ: Попробуйте выполнить экспорт и сжатие одновременно.
# Make a pipe
mknod expdat.dmp p # or mkfifo pipe
# Start compress sucking on the pipe in background
compress expdat.dmp.Z &
# Wait a second or so before kicking off the export
sleep 5
# Start the export
exp scott/tiger file=expdat.dmp
Или экспортируйте по сети непосредственно в базу-получатель
Host A:
mknod FIFO.dmp p
exp u/p FILE=FIFO.dmp rest_of_parameters.
Host B:
mknod FIFO2.dmp p
rsh host1 dd if=FIFO.dmp > FIFO2.dmp &
imp u/p FILE=FIFO2.dmp rest_of_parameters.
Вопрос: Как выполнить экспорт/импорт быстрее?
Ответ: Для ускорения передачи (до 30%) больших объемов данных между двумя базами, перекомпилируйте программы для выполнения операций импорта/экспорта в однозадачном режиме. Этот метод потребует больше памяти и официально не поддерживается компанией Oracle, хотя сами они, похоже, его используют.
make -f ins_rdbms.mk singletask
# make -f ins_rdbms.mk expst
# make -f ins_rdbms.mk impst
# make -f ins_rdbms.mk sqlldrst
# mv expst $ORACLE_HOME/bin/
# mv impst $ORACLE_HOME/bin/
# mv sqlldrst $ORACLE_HOME/bin/
Теперь используйте expst и impst вместо imp и exp.
Вопрос: Как выбрать значение из таблицы в переменную?
Ответ: В примере, приведенном ниже, значение из базы данных задается в качестве переменной среды.
VALUE=`sqlplus -silent "user/password@instance"
Вопрос: Как отследить что делает тот или иной процесс?
truss -p $ lsnrctl dbsnmp_start
Вопрос: Как заставить один скрипт работать со всеми БД?
Ответ: Все базы данных на вашей машине должны быть перечислены в файле /etc/oratab Посмотрите этот пример:
ALL_DATABASES=`cat /etc/oratab|grep -v "^#"|grep -v "N$"|cut -f1 -d:-s`
for DB in $ALL_DATABASES
export ORACLE_S >export ORACLE_HOME=`grep "^$
echo "—> Database $ORACLE_SID, using home $ORACLE_HOME"
sqlplus -s system/$
Вопрос: Почему Oracle не освобождает файловое пространство, когда удаляется табличная область (через команду drop)?
Ответ: Иногда, когда Вы удаляете табличную область (через команду drop) и затем файлы (используя rm), Oracle не освобождает файловое пространство, пока Вы не закроете его. Это действие требует подтверждения "df -k" командой. Такое поведение считается нормальным для Unix среды.
Используйте команду "fuser" перед удалением файлов Oracle. Если они задействованы другими процессами, пространство так и не освободится после rm команды. Если файл заблокирован SMON, подождите несколько минут до разблокировки.
Вопрос: Как скопировать Oracle software с машины на машину?
Ответ: Скопировать Oracle с машины на машину:
# use tar to copy files and directorys with permissions and ownership
tar cf — $ORACLE_HOME | rsh "cd $ORACLE_HOME; tar xf -"
Скопировать в другой каталог на том же сервере:
(cd $ORACLE_HOME; tar cf — . ) | tar xvf –
За дополнительной информацией обращайтесь в компанию Interface Ltd.
Переменные окружения Oracle:
ORACLE_BASE: Основа структуры каталогов Oracle. Рекомендуется установить ее перед установкой.
ORACLE_HOME: Среда, в которой работают продукты Oracle. Не требуется перед установкой, если установлена ORACLE_BASE .
ORACLE_SID: Не требуется перед установкой, но полезна впоследствии для простоты взаимодействия с определенным экземпляром
NLS_LANG: Дополнительная переменная окружения, которая управляет языком, территорией, и клиентскими настройками набора символов
Есть множество переменных окружения Oracle, включенных в каждую среду Oracle. Упомянутые здесь важны для успешной установки и использования базы данных Oracle. Ни одна из них не обязана быть установленной, но можно избежать будущих проблем, если установить эти переменные.
ORACLE_BASE: Определяет основу структуры каталогов Oracle для Оптимальной Гибкой Архитектуры (OFA), которая рекомендуется Oracle Support. Использование является опциональным; если используется, это может облегчить будущие установки и обновления. Это — путь к каталогу, как показано в следующем примере:
ORACLE_HOME: Среда, в которой работают продукты Oracle. Не обязательна перед установкой, если установлена ORACLE_BASE. OUI может использовать ORACLE_BASE, чтобы определить рекомендуемый ORACLE_HOME для Вашей установки. Наличие этой переменной окружения облегчает обслуживание и управление программным обеспечением Oracle. Это — путь к каталогу, как показано в следующем примере:
ORACLE_SID: системный идентификатор для экземпляра Oracle, такого как orcl для базы данных или +ASM для экземпляра ASM. Не требуется перед установкой, но полезен впоследствии для простоты взаимодействия с определенным экземпляром.
NLS_LANG: Дополнительная переменная окружения, которая управляет языком, территорией, и клиентскими настройками набора символов как в следующем примере:
Для получения дополнительной информации о допустимых языках, территориях, наборы символов, и поддержка языка, см. Oracle Database Globalization Support Guide.
Подразумевается, что вы уже произвели установку Oracle DB.
Данная инструкция проверена на Oracle DB 10.2.0.3.0 for Windows под Windows XP Prof SP2
Обратите внимание на то, что имя UNDO TABLESPACE (undotbs1) должно соответствовать имени, указанному в параметре undo_tablespace (UNDOTBS1) файла initdb01.ora (п.3.). Регистр значания не имеет.
При первом старте, listener проверит и, при необходимости, создаст нужную службу Windows