문제

생산 데이터베이스와 일치하도록 Oracle XE 데이터베이스 (서비스 이름이 아님)의 SID를 변경해야했습니다.

온라인 검색을 시도했을 때 대부분의 페이지는 tnsnames.ora를 통해 서비스 이름을 변경하거나 추가하는 것을 설명했습니다. 그것은 내가해야 할 일이 아닙니다.

도움이 되었습니까?

해결책

그만큼 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;

다른 팁

Asktom은 있습니다 대답, 나는 그것을 얻기 위해 많은 Google-Fu를 통과해야했다.

Johannes가 게시 한 솔루션에 문제가 있었으므로 추가 단계를 수행해야했습니다. 오라클에 연결하려고 할 때 (4 단계) sqlplus / sysdba 나는 얻었다 :

ERROR: ORA-12560: TNS:protocol adapter error

이를위한 솔루션은 다음 줄을 실행했습니다.

oradim -start -sid NEW_SID_NAME

그런 다음 정상으로 연결 / 작업을했지만 시스템 또는 HR과 함께 New_SID_NAME에 연결하려고하면 또 다른 문제가 발생했습니다.

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; 뉴 _sid_name을 청취자로 보여주지 않았습니다. 이 문제의 해결책은 sqlplus에서 다음 문장을 실행하는 것이 었습니다.

alter system set service_names='NEW_SID_NAME';

어쩌면 실행해야 할 수도 있습니다 alter system register; 그 후에도.

이 두 단계를 수행 한 후 System 및 HR을 사용하여 New_SID_Name에 연결할 수 있습니다.

도움이되기를 바랍니다

버전 11G에서 이전 솔루션은 모두 작동하지 않았습니다 ... sqlplus / sysdba :

오류 : ORA-12560 : TNS : 프로토콜 어댑터 오류

운 좋게 나는 [xe_home] config scripts에서하고 싶은 일을하기 위해 스크립트를 찾았습니다. 스크립트는 XE.Bat이라는 이름을 지정하며 프로세스를 따라 SySpassword를 요청하는 새 데이터베이스를 처음부터 인스턴스화합니다. 그래서 내가 한 일은 다음과 같습니다.

  1. 기존 서비스를 중지하고 제거하십시오.

Oradim -Delete -Sid XE

  1. 청취자를 중지하십시오
  2. Johannes가 설명한대로 Spfile을 구성하십시오
  3. 스크립트 XE.BAT 사본을 만들면 원하는대로 이름을 지정할 수 있습니다.
  4. 다음과 같이 스크립트의 사본을 편집하십시오.

    1. "set oracle_sid = xe"를 "set oracle_sid = new_sid_name"으로 변경하십시오.
    2. "-sid xe"to "-sid new_sid_name"을 볼 때마다 변경하십시오.
    3. pwdxe.ora 대신 pwdnew_sid_name.ora라는 파일을 가리 키도록 "orapwd.exe"명령을 호출하는 행을 업데이트하십시오.
    4. spfilexe.ora를 initxe.ora로 Enitxe.ora로 반영하는 줄을 spfilenew_sid_name.ora로 initnew_sid_name.ora로 업데이트하십시오 (이 부분은 3 단계를 쓸모 없게 만들 수 있지만 어쨌든 만일을 대비하여 선호합니다 ...)
  5. 스크립트 실행 ... 시스템 비밀번호를 몇 번 촉구합니다.

1에 대한 값을 입력하십시오.

또는

2에 대한 값을 입력하십시오.

그게 다야, new_sid_name이있는 새로운 데이터베이스가 시작되고 실행 중입니다 !!

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top