Oracle sid что это
Этот выпуск посвящен некоторым аспектам проблемы переименования и клонирования базы данных. Начнем с простого - как узнать и изменить идентификатор службы (SID) и имя базы данных (DB_NAME). Последний раз Том Кайт вернулся к этому вопросу 20 августа 2002 года.
Что такое SID, как его узнать и как изменить
How to
SID or service name
If the destination service is:
See it
Recommended Pages
Oracle Database - Connect Descriptor (TNS Connect String)
Oracle Database - Connect Descriptor (TNS Connect String) About The Connect Descriptor (known also as TNS Connect String) is a type of connect identifier. It defines the parameters that need the Ora ".
Oracle Database - Service name
Oracle Database - Service name About service name is an identifier of a database service. The service name is specified by the SERVICE_NAMES initialization parameter. sidglobal database name ".
Oracle Database - Automating Shutdown and Startup on Linux
Automating database startup and shutdown guards against incorrect database shutdown. Since the version 11.2, it's recommended to use Oracle Restart but a single database installation doesn't install i ".
Oracle Database - DB_UNIQUE_NAME parameter
DB_UNIQUE_NAME = DB_UNIQUE_NAME is a database parameter which specifies a globally unique name for the database. Databases with the same DB_NAME within the same DB_DOMAIN (for example, copies of a da ".
Oracle Database - Gateway (Heterogeneous services)
Gateway (Or Heterogeneous Services before 11g) make a non-Oracle system appear as a remote Oracle Database server through program that are called agent. The Oracle ODBC agent acts as an ODBC client an ".
Oracle Database - How to read data through an ODBC connection with Gateway (Heterogeneous services)
This article is aimed to show how you can access data from oracle database via an odbc connection direct by using the gateway odbc agent (or program) generic connectivityexcdatabase lindefine a nSIglo ".
Oracle Database - How to retrieve the connect descriptor parameters? (host, port, service name and SID)
When you need to install, configure a new software, you need to give a connect descriptor in order to connect to a database. The connect descriptor contains parameters such as hostname, port,service n ".
Oracle Database - INSTANCE_NAME parameter
Instances are identified by an instance name. The instance name is specified by the INSTANCE_NAME initialization parameter. The instance name defaults to the Oracle system identifier (SID) of the data ".
Oracle Database - ORACLE_SID environment variable
ORACLE_SID is an environment variable which identify the System Identifier (SID) of the database. Articles Related At sign (@) The at sign (@) represents the ORACLE_SID environment variable. For examp ".
SQL Plus - How to connect to a particular oracle database instance ?
Selecting an Instance with Environment Variables Before you attempt to use SQLPlus to connect locally to an Oracle instance, you must ensure that environment variables are set properly. Articles Rela ".
Articles Related
Ответ Тома Кайта
Изменить его сложнее, чем кажется. Я знаю, что вы работаете в ОС 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.ora (или используйте для задания файла параметров инициализации файл pfile .)
- управляющий файл (файлы). Это не обязательно, если вы не переименовываете управляющие файлы и используете параметр control_files . Параметр control_files устанавливается в файле init.ora или в файле, на который ссылается в нем параметр ifile . Проверьте, что параметр control_files не указывает на старые имена управляющиъ файлов, если вы их переименовали.
- crdb.sql и crdb2.sql , Это не обязательно, пеоскольку эти файлы используются только при создании базы данных.
- startup.sql . Это не обязательно. На некоторых платформах этот файл может находиться в каталоге $ORACLE_HOME/rdbms/install . Проверьте, что содержимое этого файла не ссылается на старые файлы init.ora , которые вы переименовали. Этот файл упрощает процесс запуска с сервера базы данных в исключительном режиме ( startup exclusive ).
Будет выдан запрос архивного файла журнала повторного выполнения. После применения текущего файла журнала базу данных, возможно, удастся открыть. Но, это НЕ ГАРАНТИРОВАНО . Если после применения текущего файла журнала повторного выполнения база данных не открывается, весьма вероятно, придется повторить все с начала, предварительно нормально остановив старую базу данных.
Чтобы найти список активных журнальных файлов:
Cколько АБД Oracle надо, чтобы поменять лампочку. Комментарий от 13 сентября 2001 года
Удивительно, сколько механической работы требуется в Oracle для простых вещей.
Смысл реляционной модели - нормализация; если проще - устранение избыточных данных. А что мы имеем - SID в десятке мест?
Ответ Тома Кайта
Чтобы было просто -- не меняйте SID .
База данных поддерживает реляционную модель, а обеспечивающее работу с ней программное обеспечение, согласен, этой модели не соответствует.
НА САМОМ ДЕЛЕ, мы сталкиваемся с попыткой ИЗМЕНИТЬ ПЕРВИЧНЫЙ КЛЮЧ.
Это, на самом деле, ПРЕКРАСНАЯ демонстрация особенностей реляционной модели. Первичным ключом для базы данных является SID. Вы пытаетесь изменить первичный ключ (чего в реляционных базах данных делать КРАЙНЕ НЕ РЕКОМЕНДУЕТСЯ) и реализовать действие on update cascade .
Так что, даже при наличии ОДНОГО внешнего ключа, пробюлема будет аналогичной. Если вы когда-нибудь изменяли значение первичного ключа, вам приходилось делать то же самое (находить все внешние ключи и изменять их соответственно).
Почему вы считаете изменение SID "простой вещью" (мне этот процесс кажется весьма мутным -- мне ни разу не приходилось самому это делать за 15 лет).
Комментарий от 1 марта 2001 года
Прекрасное описание процедуры изменения sid. Я постоянно это делала на прежней работе при создании тестовых экземпляров. Одна проблема, связанная с sid, меня всегда беспокоила - как узнать этот самый sid. Если вы не знаете sid, как вы подключитесь к экземпляру и спросите значение sid?
Ответ Тома Кайта
Если вы работате не на сервере, sid просто не имеет значения, - вам нужна запись tns в файле tnsnames.ora .
На NT посмотрите список служб Oracle в Панели управления.
Оригинал обсуждения этого вопроса можно найти здесь.
Изменение SID на платформе Windows, кстати, описано вот здесь.
Copyright © 2003 Oracle Corporation
Существует ли простой и быстрый способ изменить SID тестовых баз данных на сервере?
Удаление и воссоздание базы данных вариант для меня. Но я ищу что-то, требующее меньше времени.
Другой вариант назначения имен в клиентах tnsnames.ora подвержен ошибкам, поскольку они не администрируются централизованно.
По сравнению со временем удаления и создания базы данных на SQL-сервере, время, необходимое для создания новой базы данных Oracle, чрезмерно больше. Далее на SQL-сервере вы можете переименовать экземпляры SQL-Server. [Обычно вы переименовываете сервер, на котором работает SQL-Server, и у вас возникают проблемы, пока вы тоже не переименуете сервер].
Вы упоминаете, что вы можете удалить и воссоздать базы данных. У вас есть доступ к производственной базе данных и ее резервным копиям? Вы можете использовать RMAN и команду duplicate для воссоздания базы данных и одновременного изменения SID.
С 9i утилита dbnewid (nid) может использоваться для изменения имени базы данных (и DBID, если требуется). Если имя базы данных изменяется только тогда, сброс журналов не требуется:
1 автозагрузка базы данных в режиме монтирования
2 запустите nid, чтобы изменить имя базы данных:
3 выключите и запустите базу данных в режиме монтирования:
4 изменить db_name в spfile (или в pfile редактирование файла):
5 воссоздать файл паролей:
6 запуск базы данных
Вам нужно пересоздать контрольный файл
Этот пост Каунайна Ахмеда описывает необходимые шаги:
- do: изменить контрольный файл резервной копии базы данных для трассировки;
- извлеките команду «create controlfile» из файла трассировки background-dump-destination.
- отключение БД.
- Измените имя DB в вашем init.ora и измените init.ora
- Измените SID в / etc / oratab или / var / opt / oracle / oratab
- Измените SID в своей среде и получите его
- Запуск базы данных для монтирования состояния при запуске монтирования
- Повторно создайте контрольный файл с оператором из позиции 2.
- Измените в базе данных имя global_name на 10. Измените конфигурацию TNS соответственно $ ORACLE_HOME / network / admin / *. Ora Найдите SID и GLOBAL_NAME
Есть другие инструменты, упомянутые в теме.
Вот пост AskTom, в котором более подробно описан процесс. Пока он на 10г, все равно должен работать.
Для пользователей Windows, вам также необходимо использовать утилиту «oradim» для установки новой службы.
Да, вы можете, и это тоже довольно легко.
В Oracle ORACLE_SID - это просто имя экземпляра Oracle, и оно не очень связано с DBNAME. База данных с именем PROD может обслуживаться с использованием экземпляров с любым допустимым именем. Нет прямой связи между SID и DBNAME. Это соединение осуществляется с использованием параметров.
Файл параметров идентифицируется как init $ .ora или spfile $ .ora. В файле параметров находится параметр db_name. Именно здесь устанавливается связь между экземпляром Oracle и базой данных.
Таким образом, вам не нужно заново создавать контрольный файл, вам не нужно использовать nid, просто убедитесь, что ваш файл параметров имеет правильное имя, отключите старый экземпляр Oracle и запустите новый экземпляр Oracle после установки ORACLE_SID к новому имени экземпляра Oracle. Файл параметров и файл паролей находятся с использованием $ как части их имени.
Повторное создание контрольного файла необходимо только тогда, когда необходимо изменить имя DBNAME. nid необходим после операции клонирования, где необходимо изменить DBID, чтобы предотвратить аварии, которые могут повредить резервные копии исходной базы данных.
Зачем мне два из них? Когда я должен использовать тот или иной?
Вкратце: SID = уникальное имя вашей БД, ServiceName = псевдоним, используемый при подключении
Не совсем верно. SID = уникальное имя INSTANCE (например, процесс оракула, запущенный на машине). Oracle считает «Базой данных» файлы.
Таким образом, в вашем примере, может быть SIDs Sales1 , Sales2 и Sales3 , все из которых доступны через имя службы Sales ?
Я думаю, что все наоборот: у вас есть один SID, который доступен столько же услуг. Затем вы можете воспользоваться одним из сервисов и указать другой SID / базу данных.
@ user2441441: Исходя из объяснения, которое дал Мэтью, я думаю, что вы правы в предположении, что может быть несколько SID и один раз Service, который абстрагирует все SID
Вкратце: SID = уникальное имя вашего экземпляра БД, ServiceName = псевдоним, используемый при подключении
Я запутался. Не должно ли быть так, что в RAC у вас будет разное "INSTANCE_NAME" для каждого экземпляра? А один SERVICE_NAME может быть связан с несколькими экземплярами?
Я знаю, что это древняя практика, однако, когда речь идет об изощренных инструментах, видах использования, пользователях или симптомах, связанных с именами сервисов и сервисов, можно добавить небольшую гибкость в записи tnsnames, например:
Я просто подумал, что оставлю это здесь, поскольку это слегка относится к вопросу и может быть полезным, когда мы пытаемся обойти некоторые не совсем понятные особенности сетей оракулов.
что такое SID и имя сервиса
В случае, если вышеуказанная ссылка будет недоступна в будущем, во время написания этого ответа указанная выше ссылка направит вас к теме «Идентификация службы базы данных и экземпляра базы данных» в главе «Основные понятия о соединении» «Руководства администратора служб баз данных Net». , Это руководство опубликовано oracle как часть «Документация по базе данных Oracle Online, 10g Release 2 (10.2)»
Когда я должен использовать тот или иной? Зачем мне два из них?
Рассмотрим приведенное ниже отображение в среде RAC,
SID SERVICE_NAME
Боб1 Боб Боб
Боб2 Боб
Боб3 Боб
Боб4 Боб
если настроена балансировка нагрузки, слушатель будет «балансировать» рабочую нагрузку по всем четырем SID. Даже если балансировка нагрузки настроена, вы можете все время подключаться к bob1, используя SID вместо SERVICE_NAME.
Система управления базами данных Oracle DataBase является одной из наиболее популярных и широко используемых баз данных в корпоративном сегменте. И это не удивительно, поскольку ее отличает высокая надежность, производительность, масштабируемость и адаптируемость под бизнес-задачи каждого конкретного пользователя. Однако, столь широкая популярность оборачивается и другой стороной медали - вектор атак на СУБД остается в топе наиболее существенных угроз.
Многим эти рекомендации могут показаться слишком банальными и очевидными, однако как показывает практика, именно"простые" ошибки и невнимательность может привести к очень серьезным последствиям. Описываемые 10 шагов по сути это список самых необходимых последовательных действий для Oracle DataBase , которые необходимо выполнить для если вы этого еще до сих не сделали.
Не смотря на все усилия разработчика компании Oracle и многочисленный "best practices", т.к. NIST 800, SANS, CISecurity, защищенность Oracle DataBase порой оставляет желать лучшего. Конечно, можно использовать специализированные средства защиты информации (СЗИ), которые бы обеспечивали безопасность СУБД, однако, в реалиях сегодняшнего дня, их используют далеко не все компании. Причин на то множество,и мы не будем все их рассматривать в рамках данной статьи, лишь проинформируем о самом факте. Как вариант выхода из данной ситуации - это по максимум использовать все встроенные в систему штатные механизмы безопасности о которых мы ниже и поговорим.
Кратко пробежимся по основным типичным причинам, которые способствуют тому, что Oracle DataBase может быть сконфигурирована без учета требований информационной безопасности:
1.Отсутствие в штате команды ИТ или ИБ департаментов профильных экспертов специализирующихся на безопасности СУБД . Средние и небольшие компании часто пытаются сэкономить на ИТ или ИБ персонале, что ведет к тому, что администраторы СУБД просто ничего не знают о безопасности или им не хватает ключевых навыков иили опыта для правильного конфигурирования ИТ-систем.
2. Установка "НЕ настраивай безопасность" - заключается в том, что во многих компаниях с недостаточным уровнем зрелости в отношении ИБ, часто сформирована мысль о том, что конфиг безопасности уменьшает производительность и доступность СУБД. В виду этого опции безопасности используются в лучшем случае по умолчанию или вовсе отключатся.
3. "Безопасность по умолчанию" - связана с предыдущим пунктом формулировка исходя из которой администраторы СУБД часто обходят вниманием настройку механизмов защиты базы данных. Компания Oracle начиная с версии Oracle 9 сделала публичное заявление о том, что продукт "из коробки" уже настроен на "безопасность по умолчанию". Однако, как вы сможете убедиться дочита эту стать,все далеко не так, как заявил вендор.
Рекомендации собранные в этой статье ориентированы преимущественно на две версии продукта начиная с версии Oracle 10g и до крайнего релиза 11g . Но, я могу с уверенностью полагать, что некоторый из рассмотренных ниже опций будут весьма актуальны и для 12 версии .
Все привилегированные учетные запаси по умолчанию в Oracle DataBase по-прежнему считаются наивысшим риском связанным с внесением изменений в систему. Однако, эта проблема весьма просто и быстро решаются.
После инсталляции свежего экземпляра Oracle в системе имеется ряд учетных записей оставляемых по умолчанию, каждая с рядом заранее определенных дефолтных опций. Помощник-инсталлятор (DBCA) запускаемый в начале инсталляции после выполнения всех операций и финализации установки автоматически блокируется и далее отключает ряд "опасных" с токи зрения ИБ сервисов. Кроме того DBCA изменяет учетку SYSTEM с учетом тех параметров,которые были заданы во время процесса установки.
При установке базы данных Oracle вручную, DBCA никогда не запускается, и соответственно не вносит никаких изменений в системные учетные записи оставляя их в привилегированном режиме с рядом "опасных" значений в опциях устанавливаемых по умолчанию. К примеру, оставляет значение пароля точно таким же как имя пользователя. И это будут одним из первых действий, которые предпримет хакер при попытке взлома базы данных! Рекомендуется настроить для каждой системной учетной записи свой уникальный пароль отвевающий требованиям безопасности. А если эти аккаунты и вовсе не требуются для работы то они должны быть заблокированы.
To change the password, execute the following SQL code:
Учетные записи, которые устанавливаются по умолчанию с Oracle могут варьироваться в зависимости от версии. Ниже краткие сведения об учетках, которые установлены по умолчанию (если DBCA никогда не запускался) для версий системы Oracle 9, 10 и 11
Oracle 9 | Oracle 10 – Release 1 and 2 | Oracle 11 |
SYSTEM | SYSTEM | SYSTEM |
SYS | SYS | SYS |
SCOTT | SYSMAN | |
DBSNMP | MGMT_VIEW | |
DBSNMP |
Начиная с Oracle версии 11g, выводя список admins DBA можно легко найти все аккаунты с паролями по умолчанию (так же, как имя пользователя) с помощью команды:
Системный идентификатор Oracle, или SID-это уникальное значение, которое является обязательным для всех клиентов для подключения к базе данных Oracle. В виду этого SID должен быть уникальным для всего пространства имен, т.е. вы не можете иметь больше одной БД с одним и тем же SID'ом на одном сервере Oracle.
Наибольшей опасностью для взлома админиского SID для перебора паролей является не правильные настройки усиления SID-записи. Так примеру не соблюдаются такие требования к паролю:
Использование данных правил усиления парольной защиты для админского SID, хоть и не гарантирует абсолютную защиту, но таки существенно снижает риск взлома с применением техник подбора пароля.
Однако, существует проблема, знание SID хранится в виде открытого текста в конфигурационном файле клиентского приложения Oracle - файл TNSNAMES.ORA, который существует для каждой отдельной системы к которой осуществляется подключение.
Риск состоит в том,что злоумышленник может скомпрометировать как минимум один такой файл для системы, которая настроена для подключения к базе данных Oracle, путем извлечения данных о SID из файла TNSNAMES.ORA. Однако, подумайте о тех случаях, когда злоумышленник является внешним по отношению к организации и осуществляет попытки взлома извне, т.е. хакера у которого изначально нет клиентского ПО Oracle для подключения с СУБД.
Конечно, использование усиленного SID не помешает хакеру получить доступ к базе данных Oracle, но все же это хорошая практика в качестве дополнительной меры защиты в составе подхода основанном на эшелонированной многокомпонентной защите информационного периметра компании.
Это одна из тех рекомендации по безопасности, которая в большинстве компаний может игнорироваться. В зависимости от используемой схемы (архитектуры) базы данных в вашей организации, пакеты обновлений Oracle Critical Patch Updates (CPU’s) могут иметь очень большое значение для производительности и безопасности фермы Oracle. Одно, нужно помнить, что даже критические патчи необходимо тестировать перед установкой на боевые системы в избежание сбоев и во избежание иного рода проблем.
Корпорация Oracle выпускает критические обновления раз в квартал. во вторник ближе к 17-му дню месяца. На официальной страничке Oracle есть страница посвященная бюллетеню обновлений, в котором описываются все наиболее важные замечания по пакету обновлений. К счастью, CPU’s носят коммулятивный характер. Т.е. вам нужно просто установить одну из крайних версий CPU’s что бы для Oracle применились и все ранее вышедшие исправления от состояния первоначального выпуска продукта.
Существует также патчи для Oracle которые имеют статус критических и рекомендованы для установки как можно скорее. Как правило то связано с найденной уязвимостью в системе. Потому Oracle вымоет выпустить патчи в обход своего основного плана-графика. Программа CPU’s была начата компанией в 2005 году, и только несколько раз разработчик выпускал пачти вне запланированного плана. Перед установкой необходимо внимательно читать все замечания к выпуску обновления, что поможет избежать абсолютное большинство проблем при установки патча.
В Oracle существуют расширенные процедуры, которые позволяют минимизировать количество привилегированных учетных записей для выполнения системных функций, которые им строго необходимы для обеспечения правильного функционирования СУБД. Эти процедуры называются пакетами (packages), и примерно эквиваленты расширенным хранимым процедурам в Microsoft SQL Server. Особую роль, именуемую PUBLIC, используют в системе как роль по умолчанию для каждого пользователя в базе данных Oracle. Таким образом любой пользователь базы данных может выполнять задачи с привилегиями , которые зафиксированы как PUBLIC. Это часто эксплуатируется хакерами в части эскалации уязвимостей при взломе.
Эти пакеты (packages) и все их подтипы (subtype) должны быть удалены из PUBLIC ролей и выполняться для пользовательского приложения только в случае крайней необходимости!
Ниже в таблице в порядке убывания риска перечислены наиболее опасные пакеты, назначенные по умолчанию PUBLIC роли
Package or Subtype | Description |
DBMS_SQL* | This package provides an interface to use dynamic SQL to parse any data manipulation language (DML) or data definition language (DDL) statement from within PL/SQL. |
По умолчанию в базе данных Oracle не активирован аудит исполняемых команд SQL, выполняемый в привилегированном режиме от учетки SYS, а так же при подключении пользователей с привилегиями (учетками) SYSDBA или SYSOPER. Так если ваша база данных будет взломана, эти учетки будут использованы хакерами в первую очередь. Но, к счастью аудит SQL-команд из этих привилегированных учеток очень просто включить следующей командой
Опять же, по умолчанию в Oracle аудит команд SQL не включен по умолчанию. По рекомендациям разработка аудит должен быть включен для всех команд SQL. Аудит базы данных включается с применением параметра audit_trail:
Когда опция аудит активирована, он так же может быть актирован на объектах, где аудит является важным. К примеру, ниже приведен список общих объектов, которые должны быть включен в обязательный аудит объектов БД:
The System Identifier (SID) identifies a specific database instance. The SID uniquely distinguishes the instance from any other instance on the same computer. Each database instance requires a unique SID and database name. In most cases, the SID is the same as the database name portion of the global database name.
A name that identifies a specific instance of a running pre-release 8.1 Oracle database. For any database, there is at least one instance referencing the database.
For pre-release 8.1 databases, SID is used to identify the database. The SID is included in the connect descriptor of a tnsnames.ora file and in the definition of the listener in the listener.ora file.
Each instance have an unique name :
change it
To change the name of an existing database, you must use the CREATE CONTROLFILE statement to re-create your control files and specify a new database name.
Читайте также: