Oracle sid что это
Файл параметров инициализации имеющий имя init.ora, собственно является основным средством настройки БД. Он представляет из себя обычный ASCII файл, содержащий ряд параметров, которые БД, использует при старте и последующем разворачивании в ОС. Правда здесь есть один нюанс, сама БД ищет, файл инициализации с именем initSID.ora. Где SID, напомню, если кто забыл, это служебное имя вашего экземпляра БД. В нашем случае, если вы инсталлировали БД, как я вам предлагал, это будет PROBA (например, моя экспериментальная БД имеет в качестве SID значение HOME. Не самое удачное решение, хотя она у меня уже скоро развалится, и я ее переделаю, а за одно выберу другое имя!). Так вот ваш файл инициализации БД будет находиться в каталоге $ORACLE_HOME\DATABASE, $ORACLE_HOME - это в вашем случае каталог С:\Oracle\Ora81, значит в совокупности получается C:\Oracle\Ora81\DATABASE. Там должен лежать файл с именем initPROBA.ora, загляните что у него внутри, должно быть что-то вроде:
Вот теперь надеюсь ясно, параметр IFILE просто указывает вашему экземпляру БД, где искать именно свой, а не чей попало, файл инициализации. Найдя этот файл ваша БД, счастливо стартует и начинает свою трудовую деятельность! Параметр IFILE вообще-то и применяется для лучшего структурирования вашего севера Oracle! А вот в каталоге $ORACLE_HOME\dbs, есть еще один файл init.ora, если его внимательно изучить, то можно настроить любую БД Oracle в различных вариантах исполнения. Малая, средняя, крупная БД, ну и т. д. А теперь давайте заглянем внутрь вашего, файла init.ora. Можно увидеть примерно следующее:
В вашем случае его содержимое может быть различным, в зависимости кто, как ставился сам сервер, но основные параметры будут примерно одинаковыми, так что не огорчайтесь, если увидите что-то не похожее на мой пример! :) Все параметры мы прямо сейчас разбирать не станем, остановимся лишь на нескольких. Тем более что, мы еще не раз будем возвращаться к этому файлу.
Это собственно и есть тот самый SID, вашего экземпляра БД. Экземпляров, может быть, много и у каждого свой уникальный SID!
А это имя сервиса вашего экземпляра БД, то есть два предыдущих параметра вместе. Пока все понятно?
Идем дальше! Собственно все параметры инициализации вашего экземпляра БД можно просмотреть через представление v$parameter. Таких "представлений" в самой БД сотни. С их помощью о вашем экземпляре, можно узнать все. Именно их применяют в своей работе люди, гордо носящие имя Администраторы БД! Можно сказать, что один из них, ваш покорный слуга, так как пару сотен "представлений" я уже изучил! Давайте откроем SQLPlus и дадим такой запрос, естественно воспользовавшись знаниями об однотабличных запросах из прошлых шагов:
Имя экземпляра базы данных
Экземпляр базы данных состоит из области SGA и процессов ORACLE. Имя экземпляра базы данных указывается в файле инициализации init.ora параметром instance_name.
Если не брать во внимание конфигурацию ORACLE RAC , то каждой базе данных соответствует один экземпляр.
Оракловский системный идентификатор SID (System IDentifier – системный идентификатор) является уникальным именем, которое однозначно идентифицирует экземпляр/базу данных. Хранится в переменной среды ORACLE_SID и используется утилитами и сетевыми компонентами для доступа к базе данных.
Здесь можно почитать, как переименовать базу данных.
Глобальное имя базы данных
Для того, чтобы база данных была уникально идентифицирована в глобальном масштабе используется глобальное имя базы данных. Оно состоит из имени базы данных и домена базы данных. Так как две базы данных в одном домене не могут иметь одинаковые имена, то глобальное имя базы данных будет уникальным.
Имена службы (сервиса) базы данных.
Кроме понятия SID существует также и понятие SERVICE NAME, которые зачастую не различают. Тем не менее, для пользователей база данных ORACLE представляет собой службу (сервис) операционной системы. Имя сервиса (SERVICE_NAME) – это сравнительно новое понятие, введенное начиная с СУБД Oracle 8i. SERVICE_NAME определяет одно или ряд имен для подключения к одному экземпляру базы данных. То есть можно указать несколько имен сервиса, ссылающихся на один экземпляр, с различными настройками. Понятие служба БД используется для логического группирования сеансов с целью иметь обобщенную единицу слежения и управления при использовании общей БД разными приложениями. Службу рекомендуется связывать с набором приложений, объединенных общими свойствами, пороговыми характеристиками или правилами потребления ресурсов СУБД.
Возможные значения SERVICE_NAME указываются в сетевых установках Oracle и регистрируются в качестве службы БД процессом listener.
Стандартный способ получения SID и SERVICE_NAME, который работал до десятой версии СУБД Oracle – это использование утилиты lsnrctl. Для этого достаточно воспользоваться командой services:
В выводе команды мы можем видеть системный идентификатор, он же – SID (Instance), и имя сервиса – SERVICE_NAME (Service). В данном случае они совпадают, но это бывает не всегда.
Этот выпуск посвящен некоторым аспектам проблемы переименования и клонирования базы данных. Начнем с простого - как узнать и изменить идентификатор службы (SID) и имя базы данных (DB_NAME). Последний раз Том Кайт вернулся к этому вопросу 20 августа 2002 года.
Что такое SID, как его узнать и как изменить
Ответ Тома Кайта
Изменить его сложнее, чем кажется. Я знаю, что вы работаете в ОС Unix, поэтому следующая последовательность шагов для изменения SID (или имени базы данных) в Unix - для вас. В NT последовательность шагов - немного другая.
Как найти sid -- с помощью оператора select instance from v$thread .
НАЗНАЧЕНИЕ
Здесь описано, как найти и изменить имя базы данных ( db_name ) или ORACLE_SID для экземпляра, не пересоздавая базу данных.
ДЛЯ КОГО ЭТА ЗАМЕТКА
Для АБД, которым надо найти или изменить db_name или ORACLE_SID .
Чтобы найти текущие значения DB_NAME и ORACLE_SID:
Выполните запросы к представлениям v$database и v$thread .
Если ORACLE_SID = DB_SID и db_name = DBNAME :
Чтобы найти текущее значение ORACLE_SID :
Чтобы найти текущее значение DB_NAME :
Изменение базы данных для работы с новым ORACLE_SID :
- Остановите экземпляр
- Скопируйте все управляющие файлы, журналы повторного выполнения и файлы данных.
- Пройдите по файлам .profile , .cshrc , .login , oratab , tnsnames.ora и задайте переменной среды ORACLE_SID новое значение.
Например, пройдите по всем каталогам и выполните grep ORACLE_SID *
- init<sid>.ora (или используйте для задания файла параметров инициализации файл pfile .)
- управляющий файл (файлы). Это не обязательно, если вы не переименовываете управляющие файлы и используете параметр control_files . Параметр control_files устанавливается в файле init<SID>.ora или в файле, на который ссылается в нем параметр ifile . Проверьте, что параметр control_files не указывает на старые имена управляющиъ файлов, если вы их переименовали.
- crdb<sid>.sql и crdb2<sid>.sql , Это не обязательно, пеоскольку эти файлы используются только при создании базы данных.
- startup<sid>.sql . Это не обязательно. На некоторых платформах этот файл может находиться в каталоге $ORACLE_HOME/rdbms/install . Проверьте, что содержимое этого файла не ссылается на старые файлы init<SID>.ora , которые вы переименовали. Этот файл упрощает процесс запуска с сервера базы данных в исключительном режиме ( startup exclusive ).
Будет выдан запрос архивного файла журнала повторного выполнения. После применения текущего файла журнала базу данных, возможно, удастся открыть. Но, это НЕ ГАРАНТИРОВАНО . Если после применения текущего файла журнала повторного выполнения база данных не открывается, весьма вероятно, придется повторить все с начала, предварительно нормально остановив старую базу данных.
Чтобы найти список активных журнальных файлов:
Cколько АБД Oracle надо, чтобы поменять лампочку. Комментарий от 13 сентября 2001 года
Удивительно, сколько механической работы требуется в Oracle для простых вещей.
Смысл реляционной модели - нормализация; если проще - устранение избыточных данных. А что мы имеем - SID в десятке мест?
Ответ Тома Кайта
Чтобы было просто -- не меняйте SID .
База данных поддерживает реляционную модель, а обеспечивающее работу с ней программное обеспечение, согласен, этой модели не соответствует.
НА САМОМ ДЕЛЕ, мы сталкиваемся с попыткой ИЗМЕНИТЬ ПЕРВИЧНЫЙ КЛЮЧ.
Это, на самом деле, ПРЕКРАСНАЯ демонстрация особенностей реляционной модели. Первичным ключом для базы данных является SID. Вы пытаетесь изменить первичный ключ (чего в реляционных базах данных делать КРАЙНЕ НЕ РЕКОМЕНДУЕТСЯ) и реализовать действие on update cascade .
Так что, даже при наличии ОДНОГО внешнего ключа, пробюлема будет аналогичной. Если вы когда-нибудь изменяли значение первичного ключа, вам приходилось делать то же самое (находить все внешние ключи и изменять их соответственно).
Почему вы считаете изменение SID "простой вещью" (мне этот процесс кажется весьма мутным -- мне ни разу не приходилось самому это делать за 15 лет).
Комментарий от 1 марта 2001 года
Прекрасное описание процедуры изменения sid. Я постоянно это делала на прежней работе при создании тестовых экземпляров. Одна проблема, связанная с sid, меня всегда беспокоила - как узнать этот самый sid. Если вы не знаете sid, как вы подключитесь к экземпляру и спросите значение sid?
Ответ Тома Кайта
например: получаем 7 значений sid, работающих сечас на моей тестовой машине -- ora_pmon_$ORACLE_SIDЕсли вы работате не на сервере, sid просто не имеет значения, - вам нужна запись tns в файле tnsnames.ora .
На NT посмотрите список служб Oracle в Панели управления.
Оригинал обсуждения этого вопроса можно найти здесь.
Изменение SID на платформе Windows, кстати, описано вот здесь.
Copyright © 2003 Oracle Corporation
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.
Читайте также: