🔻 一、安裝前規劃
規劃項: | (本環境) 描述: |
---|---|
操作系統版本 | Red Hat Enterprise Linux Server release 4.6 (Santiago) |
主機名 | langtest |
數據庫版本 | Oracle 19c |
IP規劃 | 10.10.10.164 |
服務器空間要求 | 根據實際要求 |
數據庫名/實例名 | orcl |
數據庫塊大小 | oracle建庫一般設置數據庫塊大小8192K |
數據庫使用字符集 | 這里用AL32UTF8 字符集 |
UFT8與GBK的區別:
區別主要是他們占用的字節不同(漢字),UTF8占用三個字節,而GBK占用兩個字節如varchar2(30)類型,
????????如果是utf8,只能輸入10漢字;
????????而gbk則可以輸入15個漢字。
一般生產環境服務器空間規劃要求(可根據業務量自行調整)
/
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?------100G
數據庫安裝目錄(如:/u01
)? ? ? ? ? ? ?------100G
數據存儲目錄(如:/oradata
)? ? ? ? ------500G
歸檔目錄(如:/archive
)? ? ? ? ? ? ? ?------500G(一般和數據目錄一致)
備份目錄(如:/backup
)? ? ? ? ? ? ? ? ?----------1.5T(一般是數據目錄3倍左右)??
🔻 二、安裝前準備一(系統參數修改)
? 2.1 內核版本、系統版本查看
拓展:普通用戶切換到root用戶
出現這種原因是因為在 /etc/sudoers 文件中沒有配置
1、使用root用戶登錄
2、編輯 /etc/sudoers 文件
-- root用戶登錄,編輯 /etc/sudoers 文件 [root@langtest ~]# vi /etc/sudoers-- 末行加入 -- NOPASSWD:ALL 表示切換到時候不需要輸入密碼 oracle ALL=(ALL) NOPASSWD:ALL-- 然后 :wq! 保存退出
?3、查看修改結果
?-- 系統的硬件架構 [oracle@langtest ~]$ uname -m x86_64 [oracle@langtest ~]$ -- 查看內核版本 [oracle@langtest ~]$ cat /proc/version Linux version 2.6.32-504.el6.x86_64 (mockbuild@x86-023.build.eng.bos.redhat.com) (gcc version 4.4.7 20120313 (Red Hat 4.4.7-11) (GCC) ) #1 SMP Tue Sep 16 01:56:35 EDT 2014 [oracle@langtest ~]$ --?所有可用的系統信息 [oracle@langtest ~]$ uname -a Linux langtest 2.6.32-504.el6.x86_64 #1 SMP Tue Sep 16 01:56:35 EDT 2014 x86_64 x86_64 x86_64 GNU/Linux [oracle@langtest ~]$ -- 查看系統版本 [oracle@langtest ~]$ cat /etc/redhat-release Red Hat Enterprise Linux Server release 4.6 (Santiago) [oracle@langtest ~]$
? 2.2 修改主機名-重啟生效??
1、域名主機名映射?
-- 域名--主機名 映射 [oracle@langtest ~]$ vi /etc/hosts-- 末行增加 10.10.10.164 langtest
2、主機名?
-- 修改主機名 [oracle@langtest ~]$ vi /etc/hostname-- 增加 langtest
?? 2.3 關閉selinux
關閉selinux可以提高系統的性能,因為 selinux會對系統進行安全檢查,這會消耗一定的系統資源。
[oracle@langtest ~]$ vi /etc/selinux/config
-- 將SELINUX= enforcing
?修改為SELINUX=disabled?
拓展:防火墻有關命令
-- 關閉防火墻 [oracle@langtest ~]$ systemctl stop firewalld-- 開啟防火墻 [oracle@langtest ~]$ systemctl start firewalld-- 重啟防火墻 [oracle@langtest ~]$ systemctl restart firewalld-- 防火墻狀態查看 [oracle@langtest ~]$ systemctl status firewalld-- 禁止開機啟動 [oracle@langtest ~]$ systemctl disable firewalld-- 設置開機啟動 [oracle@langtest ~]$ systemctl enable firewalld
?
? 2.4 防火墻設置1521端口開放?
-- 設置1521端口開放 [oracle@langtest ~]$ firewall-cmd --zone=public --add-port=1521/tcp --permanent success [oracle@langtest ~]$ -- 重啟防火墻,查看開放端口列表 [oracle@langtest ~]$ firewall-cmd --list-ports 1521/tcp [oracle@langtest ~]$
? 2.5 系統相關配置檢查?
-- 查看磁盤占用的空間 [root@langtest ~]# df -h -- 查看內存總量 [root@langtest ~]# grep MemTotal /proc/meminfo -- 查看空閑內存量 [root@langtest ~]# grep MemFree /proc/meminfo
?
?
安裝oracle 11g對于共享內存(/dev/shm)要求/dev/shm空間不能小于分配給oracle使用內存的大小
。
?
我這里大小已經夠用了,就不需要增加了 !!!!!!!!!
?
拓展:修改/dev/shm 大小 (/dev/shm空間不能小于分配給oracle使用內存的大小)
將/dev/shm 增加到4G
[root@langtest ~]# vi /etc/fstab-- 文本末添加內容 tmpfs /dev/shm tmpfs defaults size=4096M 0 0
-- 重新掛載/dev/shm,然后df -h /dev/shm查看掛載情況 [root@langtest ~]# mount -o remount /dev/shm
2.5.1?🍁 /tmp(臨時文件存儲空間) >1G
?
2.5.2?🍁 /u01(軟件安裝目錄) >2.5G?
?
2.5.3 🍁 內核需求?
安裝數據庫19c操作系統 內核需求 On Oracle Linux 4 and Red Hat Enterprise Linux 4 2.6.9 or later On Oracle Linux 5 Update 5 2.6.32-100.0.19 or later On Oracle Linux 5 Update 2 2.6.18 or later (with Red Hat Compatible Kernel) On Oracle Linux 6 2.6.32-100.28.5.el6.x86_64 or later On Oracle Linux 6 2.6.32-71.el6.x86_64 or later (with Red Hat Compatible Kernel)??
Oracle 19c要求OS至少為RHEL4.7,內核為Kernel 2.6.9
。
? 2.6 系統光盤鏡像文件掛載—配置本地yum源
一般生產環境無法訪問外網,在內網環境可以使用系統ISO鏡像文件作為本地yum源,在服務器上掛載DVD的 iso 文件。
2.6.1 🍁 上傳iso鏡像文件并掛載到 /mnt/dvd/ 下
1、創建掛載鏡像文件目錄?
-- 創建鏡像文件掛載目錄/mnt/dvd [root@langtest ~]# mkdir -p /mnt/dvd-- 查看創建情況 [root@langtest ~]# ls -lrt /mnt/dvd total 0 [root@langtest ~]#
2、
上傳rhel-server-7.9-x86_64-dvd.iso
文件到?/usr/local/src
下通過 sftp 將鏡像上傳到 /usr/local/src? 下
?
?
3、掛載ISO文件
-- 掛載iso文件(只能讀,不可寫) [root@langtest ~]# mount -t iso9660 -o loop /usr/local/src/rhel-server-7.9-x86_64-dvd.iso /mnt/dvd-- 重新以可讀可寫的方式掛載 [root@langtest ~]# mount -o remount,rw /
?
?
4、開機自動掛載本地鏡像文件
?
-- 設置開機自動掛載本地鏡像文件 [root@langtest ~]# vi /etc/fstab-- 末行添加內容 /usr/local/src/rhel-server-7.9-x86_64-dvd.iso /mnt/dvd iso9660 loop 0 0
?
5、查看掛載情況
[root@langtest ~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/mapper/vg_root-lv_root99G 38G 57G 40% / tmpfs 2.0T 28K 2.0T 1% /dev/shm /dev/sda1 190M 33M 147M 19% /boot /dev/mapper/vg_root-lv_oracle99G 56G 39G 59% /u01 /dev/mapper/vg_root-lv_backup99G 69G 26G 74% /backup /dev/mapper/vg_root-lv_onlbak99G 2.4G 91G 3% /onlbak /dev/mapper/vg_root-lv_test99G 41G 54G 43% /oracle /dev/mapper/vg_faredata-lv_faredata776G 553G 184G 76% /fare_data /dev/mapper/vg_rptbak-lv_rptbak739G 343G 358G 49% /rptbak /dev/mapper/vg_oradata-lv_oradata792G 717G 35G 96% /oradata /dev/mapper/vg_oradata02-lv_oradata02970G 131G 790G 15% /oradata02 /dev/mapper/vg_amrbak-lv_amrbak650G 3.6G 613G 1% /amrbak /dev/mapper/vg_postgres-lv_postgres99G 403M 93G 1% /postgres /usr/local/src/rhel-server-7.9-x86_64-dvd.iso4.3G 4.3G 0 100% /mnt/dvd [root@langtest ~]#
?
?2.6.2 🍁 備份yum源文件
[root@langtest ~]# cd /etc/yum.repos.d/ [root@langtest ~]# more redhat.repo
?
-- 備份yum源文件 [root@langtest yum.repos.d]# cp redhat.repo redhat.repo-bak
?
?2.6.3🍁 本地yum源配置
1、編輯?/etc/yum.repos.d/redhat.repo 文件?
[root@langtest yum.repos.d]# cd /etc/yum.repos.d/ [root@langtest yum.repos.d]# ls cobbler-config.repo local.repo redhat.repo redhat.repo-bak rhel-source.repo.bak [root@langtest yum.repos.d]# vi redhat.repo
?
?
?
?2、增加如下內容
[root@langtest yum.repos.d]# vi redhat.repo-- 末行增加# 標識符 [redhat]# 名稱 name=Red Hat Enterprise Linux 7.9 # 本地yum源地址 baseurl=file:///mnt/dvd# 下載的rpm不進行校驗 gpgcheck=0#啟用狀態 enabled=1
?2.6.4🍁 驗證本地yum源配置
1、清除yum緩存
###清除yum緩存 [root@langtest ~]# yum clean all
?
2、緩存本地yum源中的軟件包信息?
-- 緩存本地yum源中的軟件包信息 [root@langtest ~]# yum makecache
?
3、查詢倉庫中的所有軟件包?
-- 查詢倉庫中的所有軟件包 [root@langtest ~]# yum list
? 2.7 Orange19c有關依賴包檢查及安裝?
1、檢查19c相關的依賴包
-- Orange19c有關依賴包檢查 rpm -q binutils \ compat-libcap1 \ compat-libstdc++-33 \ gcc \ gcc-c++ \ glibc \ glibc-devel \ ksh \ libaio \ libaio-devel \ libgcc \ libstdc++ \ libstdc++-devel \ libXi \ libXtst \ make \ sysstat \ unixODBC \ unixODBC-devel \ | grep "not installed"
----提前安裝有關依賴
?
1、
安裝有關依賴
-- 安裝有關依賴 [root@langtest ~]# yum install gcc* binutils* compat* glibc* ksh* libgcc* libstdc* libaio* make* sysstat* unixODBC* -y
?
拓展:?
--?手動上傳安裝compat-libstdc++
[root@langtest ~]# rpm -ivh compat-libstdc++-8-3.3.4.2.x86_64.rpm --force --nodeps warning: compat-libstdc++-8-3.3.4.2.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 4f2a6fd2: NOKEY Preparing... ################################# [100%] Updating / installing...1:compat-libstdc++-8-3.3.4.2 ################################# [100%] [root@langtest ~]#
2、有關依賴包再次檢查?
-- 有關依賴包再次檢查 rpm -q binutils \ compat-libcap1 \ compat-libstdc++-33 \ gcc \ gcc-c++ \ glibc \ glibc-devel \ ksh \ libaio \ libaio-devel \ libgcc \ libstdc++ \ libstdc++-devel \ libXi \ libXtst \ make \ sysstat \ unixODBC \ unixODBC-devel \ | grep "not installed"
? 2.8 修改資源限制參數并使其生效?
對oracle用戶做資源的限制,主要是出于性能上的考慮,防止oracle用戶過渡消耗有限資源,使系統變得臃腫緩慢。
?1、編輯?/etc/security/limits.conf 文件
?
-- 備份limits.conf 文件,limits.conf只針對于單個會話。 [root@langtest ~]# cd /etc/security/ [root@langtest security]# ls access.conf console.apps console.perms group.conf limits.d namespace.d opasswd pam_winbind.conf time.conf chroot.conf console.handlers console.perms.d limits.conf namespace.conf namespace.init pam_env.conf sepermit.conf [root@langtest security]# cp /etc/security/limits.conf /etc/security/limits.conf-bak [root@langtest security]# vi /etc/security/limits.conf-- 末行添加 # Oracle oracle soft nproc 2047 oracle hard nproc 16384 oracle soft nofile 65536 oracle hard nofile 65536 oracle soft stack 10240 oracle soft memlock unlimited oracle hard memlock unlimited
?
注意:
資源限制參數分為軟限制和硬限制
。
nproc? ? ? ?----進程最大數目
nofile? ? ? ?----進程打開文件的最大數目
stack? ? ? ?----最大棧大小
memlock ----最大鎖定內存地址空間(要比實際內存小,如內存4G,設置3G最大鎖定內存地址空間,則為3x1024x1024=3145728)
?
--------其他配置項
-------
core? ? ? ? ? ? ?----限制內核文件的大小
data? ? ? ? ? ? ?----最大數據大小
fsize? ? ? ? ? ? ?----最大文件大小
rss? ? ? ? ? ? ? ? ---- 最大持久設置大小
cpu? ? ? ? ? ? ? ?---- 以分鐘為單位的最多 CPU 時間
as? ? ? ? ? ? ? ? ?---- 地址空間限制
maxlogins? ? ?---- 此用戶允許登錄的最大數目??
2、使 limits.conf 文件配置生效?
-- 使 limits.conf 文件配置生效,必須要確保 pam_limits.so 文件被加入到啟動文件中。vi /etc/pam.d/login 文件,文末添加內容:[root@langtest ~]# vi /etc/pam.d/login-- 末行增加 session required /lib64/security/pam_limits.so
?
?? 2.9 系統內核參數修改
1、備份、編輯內核參數文件sysctl.conf
[root@langtest ~]# cp /etc/sysctl.conf /etc/sysctl.conf-bak [root@langtest ~]# vi /etc/sysctl.conf-- 末行增加 fs.aio-max-nr = 1048576 fs.file-max = 6815744 kernel.shmall = 65892823 kernel.shmmax = 215917602406 kernel.shmmni = 4096 kernel.sem = 250 32000 100 128 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 = 1048586
?
系統內核參數詳解,關注該四個:
1、kernel.shmmax ----單個共享內存段的最大值(如系統內存4G,則oracle 內存為0.8x4G=3.2G(SGA=0.8x3.2G+PGA=0.2x3.2G)) >= SGA的值,則最終值應該>=0.8x3.2Gx1024x1024x1024 2、kernel.shmall? -----控制共享內存頁數(kernel.shmmax/PAGESIZE)-- PAGESIZE—頁數查看 [oracle@langtest ~]$ getconf PAGESIZE 4096 [oracle@langtest ~]$ 3、kernel.shmmni -----共享內存段的最大數量 = 4096(和每頁大小一致即可)4、vm.nr_hugepages? -----大頁,直接分配并保留對應大小的內存區域(SGA/2M稍微大一點,加200M左右),如(0.8x3.2Gx1024x1024x1024)/(1024x1024)
?
?
2、使內核參數文件sysctl.conf生效?
-- 使內核參數文件sysctl.conf生效,重新加載配置文件 [oracle@langtest ~]$ sysctl -p fs.aio-max-nr = 1048576 fs.file-max = 6815744 kernel.shmall = 65892823 kernel.shmmax = 215917602406 kernel.shmmni = 4096 kernel.sem = 250 32000 100 128 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 = 1048586 [oracle@langtest ~]$
?
? 2.10 用戶創建進程數的限制
nproc是操作系統級別對每個用戶創建進程數的限制.
?
-- 設置每個用戶創建進程最大數為1024 [root@langtest ~]# echo "* soft nproc 1024 " > /etc/security/limits.d/90-nproc.conf [root@langtest ~]# cat /etc/security/limits.d/90-nproc.conf * soft nproc 1024 [root@langtest ~]#
?
?
拓展:?
1、
查看所有用戶創建的進程數
,使用命令:[root@langtest ~]# ps h -Led -o user | sort | uniq -c | sort -n1 ntp2 postfix7 zabbix12 postgres28 mysql412 oracle4216 root [root@langtest ~]#
?
2、
查看某個用戶創建的進程數
,使用命令: (進程太多,只取了一部分)[root@langtest ~]# ps -o nlwp,pid,lwp,args -u root | sort -n1 547 547 [migration/136]1 548 548 [stopper/136]1 549 549 [ksoftirqd/136]1 550 550 [watchdog/136]1 5509 5509 [edac-poller]1 551 551 [migration/137]1 552 552 [stopper/137]1 553 553 [ksoftirqd/137]1 554 554 [watchdog/137]1 555 555 [migration/138]1 55 55 [migration/13]1 556 556 [stopper/138]1 557 557 [ksoftirqd/138]1 558 558 [watchdog/138]1 559 559 [migration/139]1 5 5 [stopper/0]1 560 560 [stopper/139]1 561 561 [ksoftirqd/139]1 562 562 [watchdog/139]1 563 563 [migration/140]1 564 564 [stopper/140]1 565 565 [ksoftirqd/140]1 56 56 [stopper/13]1 566 566 [watchdog/140]1 567 567 [migration/141]1 568 568 [stopper/141]1 569 569 [ksoftirqd/141]1 570 570 [watchdog/141]1 571 571 [migration/142] [root@langtest ~]#
🔻 三、安裝前準備二(創建用戶、用戶組以及安裝目錄)
注:在安裝任何軟件設置的用戶和用戶密碼都要做好記錄
?? 3.1 創建用戶組
-- 創建oinstall用戶組—控制軟件安裝,補丁安裝 [oracle@langtest ~]$ /usr/sbin/groupadd -g 600 dba-- 創建dba用戶組—控制數據庫創建、管理 [oracle@langtest ~]$ /usr/sbin/groupadd -g 601 oinstall-- 創建oper用戶組—數據庫操作員 [oracle@langtest ~]$ /usr/sbin/groupadd -g 603 oper [oracle@langtest ~]$
拓展:
-- 刪除用戶組 [oracle@langtest ~]$ groupadd test [oracle@langtest ~]$ useradd -g test -G dba test [oracle@langtest ~]$ groupdel test groupdel: cannot remove the primary group of user ‘test’ [oracle@langtest ~]$-- 如果組里面有用戶需要先刪除用戶或移動用戶,才能刪除組 [oracle@langtest ~]$ userdel test ###刪除用戶
? 3.2 創建oracle用戶和設置密碼?
-- 創建oracle用戶—編號為600,默認組為dba ,并添加到oinstall組,主要是dba組發生作用 [oracle@langtest ~]$ useradd -u 600 -g dba -G oinstall oracle
-- passwd oracle
?----設置oracle用戶密碼
(Or@cle2024)[oracle@langtest ~]$ passwd oracle Changing password for user oracle. New password: Retype new password: passwd: all authentication tokens updated successfully. [oracle@langtest ~]$
-- 檢查創建的oracle用戶
[oracle@langtest ~]$ id uid=600(oracle) gid=600(dba) groups=600(dba),601(oinstall) [oracle@langtest ~]$
? 3.3 創建安裝目錄?
-- 創建oracle安裝目錄 [oracle@langtest ~]$ mkdir -p /u01/app/oracle-- 更改/u01目錄用戶組 [oracle@langtest ~]$ chown -R oracle:dba /u01-- 更改oracle目錄權限 [oracle@langtest ~]$ chmod -R 775 /u01/app/oracle
? 3.4 設置oracle用戶環境變量?
-- 切換至oracle用戶,編輯 profile19c 文件 [oracle@langtest ~]$ vi profile19c-- 增加如下內容# Get the aliases and functions if [ -f ~/.bashrc ]; then. ~/.bashrc fi# User specific environment and startup programsPATH=$PATH:$HOME/.local/bin:$HOME/binexport PATH export ORACLE_SID=orcl export ORACLE_BASE=/u01/app/oracle export ORACLE_HOME=$ORACLE_BASE/product/19.3/db_1 export TNS_ADMIN=$ORACLE_HOME/network/admin export LD_LIBRARY_PATH=$ORACLE_HOME/lib export PATH=$ORACLE_HOME/bin:/bin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/X11R6/bin export TEMP=/tmp export TMP=/tmp export LC_ALL=en_US.UTF-8 export LANG=en_US.UTF-8 export NLS_LANG=AMERICAN_AMERICA.AL32UTF8 umask 022 stty erase ^H
?
?
使配置文件生效
:-- 使環境變量生效 [oracle@langtest ~]$ source profile19c-- 安裝目錄 [oracle@langtest ~]$ echo $ORACLE_BASE /u01/app/oracle-- 家目錄 [oracle@langtest ~]$ echo $ORACLE_HOME /u01/app/oracle/product/19.3/db_1-- 環境路徑 [oracle@langtest ~]$ echo $PATH /u01/app/oracle/product/19.3/db_1/bin:/bin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/X11R6/bin-- 實例名 [oracle@langtest ~]$ env | grep ORACLE_SID ORACLE_SID=orcl [oracle@langtest ~]$
? 3.5 創建oracle安裝文件所在目錄?
1、創建安裝文件目錄?
-- 創建安裝文件所在目錄 [root@langtest ~]# mkdir -p /u01/app/oracle/product/19.3/db_1 [root@langtest ~]# ls -lrt /u01/app/oracle/product/19.3/db_1 total 0 [root@langtest ~]#
2、上傳oracle19c安裝包
將下載好的19c數據庫安裝包上傳到?/u01/app/oracle/product/19.3/db_1目錄下
1.官網下載
?2.百度網盤提取oracle19c
?
?
?3、解壓oracle19c安裝包
[oracle@langtest ~]$ cd /u01/app/oracle/product/19.3/db_1 [oracle@langtest db_1]$ ls -lrt total 2988000 -rw------- 1 oracle dba 3059705302 Jul 9 18:20 LINUX.X64_193000_db_home.zip [oracle@langtest db_1]$ unzip LINUX.X64_193000_db_home.zip
?
?4、更改oracle安裝文件所在目錄的用戶組
[root@langtest ~]# chown -R oracle:dba /u01/app/oracle/product/19.3/db_1 [root@langtest ~]#
?
?5、更改oracle安裝文件的操作權限
[oracle@langtest db_1]$ chmod +x runInstaller
🔻 四、安裝數據庫軟件、配置監聽、建庫
拓展:關于oracle的響應文件
db_install.rsp? ??
----安裝響應文件dbca.rsp? ? ? ? ?
----實例響應文件netca. rsp? ? ? ??
----監聽響應文件
? 4.1 編輯靜默安裝響應文件?
1、以oracle用戶進入安裝包解壓后的?/u01/app/oracle/product/19.3/db_1/install/response/? 目錄下
-- 進入到安裝響應文件目錄下 [oracle@langtest ~]$ cd /u01/app/oracle/product/19.3/db_1/install/response/ [oracle@langtest response]$ ls db_install.rsp [oracle@langtest response]$
2、備份安裝響應文件 (修改前養成備份的習慣)
-- 備份安裝響應文件 [oracle@langtest response]$ cp db_install.rsp db_install.rsp_bak [oracle@langtest response]$ ls db_install.rsp db_install.rsp_bak [oracle@langtest response]$
?
?3、編輯db_install.rsp文件
-- 編輯 安裝響應文件 [oracle@langtest response]$ vi db_install.rsp-- 修改如下內容 oracle.install.option=INSTALL_DB_SWONLY UNIX_GROUP_NAME=dba INVENTORY_LOCATION=/u01/app/oraInventory ORACLE_HOME=/u01/app/oracle/product/19c/db_1 ORACLE_BASE=/u01/app/oracle oracle.install.db.InstallEdition=EE oracle.install.db.OSDBA_GROUP=dba oracle.install.db.OSOPER_GROUP=dba oracle.install.db.OSBACKUPDBA_GROUP=dba oracle.install.db.OSDGDBA_GROUP=dba oracle.install.db.OSKMDBA_GROUP=dba oracle.install.db.OSRACDBA_GROUP=dba oracle.install.db.rootconfig.executeRootScript=false
編輯完,:wq 保存?
拓展:關于oracle的安裝響應文件db_install.rsp參數詳解
🍀1、安裝類型:
oracle.install.option=INSTALL_DB_SWONLY
1、 INSTALL_DB_SWONLY? ?----僅安裝數據庫軟件
2、 INSTALL_DB_AND_CONFIG ----安裝和配置數據庫
?
🍀2、安裝組:UNIX_GROUP_NAME=dba
?
🍀3、INVENTORY清單目錄:INVENTORY_LOCATION=/u01/app/oraInventory
該目錄主要存儲數據庫的控制文件、數據文件、重做日志文件。
?
🍀4、oracle產品目錄:ORACLE_HOME=/u01/app/oracle/product/19c/db_1
?
🍀5、oracle基目錄:ORACLE_BASE=/u01/app/oracle
?
🍀6、安裝版本:oracle.install.db.InstallEdition=EE
1、EE : Enterprise Edition ----企業版
2、SE2 : Standard Edition ----標準版2
?
🍀7、要授予SYSDBA權限的操作系統組:oracle.install.db.OSDBA_GROUP=dba
?
🍀8、SYSOPER權限的操作系統組:oracle.install.db.OPER_GROUP=dba
🍀9、SYSBACKUP權限的操作系統組oracle.install.db.OSBACKUPDBA_GROUP=dba
🍀10、SYSDG權限的操作系統組
oracle.install.db.OSDGDBA_GROUP=dba
🍀11、SYSKM權限的操作系統組
oracle.install.db.OSKMDBA_GROUP=dba
🍀12、SYSRAC權限的操作系統組
oracle.install.db.OSRACDBA_GROUP=dba
??
🍀13、指定腳本執行模式:true:使用適當的配置方法自動執行根腳本。false:手動執行根腳本
oracle.install.db.rootconfig.executeRootScript=false
🍀14、自動執行腳本的配置方法 root 或者 sudo
oracle.install.db.rootconfig.configMethod=root
🍀15、sudo程序的絕對路徑
oracle.install.db.rootconfig.sudoPath=
??
🍀16、指定sudoers列表中的用戶的名稱。
#僅當選擇SUDO配置方法時適用。
#注意:對于單實例數據庫安裝,sudo用戶名必須是安裝數據庫的用戶的用戶名。oracle.install.db.rootconfig.sudoUserName=
🍀17、群集節點名稱
oracle.install.db.CLUSTER_NODES=
———
僅安裝數據庫軟件配置如上參數即可,如果選擇安裝和配置數據庫還需配置下面參數
———🍀18、創建的數據庫的類型
1.GENERAL_PURPOSE :為通用或事務繁重的應用程序設計的入門數據庫
2.DATA_WAREHOUSE :一個為數據倉庫應用程序優化的入門數據庫oracle.install.db.config.starterdb.type=
🍀19、全局數據庫名稱
oracle.install.db.config.starterdb.globalDBName=
🍀20、數據庫實例名:
oracle.install.db.config.starterdb.SID=
🍀21、指定是否應將數據庫配置為容器數據庫。
1.true :是2.false 或者空 :否
oracle.install.db.ConfigureAsContainerDB=
🍀22、在容器數據庫中指定可插入數據庫名稱
oracle.install.db.config.PDBName=
🍀23、數據庫字符集
oracle.install.db.config.starterdb.characterSet=AL32UTF8
🍀24、是否自動內存管理
1.true
2.false
oracle.install.db.config.starterdb.memoryOption=
🍀25、指定數據庫的總內存分配。值(MB)應為 ,至少256 MB,并且不應超過可用的物理內存總量
oracle.install.db.config.starterdb.memoryLimit=
🍀26、是否將示例架構加載到啟動器數據庫。
1.true
2.false
oracle.install.db.config.starterdb.installExampleSchemas=
🍀27、啟動數據庫通用密碼
oracle.install.db.config.starterdb.password.ALL=
🍀28、啟動器數據庫的SYS密碼
oracle.install.db.config.starterdb.password.SYS=
🍀29、啟動器數據庫的SYSTEM密碼
oracle.install.db.config.starterdb.password.SYSTEM=
🍀30、啟動器數據庫的DBSNMP密碼,僅適用于oracle.install.db.config.starterdb.managementOption=CLOUD_CONTROL
oracle.install.db.config.starterdb.password.DBSNMP=
🍀31、在容器數據庫中創建可插入數據庫所需的PDBADMIN密碼
oracle.install.db.config.starterdb.password.PDBADMIN=
🍀32、管理數據庫的管理方法
1.CLOUD_CONTROL:使用Enterprise Manager CLOUD CONTROL和database Express管理數據庫
2.DEFAULT:使用默認的database Express選項管理數據庫
oracle.install.db.config.starterdb.managementOption=
🍀33、連接到云服務主機IP,僅適用于oracle.install.db.config.starterdb.managementOption=CLOUD_CONTROL
oracle.install.db.config.starterdb.omsHost=
🍀34、連接到云服務主機端口,僅適用于oracle.install.db.config.starterdb.managementOption=CLOUD_CONTROL
oracle.install.db.config.starterdb.omsPort=
🍀35、連接到云服務主機用戶名,僅適用于oracle.install.db.config.starterdb.managementOption=CLOUD_CONTROL
oracle.install.db.config.starterdb.emAdminUser=
🍀36、連接到云服務主機密碼,僅適用于oracle.install.db.config.starterdb.managementOption=CLOUD_CONTROL
oracle.install.db.config.starterdb.emAdminPassword=
🍀37、是否需要數據庫恢復
1.true
2.false
oracle.install.db.config.starterdb.enableRecovery=
🍀38、數據庫存儲:
1、FILE_SYSTEM_STORAGE ----文件系統
2、ASM_STORAGE -----ASM存儲
oracle.install.db.config.starterdb.storageType=FILE_SYSTEM_STORAGE
🍀39、
指定數據庫文件位置,該位置是數據文件的目錄,控件文件,重做日志。
oracle.install.db.config.starterdb.storageType
#僅當=FILE_SYSTEM_STORAGE時適用
oracle.install.db.config.starterdb.fileSystemStorage.dataLocation=
🍀40、
指定恢復位置
oracle.install.db.config.starterdb.storageType
#僅當=FILE_SYSTEM_STORAGE時適用
oracle.install.db.config.starterdb.fileSystemStorage.recoveryLocation=
🍀41、
指定要用于存儲的現有ASM磁盤組
oracle.install.db.config.starterdb.storageType
#僅當=ASM_STORAGE時適用
oracle.install.db.config.asm.diskGroup=
🍀42、
ASM實例的ASMSNMP用戶的密碼
#僅當
oracle.install.db.config.starterdb.storageType=ASM_STORAGE時適用
oracle.install.db.config.asm.ASMSNMPPassword=
?? 4.2 使用db_install.rsp
響應文件開始安裝數據庫軟件
1、進入oracle解壓目錄?/u01/app/oracle/product/19.3/db_1
[oracle@langtest ~]$ cd /u01/app/oracle/product/19.3/db_1 [oracle@langtest db_1]$ ls -lrt total 292 -rw-r--r-- 1 oracle dba 852 Aug 18 2015 env.ora -rw-r--r-- 1 oracle dba 2927 Oct 14 2016 schagent.conf -rwxr-x--x 1 oracle dba 1783 Mar 8 2017 runInstaller drwxr-x--- 14 oracle dba 4096 Apr 12 2019 OPatch drwxr-x--- 7 oracle dba 4096 Apr 17 2019 xdk drwxr-xr-x 3 oracle dba 4096 Apr 17 2019 wwg drwxr-xr-x 4 oracle dba 4096 Apr 17 2019 usm drwxr-xr-x 5 oracle dba 4096 Apr 17 2019 suptools drwxr-xr-x 6 oracle dba 4096 Apr 17 2019 srvm drwxr-xr-x 3 oracle dba 4096 Apr 17 2019 sqlj drwxr-xr-x 4 oracle dba 4096 Apr 17 2019 sqldeveloper drwxr-xr-x 3 oracle dba 4096 Apr 17 2019 slax -rw-r----- 1 oracle dba 10 Apr 17 2019 root.sh.old.1 drwxr-xr-x 3 oracle dba 4096 Apr 17 2019 relnotes drwxr-xr-x 4 oracle dba 4096 Apr 17 2019 racg drwxr-xr-x 5 oracle dba 4096 Apr 17 2019 R drwxr-xr-x 5 oracle dba 4096 Apr 17 2019 perl drwxr-xr-x 4 oracle dba 4096 Apr 17 2019 owm drwxr-xr-x 3 oracle dba 4096 Apr 17 2019 oss drwxr-xr-x 6 oracle dba 4096 Apr 17 2019 ord drwxr-xr-x 4 oracle dba 4096 Apr 17 2019 oracore drwxr-xr-x 7 oracle dba 4096 Apr 17 2019 opmn drwxr-xr-x 5 oracle dba 4096 Apr 17 2019 olap drwxr-xr-x 5 oracle dba 4096 Apr 17 2019 nls drwxr-xr-x 4 oracle dba 4096 Apr 17 2019 mgw
?
?2、執行安裝
[oracle@langtest oracle]$ ./runInstaller -silent -ignoreInternalDriverError -responseFile /u01/app/oracle/product/19.3/db_1/install/response/db_install.rsp-- 參數說明 -silent 對于無提示模式下的操作, 輸入內容可以是一個響應文件, 也可以是命令行變量值對的列表。 -ignorePrereq 忽略運行先決條件檢查。 -ignoreSysPrereqs 忽略系統先決條件檢查的結果。 -showProgress 用于在控制臺上顯示安裝進度。僅在無提示安裝下才支持此選項。 -responseFile <Path> 指定要使用的響應文件和路徑。
說明:
? ? ? ? 1.如果安裝的時候報錯:/software/oracle/perl/bin/perl: /lib64/libc.so.6: version `GLIBC_2.14' not found (required by /software/oracle/perl/bin/perl)
可以參考:https://zhuanlan.zhihu.com/p/529548252?我按照這個步驟操作,再次安裝的時候不報這個錯誤了
? ? ? ? 2.安裝好GLIBC_2.14 后,ssh 登錄報如下錯誤
-- 登錄的時候報這個錯誤 -bash: warning: setlocale: LC_CTYPE: cannot change locale (en_US.UTF-8): No such file or directory -bash: warning: setlocale: LC_COLLATE: cannot change locale (en_US.UTF-8): No such file or directory -bash: warning: setlocale: LC_MESSAGES: cannot change locale (en_US.UTF-8): No such file or directory -bash: warning: setlocale: LC_NUMERIC: cannot change locale (en_US.UTF-8): No such file or directory -bash: warning: setlocale: LC_TIME: cannot change locale (en_US.UTF-8): No such file or directory [oracle@langtest ~]$[oracle@langtest ~]$ locale locale: Cannot set LC_CTYPE to default locale: No such file or directory locale: Cannot set LC_MESSAGES to default locale: No such file or directory locale: Cannot set LC_COLLATE to default locale: No such file or directory造成原因:升級libc后導致中文亂碼 解決方法: 1、如果這時你沒有刪除glibc的編譯目錄,則進入glibc的編譯目錄,也就是build目錄 [root@langtest build]# make localedata/install-locales 上面命令執行結束,再次執行 locale 這時應該已經正常了 [root@langtest build]# locale2、如果你已經刪除了編譯glibc的build目錄或者不知道build的目錄在哪里 · 查看 libc.so.6 軟連接指向 [root@langtest ~]# ls -la /lib64/libc.so.6 [root@langtest ~]# /lib64/libc.so.6 -> libc-2.14.so· 查看 locale-archive 歸檔文件目錄 [root@langtest ~]# strings libc-2.14.so | grep locale-archive [root@langtest ~]# /usr/local/glibc-2.14/lib/locale/locale-archive 上面這個目錄是在升級libc的時候build的目錄· 添加軟鏈接 [root@langtest ~]# ls -la /usr/local/glibc-2.14/lib/locale/locale-archive 發現文件并不存在 那么 [root@langtest ~]# ln -s /usr/lib/locale/locale-archive /usr/local/glibc-2.14/lib/locale/locale-archive重新執行 locale 已經正常了 ! [root@langtest ~]# locale
安裝過程:
?
??
?—— 等待安裝即可,出現
Successfully Setup Software.
則代表成功——?
?
3、新建窗口,root用戶執行
[root@langtest ~]# /u01/app/oracle/product/19.3/db_1/root.sh Check /u01/app/oracle/product/19.3/db_1/install/root_langtest_2024-07-10_09-01-18-037231095.log for the output of root script [root@langtest ~]#
??—— 至此安裝成功,接下來配置監聽——
? 4.3 oracle用戶登錄使用netca.rsp配置監聽 (這里建議先創建數據庫,然后再配置監聽)
1、執行監聽響應文件netca.rsp配置監聽
[oracle@langtest netca]$ netca /silent /responseFile /u01/app/oracle/product/19.3/db_1/assistants/netca/netca.rsp Parsing command line arguments:Parameter "silent" = trueParameter "responsefile" = /u01/app/oracle/product/19.3/db_1/assistants/netca/netca.rsp Done parsing command line arguments. Oracle Net Services Configuration: Profile configuration complete. Listener started at port:1523 Oracle Net Listener Startup:Running Listener Control: /u01/db/bin/lsnrctl start LISTENERListener Control complete.Listener started successfully. Listener configuration complete. Default local naming configuration complete. Oracle Net Services configuration successful. The exit code is 0[oracle@langtest netca]$
?
?監聽配置成功后,會在/u01/app/oracle/product/19.3/db_1/network/admin 中生成listener.ora和sqlnet.ora兩個文件。
2、編輯監聽文件 vi?listener.ora
[oracle@langtest admin]$ vi listener.oraLISTENER =(DESCRIPTION_LIST =(DESCRIPTION =(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))(ADDRESS = (PROTOCOL = TCP)(HOST = 10.10.10.164)(PORT = 1521)))) #配置靜態監聽 SID_LIST_LISTENER=(SID_LIST=(SID_DESC=(GLOBAL_DBNAME=orcl)(ORACLE_HOME=/u01/app/oracle/product/19.3/db_1)(SID_NAME=orcl)))ADR_BASE_LISTENER = /u01/app/oracle
🍁 4.3.1 監聽有關命令
?1、監聽狀態查看
?
[oracle@langtest admin]$ lsnrctl statusLSNRCTL for Linux: Version 19.0.0.0.0 - Production on 10-JUL-2024 09:35:57Copyright (c) 1991, 2019, Oracle. All rights reserved.Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521))) STATUS of the LISTENER ------------------------ Alias LISTENER Version TNSLSNR for Linux: Version 19.0.0.0.0 - Production Start Date 10-JUL-2024 09:34:15 Uptime 0 days 0 hr. 1 min. 41 sec Trace Level off Security ON: Local OS Authentication SNMP OFF Listener Parameter File /u01/app/oracle/product/19.3/db_1/network/admin/listener.ora Listener Log File /u01/app/oracle/diag/tnslsnr/langtest/listener/alert/log.xml Listening Endpoints Summary...(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=10.211.129.164)(PORT=1521))) Services Summary... Service "amronlinecd" has 1 instance(s).Instance "amronline", status READY, has 1 handler(s) for this service... Service "amronlinecd_XPT" has 1 instance(s).Instance "amronline", status READY, has 1 handler(s) for this service... Service "fareinlan_cd" has 1 instance(s).Instance "tdpfareinlan", status READY, has 1 handler(s) for this service... Service "fareintl_cd" has 1 instance(s).Instance "tdpfareintl", status READY, has 1 handler(s) for this service... Service "orcl" has 1 instance(s).Instance "orcl", status UNKNOWN, has 1 handler(s) for this service... Service "tdpfareinlanXDB" has 1 instance(s).Instance "tdpfareinlan", status READY, has 1 handler(s) for this service... Service "tdpfareintlXDB" has 1 instance(s).Instance "tdpfareintl", status READY, has 1 handler(s) for this service... The command completed successfully
2、監聽停止
[oracle@langtest admin]$ lsnrctl stop
3、監聽開啟
[oracle@langtest admin]$ lsnrctl start
4、重新啟動監聽
[oracle@langtest admin]$ lsnrctl reload
?? 4.4 oracle用戶登錄使用實例響應文件dbca.rsp
建庫&建立實例
創建實例也可以參考:Linux下創建Oracle數據庫的實例_linux創建oracle數據庫實例-CSDN博客
dbca.rsp
----實例響應文件
🍁 4.4.1 編輯監聽響應文件
1、進入到實例響應文件目錄 :/u01/app/oracle/product/19.3/db_1/assistants/dbca
[oracle@langtest ~]$ cd /u01/app/oracle/product/19.3/db_1/assistants/dbca [oracle@langtest dbca]$ ls dbca.rsp doc jlib templates [oracle@langtest dbca]$
?
2、備份實例響應文件
[oracle@langtest dbca]$ cp dbca.rsp dbca.rsp_bak [oracle@langtest dbca]$ ls dbca.rsp dbca.rsp_bak doc jlib templates [oracle@langtest dbca]$
?
3、編輯dbca.rsp 文件,修改以下參數,其中字符可以選擇AL32UTF8 ,或者ZHS16GBK(這里和安裝規劃時保持一致)
[oracle@langtest dbca]$ vi dbca.rsp-- 修改如下: gdbName=orcl sid=orcl databaseConfigType=SI templateName=General_Purpose.dbc sysPassword=AFuwd7_5K^sys systemPassword=AFuwd7_5K^system emConfiguration=DBEXPRESS dbsnmpPassword=AFuwd7_5K^dbsnmp datafileDestination=/oradata02/orcl/ recoveryAreaDestination=/amrbak/flash_recovery_area/ORCL/ characterSet=AL32UTF8 nationalCharacterSet=UTF8 listeners=LISTENER initParams=processes=800 totalMemory=6144
🍁 4.4.2 使用oracle用戶開始建庫&建立實例?
1、執行實例響應dbca.rsp文件,建庫&建立實例:
[oracle@langtest dbca]$ dbca -silent -createDatabase -responseFile /u01/app/oracle/product/19.3/db_1/assistants/dbca/dbca.rsp
2、
建庫&建立實例過程:
?
報了一個錯誤,內存不夠,加一個參數,取消內存檢查:-J-Doracle.assistants.dbca.validate.ConfigurationParams=false?
?
最終創建實例的命令:?
[oracle@langtest dbca]$ dbca -silent -createDatabase -J-Doracle.assistants.dbca.validate.ConfigurationParams=false -responseFile /u01/app/oracle/product/19.3/db_1/assistants/dbca/dbca.rsp
?—— 100%就代表建庫成功,接下來即可登錄使用oracle數據庫——?
🔻 五、數據庫簡單使用
? 5.1 連接數據庫
[oracle@langtest ~]$ source /home/oracle/profile19c
[oracle@langtest ~]$ ps -ef |grep smon
oracle 81346 1 0 02:04 ? 00:00:00 ora_smon_orcl
oracle 88485 1 0 02:21 ? 00:00:00 ora_smon_amronline
oracle 91814 85628 0 02:31 pts/1 00:00:00 grep smon
oracle 189476 1 0 2023 ? 00:06:06 ora_smon_tdpfareinlan
oracle 192090 1 0 2023 ? 00:06:00 ora_smon_tdpfareintl
[oracle@langtest ~]$ export ORACLE_SID=orcl
[oracle@langtest ~]$ sqlplus / as sysdbaSQL*Plus: Release 19.0.0.0.0 - Production on Thu Jul 11 02:32:13 2024
Version 19.3.0.0.0Copyright (c) 1982, 2019, Oracle. All rights reserved.Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.3.0.0.0SQL> show user;
USER is "SYS"
SQL>
? 5.2 啟動或關閉數據庫
[oracle@langtest ~]$ source /home/oracle/profile19c
[oracle@langtest ~]$ export ORACLE_SID=orcl
[oracle@langtest ~]$ sqlplus / as sysdbaSQL*Plus: Release 19.0.0.0.0 - Production on Thu Jul 11 02:33:25 2024
Version 19.3.0.0.0Copyright (c) 1982, 2019, Oracle. All rights reserved.Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.3.0.0.0SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL>
SQL>
SQL>
SQL> startup
ORACLE instance started.Total System Global Area 4831835720 bytes
Fixed Size 8906312 bytes
Variable Size 889192448 bytes
Database Buffers 3607101440 bytes
Redo Buffers 326635520 bytes
Database mounted.
Database opened.
SQL>
? 5.3 查看監聽狀態?
-- 停監聽
[oracle@langtest ~]$ lsnrctl stop-- 啟動監聽
[oracle@langtest ~]$ lsnrctl start-- 監聽狀態
[oracle@langtest ~]$ lsnrctl status
? 5.4 查看數據庫版本
[oracle@langtest ~]$ sqlplus / as sysdbaSQL*Plus: Release 19.0.0.0.0 - Production on Thu Jul 11 02:45:05 2024
Version 19.3.0.0.0Copyright (c) 1982, 2019, Oracle. All rights reserved.Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.3.0.0.0SQL> set linesize 132
SQL> select * from v$version;BANNER
--------------------------------------------------------------------------------
BANNER_FULL
------------------------------------------------------------------------------------------------------------------------------------
BANNER_LEGACY CON_ID
-------------------------------------------------------------------------------- ----------
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.3.0.0.0
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production 0SQL>
? 5.5 查看數據實例名、狀態、版本
SQL> select instance_name,status,VERSION from v$instance;INSTANCE_NAME STATUS VERSION
---------------- ------------ -----------------
orcl OPEN 19.0.0.0.0SQL>
? 5.6 查看所有用戶
-- 檢索用戶信息。可檢索系統用戶(SystemUser)、外部用戶(ExternalUser)、和內部用戶(CommonUser)的所有信息
SQL> select * from dba_users;-- 可以通過該功能來獲取全部數據庫用戶的信息,查出被授權的所有Oracle用戶的角色,賬戶名等信息。
SQL> select * from all_users;-- 描述當前用戶下所有用戶信息的視圖
SQL> select * from user_users;
? 5.7 查看用戶、角色的權限(直接賦值給用戶或角色的權限)
SQL> select * from dba_sys_privs;
? 5.8 當前用戶所擁有的系統權限
SQL> select * from user_sys_privs;
? 5.9 查看角色權限((只能查看登陸用戶擁有的角色權限)
sql> select * from role_sys_privs;
? 5.10?查看所有角色
sql> select * from dba_roles;
? 5.11?查看用戶對象權限
sql> select * from user_tab_privs;
sql> select * from dba_tab_privs;
sql> select * from all_tab_privs;
? 5.12 查看哪些用戶有DBA權限
SQL> select * from dba_role_privs where granted_role='DBA';GRANTEE GRA ADM DEL DEF COM INH
-------------------------------------------------------------------------------------------------------------------------------- --- --- --- --- --- ---
SYS DBA YES NO YES YES YES
SYSTEM DBA NO NO YES YES YESSQL>
? 5.12 創建用戶
SQL> create user cmdb identified by "CMDB^Pw8";
? 5.13 授權
GRANT:賦予一個用戶,一個組或所有用戶訪問權限
GRANT 語法:
GRANT privilege [, ...] ON object [, ...] TO { PUBLIC | GROUP group | username }如:
SQL> grant select, insert, update, delete on apm.table178 to cmdb;
? 5.14 回收權限
SQL> revoke select, insert, update, delete on apm.table178 to cmdb;