내맘대로긍정이 알려주는
Oracle 23ai 신기능
무료 세미나 발표자료
OS환경 : Windows 2012 r2 (64bit)
DB 환경 : Oracle Database 11.2.0.4, 12.2.0.1
방법 : Windows Server 2012 R2에 Oracle 11g R2에서 12c R2로 DB 업그레이드 가이드
windows 2012 r2 에 oracle 11g r2가 설치된 환경에서 12c r2로 DB를 업그레이드 하는 시나리오
winx64_12201_database.zip 설치 파일 준비
설치파일 압축 해제
database 폴더로 들어간 뒤 setup.exe 실행
보안 경고 무시 후 실행
My Oracle Support를 통해 보안 갱신 수신 체크 해제
예 선택
데이터베이스 소프트웨어만 설치 선택
단일 인스턴스 데이터베이스 설치 선택
Enterprise Edition 선택
가상 계정 사용 선택
Oracle Base와 Oracle Home 지정
요구사항 확인중
설치 선택
설치중
12cr2 DB 엔진 설치 완료
윈도우 키 + R 또는 실행창에서 cmd 입력
dbua 실행
업그레이드 할 데이터베이스 선택 후 sysdba 계정과 패스워드 입력
요구 사항 검사중
요구사항 충족 안되는 리스트가 나옴
충족 안되는 것들을 무시하고 넘어가려 하면 아래 메세지가 나옴
수정할 검사에서 하단 세부정보를 눌리면 해야할 작업이 나옴
첫 번째 OLAP 카탈로그 구성요소 AMD 제거
해당 스크립트 찾아서 실행
두 번째 부적합한 객체(Invalid object) 재컴파일
해당 스크립트 실행
이전버전 EM(Enterprise Manager) 저장소(Repository) 제거
12c 에서는 11g와 다르게 다른 EM 을 사용함
12c $ORACLE_HOME/rdbms/admin/에 있는 emremove.sql 파일을 복사
해당파일 11g $ORACLE_HOME/rdbms/admin/ 으로 붙여넣기
이전버전 em 정지
나의 경우 이전버전에서 em이 제대로 설치되지 않아 not found로 나옴
emremove.sql 실행
실행완료된 모습
12c는 10g와 다르게 패스워드 저장 알고리즘이 SHA512로 변경됨
이전버전의 패스워드를 사용하려면 배타모드를 해제하거나 기존 패스워드를
12c 버전으로 업데이트 시켜줘야함
(10g 는 3DES, 11g 는 SHA1 알고리즘을 사용했음)
유저 상태가 OPEN(사용가능한) 상태인 유저 확인 후
패스워드 변경(특별한 구문이 있는것이 아니라 기존 패스워드로 alter 문을 실행해주면 됨)
기존에 password_versions가 10G이던 것들이 10G 11G로 변경됨을 확인할 수 있음
1 2 3 4 5 6 7 8 | SQL> select username, account_status, password_versions from dba_users where account_status = 'OPEN'; SQL> alter user system identified by oracle; SQL> alter user sys identified by oracle; SQL> alter yser naeman identified by naemam; |
COMPATIBLE 파라미터 변경
기존 compatible 파라미터 확인 후 spfile 사용중이라면 alter 문으로 변경 후 db 재기동
1 2 3 4 5 6 7 8 9 | SQL> show parameter compatible SQL> show parameter spfile SQL> alter system set compatible='11.2.0.4.0' scope=spfile; SQL> shutdown immediate SQL> startup |
변경 후 compatible 확인(11.2.0.4.0 하려고 했는데 오타쳐서 3으로 한듯)
다시 확인 선택
수정할 검사가 아직 남아있음
account_status 가 OPEN 인 유저뿐만 아니라 lock나 expired된 유저들도 변경을 해줘야 하는것으로 판단됨
쿼리문을 다시 짜서 모두 복사 후 실행
1 2 3 4 5 | SQL> set pages 1000 SQL> select 'alter user '||username||' identified by oracle;' from dba_users where account_status!='OPEN'; |
패스워드 모두 변경 후 모든 유저들의 password_versions 확인
모두 10G 11G로 변경됨
1 2 3 | SQL> select username, account_status, password_versions from dba_users; |
모든 유저의 휴지통(recyclebin) 비우기(sysdba로 접속 후 실행)
수정 및 다시 검사 실행
수정할 검사가 모두 사라짐
사후 업그레이드 권장 사항 확인1
사후 업그레이드 권장 사항 확인 후 다음
위에부터 4개 선택 후 다음
RMAN 백업 사용 선택
리스너 확인
현재 리스너가 나오지 않아서 리스너가 살아있는지 확인
1 | > lsnrctl status |
리스너가 이미 있으니 그냥 넘어감
EM 구성 선택 해제
업그레이드 요약 확인
업그레이드 중
업그레이드 완료
db 접속 후 확인(정상)
1 | SQL> select instance_name, version, status from v$instance; |
naemam 유저의 데이터 확인(정상)
리스너 확인(정상)
추가내용
업그레이드 결과서 아래 쪽에서 복원할 수 있는 스크립트를 발견함
해당 스크립트를 찾아 '편집'으로 열어봄(D:\oracle\admin\ORCL\back~~\ORCL_restore.bat)
oradim으로 db를 삭제하고 만드는 작업을 함
한글로 주석이 다적혀있어서 무슨작업인지 알기편함
해당 스크립트 내용
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | REM -- Oracle 데이터베이스 인스턴스 ORCL을(를) 복원하려면 이 스크립트를 실행합니다. echo -- 소스 Oracle 홈에서 데이터베이스를 시작합니다. set ORACLE_HOME=d:\oracle\product\11.2.0\dbhome_1 set ORACLE_SID=ORCL d:\oracle\product\11.2.0\dbhome_1\bin\sqlplus /nolog @D:\oracle\admin\ORCL\backup_2019-10-19_12-26-38-PM\shutdown_ORCL.sql echo -- 새 Oracle 홈에서 데이터베이스를 종료합니다. set ORACLE_HOME=D:\oracle\product\12.2.0\dbhome_1 set ORACLE_SID=ORCL D:\oracle\product\12.2.0\dbhome_1\bin\sqlplus /nolog @D:\oracle\admin\ORCL\backup_2019-10-19_12-26-38-PM\shutdown_ORCL.sql echo -- 새 Oracle 홈에서 데이터베이스 인스턴스를 제거하는 중... D:\oracle\product\12.2.0\dbhome_1\bin\oradim.exe -delete -sid ORCL echo -- 소스 Oracle 홈에서 데이터베이스를 시작합니다. set ORACLE_HOME=d:\oracle\product\11.2.0\dbhome_1 set ORACLE_SID=ORCL set PATH= echo -- 소스 Oracle 홈에서 데이터베이스 인스턴스를 생성하는 중... d:\oracle\product\11.2.0\dbhome_1\bin\oradim.exe -new -sid ORCL -startmode manual -pfile d:\oracle\product\11.2.0\dbhome_1\database\initORCL.ora d:\oracle\product\11.2.0\dbhome_1\bin\oradim.exe -edit -sid ORCL -startmode auto -log D:\oracle\cfgtoollogs\dbua\upgrade2019-10-19_12-26-38-PM\ORCL\oradim.log cd d:\oracle\product\11.2.0\dbhome_1 echo -- D:\oracle\cfgtoollogs\dbua\logs\Welcome_ORCL.txt 파일 제거 중 del D:\oracle\cfgtoollogs\dbua\logs\Welcome_ORCL.txt d:\oracle\product\11.2.0\dbhome_1\bin\sqlplus /nolog @D:\oracle\admin\ORCL\backup_2019-10-19_12-26-38-PM\createSPFile_ORCL.sql d:\oracle\product\11.2.0\dbhome_1\bin\rman @D:\oracle\admin\ORCL\backup_2019-10-19_12-26-38-PM\rmanRestoreCommands_ORCL echo -- orcl 데이터베이스에 대한 복원 스크립트 실행이 완료되었습니다. |
이어지는글(예정)
1. windows 2008 r2 에 oracle 10g r2 설치
2. windows 2008 r2 에 oracle 10g r2 에서 11g r2로 DB 업그레이드
3-1.windows 2008 r2 에 oracle 11g r2에서 windows 2012 r2로 OS 업그레이드
4-1.windows 2012 r2 에 oracle 11g r2에서 12c r2로 DB 업그레이드
참조 :
'ORACLE > Install' 카테고리의 다른 글
Oracle Linux 8.1에 Oracle 19c 설치 가이드 (15) | 2020.01.05 |
---|---|
Windows Server 2008 R2에 Oracle 10g R2에서 Windows Server 2012 R2로 OS 업그레이드 가이드 (2) | 2019.10.16 |
Windows Server 2008 R2에 Oracle 11g R2에서 Windows Server 2012 R2로 OS 업그레이드 가이드 (5) | 2019.10.16 |
Windows Server 2008 R2에 Oracle 10g R2에서 11g R2로 DB 업그레이드 가이드 (0) | 2019.10.16 |
Windows Server 2008 R2에 Oracle 10g R2 설치 가이드 (0) | 2019.10.15 |