11g dbca 마친 시점
SELECT INSTANCE_NAME,
HOST_NAME,
VERSION,
STATUS,
DATABASE_STATUS FROM v$instance;
INSTANCE_NAME HOST_NAME VERSION STATUS DATABASE_STATUS
---------------- ------------------- ----------------- ------------ -----------------
ORCL uptestdb 11.2.0.4.0 OPEN ACTIVE
-- 19c db home 파일 업로드 후 권한 변경
cd /oracd
chown -R oracle:dba /oracd
19c 설치를 위해 다음과 같은 절차를 시행한다.
--디스크 공간 최소 20GB 확보하기
df -h
/dev/mapper/rhel_testdb-root 72G 19G 53G 26% /
--오라클 19c 설치 디렉토리를 생성하고 권한 부여
mkdir -p /oracle/app/oracle/product/19c/db_home
chown -R oracle:dba /oracle/app/oracle
--bash_profile 에 주석 처리하여 홈경로 넣어놓기
vi .bash_profile
#export ORACLE_HOME= /oracle/app/oracle/product/19c/db_home
--bashrc 추가
vi .bashrc
alias oh='cd $ORACLE_HOME'
alias 19h='cd /oracle/app/oracle/product/19c/db_home'
alias 11h='cd /oracle/app/oracle/product/11c/db_home'
alias ss='sqlplus / as sysdba'
source .bashrc
--11g 인스턴스 startup
아카이브 모드 확인 후 noarchivelog 모드면 바꿔주기
-- 바꾸는 방법
startup mount
alter database archivelog;
alter database open;
archive log list;
alter system set log_archive_dest = '' scope=spfile;
alter system set log_archive_dest_1='location=/oraarch' scope=spfile;
SQL> show parameter cluster_database
SQL> show parameter parallel_server
SQL> show parameter job_queue_processes
SQL> show parameter aq_tm_processes

--fast_recovery_area를 필요로하니 미리 늘리기
alter system set db_recovery_file_dest_size=7g scope=both;
SQL> SHOW PARAMETER db_recovery_file_dest_size;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_recovery_file_dest_size big integer 7G
--오라클 19c 설치 전 사전 준비 패키지를 다운로드하여 설치 [root] 계정에서 실시
yum install -y bc binutils elfutils-libelf elfutils-libelf-devel fontconfig-devel glibc glibc-devel ksh libaio libaio-devel libXrender libX11 libXau libXi libXtst libgcc libnsl librdmacm libstdc++ libstdc++-devel libxcb libibverbs make policycoreutils policycoreutils-python-utils smartmontools sysstat oracleasm-support xorg-x11-utils xorg-x11-xauth
--환경 파일 변경 내용 확인 [ root ]
vi /etc/sysctl.conf
kernel.sem = 250 32000 100 128
kernel.shmmax=4294967296
kernel.shmmni=4096
kernel.shmall=2097152
fs.file-max=6815744
fs.aio-max-nr=1048576
net.ipv4.ip_local_port_range=9000 65500
net.core.rmem_default=262144
net.core.rmem_max=4194304
net.core.wmem_default=262144
net.core.wmem_max=1048576
sysctl -p
sysctl -a
vi /etc/security/limits.conf
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft stack 10240
oracle hard stack 32768
echo $ORACLE_HOME
export ORACLE_BASE=/oracle/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/19c/db_home
백업 받기 전에 11g 에 object 넣어 놓기
--11g 풀백업 받기
SQL> select * from dba_directories;
SQL> GRANT READ, WRITE ON DIRECTORY DATA_PUMP_DIR TO system;
SQL> exit
$ expdp system/oracle DIRECTORY=DATA_PUMP_DIR DUMPFILE=full_%U.dmp LOGFILE=backup_dump.log FULL=y
--19c언집 후 엔진설치
cd /oracd
[root]
chown -R oracle:dba LINUX.X64_193000_db_home.zip
--bash_profile 에 주석 처리하여 홈경로 넣어놓기
vi .bash_profile
#export ORACLE_HOME=/oracle/app/oracle/product/19c/db_home
--오라클 19c 설치 파일 압축풀기
unzip LINUX.X64_193000_db_home.zip -d oracle/app/oracle/product/19c/db_home
--db_install.rsp 리스폰 파일 수정
cd /oracle/app/oracle/product/19c/db_home/install/response
vi db_install.rsp
# 소프트웨어만 설치하는 옵션 선택
oracle.install.option=INSTALL_DB_SWONLY
# Oracle 소프트웨어 관리를 위한 Unix 그룹명 지정
UNIX_GROUP_NAME=dba
# Oracle Inventory 디렉토리 위치 지정
INVENTORY_LOCATION=/home/oracle/app/oraInventory
# Oracle 홈 디렉토리 경로 지정
ORACLE_HOME=/home/oracle/app/oracle/product/12.2.0.1
# Oracle 베이스 디렉토리 경로 지정
ORACLE_BASE=/home/oracle/app/oracle
# Edition
oracle.install.db.InstallEdition=EE
# 데이터베이스 관리자(SYSDBA) 그룹 지정
oracle.install.db.OSDBA_GROUP=dba
# 데이터베이스 운영자(SYSOPER) 그룹 지정
oracle.install.db.OSOPER_GROUP=dba
# 백업 및 복구 관리자(SYSBACKUP) 그룹 지정
oracle.install.db.OSBACKUPDBA_GROUP=dba
# Data Guard 관리자(SYSDG) 그룹 지정
oracle.install.db.OSDGDBA_GROUP=dba
# 암호화 키 관리자(SYSKM) 그룹 지정
oracle.install.db.OSKMDBA_GROUP=dba
# RAC 관리자(SYSRAC) 그룹 지정
oracle.install.db.OSRACDBA_GROUP=dba
# My Oracle Support 계정의 자격 증명(아이디/비밀번호)을 설치 중에 입력할지 여부를 결정
SECURITY_UPDATES_VIA_MYORACLESUPPORT=false
#Oracle에서 제공하는 보안 업데이트 구성을 설정할지 여부를 결정 (true는 거절임)
DECLINE_SECURITY_UPDATES=true
# 컨테이너 데이터베이스로 구성하지 않음
oracle.install.db.ConfigureAsContainerDB=false
cd /oracle/app/oracle/product/19c/db_home ### 이 안에 runInstaller 가 있으니까
./runInstaller -silent -responseFile /oracle/app/oracle/product/19c/db_home/install/response/db_install.rsp
As a root user, execute the following script(s):
1. /oracle/app/oracle/product/19c/db_home/root.sh
Execute /oracle/app/oracle/product/19c/db_home/root.sh on the following nodes:
[test]
Successfully Setup Software.
루트 스크립트
[root@test oracd]# /oracle/app/oracle/product/19c/db_home/root.sh
Check /oracle/app/oracle/product/19c/db_home/install/root_test_2025-05-26_00-19-47-829780041.log for the output of root script
--19c 경로로 홈경로 설정
[root]# export ORACLE_HOME=oracle/app/oracle/product/19c/db_home
su - oracle
[oracle]$ echo $ORACLE_HOME
oracle/app/oracle/product/19c/db_home
--19c 업그레이드 PATCH 확인
echo $ORACLE_HOME
$ORACLE_HOME/OPatch/opatch lspatches
[oracle@uptestdb ~]$ $ORACLE_HOME/OPatch/opatch lspatches
29585399;OCW RELEASE UPDATE 19.3.0.0.0 (29585399)
29517242;Database Release Update : 19.3.0.0.190416 (29517242)
OPatch succeeded.
-- autoupgrade.jar 파일을 최신 버전을 다운받아 변경한다.
[oracle@test admin]$ ls *.jar
autoupgrade.jar preupgrade.jar

--txt 파일 생성
mkdir -p /home/oracle/upg_logs
chmod 755 /home/oracle/upg_logs
mkdir -p ~/setup
vi ~/setup/auto_config.txt
global.autoupg_log_dir=/home/oracle/upg_logs
upg1.sid=ORCL
upg1.source_home=/oracle/app/oracle/product/11g/db_home
upg1.target_home=/oracle/app/oracle/product/19c/db_home
upg1.target_version=19
upg1.log_dir=/home/oracle/upg_logs
upg1.start_time=NOW
upg1.upgrade_node=uptestdb

--업그레이드 전 확인
java -jar $ORACLE_HOME/rdbms/admin/autoupgrade.jar -config ~/setup/auto_config.txt -mode analyze
java -jar $ORACLE_HOME/rdbms/admin/autoupgrade.jar -config ~/setup/auto_config.txt -mode fixups


--업그레이드 실행
java -jar $ORACLE_HOME/rdbms/admin/autoupgrade.jar -config ~/setup/auto_config.txt -mode deploy

이 명령어는:
DB 백업 (선택 사항)
DB shutdown
업그레이드 수행
post-upgrade 작업까지 자동으로 처리합니다.

업그레이드 완료
SQL> shutdown immediate;
lsnrctl stop

--opatch 백업 후 언집
mv $ORACLE_HOME/OPatch $ORACLE_HOME/OPatch_OLD
unzip /oracd/p6880880_190000_Linux-x86-64.zip -d $ORACLE_HOME
--경로 이동
$ cd /oracd
unzip p37262172_190000_Linux-x86-64.zip
--압축 해제 후 디렉토리로 이동
cd 37262172
--실행조건 검사
$ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir /oracd/31537677
--opatch apply
cd 37262172/37102264
$ORACLE_HOME/OPatch/opatch apply

cd ../37260974
$ORACLE_HOME/OPatch/opatch apply

--패치 완료 후 검사
$ORACLE_HOME/OPatch/opatch lsinventory
$ORACLE_HOME/OPatch/opatch lspatches

--리스터 실행
lsnrctl start

--인스턴스 오픈
startup

--데이터 정합성 확인
