Как я могу изменить SID экземпляра Oracle XE - PullRequest
11 голосов
/ 04 января 2009

Мне нужно было изменить SID базы данных Oracle XE (не имя службы), чтобы она соответствовала рабочей базе данных.

Когда я пытался выполнить поиск в Интернете, большинство страниц описывали изменение или добавление имени службы через tnsnames.ora; это не то, что мне нужно было сделать.

Ответы [ 4 ]

12 голосов
/ 06 августа 2010

В статье asktom есть ответ, но форматирование и многословие затрудняют его отслеживание, поэтому вот краткое изложение:

[XE_HOME] означает, где установлен Oracle XE. Обычно это C:\oraclexe\app\oracle\product\10.2.0\server.

Убедитесь, что у вас есть права администратора, иначе процедура не будет выполнена.

  1. Настройте SPFILE (вы можете удалить старый файл, если хотите)
    1. copy [XE_HOME]\dbs\spfileXE.ora [XE_HOME]\dbs\spfileNEW_SID_NAME.ora
    2. copy [XE_HOME]\database\initXE.ora [XE_HOME]\database\initNEW_SID_NAME.ora
    3. Редактировать [XE_HOME]\database\initNEW_SID_NAME.ora: он должен содержать одну строку, например: SPFILE='[XE_HOME]\server\dbs/spfileNEW_SID_NAME.ora'
  2. Завершите работу и замените старый сервис новым:
    1. sqlplus / as sysdba и выполнить shutdown
    2. lsnrctl stop
    3. oradim -new -sid NEW_SID_NAME -startmode auto -pfile [XE_HOME]\database\initNEW_SID_NAME.ora
    4. oradim -delete -sid XE
    5. lsnrctl start
  3. Обновление свойства среды ORACLE_SID (Системные настройки> Дополнительно> Среда)
  4. Заставить Oracle зарегистрироваться у слушателя
    • sqlplus / as sysdba и выполнить alter system register;

Чтобы проверить, был ли изменен SID, выполните следующий запрос: select instance_name from v$instance;

4 голосов
/ 04 января 2009

Asktom имеет ответ , мне пришлось пройти через большое количество Google-фу, чтобы добраться до него.

2 голосов
/ 05 декабря 2012

У меня были некоторые проблемы с решением, опубликованным Йоханнесом, поэтому мне пришлось сделать несколько дополнительных шагов. При попытке подключиться к оракулу (шаг 4), выполнив sqlplus / as sysdba , я получил:

ERROR: ORA-12560: TNS:protocol adapter error

Решением для этого была следующая строка:

oradim -start -sid NEW_SID_NAME

Тогда соединение с / работало нормально, но попытка соединиться с NEW_SID_NAME с системой или HR привела меня к другой проблеме:

ERROR: ORA-12514: TNS:listener does not currently know of service requested in connect descriptor

Я проверил это с помощью запроса select instance_name from v$instance;, что слушатель будет NEW_SID_NAME, и так и сделал. Но выполнение lsnrctl status в командной строке или запрос select name from dba_services; не показывали NEW_SID_NAME в качестве слушателя. Решением этой проблемы было выполнение следующего предложения на sqlplus:

alter system set service_names='NEW_SID_NAME';

Может быть, вам нужно будет выполнить alter system register; и после этого.

После выполнения этих двух шагов я могу подключиться к NEW_SID_NAME с системой и HR.

Надеюсь, это поможет

0 голосов
/ 17 марта 2018

В версии 11g все предыдущие решения не работали ... Я всегда получаю следующую ошибку при попытке сделать sqlplus / as sysdba :

ОШИБКА: ORA-12560: TNS: ошибка адаптера протокола

К счастью, я нашел скрипт, который делал то, что хотел, в [XE_HOME] \ config \ scripts. Сценарий называется XE.bat, и он будет создавать новую базу данных с нуля, запрашивая у вас sysPassword в процессе. Итак, что я сделал:

  1. Остановите и удалите существующую службу, если таковая имеется:

oradim -delete -sid XE

  1. Остановить слушателя
  2. Настройте SPFILE, как объяснил Йоханнес
  3. Сделайте копию скрипта XE.bat, вы можете назвать его как хотите
  4. Измените копию сценария следующим образом:

    1. Измените строку "set ORACLE_SID = XE" на "set ORACLE_SID = NEW_SID_NAME"
    2. Измените везде, где вы видите "-sid XE" на "-sid NEW_SID_NAME"
    3. Обновите строку, в которой она вызывает команду «orapwd.exe», чтобы она указала на файл с именем PWDNEW_SID_NAME.ora вместо PWDXE.ora
    4. Обновите строку, которая выводит spfileXE.ora в initXE.ora, чтобы отобразить spfileNEW_SID_NAME.ora в initNEW_SID_NAME.ora (эта часть может сделать шаг 3 бесполезным, но я в любом случае предпочитаю делать это на всякий случай ...)
  5. Выполнить скрипт ... Он несколько раз запросит у вас системный пароль, сказав

Введите значение для 1:

или

Введите значение для 2:

Все, новая база данных с вашим NEW_SID_NAME запущена и работает !!

...