OS 환경 : Oracle Linux 8.4 (64bit)
DB 환경 : Oracle Database 19.24.0.0
방법 : 오라클 19c tar 명령을 이용해 db 엔진 복제
본문에서는 19c가 설치된 A서버에서 C서버로 tar 압축을 이용해 엔진을 복제하는 방법을 설명함
tar 방식과 골드 이미지 차이점
tar -cvf :
현재 Oracle 홈의 전체 상태를 그대로 복제하는 방식으로, 모든 파일을 포함하며(network/admin/*.ora 파일 및 dbs/*.ora 파일 등)
, 특정 환경에서의 커스텀 설정이나 로그 파일 등을 포함한 "완전한 복제"를 원할 때 유용함
골드 이미지(runInstaller -createGoldImage) :
클린한 Oracle 설치의 골드 이미지를 생성하는 방식으로, 여러 서버에 표준화된 설치 이미지를 배포할 때 적합함
관리 및 배포가 용이하지만, 커스텀 설정(network/admin/*.ora 파일 및 dbs/*.ora 파일 등)이나 로그 파일 등이 포함되지 않으므로 이러한 부분은 별도로 관리해야함
참고용
오라클 19c 골드 이미지 이용해 db 엔진 복제 ( https://positivemh.tistory.com/1149 )
오라클 19c tar 명령을 이용해 db 엔진 복제 (runInstaller 미실행) ( https://positivemh.tistory.com/1151 )
사용법
기존 db 패치 사항 확인
1
2
|
$ cd $ORACLE_HOME/OPatch
$ ./opatch lsinventory
|
모든 오라클 관련 프로세스 정지
1
2
|
SQL> shutdown immediate
$ lsnrctl stop
|
tar 실행
1
2
3
4
5
|
$ cd $ORACLE_HOME
$ cd ..
$ pwd
/app/oracle/product
$ tar -cvf 19c.tar 19c/
|
tar 명령 수행 완료 후 확인
1
2
3
4
|
$ ls -lh
total 10G
drwxrwxr-x. 72 oracle dba 4.0K Aug 16 00:16 19c
-rw-r--r--. 1 oracle oinstall 10G Aug 21 22:17 19c.tar
|
tar 명령이 정상적으로 실행됨
tar 압축된 파일을 C서버로 전송
1
2
3
|
$ scp 19c.tar 192.168.137.51:/home/oracle/
oracle@192.168.137.51's password:
19c.tar
|
C 서버에서 파일 확인
1
2
3
4
5
|
$ ls -al /home/oracle/19c.tar
total 10470012
drwxrwxr-x. 2 oracle dba 21 Aug 21 23:59 .
drwxrwxr-x. 4 oracle dba 33 Aug 21 23:56 ..
-rw-r--r--. 1 oracle oinstall 10721290240 Aug 22 00:01 19c.tar
|
정상적으로 받아짐
C 서버에서 오라클 환경 설정
아래 게시글 참고
Oracle Linux 8.4에 Oracle 19c 설치 가이드 ( https://positivemh.tistory.com/1144 )
hostname을 copy2로 설정하였음
그리고 설치 경로 생성 부분에서 mkdir -p /app/oracle/product/19c를 mkdir -p /app/oracle/product/ 까지만 생성함
1
2
3
4
5
|
# mkdir -p /app/oracle/product
# mkdir -p /app/media
# chown -R oracle:dba /app
# chmod -R 775 /app
# mv /home/oracle/19c.tar /app/media/
|
.bash_profile 의 ORACLE_HOME도 /app/oracle/product/19c에서 /app/oracle/product/19c_2 로 수정
1
2
3
4
5
|
$ vi .bash_profile
(생략)
export ORACLE_BASE=/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/19c_2
(생략)
|
$ORACLE_HOME 의 상위 경로로 이동 후 tar 해제
1
2
|
$ cd /app/oracle/product
$ tar -xvf /app/media/19c.tar
|
압축시 19c 폴더 자체를 압축 했기때문에 19c_2로 변경
1
|
$ mv 19c/ 19c_2/
|
tar 해제 후 network/admin/, dbs 경로 확인
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
$ ls -al $ORACLE_HOME/network/admin
total 12
drwxr-xr-x. 3 oracle oinstall 79 Aug 21 01:39 .
drwxr-xr-x. 10 oracle oinstall 106 Apr 17 2019 ..
-rw-r-----. 1 oracle oinstall 317 Aug 21 01:39 listener.ora
drwxr-xr-x. 2 oracle oinstall 64 Apr 17 2019 samples
-rw-r--r--. 1 oracle oinstall 1536 Feb 14 2018 shrept.lst
-rw-r-----. 1 oracle oinstall 396 Aug 21 01:39 tnsnames.ora
$ ls -al $ORACLE_HOME/dbs
total 24
drwxr-xr-x. 2 oracle oinstall 110 Aug 21 21:22 .
drwxr-xr-x. 72 oracle oinstall 4096 Aug 16 00:16 ..
-rw-r-----. 1 oracle oinstall 1544 Aug 21 21:22 hc_oracle19.dat
-rw-r--r--. 1 oracle oinstall 3079 May 14 2015 init.ora
-rw-r-----. 1 oracle oinstall 24 Aug 15 08:06 lkORACLE19
-rw-r-----. 1 oracle oinstall 2048 Aug 15 08:41 orapworacle19
-rw-r-----. 1 oracle oinstall 3584 Aug 21 20:29 spfileoracle19.ora
|
기존 db엔진을 tar로 묶어서 가져왔기 때문에 기존 db의 설정 파일들이 존재함
db 엔진 설치
1
2
|
$ export CV_ASSUME_DISTID=OEL7.6
$ ./runInstaller
|
Oracle Linux 8.4에 Oracle 19c 설치 가이드 ( https://positivemh.tistory.com/1144 )
게시글처럼 동일하게 진행
리스너 설정
이미 리스너 파일이 있기때문에 수정만 해주면됨(HOST 변경)
1
2
3
4
5
6
7
8
9
10
11
|
$ vi $ORACLE_HOME/network/admin/listener.ora
# listener.ora Network Configuration File: /app/oracle/product/19c/network/admin/listener.ora
# Generated by Oracle configuration tools.
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = copy2)(PORT = 1521))
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
)
)
|
tnsnames.ora 백업
1
2
|
$ cd $ORACLE_HOME/network/admin/
$ mv tnsnames.ora tnsnames.orabak
|
리스너 기동
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
$ lsnrctl start
LSNRCTL for Linux: Version 19.0.0.0.0 - Production on 22-AUG-2024 00:26:07
Copyright (c) 1991, 2024, Oracle. All rights reserved.
Starting /app/oracle/product/19c_2/bin/tnslsnr: please wait...
TNSLSNR for Linux: Version 19.0.0.0.0 - Production
System parameter file is /app/oracle/product/19c_2/network/admin/listener.ora
Log messages written to /app/oracle/diag/tnslsnr/copy2/listener/alert/log.xml
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=copy2)(PORT=1521)))
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=copy2)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias LISTENER
Version TNSLSNR for Linux: Version 19.0.0.0.0 - Production
Start Date 22-AUG-2024 00:26:07
Uptime 0 days 0 hr. 0 min. 0 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Parameter File /app/oracle/product/19c_2/network/admin/listener.ora
Listener Log File /app/oracle/diag/tnslsnr/copy2/listener/alert/log.xml
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=copy2)(PORT=1521)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
The listener supports no services
The command completed successfully
|
db 생성
1
|
$ dbca
|
Oracle Linux 8.4에 Oracle 19c 설치 가이드 ( https://positivemh.tistory.com/1144 )
게시글처럼 동일하게 진행
db 패치 적용
1
2
|
$ cd $ORACLE_HOME/OPatch
$ ./datapatch -verbose
|
패치 내역 확인
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
SQL>
set linesize 400
column action_time format a20
column action format a10
column status format a10
column description format a60
column version format a10
select to_char(action_time, 'yyyymmdd hh24:mi:ss') as action_time
,action
,status
,description
,source_version
,target_version
,patch_id
from dba_registry_sqlpatch
order by action_time
/
ACTION_TIME ACTION STATUS DESCRIPTION SOURCE_VERSION TARGET_VERSION PATCH_ID
-------------------- ---------- ---------- ------------------------------------------------------------ --------------- --------------- ----------
20240822 01:10:14 APPLY SUCCESS Database Release Update : 19.24.0.0.240716 (36582781) 19.1.0.0.0 19.24.0.0.0 36582781
|
정상적으로 패치까지 적용됨
참고로 기존 데이터파일들을 가지고 있는채로 엔진만 tar로 말아서 가지고 온 경우
oraInventory 가 없기 때문에 이걸 새로 등록해줘야함
참고 : 오라클 19c db oraInventory 재설정 ( https://positivemh.tistory.com/803 )
아래와 같이 패치 확인시 에러 발생함
1
2
3
4
5
6
7
8
9
|
$ cd OPatch
$ ./opatch lspatches
Inventory load failed... LsPatchesSession::loadAndPrintInstalledPatch()
LsPatchesSession failed: OPatch failed to locate Central Inventory.
Possible causes are:
The Central Inventory is corrupted
The oraInst.loc file specified is not valid.
OPatch failed with error code 2
|
인벤토리 확인시에도 에러 발생함
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
$ opatch lsinventory
Oracle Interim Patch Installer version 12.2.0.1.43
Copyright (c) 2024, Oracle Corporation. All rights reserved.
Oracle Home : /app/oracle/product/19c_1
Central Inventory : /app/oraInventory
from : /app/oracle/product/19c_1/oraInst.loc
OPatch version : 12.2.0.1.43
OUI version : 12.2.0.7.0
Log file location : /app/oracle/product/19c_1/cfgtoollogs/opatch/opatch2024-08-21_23-39-42PM_1.log
LsInventorySession failed: OPatch failed to locate Central Inventory.
Possible causes are:
The Central Inventory is corrupted
The oraInst.loc file specified is not valid.
OPatch failed with error code 73
|
새로운 ORACLE HOME 에 대해 oraInventory 재등록
1
2
3
4
5
6
7
8
9
|
$ cd $ORACLE_HOME/oui/bin
$ ./runInstaller -silent -ignoreSysPrereqs -attachHome ORACLE_HOME=$ORACLE_HOME ORACLE_HOME_NAME="OraDB19Home1"
Starting Oracle Universal Installer...
Checking swap space: must be greater than 500 MB. Actual 8050 MB Passed
The inventory pointer is located at /etc/oraInst.loc
You can find the log of this install session at:
/app/oraInventory/logs/AttachHome2024-08-21_11-22-26PM.log
'AttachHome' was successful.
|
패치 재확인
1
2
3
4
5
6
|
$ cd $ORACLE_HOME/OPatch
$ ./opatch lspatches
36582781;Database Release Update : 19.24.0.0.240716 (36582781)
29585399;OCW RELEASE UPDATE 19.3.0.0.0 (29585399)
OPatch succeeded.
|
정상적으로 불러와짐
인벤토리 확인
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
$ opatch lsinventory
Oracle Interim Patch Installer version 12.2.0.1.43
Copyright (c) 2024, Oracle Corporation. All rights reserved.
Oracle Home : /app/oracle/product/19c_1
Central Inventory : /app/oraInventory
from : /app/oracle/product/19c_1/oraInst.loc
OPatch version : 12.2.0.1.43
OUI version : 12.2.0.7.0
Log file location : /app/oracle/product/19c_1/cfgtoollogs/opatch/opatch2024-08-21_23-38-37PM_1.log
Lsinventory Output file location : /app/oracle/product/19c_1/cfgtoollogs/opatch/lsinv/lsinventory2024-08-21_23-38-37PM.txt
--------------------------------------------------------------------------------
Local Machine Information::
Hostname: copy1
ARU platform id: 226
ARU platform description:: Linux x86-64
Installed Top-level Products (1):
Oracle Database 19c 19.0.0.0.0
There are 1 products installed in this Oracle Home.
Interim patches (2) :
Patch 36582781 : applied on Fri Aug 16 00:13:42 KST 2024
Unique Patch ID: 25751445
Patch description: "Database Release Update : 19.24.0.0.240716 (36582781)"
Created on 13 Jul 2024, 14:01:16 hrs UTC
Bugs fixed:
10121473, 10123661, 1297945, 14570574, 14735102, 15931756, 15959416
..
|
정상적으로 불러와짐
참조 :
Gold Image How To (Doc ID 2965269.1)
https://docs.oracle.com/en/database/oracle/oracle-database/19/ladbi/cloning-an-oracle-home.html#GUID-494E59C3-C381-4A35-8ABE-F6E5DBF29032
https://positivemh.tistory.com/669
https://positivemh.tistory.com/803
https://positivemh.tistory.com/1144
https://positivemh.tistory.com/1145
https://positivemh.tistory.com/1150
https://positivemh.tistory.com/1151
'ORACLE > Admin' 카테고리의 다른 글
오라클 19c 프로파일 password_life_time password_grace_time 테스트 (0) | 2024.10.08 |
---|---|
오라클 19c tar 명령을 이용해 db 엔진 복제(runInstaller 미실행) (0) | 2024.09.03 |
오라클 19c 골드 이미지 이용해 db 엔진 복제 (2) | 2024.08.27 |
오라클 19c 비파티션 테이블에서 파티션 테이블 온라인 전환 방법 (0) | 2024.08.24 |
오라클 19c sys 유저도 lock이 걸릴까? (0) | 2024.08.06 |