快轉到主要內容

deploy Oracle19c on OL9

·820 字·2 分鐘·
PolloChang
作者
PolloChang
我是一隻雞

Step by Step
#

1. 部屬前置作業
#

1.1 設定系統校時
#

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
# 切換到 root
sudo -i
sudo yum install -y chrony
# 設定 NTP Server IP
echo "server 192.168.122.5 iburst" >> /etc/chrony.conf
# 重起 chronyd
sudo systemctl restart chronyd
sudo systemctl enable --now chronyd
# 立即調整系統時間
sudo chronyc -a makestep
# 確認結果
sudo chronyc sources -V

1.2 關閉 SELinux
#

1
2
3
sudo sed -i 's/SELINUX=.*$/SELINUX=disabled/' /etc/selinux/config
sed -i 's/^SELINUXTYPE=targeted/#&/' /etc/selinux/config
setenforce 0

1.3 安裝 preinstall
#

1
yum install oracle-database-preinstall-19c

檢查設定

1
ulimit -H -n -u -s -l

1.4 Disable Transparent HugePages
#

1
2
[root@vm123 ~]# cat /sys/kernel/mm/transparent_hugepage/enabled
always madvise [never]
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
##GRUB禁用透明大页和NUMA
vi /etc/default/grub
GRUB_CMDLINE_LINUX="resume=/dev/mapper/klas-swap rd.lvm.lv=klas/root rd.lvm.lv=klas/swap rhgb quiet numa=off transparent_hugepage=never crashkernel=1024M,high audit=0"

##生成新的grub文件
# BIOS启动:
grub2-mkconfig -o /boot/grub2/grub.cfg

# UEFI启动:
grub2-mkconfig -o /boot/efi/EFI/kylin/grub.cfg

##重启服务器并验证
reboot

cat /sys/kernel/mm/transparent_hugepage/enabled
always madvise [never]

1.5 Enabling Using HugePages
#

  • SGA -> 8G
  • grep Hugepagesize: /proc/meminfo -> 2048 KB

HugePages 數量 = (SGA(KB) / 2048) + 10

(8 * 1024 * 1024 / 2048) +10 = 4106

  • /etc/sysctl.d/99-nr_hugepages.conf
1
2
vm.nr_hugepages=4106
vm.hugetlb_shm_group=54322
1
sysctl -p /etc/sysctl.d/99-nr_hugepages.conf

成功設定紀錄如下

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
[root@vm123 ~]# grep Hugepagesize: /proc/meminfo
Hugepagesize:       2048 kB
[root@vm123 ~]# grep Huge /proc/meminfo
AnonHugePages:     16384 kB
ShmemHugePages:        0 kB
FileHugePages:         0 kB
HugePages_Total:    4106
HugePages_Free:     4106
HugePages_Rsvd:        0
HugePages_Surp:        0
Hugepagesize:       2048 kB
Hugetlb:         8409088 kB

1.6 設定 oracle 主機帳號環境變數
#

  1. 建立資料夾
1
mkdir -p /home/oracle/scripts
  1. 設定文件: /home/oracle/scripts/setEnv.sh
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
# Oracle Settings
export TMP=/tmp;
export TMPDIR=$TMP;
export ORACLE_BASE=/u01/app/oracle;
export ORACLE_UNQNAME=db
export ORACLE_HOME=$ORACLE_BASE/product/19/db;
##### RAC Node Difference start #####
export ORACLE_HOSTNAME=vm123.home.pollochang.work;
export ORACLE_SID=db1;

export PATH=/usr/sbin:$PATH; 
export PATH=$ORACLE_HOME/bin:$PATH; 

export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib; 
export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib; 
  1. 將 環境並數設定到使用者 bash 殼層
1
sudo -u oracle echo ". /home/oracle/scripts/setEnv.sh" >> /home/oracle/.bash_profile
1
2
chmod 0755 /home/oracle/scripts/*.sh
chown -R oracle: /home/oracle/

2. 安裝資料庫
#

2.1 建立資料夾
#

1
2
3
mkdir -p /u01/app/oracle/product/19/db
unzip -q /mnt/nas-share/share/LINUX.X64_193000_db_home.zip -d /u01/app/oracle/product/19/db
chown -R oracle: /u01

2.2 安裝oracle Database Sofware
#

切換到 oracle 帳號

1
su - oracle
  • 設定文件: $ORACLE_HOME/install/response/db_install_db.rsp
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
oracle.install.responseFileVersion=/oracle/install/rspfmt_dbinstall_response_schema_v19.0.0
oracle.install.option=INSTALL_DB_SWONLY
UNIX_GROUP_NAME=oinstall
INVENTORY_LOCATION=/u01/app/oraInventory
ORACLE_HOME=/u01/app/oracle/product/19/db
ORACLE_BASE=/u01/app/oracle
oracle.install.db.InstallEdition=EE
oracle.install.db.OSDBA_GROUP=dba
oracle.install.db.OSOPER_GROUP=oper
oracle.install.db.OSBACKUPDBA_GROUP=dba
oracle.install.db.OSDGDBA_GROUP=dba
oracle.install.db.OSKMDBA_GROUP=dba
oracle.install.db.OSRACDBA_GROUP=dba
1
2
3
# switch to root
/u01/app/oraInventory/orainstRoot.sh
/u01/app/oracle/product/19.0/db/root.sh

2.3.1 建立資料庫 non CDB
#

1
2
# switch to oracle
su - oracle
  • 設定文件: $ORACLE_HOME/assistants/dbca/dbca_${ORACLE_SID}.rsp
1
2
3
4
5
6
7
responseFileVersion=/oracle/assistants/rspfmt_dbca_response_schema_v19.0.0
gdbName=db
sid=db1
templateName=General_Purpose.dbc
sysPassword=P0ssw0rd..
systemPassword=P0ssw0rd..
characterSet=AL32UTF8

執行建立

1
dbca -silent -createDatabase -responseFile $ORACLE_HOME/assistants/dbca/dbca_${ORACLE_SID}.rsp

2.3.1 建立資料庫 CDB
#

1
2
# switch to oracle
su - oracle
  • 設定文件: $ORACLE_HOME/assistants/dbca/dbca_${ORACLE_SID}.rsp
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
responseFileVersion=/oracle/assistants/rspfmt_dbca_response_schema_v19.0.0
gdbName=db
sid=db1
templateName=General_Purpose.dbc
sysPassword=P0ssw0rd..
systemPassword=P0ssw0rd..
characterSet=AL32UTF8
createAsContainerDatabase=true
pdbName=pdb01
numberOfPDBs=1
pdbAdminPassword=P0ssw0rd..

執行建立

1
dbca -silent -createDatabase -responseFile $ORACLE_HOME/assistants/dbca/dbca_${ORACLE_SID}.rsp

2.4 設定開機時啟動
#

請參閱 deploy-Oracle26ai-on-OL8

2.5 啟用 Archive Mode
#

請參閱 deploy-Oracle26ai-on-OL8

2.6 設定 rman 備份
#

請參閱 oracle-backup-with-rman

90. 刪除資料庫
#

1
dbca -silent -deleteDatabase -sourceDB <您的SID> -sysDBAUserName SYS -sysDBAPassword <您的密碼>

刪除結果如下

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
[oracle@vm123 ~]$ dbca -silent -deleteDatabase -sourceDB db1 -sysDBAUserName SYS -sysDBAPassword P0ssw0rd..
[WARNING] [DBT-19202] The Database Configuration Assistant will delete the Oracle instances and datafiles for your database. All information in the database will be destroyed.
Prepare for db operation
32% complete
Connecting to database
35% complete
39% complete
42% complete
45% complete
48% complete
52% complete
65% complete
Updating network configuration files
68% complete
Deleting instance and datafiles
84% complete
100% complete
Database deletion completed.
Look at the log file "/u01/app/oracle/cfgtoollogs/dbca/db/db0.log" for further details.