내맘대로긍정이 알려주는
Oracle 23ai 신기능
무료 세미나 발표자료
OS환경 : Oracle Linux 7.5 (64bit)
DB 환경 : Oracle Database 19.7.0.0
방법 : 오라클 설치 이후 uid, gid 변경 가이드 (재설치)
MOS에서는 공식적으로
오라클을 설치 한 이후 Oracle Software 소유자의 UID / GID를 변경할 수 없다고 명시되어 있음
또한 권한은 설치시 설정된대로 유지되어야함
공식적으로 권장하는 변경 방법은 복제하는 방식과 재설치하는 방식이 존재함
재설치를 통해 uid, gid 변경 하는 방법을 설명함
현재 uid, gid 확인
1 2 3 4 | $ cat /etc/passwd | grep oracle oracle:x:54321:54322::/oracle:/bin/bash $ cat /etc/group | grep dba dba:x:54322:oracle |
현재 oracle 유저의 uid는 54321, dba 그룹의 gid는 54322임
각각 10000, 10001로 변경 예정
일반 유저 생성
1 2 3 4 5 6 7 | SQL> create user tuser identified by tuser account unlock default tablespace users quota unlimited on users; User created. SQL> grant resource, connect, dba to tuser; Grant succeeded. |
정합성 확인용 샘플 데이터 생성
1 2 3 4 5 6 7 8 9 10 11 12 | SQL> conn tuser/tuser Connected. SQL> create table table1 as select * from dba_objects; Table created. SQL> select count(*) from table1; COUNT(*) ---------- 23863 |
db, 리스너 종료
1 2 3 4 5 6 7 8 9 10 11 12 13 | SQL> shutdown immediate Database closed. Database dismounted. ORACLE instance shut down. SQL> exit $ lsnrctl stop LSNRCTL for Linux: Version 19.0.0.0.0 - Production on 11-DEC-2020 15:11:13 Copyright (c) 1991, 2019, Oracle. All rights reserved. Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=oracle19)(PORT=1521))) The command completed successfully1.dbf?? |
데이터 파일 확인
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | $ cd /app/oracle/oradata/ORCL19/ $ ls -al total 6349288 drwxr-x--- 2 oracle dba 4096 Dec 11 14:43 . drwxr-x--- 4 oracle dba 32 Dec 11 14:50 .. -rw-r----- 1 oracle dba 10600448 Dec 11 14:51 control01.ctl -rw-r----- 1 oracle dba 10600448 Dec 11 14:51 control02.ctl -rw-r----- 1 oracle dba 104865792 Dec 10 01:06 newts01.dbf -rw-r----- 1 oracle dba 1073742336 Dec 6 14:05 redo01.log -rw-r----- 1 oracle dba 1073742336 Dec 10 01:00 redo02.log -rw-r----- 1 oracle dba 1073742336 Dec 11 14:50 redo03.log -rw-r----- 1 oracle dba 1132470272 Dec 11 14:50 sysaux01.dbf -rw-r----- 1 oracle dba 734011392 Dec 11 14:47 system01.dbf -rw-r----- 1 oracle dba 20979712 Dec 10 22:01 temp01.dbf -rw-r----- 1 oracle dba 1073750016 Dec 11 14:50 undotbs01.dbf -rw-r----- 1 oracle dba 200548352 Dec 11 14:47 users01.dbf |
데이터 파일, 컨트롤, 리두 로그 콜드백업
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | # mkdir -p /backup/cold # chown -R oracle:dba /backup # su - oracle $ /app/oracle/oradata/ $ cp -av ORCL19/* /backup/cold/ ??ORCL19/control01.ctl?? -> ??/backup/cold/control01.ctl?? ??ORCL19/control02.ctl?? -> ??/backup/cold/control02.ctl?? ??ORCL19/newts01.dbf?? -> ??/backup/cold/newts01.dbf?? ??ORCL19/redo01.log?? -> ??/backup/cold/redo01.log?? ??ORCL19/redo02.log?? -> ??/backup/cold/redo02.log?? ??ORCL19/redo03.log?? -> ??/backup/cold/redo03.log?? ??ORCL19/sysaux01.dbf?? -> ??/backup/cold/sysaux01.dbf?? ??ORCL19/system01.dbf?? -> ??/backup/cold/system01.dbf?? ??ORCL19/temp01.dbf?? -> ??/backup/cold/temp01.dbf?? ??ORCL19/undotbs01.dbf?? -> ??/backup/cold/undotbs01.dbf?? ??ORCL19/users01.dbf?? -> ??/backup/cold/users01.dbf?? |
파라미터 파일 백업
1 | $ cp initorcl19.ora /backup/ |
오라클 엔진 백업
1 2 3 4 | $ cd $ORACLE_HOME $ tar -cvf /backup/ora_home_20201211.tar * $ ls /backup/ora_home_20201211.tar ora_home_20201211.tar |
오라클 엔진 삭제
1 2 | $ cd $ORACLE_HOME/deinstall $ ./deinstall |
삭제 확인
1 2 3 4 | # ls -al /app/oracle/ total 0 drwxr-xr-x. 2 oracle dba 6 Dec 11 16:15 . drwxr-xr-x. 4 oracle dba 33 Aug 12 19:37 .. |
정상적으로 삭제됨
기타 오라클 파일 삭제
1 2 3 | # rm -rf /etc/oraInst.loc /etc/oratab # rm -rf /opt/oracle/ # rm -rf /tmp/OraInstall* |
gid, uid 변경 및 확인
1 2 3 4 5 6 7 | # groupmod -g 10001 dba # usermod -u 10000 oracle # cat /etc/passwd | grep oracle oracle:x:10000:10001::/oracle:/bin/bash # cat /etc/group | grep dba dba:x:10001:oracle |
oracle 유저의 home 디렉토리, /app(오라클 엔진설치경로) 확인
1 2 3 4 5 6 7 8 9 10 11 12 13 | # ls -al /home/ /app/ /app/: total 4 drwxr-xr-x. 4 54321 54322 33 Aug 12 19:37 . dr-xr-xr-x. 20 root root 4096 Dec 11 18:21 .. drwxr-xr-x. 2 54321 54322 6 Sep 27 19:51 media drwxr-xr-x. 2 54321 54322 6 Dec 11 16:15 oracle /home/: total 4 drwxr-xr-x. 4 root root 33 Apr 10 2020 . dr-xr-xr-x. 20 root root 4096 Dec 11 18:21 .. drwx------. 2 54321 54322 42 Nov 27 21:34 oracle |
현재 oracle 유저의 uid, gid가 모두 변경되었기 때문에
oracle dba 가 아닌 54321 54322(uid, gid) 로 표시됨
해당 폴더에 권한 재부여 및 확인
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | # chown -R oracle:dba /app/ # chown -R oracle:dba /home/oracle/ # chown oracle:dba /home/oracle/. # ls -al /home/ /app/ /app/: total 4 drwxr-xr-x. 4 oracle dba 33 Aug 12 19:37 . dr-xr-xr-x. 20 root root 4096 Dec 11 18:21 .. drwxr-xr-x. 2 oracle dba 6 Sep 27 19:51 media drwxr-xr-x. 2 oracle dba 6 Dec 11 16:15 oracle /home/: total 4 drwxr-xr-x. 4 root root 33 Apr 10 2020 . dr-xr-xr-x. 20 root root 4096 Dec 11 18:21 .. drwx------. 2 oracle dba 42 Nov 27 21:34 oracle |
정상적으로 oracle dba로 나옴
이제 오라클 재설치
1 2 | $ cd $ORACLE_HOME $ ./runInstaller |
Set Up Software Only 선택
Single instance 선택
Enterprise Edition 선택
Oracle base 지정
Ora Inventory 지정
그룹 지정
root 패스워드 입력
Swap 이슈는 Ignore
Yes 선택
설치
설치 완료
백업된 데이터파일 확인 후 권한 수정
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 | # ls -al /backup/cold/ total 6352344 drwxr-xr-x 2 54321 54322 4096 Dec 11 14:59 . drwxr-xr-x 3 54321 54322 18 Dec 11 15:28 .. -rw-r----- 1 54321 54322 10600448 Dec 11 14:54 control01.ctl -rw-r----- 1 54321 54322 10600448 Dec 11 14:54 control02.ctl -rw-r----- 1 54321 54322 104865792 Dec 11 14:54 newts01.dbf -rw-r----- 1 54321 54322 1073742336 Dec 6 14:05 redo01.log -rw-r----- 1 54321 54322 1073742336 Dec 10 01:00 redo02.log -rw-r----- 1 54321 54322 1073742336 Dec 11 14:54 redo03.log -rw-r----- 1 54321 54322 1132470272 Dec 11 14:54 sysaux01.dbf -rw-r----- 1 54321 54322 734011392 Dec 11 14:54 system01.dbf -rw-r----- 1 54321 54322 20979712 Dec 10 22:01 temp01.dbf -rw-r----- 1 54321 54322 1073750016 Dec 11 14:54 undotbs01.dbf -rw-r----- 1 54321 54322 200548352 Dec 11 14:54 users01.dbf # chown -R oracle:dba /backup/cold/ # ls -al /backup/cold/ total 6352344 drwxr-xr-x 2 oracle dba 4096 Dec 11 14:59 . drwxr-xr-x 3 54321 54322 18 Dec 11 15:28 .. -rw-r----- 1 oracle dba 10600448 Dec 11 14:54 control01.ctl -rw-r----- 1 oracle dba 10600448 Dec 11 14:54 control02.ctl -rw-r----- 1 oracle dba 104865792 Dec 11 14:54 newts01.dbf -rw-r----- 1 oracle dba 1073742336 Dec 6 14:05 redo01.log -rw-r----- 1 oracle dba 1073742336 Dec 10 01:00 redo02.log -rw-r----- 1 oracle dba 1073742336 Dec 11 14:54 redo03.log -rw-r----- 1 oracle dba 1132470272 Dec 11 14:54 sysaux01.dbf -rw-r----- 1 oracle dba 734011392 Dec 11 14:54 system01.dbf -rw-r----- 1 oracle dba 20979712 Dec 10 22:01 temp01.dbf -rw-r----- 1 oracle dba 1073750016 Dec 11 14:54 undotbs01.dbf -rw-r----- 1 oracle dba 200548352 Dec 11 14:54 users01.dbf |
기동시 필요한 폴더 생성
1 2 3 | $ mkdir -p /app/oracle/admin/ORCL19/adump $ mkdir -p /app/oracle/arch $ mkdir -p /app/oracle/oradata/ORCL19 |
데이터 파일, 컨트롤파일, 리두로그 복원
1 2 3 4 5 6 7 8 9 10 11 12 | $ cp -av /oradata1/cold/* /app/oracle/oradata/ORCL19/ ??/oradata1/cold/control01.ctl?? -> ??/app/oracle/oradata/ORCL19/control01.ctl?? ??/oradata1/cold/control02.ctl?? -> ??/app/oracle/oradata/ORCL19/control02.ctl?? ??/oradata1/cold/newts01.dbf?? -> ??/app/oracle/oradata/ORCL19/newts01.dbf?? ??/oradata1/cold/redo01.log?? -> ??/app/oracle/oradata/ORCL19/redo01.log?? ??/oradata1/cold/redo02.log?? -> ??/app/oracle/oradata/ORCL19/redo02.log?? ??/oradata1/cold/redo03.log?? -> ??/app/oracle/oradata/ORCL19/redo03.log?? ??/oradata1/cold/sysaux01.dbf?? -> ??/app/oracle/oradata/ORCL19/sysaux01.dbf?? ??/oradata1/cold/system01.dbf?? -> ??/app/oracle/oradata/ORCL19/system01.dbf?? ??/oradata1/cold/temp01.dbf?? -> ??/app/oracle/oradata/ORCL19/temp01.dbf?? ??/oradata1/cold/undotbs01.dbf?? -> ??/app/oracle/oradata/ORCL19/undotbs01.dbf?? ??/oradata1/cold/users01.dbf?? -> ??/app/oracle/oradata/ORCL19/users01.dbf?? |
파라미터 파일 복원
1 | $ cp /backup/initorcl19.ora $ORACLE_HOME/dbs/ |
db 기동
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | SQL> startup nomount ORACLE instance started. Total System Global Area 2147481656 bytes Fixed Size 8898616 bytes Variable Size 486539264 bytes Database Buffers 1644167168 bytes Redo Buffers 7876608 bytes SQL> alter database mount; Database altered. SQL> alter database archivelog; Database altered. SQL> alter database open; Database altered. |
샘플 데이터 확인
1 2 3 4 5 6 7 | SQL> conn tuser/tuser Connected. SQL> select count(*) from table1; COUNT(*) ---------- 23863 |
정상적으로 확인됨
참조 : 오라클 설치 이후 uid, gid 및 권한 변경 https://positivemh.tistory.com/569
455769.1
'ORACLE > Admin' 카테고리의 다른 글
오라클 19c begin (핫) 백업 시 expdp 백업 가능여부 (0) | 2020.11.27 |
---|---|
오라클 11g R2 Temp Tablespace 재생성 (2) | 2020.11.03 |
오라클 11g R2 10GB update 중 세션 kill 시 발생하는 문제 (0) | 2020.09.26 |
오라클 11g R2 /etc/hosts 권한 부족시 발생하는 문제 (0) | 2020.09.18 |
오라클 19c /etc/hosts 권한 부족시 발생하는 문제 (0) | 2020.09.18 |