Что такое sid oracle

Что такое sid oracle

Я хочу проверить SID и текущее имя базы данных.

Я использую следующий запрос для проверки oracle SID

но таблица или представление не существует ошибка приходит.

Я использую следующий запрос для проверки текущей базы данных имя

но таблица или представление не существует ошибка приходит.

любая идея для выше двух проблем?

6 ответов

предполагаю select user from dual; должен дать вам текущего пользователя

и select sys_context(‘userenv’,’instance_name’) from dual; имя экземпляра

Я считаю, что вы можете получить Сид as SELECT sys_context(‘USERENV’, ‘SID’) FROM DUAL; (не могу проверить это сейчас)

Если, как и я, ваша цель-получить хост базы данных и SID для создания url-адреса Oracle JDBC, как

следующие команды помогут:

команда Oracle query для проверки SID (или имени экземпляра):

команда Oracle query для проверки имени базы данных (или хоста сервера):

Att. Серхио Марсело!—4—>

для полноты вы также можете использовать ORA_DATABASE_NAME.

возможно, стоит отметить, что не все методы дают вам одинаковый результат:

представления V$ — это в основном динамические представления системных метрик. Они используются для оптимизации производительности, мониторинга сессии, и т. д. Таким образом, доступ ограничен пользователями DBA по умолчанию, поэтому вы получаете ORA-00942 .

самый простой способ найти имя базы данных:

это представление предоставляется PUBLIC, поэтому любой может запросить его.

типа sqlplus командная строка

тогда u будет видеть результат в командной строке

здесь первый "ORCL" — это имя базы данных,может быть ваша система" XE " и другое, что было дано во время загрузки oracle.

Как уже упоминалось выше,

вы не можете запросить V$database/V$instance/V$thread, потому что у вашего пользователя нет необходимых разрешений. Вы можете предоставить их (через учетную запись DBA) с помощью:

Этот выпуск посвящен некоторым аспектам проблемы переименования и клонирования базы данных. Начнем с простого — как узнать и изменить идентификатор службы (SID) и имя базы данных (DB_NAME). Последний раз Том Кайт вернулся к этому вопросу 20 августа 2002 года.

Что такое SID, как его узнать и как изменить

Тривиальный вопрос для тебя: что такое SID и для чего он используется? Повлияет ли его изменение на другие экземпляры базы данных? И, наконец, как мне узнать значение SID моей базы данных? Я не смог найти ответ на сайте technet.oracle.com .

Ответ Тома Кайта

SID — это идентификатор сайта. Его значение хешируется вместе со значеним параметра ORACLE_HOME в ОС Unix для получения уникального ключа для подключения к области SGA. Если значения Oracle_sid или Oracle_home установлены неправильно, будет получено сообщение " oracle not available ", поскольку мы не можем подключиться к сегменту разделяемой памяти, который идентфицируется этим "волшебным" лючом. В NT мы не используем разделяемую память, но SID все равно важен. Можно создать несколько баз данных в одном начальном каталоге oracle, так что, надо же их как-то идентифицировать.

Изменить его сложнее, чем кажется. Я знаю, что вы работаете в ОС Unix, поэтому следующая последовательность шагов для изменения SID (или имени базы данных) в Unix — для вас. В NT последовательность шагов — немного другая.

Читайте также:  Стиральная машина vestel aura awm 840

Как найти sid — с помощью оператора select instance from v$thread .

НАЗНАЧЕНИЕ

Здесь описано, как найти и изменить имя базы данных ( db_name ) или ORACLE_SID для экземпляра, не пересоздавая базу данных.

ДЛЯ КОГО ЭТА ЗАМЕТКА

Для АБД, которым надо найти или изменить db_name или ORACLE_SID .

Чтобы найти текущие значения DB_NAME и ORACLE_SID:

Выполните запросы к представлениям v$database и v$thread .

Если ORACLE_S > и db_name = DBNAME :

Чтобы найти текущее значение ORACLE_SID :

Чтобы найти текущее значение DB_NAME :

Изменение базы данных для работы с новым ORACLE_SID :

  1. Остановите экземпляр
  2. Скопируйте все управляющие файлы, журналы повторного выполнения и файлы данных.
  3. Пройдите по файлам .profile , .cshrc , .login , oratab , tnsnames.ora и задайте переменной среды ORACLE_SID новое значение.

Например, пройдите по всем каталогам и выполните grep ORACLE_SID *

  • Перейдите в каталог dbs и переименуйте следующие файлы:
    • init .ora (или используйте для задания файла параметров инициализации файл pfile .)
    • управляющий файл (файлы). Это не обязательно, если вы не переименовываете управляющие файлы и используете параметр control_files . Параметр control_files устанавливается в файле init .ora или в файле, на который ссылается в нем параметр ifile . Проверьте, что параметр control_files не указывает на старые имена управляющиъ файлов, если вы их переименовали.
    • crdb .sql и crdb2 .sql , Это не обязательно, пеоскольку эти файлы используются только при создании базы данных.
    • Перейдите в каталог rdbms/admin и переименуйте файл:
      • startup .sql . Это не обязательно. На некоторых платформах этот файл может находиться в каталоге $ORACLE_HOME/rdbms/install . Проверьте, что содержимое этого файла не ссылается на старые файлы init .ora , которые вы переименовали. Этот файл упрощает процесс запуска с сервера базы данных в исключительном режиме ( startup exclusive ).
      • Переименование файлов данных и файлов журнала повторного ввполнения описано в документе службы поддерожки .
      • Измените соответственно значение переменной среды ORACLE_SID .
      • Проверьте в каталоге $ORACLE_HOME/dbs , включен ли файл паролей. Если да, в каталоге будет файл orapw
          и надо создать новый файл паролей для нового значения SID (переименование старого файла не поможет). Если файл orapw
          не существует, переходим на шаг 9. Для создания нового файла паролей выполните следующую команду от имени владельца ПО oracle :
      • Запустите базу данных и проверьте, что она работает. После этого остановите базу данных и создайте завершающую резервную копию всех управляющих файлов, файлов журнала повторного выполнения и файлов данных.
      • При запуске экземпляра в управляющем файле установится текущее значение ORACLE_SID .
      • Изменение имени ( db_name ) базы данных:

        1. Подключитесь как internal :
        2. Введите для принудительной обработки контрольной точки.
        3. Введите В результате будет создан трассировочный файл, содержащий оператор CREATE CONTROLFILE для пересоздания управляющего файла в текущем виде.
        4. Отсновите базу данных и завершите сеанс База данных должна быть остановлена штатно, с помощью SHUTDOWN NORMAL или SHUTDOWN IMMEDIATE . Нельзя останавливать ее аварийно с помощью SHUTDOWN ABORT .
        5. Перейдите в каталог, в котором находятся трассировочные файлы. Они обычно записываются в каталог $ORACLE_HOME/rdbms/log . Если установлен параметр инициализации user_dump_dest , перейдите в каталог, указанный в качестве его значения. Трассировочные файлы имеют вид ora_NNNN.trc , где NNNN — число.
        6. Скопируйте оператор CREATE CONTROLFILE из трассировочного файла и поместите его в новый файл, например, ccf.sql .
        7. Отредактируйте созданный файл ccf.sql
        Читайте также:  Изготовление дистиллированной воды в домашних условиях
      • Сохраните файл ccf.sql и завершите сеанс редактирования
      • Переименуйте старые управляющие файлы в качестве резервной копии, и чтобы их не было при создании новых.
      • Отредактируйте файл init .ora , задав db_name="новое_имя_базы" .
      • Подключитесь как internal :
      • Выполните сценарий ccf.sql : Он выполнит команду startup nomount и пересоздаст управляющий файл.
      • Если в этот момент вы получаете сообщение об ошибке, утверждающее, что для файла необходимо восстановление носителя (media recovery), значит, база данных была остановлена аварийно на шаге 4. Можно попытаться восстановить базу данных, используя данные повторного выполнения в текущем файле журнала, с помощью команды:

        Будет выдан запрос архивного файла журнала повторного выполнения. После применения текущего файла журнала базу данных, возможно, удастся открыть. Но, это НЕ ГАРАНТИРОВАНО . Если после применения текущего файла журнала повторного выполнения база данных не открывается, весьма вероятно, придется повторить все с начала, предварительно нормально остановив старую базу данных.

        Чтобы применить необходимые данные повторного выполнения, надо проверить активные журналы повторного выполнения и применить один, порядковый номер которого указан в сообщении. Обычно, это журнальный файл со status=CURRENT .

        Чтобы найти список активных журнальных файлов:

        Последней командой в файле ccf.sql должна быть:

      • Может также потребоваться изменить глобальное имя базы данных: Подробнее об этом см. .
      • Проверьте, что база данных работает.
      • Остановите базы данных и создайте ее резервную копию.
      • Cколько АБД Oracle надо, чтобы поменять лампочку. Комментарий от 13 сентября 2001 года

        Удивительно, сколько механической работы требуется в Oracle для простых вещей.

        Смысл реляционной модели — нормализация; если проще — устранение избыточных данных. А что мы имеем — SID в десятке мест?

        Ответ Тома Кайта

        Чтобы было просто — не меняйте SID .

        База данных поддерживает реляционную модель, а обеспечивающее работу с ней программное обеспечение, согласен, этой модели не соответствует.

        НА САМОМ ДЕЛЕ, мы сталкиваемся с попыткой ИЗМЕНИТЬ ПЕРВИЧНЫЙ КЛЮЧ.

        Это, на самом деле, ПРЕКРАСНАЯ демонстрация особенностей реляционной модели. Первичным ключом для базы данных является SID. Вы пытаетесь изменить первичный ключ (чего в реляционных базах данных делать КРАЙНЕ НЕ РЕКОМЕНДУЕТСЯ) и реализовать действие on update cascade .

        Так что, даже при наличии ОДНОГО внешнего ключа, пробюлема будет аналогичной. Если вы когда-нибудь изменяли значение первичного ключа, вам приходилось делать то же самое (находить все внешние ключи и изменять их соответственно).

        Почему вы считаете изменение SID "простой вещью" (мне этот процесс кажется весьма мутным — мне ни разу не приходилось самому это делать за 15 лет).

        Читайте также:  Как зарабатывать на криптовалюте 2017

        Комментарий от 1 марта 2001 года

        Прекрасное описание процедуры изменения sid. Я постоянно это делала на прежней работе при создании тестовых экземпляров. Одна проблема, связанная с sid, меня всегда беспокоила — как узнать этот самый sid. Если вы не знаете sid, как вы подключитесь к экземпляру и спросите значение sid?

        Ответ Тома Кайта

        Если вы работате не на сервере, sid просто не имеет значения, — вам нужна запись tns в файле tnsnames.ora .

        На NT посмотрите список служб Oracle в Панели управления.

        Оригинал обсуждения этого вопроса можно найти здесь.

        Изменение SID на платформе Windows, кстати, описано вот здесь.

        Copyright © 2003 Oracle Corporation

        Перевод очередной статьи Джонатана Льюиса пока придется подождать. Статья большая. Пожалуй, продолжим тему клонирования БД "по мотивам" ответов Тома Кайта. Следите за новостями на сайте проекта Open Oracle.

        Зачем мне два из них? Когда я должен использовать тот или иной?

        Не строго верно. S как файлы.

        Имя службы = псевдоним для INSTANCE (или многих экземпляров). Основная цель этого заключается в том, что если вы используете кластер, клиент может сказать "подключить меня к SALES.acme.com", администратор базы данных может "на лету" изменить количество экземпляров, доступных для запросов SALES.acme.com, или даже переместить SALES.acme.com в совершенно другую базу данных без необходимости изменения каких-либо параметров клиентом.

        В чем разница между Oracle SID и Oracle SERVICE NAMES. Один config ищет ИМЯ СЕРВИСА и то следующий ищет SID! какой происходит?!

        Oracle SID — это уникальное имя, которое уникально идентифицирует ваш экземпляр/база данных, где в качестве службы имя — это псевдоним TNS, который вы даете когда вы дистанционно подключаетесь к своему базы данных, и это имя службы записанный в файле Tnsnames.ora на вашем клиентов, и он может быть таким же, как SID и вы также можете дать ему имя, которое вы хотите.

        SERVICE_NAME — новая функция из oracle 8i, в базе данных может зарегистрировать себя слушателем. Если база данных регистрируется слушателем таким образом, вы можете использовать Параметр SERVICE_NAME в tnsnames.ora в противном случае — используйте SID в tnsnames.ora.

        Также, если у вас есть OPS (RAC), вы будете имеют разные SERVICE_NAME для каждого экземпляр.

        SERVICE_NAMES указывает один или несколько имена службы базы данных для который этот экземпляр подключается. Ты можешь указать имена нескольких служб в чтобы различать разные использует одну и ту же базу данных. Для Пример:

        SERVICE_NAMES = sales.acme.com, widgetsales.acme.com

        Вы также можете использовать имена служб для идентифицировать одну услугу, которая доступный из двух разных баз данных через использование репликации.

        На параллельном сервере Oracle окружающей среды, вы должны установить это параметр для каждого экземпляра.

        Ссылка на основную публикацию
        Что значит else в паскале
        Следует быть внимательными при использовании вложенных операторов if. Предпочтительнее пользоваться схемой else-if (т.е. вкладывать во внешнюю ветку else), а не...
        Чем открыть файл html на компьютере
        Автор: Юрий Белоусов · 21.11.2018 Каждый вебмастер знает, что такое HTML: это – язык гипертекстовой разметки, с помощью которой создается...
        Чем открыть файл mtf тесты
        �������� (����.): ���� ����� MyTest �������� (���.): ���� ����� MyTest ��������: MTF ��� ���� ����� MyTest ������������ ����� ������ �����,...
        Что значит в магазинах айфон как новый
        Нас часто спрашивают, как определить состояние iPhone. Особенно актуально это при покупке смартфона на вторичном рынке, где чуть ли не...
        Adblock detector