Вопрос

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

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

Это было полезно?

Решение

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

[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;

Другие советы

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

У меня возникли проблемы с решением, опубликованным Йоханнесом, поэтому мне пришлось сделать несколько дополнительных шагов.При попытке подключения к Oracle (шаг 4), выполнив sqlplus / как 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.

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

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

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

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

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

орадим -удалить -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 запущена и работает!!

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top