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 # 停止监听

Docker容器手动安装oracle19C的更多相关文章

  1. Docker容器手动安装mysql(国内镜像)

    Docker手动安装mysql 1.创建centos镜像的容器 [root@localhost Tools]# docker run -i -d -h zabbix --name zabbix -p ...

  2. docker容器里面安装ssh

    docker容器里面安装ssh https://blog.csdn.net/chengxuyuanyonghu/article/details/76619097

  3. 在Docker容器中安装jdk和spark

    在Docker容器中安装jdk和spark 1.下载jdk和spark 可以使用迅雷等专业下载软件下载jdk和spark软件包,注意是linux版,这里直接给出下载地址: JDK下载地址 JDK进入后 ...

  4. Centos7环境下Docker容器的安装与卸载

    Docker是一个开源的引擎,可以轻松的为任何应用创建一个轻量级的.可移植的.自给自足的容器.开发者在笔记本上编译测试通过的容器可以批量地在生产环境中部署,包括VMs(虚拟机).bare metal. ...

  5. Docker容器的安装和使用

    Docker容器的安装和使用 安装: curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun 或国内:curl -sSL ...

  6. Docker容器编译安装Redis

    Docker容器编译安装Redis 1.创建容器 -i 交互模式 -d 后端运行 -h 容器的hostname --name 容器名 --network 网卡 --ip IP地址 -p 端口映射 -- ...

  7. Docker容器编译安装Nginx

    Docker容器编译安装Nginx,最简单的Nginx配置. 创建容器&进入容器 宿主机2080映射容器的80端口 [root@localhost ~]# docker run -i -d - ...

  8. docker - 容器里安装ssh

    docker安装ssh 通过命令行安装 pull ubuntu镜像 docker pull ubuntu:latest 启动并进入bash docker run -it -d ubuntu:laste ...

  9. 2.云原生之Docker容器环境安装实践

    转载自:https://www.bilibili.com/read/cv15181036/?from=readlist 官方一键安装脚本 补充时间:[2020年4月22日 11:00:59] 一键安装 ...

随机推荐

  1. 使用pyinstaller库打包文件

    1.pyinstaller的安装 先win+r打开cmd,安装具体命令如下: pip3 install pyinstaller  2.使用pyinstaller库打包文件 假设Python源文件LPR ...

  2. SpringBoot利用自定义注解实现通用的JWT校验方案

    利用注解开发一个通用的JWT前置校验功能 设计的预期: 系统中并不是所有的应用都需要JWT前置校验,这就需要额外设计一个注解Annotation来标识这个方法需要JWT前置校验.例如: @GetMap ...

  3. python基本数据类型介绍

    数据类型 首先知道什么是数据类型 针对不同的数据类型采用不同的处理方法 --目录-- 一.数据类型之整型 二.数据类型之浮点型 三.数据类型之字串符 四.数据之列表 一.数据类型之整型 1.其实呢就是 ...

  4. 帝国cms随机调用信息

    我们知道,帝国cms随机调用标签是 [ecmsinfo]1,5,32,0,0,2,0,",'rand()'[/ecmsinfo] 但是这种调用方式在数据量特别大的时候严重影响生成速度,对于中 ...

  5. Go xmas2020 学习笔记 04、Strings

    04-Strings.unicode.utf-8.类型描述符.go 字符串在内存中的存储. Strings. String structure. String functions. Practice

  6. vue3响应式模式设计原理

    vue3响应式模式设计原理 为什么要关系vue3的设计原理?了解vue3构建原理,将有助于开发者更快速上手Vue3:同时可以提高Vue调试技能,可以快速定位错误 1.vue3对比vue2 vue2的原 ...

  7. Service vs Factory vs provider的迷惑

    刚开始我很迷惑的,但是经过一段时间的项目,还有看大漠老师的东西,似乎明白了,他们的区别也就是  一个人喜欢吃面还是吃饭或者肯德基区别.目的就是填饱肚子! 以下是它们在AngularJS源代码中的定义: ...

  8. Junit单元测试:

    * 测试分类: 1. 黑盒测试:不需要写代码,给输入值,看程序是否能够输出期望的值. 2. 白盒测试:需要写代码的.关注程序具体的执行流程. * Junit使用:白盒测试 * 步骤: 1. 定义一个测 ...

  9. python数据处理-matplotlib入门(2)-利用随机函数生成变化图形2

    鉴于上一篇中最后三个问题: 1.上述程序是否能进行优化(比如功能相同的) 2.创建三个3个实例,用了3个语句,能否建一个函数,只输入一个数n,就自动创建n个实例?同时,每个实例的num_times随机 ...

  10. C++ 栈内存与堆内存小探究

    实验方式:尝试以不同方式创建超大号二维数组 测试代码: #include <iostream> using namespace std; const int maxn=1000000; c ...