programing

Oracle XE 인스턴스의 SID를 변경하는 방법

sourcejob 2023. 8. 27. 09:06
반응형

Oracle XE 인스턴스의 SID를 변경하는 방법

운영 데이터베이스와 일치하도록 서비스 이름이 아닌 Oracle XE 데이터베이스의 SID를 변경해야 했습니다.

온라인으로 검색해보니 대부분의 페이지에서 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;

를 실행하여할 수 .select instance_name from v$instance;

요하네스가 게시한 솔루션에 문제가 있어서 추가 단계를 수행해야 했습니다.sqlplus / as sysdba를 수행하여 오라클에 연결하려고 할 때(4단계) 다음과 같은 메시지가 표시되었습니다.

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 statusselect name from dba_services;수신기로 NEW_SID_NAME을 표시하지 않았습니다.과 같은 이었습니다.

alter system set service_names='NEW_SID_NAME';

아마도 당신은 실행이 필요할 것입니다.alter system register;이 이후에도.

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

도움이 되길 바랍니다.

버전 11g에서는 이전 솔루션이 모두 작동하지 않았습니다.sqlplus / as 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"가 표시되는 곳마다 "-sid NEW_SID_NAME"으로 변경
    3. "orapwd.exe" 명령을 호출하는 행을 PWDXE.ora 대신 PWDNEW_SID_NAME.ora라는 파일을 가리키도록 업데이트합니다.
    4. spfileXE.ora를 initXE.ora로 에코하는 라인을 업데이트하여 spfile을 에코합니다.NEW_SID_NAME.ora를 입력합니다.NEW_SID_NAME.ora(이 부분은 3단계를 쓸모없게 만들 수도 있지만, 만약을 위해...)
  5. 스크립트 실행...시스템 암호를 입력하라는 메시지가 몇 번 표시됩니다.

1에 대한 값 입력:

또는

2에 대한 값 입력:

이상입니다. NEW_SID_NAME이 포함된 새 데이터베이스가 실행 중입니다.

언급URL : https://stackoverflow.com/questions/410951/how-can-i-change-the-sid-of-an-oracle-xe-instance

반응형