+ Long Term Release (LTR): Phiên bản ổn định cao, phù hợp triển khai dài hạn. Ví dụ: 11.2, 12.1, 19c.
+ Innovation Release: Phiên bản tập trung nhiều tính năng mới, mức độ ổn định và vòng đời hỗ trợ thường ngắn hơn LTR. Ví dụ: 11.1, 18c, 21c.
Từ các phân tích trên, quan điểm cá nhân: Oracle 21c phù hợp cho DEV/POC/lab, nghiên cứu và học tập hơn là môi trường production. Oracle 19c vẫn là lựa chọn tối ưu cho production ở thời điểm hiện tại.
Mục tiêu của tài liệu này là hướng dẫn triển khai Oracle Database 21c trên Oracle Linux theo quy trình chuẩn, nhằm phục vụ nhu cầu DEV/POC/Lab (nghiên cứu, học tập, thử nghiệm tính năng mới). Việc cài đặt đảm bảo hệ thống hoạt động ổn định, kết nối được từ xa, quản trị thuận tiện và tuân thủ các yêu cầu cấu hình cơ bản của Oracle.
1. Chuẩn bị hệ điều hành
1.1. Set hostname + /etc/hosts
hostnamectl set-hostname ol21c
cat <<EOF | sudo tee -a /etc/hosts
127.0.0.1 ol21c localhost
EOF
1.2. Tắt/giảm can thiệp security để dễ cài đặt
sudo setenforce 0
sudo sed -i 's/^SELINUX=.*/SELINUX=permissive/' /etc/selinux/config
1.3. Cài gói prerequisites
Oracle Linux có gói dựng sẵn cho Oracle DB: sudo dnf -y install oracle-database-preinstall-21c
Gói này tự tạo user/group (oracle/oinstall/dba…), set sysctl, limits,… Nếu bạn dùng OL7 thì thay dnf bằng yum.
1.4. Tạo thư mục Oracle + phân quyền
sudo mkdir -p /u01/app/oracle/product/21c/dbhome_1
sudo mkdir -p /u01/app/oraInventory
sudo mkdir -p /u01/oradata
sudo chown -R oracle:oinstall /u01
sudo chmod -R 775 /u01
2. Cấu hình môi trường cho user oracle
Đăng nhập oracle rồi tạo file profile:
sudo su - oracle
cat <<'EOF' >> ~/.bash_profile
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=/u01/app/oracle/product/21c/dbhome_1
export ORACLE_SID=ORCL
export PATH=$ORACLE_HOME/bin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib
umask 022
EOF
source ~/.bash_profile
3. Upload bộ cài & cài Oracle Software (runInstaller)
3.1. Giải nén bộ cài vào ORACLE_HOME
Giả sử bạn có file zip Oracle 21c Linux x86-64 (đã tải sẵn):
cd $ORACLE_HOME
unzip /path/to/LINUX.X64_213000_db_home.zip
3.2. Cài silent (khuyến nghị cho server)
Tạo response file nhanh:
cat > /tmp/db21c.rsp <<EOF
oracle.install.responseFileVersion=/oracle/install/rspfmt_dbinstall_response_schema_v21.0.0
oracle.install.option=INSTALL_DB_SWONLY
UNIX_GROUP_NAME=oinstall
INVENTORY_LOCATION=/u01/app/oraInventory
ORACLE_HOME=$ORACLE_HOME
ORACLE_BASE=$ORACLE_BASE
oracle.install.db.InstallEdition=EE
oracle.install.db.OSDBA_GROUP=dba
oracle.install.db.OSOPER_GROUP=oper
oracle.install.db.OSBACKUPDBA_GROUP=backupdba
oracle.install.db.OSDGDBA_GROUP=dgdba
oracle.install.db.OSKMDBA_GROUP=kmdba
oracle.install.db.OSRACDBA_GROUP=racdba
oracle.install.db.rootconfig.executeRootScript=false
EOF
Chạy cài:
cd $ORACLE_HOME
./runInstaller -silent -responseFile /tmp/db21c.rsp -ignorePrereq -waitforcompletion
Sau khi xong, chạy 2 script bằng quyền root (nó sẽ báo đường dẫn chính xác):
exit
sudo /u01/app/oraInventory/orainstRoot.sh
sudo /u01/app/oracle/product/21c/dbhome_1/root.sh
sudo su - oracle
4. Tạo Database bằng DBCA (silent)
Tạo DB dạng CDB + PDB (chuẩn 21c):
dbca -silent -createDatabase \
-templateName General_Purpose.dbc \
-gdbname ORCL -sid ORCL \
-createAsContainerDatabase true \
-numberOfPDBs 1 -pdbName PDB1 \
-characterSet AL32UTF8 \
-sysPassword 'Sys#123456' \
-systemPassword 'Sys#123456' \
-pdbAdminPassword 'Pdb#123456' \
-datafileDestination /u01/oradata \
-storageType FS \
-memoryMgmtType auto_sga \
-totalMemory 2048 \
-emConfiguration NONE \
-redoLogFileSize 200
5. Listener + tnsnames + bật autostart
5.1. Listener (thường DBCA tạo luôn). Kiểm tra: lsnrctl status
Nếu cần tạo listener nhanh: netca -silent -responseFile $ORACLE_HOME/assistants/netca/netca.rsp
5.2. Bật khởi động DB khi boot
Sửa /etc/oratab (root hoặc sudo):
vi /etc/oratab
orcl:/u01/app/oracle/product/21c/dbhome_1:Y
sudo sed -i 's/^\(ORCL:.*\):N$/\1:Y/' /etc/oratab
Bật service oracle-database (trên OL thường có sẵn script dbstart/dbshut):
sudo tee /etc/systemd/system/oracle-db.service >/dev/null <<'EOF'
[Unit]
Description=Oracle Database 21c
After=network.target
[Service]
Type=forking
User=oracle
Group=oinstall
ExecStart=/u01/app/oracle/product/21c/dbhome_1/bin/dbstart /u01/app/oracle/product/21c/dbhome_1
ExecStop=/u01/app/oracle/product/21c/dbhome_1/bin/dbshut /u01/app/oracle/product/21c/dbhome_1
Restart=no
RemainAfterExit=yes
[Install]
WantedBy=multi-user.target
EOF
sudo systemctl daemon-reload
sudo systemctl enable --now oracle-db.service
sudo systemctl status oracle-db.service
dbstart/dbshut dựa vào /etc/oratab, nên nhớ set :Y.
6. Mở port tường lửa (1521) + kiểm tra kết nối
sudo firewall-cmd --permanent --add-port=1521/tcp
sudo firewall-cmd --reload
Test local:
sqlplus / as sysdba
select name, open_mode from v$database;
show pdbs;
Test remote: Trên client dùng tnsnames.ora hoặc EZCONNECT:
sqlplus system@//<IP-SERVER>:1521/ORCL
sqlplus pdbadmin@//<IP-SERVER>:1521/PDB1

