Linux系统下通过docker安装oracle_11g数据库

在linux上安装docker

1.uname -r 查看linux版本 3.1 
2. 安装docker 
yum install docker
3. 启动docker
systemctl start docker
4. 查看版本
docker -v
5. 设置开机启动docker
systemctl enable docker
6.停止docker
systemctl stop docker

docker常用命令

1.镜像操作
docker images 查看所有镜像

2. 删除镜像
docker rmi imageid

3. 查找镜像
docker search 镜像名称; 如: docker search mysql
直接去docker hub官网搜索
https://hub.docker.com/

4.下载镜像 
docker pull 镜像名:标签名 如果省略标签那么下的是最新版本 
如 docker pull redis 

pull镜像后,需要使用run来启动镜像;启动后的镜像就是容器,容器运行着的容器和没运行的容器

5. docker ps 查询运行中的容器

6. docker ps -a 查询所有容器

7.启动镜像
docker run -d -p 端口:端口 镜像名 
-d:后台执行
-p:将主机的端口映射到容器端口   主机端口:容器内部端口

为了让外界能够访问端口,需要把容器的端口暴露给外界。就是映射
下面启动redis为例
docker run -d -p 6379:6379 redis 
redis的端口号是6379
下面是客户端连接redis命令
redis-cli -h host -p port -a password(Redis123)
:\redis-cli -h 192.168.43.52 -p 6379
host:远程redis服务器host
port:远程redis服务端口
password:远程redis服务密码(无密码的的话就不需要-a参数了)

8.停止容器
docker stop 容器id

9.启动容器
docker start 容器id

10. 删除容 器  才能删除对应镜像
docker rm 容器id

创建Oracle容器

mkdir ~/oracle_11g
cd ~/oracle_11g
docker pull registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g

此镜像为阿里云基于centos7 打包的oracle11g镜像 约为6G

本地虚拟机安装语句:

docker run --restart=always  -d -p 1521:1521 -v oracle_11g:/tmp --privileged=true --name oracle_11g  registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g

因为上述已经使用了数据卷,而数据挂在的实际位置在

/var/lib/docker/volumes/oracle_11g

进入容器

docker exec -it oracle_11g  /bin/bash

登陆root账号

su root
#然后输入密码,该镜像默认密码为:helowin

修改环境变量

vi /etc/profile

在行末 unset -f pathmunge 下一行 按i 粘贴如下环境变量

export ORACLE_HOME=/home/oracle/app/oracle/product/11.2.0/dbhome_2
export ORACLE_SID=helowin
export PATH=$ORACLE_HOME/bin:$PATH
export NLS_LANG="SIMPLIFIED CHINESE_CHINA.ZHS16GBK"

按esc 输入 :wq! 按enter

然后source命令时令文件中的修改执行生效

source /etc/profile

配置软连接,第一次创建即可,类似于windows的超链接

ln -s $ORACLE_HOME/bin/sqlplus /usr/bin

容器切换oracle用户

su oracle
#密码也是 oracle

登录oracle dba

sqlplus /nolog
conn /as sysdba

修改初始账号

alter user system identified by 123456;
alter user sys identified by 123456;

设置密码永不过期

ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;

关闭

shutdown immediate;

再次启动数据库

startup;

修改oracle的本地tnsnames.ora文件 

vi /home/oracle/app/oracle/product/11.2.0/dbhome_2/network/admin/tnsnames.ora 

 添加如下配置

 具体代码如下

   HELOWIN =
   (DESCRIPTION =
     (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
     (CONNECT_DATA =
       (SERVER = DEDICATED)
       (SERVICE_NAME = helowin)
     )
   )

在oracle官网下载

https://www.oracle.com/database/technologies/instant-client/winx64-64-downloads.html

Oracle instantclient 下载地址下载 Basic Package 即可。

解压到指定目录,如: C:\instantclient_21_3。

C:\instantclient_21_3 目录下新建 network/admin/ 并在其目录下 新建 tnsnames.ora 文件。

 打开文件,设置如下

 代码如下

HELOWIN =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = helowin)
    )
  )

配置 Windows 环境变量。

ORACLE_HOME = C:\instantclient_21_3

TNS_ADMIN = %ORACLE_HOME%\network\admin

NLS_LANG = SIMPLIFIED CHINESE_CHINA.ZHS16GBK

启动 PLSQL。此时登录画面可以选择的数据库选项有刚刚配置的数据库了

登录成功,即连接成功。

接下来就是创建数据库用户及导入数据库dmp文件了

如果有orcl用户那么删除级联

 drop user orcl cascade;

创建表空间,达梦数据库模仿这种,一个用户对应一个数据库空间

#创建表空间
create tablespace orcl_data_space DATAFILE'/home/oracle/app/oracle/oradata/helowin/orcldataspace.dbf' size 500m AUTOEXTEND ON MAXSIZE 30000m extent management LOCAL AUTOALLOCATE segment space management AUTO;

 删除表空间NOTIFYDB_TEMP及其包含数据对象以及数据文件

drop tablespace orcl_data_space including contents and datafiles; 

 创建orcl并授权

 #create user 用户名 identified by 密码 default tablespace XXXXX;
 create user orcl identified by orcl default tablespace orcl_data_space;
 #grant connect,resource,dba to 用户名 ;
 grant connect,resource,dba to orcl;

 从本机将dmp文件通过FileZilla等工具导入虚拟机下docker中oracle的数据卷位置

#oracle数据卷位置在 /var/lib/docker/volumes/oracle_11g
#把dmp文件放在这里

#然后进入容器
docker exec -it oracle_11g  /bin/bash
#需要再次刷新一下配置文件,要不可能报不识别命令的错误
source /etc/profile
#授予权限,或者使用FileZilla,选择虚拟机上的文件设置所有权限,这样同步的数据卷就有相应权限
#虚拟机上授予权限 chmod 777 cp20190418.dmp 或界面化操作
#示例:
imp 用户名/密码 @orcl  file=/home/userct/oss-shanxi/DbBackup20180328.dmp ignore=y full=y;
#实际:
imp orcl/orcl@helowin file=/tmp/cp20190418.dmp ignore=y full=y

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值