[ORACLE] SID(DBNAME)변경 작업

반응형

1. Controlfile 재생성을 이용한 방법

 

■ orcl -> orcl1으로 변경작업

 

※ 사전작업

 

1) controlfile , pfile 백업

ALTER DATABASE BACKUP CONTROLFILE TO TRACE AS '/app/oracle/work/con_bak.trc';
create pfile from spfile;

 

2) controlfile script 수정

-. REUSE -> SET으로 변경
-. DBNAME -> orcl 에서 orcl1으로 변경

CREATE CONTROLFILE set  DATABASE "orcl1" RESETLOGS  ARCHIVELOG
.
.

 

3) pfile 이름 변경 및 내용 수정

-. db_name orcl1로 변경

-. local_listener='LISTENER_ORCL1'으로 변경 (tns 파일에도 변경해야함)

mv /app/oracle/product/12/dbs/initorcl.ora /app/oracle/product/12/dbs/initorcl1.ora

*.db_name='orcl1'
*.local_listener='LISTENER_ORCL1'

 

4) 새로운 Listener 생성
-. sid_name = orcl1로 가지는 LISTENER2 추가

-. port를 1522 -> 1523으로 수정

SID_LIST_LISTENER2 =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = orcl1)
      (ORACLE_HOME = /app/oracle/product/12)
    )
  )

LISTENER2 =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.80.134)(PORT = 1523))
    )
  )
ADR_BASE_LISTENER2 = /app/oracle

 

5) TNS파일 수정

-. local_listener parameter에 설정되어 있는 리스너 값 수정 LISTENER_ORCL1, 1523으로 local_listener 
-. orcl1 값 추가

LISTENER_ORCL1 =
  (ADDRESS = (PROTOCOL = TCP)(HOST = oracle1)(PORT = 1523))


ORCL =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = oracle1)(PORT = 1522))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = orcl)
    )
  )

orcl1 =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = oracle1)(PORT = 1523))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = orcl1)
    )
  )
~
~

 

※ 작업

 

1) dbdown immediate

 

2) TNS파일 수정

-. local_listener parameter에 설정되어 있는 리스너 값 수정 LISTENER_ORCL1, 1523으로 local_listener 
-. orcl1 값 추가

LISTENER_ORCL1 =
  (ADDRESS = (PROTOCOL = TCP)(HOST = oracle1)(PORT = 1523))


ORCL =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = oracle1)(PORT = 1522))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = orcl)
    )
  )

orcl1 =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = oracle1)(PORT = 1523))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = orcl1)
    )
  )
~
~

 

3) Listener2, DB기동

lsnrctl status lietener2

sqlplus / as sysdba@orcl2

startup nomount pfile='/app/oracle/product/12/dbs/initorcl1.ora'

 

4) Controlfile 재생성

@/app/oracle/work/cre_con.sql

 

5) 복구, Open

SQL> recover database using backup controlfile until cancel;

로그 지정: {<RET>=suggested | filename | AUTO | CANCEL}
cancel
매체 복구가 취소되었습니다

SQL> alter database open resetlogs;
데이타베이스가 변경되었습니다.

 

6) Temp재생성

ALTER TABLESPACE TEMP ADD TEMPFILE '/app/oracle/cfgtoollogs/orcl/temp01.dbf'
     SIZE 990904320  REUSE AUTOEXTEND ON NEXT 655360  MAXSIZE 32767M;

 

7) DB_NAME확인

SQL> select name,created from v$database;

NAME      CREATED
--------- --------
ORCL1     23/12/01
반응형