OS 환경 : Oracle Linux 8.4 (64bit)
DB 환경 : Oracle Database 19.24.0.0
방법 : 오라클 19c tar 명령을 이용해 db 엔진 복제(runInstaller 미실행)
본문에서는 19c가 설치된 A서버에서 D서버로 tar 압축을 이용해 엔진을 복제하는 방법을 설명함
그리고 tar 압축 해제 후 ./runInstaller 를 따로 실행하지 않고 바로 사용해봄
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.52:/home/oracle/
oracle@192.168.137.52'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을 copy3으로 설정하였음
그리고 설치 경로 생성 부분에서 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_3 로 수정
1
2
3
4
5
|
$ vi .bash_profile
(생략)
export ORACLE_BASE=/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/19c_3
(생략)
|
$ORACLE_HOME 의 상위 경로로 이동 후 tar 해제
1
2
|
$ cd /app/oracle/product
$ tar -xvf /app/media/19c.tar
|
압축시 19c 폴더 자체를 압축 했기때문에 19c_3로 변경
1
|
$ mv 19c/ 19c_3/
|
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 엔진 설치(runInstaller)를 따로 실행하지 않음
리스너 설정
이미 리스너 파일이 있기때문에 수정만 해주면됨(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 = copy3)(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 01:01:54
Copyright (c) 1991, 2024, Oracle. All rights reserved.
Starting /app/oracle/product/19c_3/bin/tnslsnr: please wait...
TNSLSNR for Linux: Version 19.0.0.0.0 - Production
System parameter file is /app/oracle/product/19c_3/network/admin/listener.ora
Log messages written to /app/oracle/diag/tnslsnr/copy3/listener/alert/log.xml
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=copy3)(PORT=1521)))
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=copy3)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias LISTENER
Version TNSLSNR for Linux: Version 19.0.0.0.0 - Production
Start Date 22-AUG-2024 01:01:54
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_3/network/admin/listener.ora
Listener Log File /app/oracle/diag/tnslsnr/copy3/listener/alert/log.xml
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=copy3)(PORT=1521)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
The listener supports no services
The command completed successfully
|
db 생성
1
2
|
$ dbca
/app/oracle/product/19c_3/bin/dbca: line 135: /app/oracle/product/19c/bin/platform_common: No such file or directory
|
dbca시 에러가 발생함
아래 링크에 방법이 나와있음
참고 : 오라클 19c 홈경로(엔진경로) 변경 방법 ( https://positivemh.tistory.com/574 )
리스너 중지
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
$ lsnrctl stoip
LSNRCTL for Linux: Version 19.0.0.0.0 - Production on 22-AUG-2024 01:07:00
Copyright (c) 1991, 2024, Oracle. All rights reserved.
NL-00853: undefined command "stoip". Try "help"
[oracle@copy3 admin]$ lsnrctl stop
LSNRCTL for Linux: Version 19.0.0.0.0 - Production on 22-AUG-2024 01:07:02
Copyright (c) 1991, 2024, Oracle. All rights reserved.
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=copy3)(PORT=1521)))
The command completed successfully
|
oraInventory 경로 파일 확인
1
2
|
$ cat /app/oraInventory/ContentsXML/inventory.xml
cat: /app/oraInventory/ContentsXML/inventory.xml: No such file or directory
|
엔진만 tar로 가져왔기 때문에 oraInventory 폴더가 존재하지 않음
inventory 가 없기 때문에 먼저 현재 ORACLE_HOME을 inventory 에 등록해줘야함
참고 : 오라클 19c db oraInventory 재설정 ( https://positivemh.tistory.com/803 )
새로운 ORACLE HOME 에 대해 oraInventory 재등록
1
2
3
4
5
6
7
8
9
10
|
$ 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 8174 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-22_01-10-20AM.log
Please execute the '/app/oraInventory/orainstRoot.sh' script at the end of the session.
'AttachHome' was successful.
|
oraInventory 경로 파일 재확인
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
$ cat /app/oraInventory/ContentsXML/inventory.xml
<?xml version="1.0" standalone="yes" ?>
<!-- Copyright (c) 1999, 2024, Oracle and/or its affiliates.
All rights reserved. -->
<!-- Do not modify the contents of this file by hand. -->
<INVENTORY>
<VERSION_INFO>
<SAVED_WITH>12.2.0.7.0</SAVED_WITH>
<MINIMUM_VER>2.1.0.6.0</MINIMUM_VER>
</VERSION_INFO>
<HOME_LIST>
<HOME NAME="OraDB19Home1" LOC="/app/oracle/product/19c_3" TYPE="O" IDX="1"/>
</HOME_LIST>
<COMPOSITEHOME_LIST>
</COMPOSITEHOME_LIST>
</INVENTORY>
|
정상적으로 변경된 엔진 경로(19c_3)가 나옴
여기서 바로 dbca 를 시도했지만 동일한 에러가 발생해서 아래 내용까지 진행함
1
2
|
$ dbca
/app/oracle/product/19c_3/bin/dbca: line 135: /app/oracle/product/19c/bin/platform_common: No such file or directory
|
엔진 경로 변경하는 clone.pl 실행(single 노드용)
ORACLE_BASE 경로 및 ORACLE_HOME 경로 확인 후 perl clone.pl 구문 실행
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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
|
$ echo $ORACLE_BASE
/app/oracle
$ echo $ORACLE_HOME
/app/oracle/product/19c_3
$ $ORACLE_HOME/perl/bin/perl $ORACLE_HOME/clone/bin/clone.pl ORACLE_BASE=$ORACLE_BASE ORACLE_HOME=$ORACLE_HOME OSDBA_GROUP=dba -defaultHomeName
[INFO] [INS-32183] Use of clone.pl is deprecated in this release. Clone operation is equivalent to performing a Software Only installation from the image.
You must use /app/oracle/product/19c_3/runInstaller script available to perform the Software Only install. For more details on image based installation, refer to help documentation.
Starting Oracle Universal Installer...
.................................................. 5% Done.
.................................................. 10% Done.
.................................................. 15% Done.
.................................................. 20% Done.
.................................................. 25% Done.
.................................................. 30% Done.
.................................................. 35% Done.
.................................................. 40% Done.
.................................................. 45% Done.
.................................................. 50% Done.
.................................................. 55% Done.
.................................................. 60% Done.
.................................................. 65% Done.
.................................................. 70% Done.
.................................................. 75% Done.
.................................................. 80% Done.
.................................................. 85% Done.
..........
Copy files in progress.
Copy files successful.
Link binaries in progress.
..........
Link binaries successful.
Setup files in progress.
..........
Setup files successful.
Setup Inventory in progress.
Setup Inventory successful.
..........
Finish Setup successful.
The cloning of OraHome1 was successful.
Please check '/home/oracle/oraInventory/logs/cloneActions2024-08-22_01-30-49AM.log' for more details.
Setup Oracle Base in progress.
Setup Oracle Base successful.
.................................................. 95% Done.
As a root user, execute the following script(s):
1. /home/oracle/oraInventory/orainstRoot.sh
2. /app/oracle/product/19c_3/root.sh
.................................................. 100% Done.
|
제일 아래 나오는 root.sh 쉘 root 계정으로 실행
1
2
3
4
5
6
7
8
9
10
|
# /home/oracle/oraInventory/orainstRoot.sh
Changing permissions of /home/oracle/oraInventory.
Adding read,write permissions for group.
Removing read,write,execute permissions for world.
Changing groupname of /home/oracle/oraInventory to oinstall.
The execution of the script is complete.
# /app/oracle/product/19c_3/root.sh
Check /app/oracle/product/19c_3/install/root_copy3_2024-08-22_01-32-41-698561546.log for the output of root script
|
리스너 기동
1
|
$ lnsrctl start
|
dbca 재수행
1
|
$ dbca
|
(정상적으로 gui 가 나옴)
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:56:23 APPLY SUCCESS Database Release Update : 19.24.0.0.240716 (36582781) 19.1.0.0.0 19.24.0.0.0 36582781
|
정상적으로 패치까지 적용됨
참조 :
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' 카테고리의 다른 글
오라클 23ai 신기능 세미나 Part 2 발표자료(202410) (0) | 2024.10.12 |
---|---|
오라클 19c 프로파일 password_life_time password_grace_time 테스트 (0) | 2024.10.08 |
오라클 19c tar 명령을 이용해 db 엔진 복제 (0) | 2024.08.31 |
오라클 19c 골드 이미지 이용해 db 엔진 복제 (2) | 2024.08.27 |
오라클 19c 비파티션 테이블에서 파티션 테이블 온라인 전환 방법 (0) | 2024.08.24 |