1. 程式人生 > 其它 >Docker容器手動安裝oracle19C

Docker容器手動安裝oracle19C

Docker容器手動安裝oracle19C

  • docker容器體積小,與宿主機共用核心引數,因此修改宿主機的核心引數即是修改容器的核心引數

1、修改宿主機核心引數

[root@localhost ~]# vim /etc/sysctl.conf
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 16451328
kernel.shmmax = 33692319744
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 = 1048576

2、使修改的內容生效

[root@localhost ~]# sysctl -p

3、關閉宿主機的selinux及firewall

[root@localhost ~]# setenforce 0	// 不重啟系統生效
[root@localhost ~]# vim /etc/selinux/config  		# 修改為SELINUX=disabled   重啟系統後生效
[root@localhost ~]# systemctl status firewalld.service	# 檢視狀態
[root@localhost ~]# systemctl stop firewalld.service 	# 停止 firewall
[root@localhost ~]# systemctl disable firewalld.service # 禁止 firewall 開機啟動

4、建立centos映象

[root@localhost ~]# docker pull centos:7

5、建立容器

docker run -i -d -h oracledb --network=host --name oracle19c --privileged=true  centos:7  /usr/sbin/init
  • -i 互動模式
  • -d 後端執行
  • -h 指定容器的hostname
  • --network 指定容器的網路模式,host指使用宿主機的網路和埠
  • --name 指定容器的名稱
  • --privileged=true 及 /usr/sbin/init 特權模式必要引數

6、進入容器

[root@localhost ~]# docker exec -it oracle19c /bin/bash
  • docker exec 進入容器,輸入exit退出容器,容器不關閉

7、上傳安裝包

  • 首先上傳至宿主機
  • 再通過 docker cp 命令拷貝至容器
[root@oracledb /]# mkdir Tools  # 容器中建立安裝包存放路徑
[root@oracledb /]# exit # 退出容器
[root@localhost ~]# cd /Tools 進入宿主機安裝包路徑下
[root@localhost Tools]# docker cp LINUX.X64_193000_db_home.zip oracle19c:/Tools # 拷貝安裝包

8、安裝必要的工具包

[root@localhost Tools]# docker exec -it oracle19c /bin/bash # 再次進入容器
[root@oracledb /]# yum -y install vim zip unzip net-tools
  • vim 習慣用vim編輯文字,所以安裝了
  • zip 和 unzip 壓縮和解壓工具
  • net-tools 網路工具包,ifconfig 、netstat等命令都在這個包裡面

9、修改root使用者密碼

[root@oracledb /]# passwd
  • 輸入兩次相同的密碼

10、檢查依賴包

[root@oracledb /]# rpm --query --queryformat "%{NAME}-%{VERSION}.%{RELEASE} (%{ARCH})\n" bc binutils compat-libcap1 compat-libstdc++-33 gcc gcc-c++ glibc glibc-devel ksh libaio libaio-devel libgcc libstdc++ libstdc++-devel make sysstat elfutils-libelf elfutils-libelf-devel fontconfig-devel libxcb smartmontools libX11 libXau libXtst libXrender libXrender-devel

11、安裝依賴包

[root@oracledb /]# yum -y install compat-libcap1 compat-libstdc++-33 gcc gcc-c++ glibc-devel ksh libaio-devel libaio-devel sysstat elfutils-libelf-devel fontconfig-devel libxcb smartmontools libX11 libXau libXtst libXrender libXrender-devel make
  • 檢查依賴包全部安裝

12、建立oracle使用者組

[root@oracledb /]# groupadd oinstall
[root@oracledb /]# groupadd dba
[root@oracledb /]# groupadd asmdba
[root@oracledb /]# groupadd backupdba
[root@oracledb /]# groupadd dgdba
[root@oracledb /]# groupadd kmdba
[root@oracledb /]# groupadd racdba
[root@oracledb /]# groupadd oper
[root@oracledb /]# useradd -g oinstall -G dba,asmdba,backupdba,dgdba,kmdba,racdba,oper -m oracle
#!/bin/bash
groupadd oinstall
groupadd dba
groupadd asmdba
groupadd backupdba
groupadd dgdba
groupadd kmdba
groupadd racdba
groupadd oper
useradd -g oinstall -G dba,asmdba,backupdba,dgdba,kmdba,racdba,oper -m oracle
  • 建立一個指令碼檔案,快捷建立
[root@oracledb /]# vim createuser.sh
[root@oracledb /]# sh createuser.sh

13、檢視hostname並配置hosts

[root@oracledb /]# hostname
[root@oracledb /]# cat /etc/hosts
[root@oracledb /]# vim /etc/hosts
[root@oracledb /]# cat /etc/hosts

14、建立安裝目錄

[root@oracledb /]# mkdir -p /home/oracle/app/oracle/product/19.5.0

15、解壓

[root@oracledb /]# unzip /Tools/LINUX.X64_193000_db_home.zip -d /home/oracle/app/oracle/product/19.5.0/

16、修改安裝檔案的所屬使用者及許可權

[root@oracledb /]# cd /home/oracle
[root@oracledb oracle]# chown -R oracle:oinstall app
[root@oracledb oracle]# chmod -R 755 app

17、修改使用者的Shell限制

[root@oracledb oracle]# vim /etc/security/limits.conf
@oinstall soft nofile 2048
@oinstall hard nofile 65536
@oinstall soft nproc 16384
@oinstall soft stack 10240

18、修改oracle使用者的環境變數

[root@oracledb oracle]# su - oracle
[oracle@oracledb ~]$ vim .bash_profile
[oracle@oracledb ~]$ source .bash_profile
export ORACLE_BASE=/home/oracle/app/oracle
export ORACLE_HOME=/home/oracle/app/oracle/product/19.5.0
export PATH=$PATH:$ORACLE_HOME/bin:/usr/local/bin
export ORACLE_HOSTNAME=oracledb
export ORACLE_SID=orcl
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$ORACLE_HOME/rdbms/lib:$ORACLE_HOME/network/lib:/lib:/usr/lib
export CLASSPATH=$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib:$ORACLE_HOME/network/jlib

19、修改引導檔案

[oracle@oracledb ~]$ cd $ORACLE_HOME/install/response
[oracle@oracledb response]$ cp db_install.rsp db_install.rsp.bak
[oracle@oracledb response]$ vim db_install.rsp
// 主要修改以下引數
oracle.install.option=INSTALL_DB_SWONLY			// 29行
UNIX_GROUP_NAME=oinstall				// 34行
INVENTORY_LOCATION=/home/oracle/app/oraInventory	// 41行
ORACLE_HOME=/home/oracle/app/oracle/product/19.5.0	// 45行
ORACLE_BASE=/home/oracle/app/oracle			// 50行
oracle.install.db.InstallEdition=EE			// 62行
oracle.install.db.OSDBA_GROUP=dba			// 79行
oracle.install.db.OSOPER_GROUP=oper			// 85行
oracle.install.db.OSBACKUPDBA_GROUP=backupdba		// 90行
oracle.install.db.OSDGDBA_GROUP=dgdba		        // 95行
oracle.install.db.OSKMDBA_GROUP=kmdba			// 100行
oracle.install.db.OSRACDBA_GROUP=racdba			// 105行
oracle.install.db.rootconfig.executeRootScript=false	// 120行
  • :set nu 顯示行號
  • :set nu! 取消顯示行號

20、安裝

[oracle@oracledb response]$ cd $ORACLE_HOME
[oracle@oracledb 19.5.0]$ ./runInstaller -silent -responseFile /home/oracle/app/oracle/product/19.5.0/install/response/db_install.rsp

21、另開一個xshell頁面,以root使用者執行指令碼

[root@localhost /]# docker exec -it oracle19c /bin/bash
[root@oracledb /]# sh /home/oracle/app/oraInventory/orainstRoot.sh
[root@oracledb /]# sh /home/oracle/app/oracle/product/19.5.0/root.sh

22、建立監聽

  • 在安裝軟體的xhell介面
[oracle@oracledb 19.5.0]$ cd assistants/netca
[oracle@oracledb netca]$ cp netca.rsp netca.rsp.bak
[oracle@oracledb netca]$ netca /silent /responseFile /home/oracle/app/oracle/product/19.5.0/assistants/netca/netca.rsp

23、建庫

[oracle@oracledb netca]$ cd $ORACLE_HOME/assistants/dbca
[oracle@oracledb dbca]$ cp dbca.rsp dbca.rsp.bak
[oracle@oracledb dbca]$ vim dbca.rsp
[oracle@oracledb dbca]$ dbca -silent -createDatabase -responseFile /home/oracle/app/oracle/product/19.5.0/assistants/dbca/dbca.rsp
gdbName=orcl							//32行
sid=orcl							//42行
databaseConfigType=SI						//52行
templateName=General_Purpose.dbc				//223行
sysPassword=Yangxiaopeng214					//233行
systemPassword=Yangxiaopeng214					//243行
emConfiguration=NONE						//262行
dbsnmpPassword=Yangxiaopeng214					//295行
datafileDestination=/home/oracle/app/oracle/oradata		//411行
recoveryAreaDestination=/home/oracle/flash_recovery_area	//421行
storageType=FS							//431行
characterSet=ZHS16GBK						//468行
nationalCharacterSet=AL16UTF16					//478行
sampleSchema=true						//565行
totalMemory=2048						//604行
# 如果要建立容器資料庫,則還需要配置以下引數,如果是多個pdb則以pdbname為字首
createAsContainerDatabase=true					//162行													
numberOfPDBs=1							//172行
pdbName=yhggi							//182行
pdbAdminPassword=password					//203行

24、驗證

[oracle@oracledb dbca]$ lsnrctl status 	# 檢視監聽狀態
[oracle@oracledb dbca]$ lsnrctl restart # 重啟監聽
[oracle@oracledb dbca]$ lsnrctl stop	# 停止監聽
[oracle@oracledb dbca]$ lsnrctl start	# 啟動監聽
[oracle@oracledb dbca]$ sqlplus
  • 輸入使用者名稱和密碼
  • select sysdate from dual;
  • java連線

25、其他

  • 啟動服務
    先啟動監聽,再啟動資料庫
[oracle@oracledb ~]$ lsnrctl start		# 啟動監聽
[oracle@oracledb ~]$ sqlplus /nolog		# 開啟sqlplus
SQL> conn / as sysdba				# 連線資料庫
SQL> startup					# 啟動資料庫
SQL> shutdown					# 關閉資料庫
SQL> exit					# 退出
[oracle@oracledb ~]$ lsnrctl stop		# 停止監聽

本文來自部落格園,作者:大齡Java程式設計師,轉載請註明原文連結:https://www.cnblogs.com/yyxp/p/15965295.html