Docker容器手动安装oracle19C

网友投稿 626 2022-10-20

Docker容器手动安装oracle19C

Docker容器手动安装oracle19C

docker容器体积小,与宿主机共用内核参数,因此修改宿主机的内核参数即是修改容器的内核参数

1、修改宿主机内核参数

[root@localhost ~]# vim /etc/sysctl.conf

fs.aio-max-nr = 1048576fs.file-max = 6815744kernel.shmall = 16451328kernel.shmmax = 33692319744kernel.shmmni = 4096kernel.sem = 250 32000 100 128net.ipv4.ip_local_port_range = 9000 65500net.core.rmem_default = 262144net.core.rmem_max = 4194304net.core.wmem_default = 262144net.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

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/bashgroupadd oinstallgroupadd dbagroupadd asmdbagroupadd backupdbagroupadd dgdbagroupadd kmdbagroupadd racdbagroupadd operuseradd -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/oracleexport ORACLE_HOME=/home/oracle/app/oracle/product/19.5.0export PATH=$PATH:$ORACLE_HOME/bin:/usr/local/binexport ORACLE_HOSTNAME=oracledbexport ORACLE_SID=orclexport LD_LIBRARY_PATH=$ORACLE_HOME/lib:$ORACLE_HOME/rdbms/lib:$ORACLE_HOME/network/lib:/lib:/usr/libexport 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

25、其他

启动服务先启动监听,再启动数据库

[oracle@oracledb ~]$ lsnrctl start # 启动监听[oracle@oracledb ~]$ sqlplus /nolog # 打开sqlplusSQL> conn / as sysdba # 连接数据库SQL> startup # 启动数据库SQL> shutdown # 关闭数据库SQL> exit # 退出[oracle@oracledb ~]$ lsnrctl stop # 停止监听

作者:99号程序员

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Docker 部署 Nuxt.js 项目
下一篇:cmd编译运行java程序的方法
相关文章

 发表评论

暂时没有评论,来抢沙发吧~