Docker安装Oracle 12c

4 篇文章 0 订阅

Oracle简介

Oracle 12c,全称Oracle Database 12c,是Oracle 11g的升级版,新增了很多新的特性

Docker下载oracle12c

查找oracle镜像

docker search oracle

下载Oracle镜像

我这里选择truevoly/oracle-12c镜像

docker pull truevoly/oracle-12c

查看已安装镜像

启动Oracle数据库

启动并暴露8080&1521端口,8080可以登录网页端管理,1521是数据连接端口:
docker run -d -p 8080:8080 -p 1521:1521 truevoly/oracle-12c

启动并暴露8080&1521端口,并且挂载宿主机目录 /var/oracle/data 到oracle服务器*/u01/app/oracle*目录,这样database数据就保存在本地宿主机上:
docker run -d -p 8080:8080 -p 1521:1521 -v /var/oracle/data:u01/app/oracle truevoly/oracle-12c

启动并定制化DBCA总内存大小,DBCA_TOTAL_MEMORY (in Mb):

查看日志

docker logs -f 84d8

进入oracle容器

进入镜像的bash对数据库进行进一步的操作

docker exec -it 84d8 /bin/bash

连接Oracle数据库

hostname: localhost #主机名
port: 1521 #端口号
sid: xe 
service name: xe #服务名
username: system #用户名
password: oracle #密码

使用navicat连接数据库

创建用户一般分四步:

  • 第一步:创建临时表空间(可选)
  • 第二步:创建数据表空间
  • 第三步:创建用户并制定表空间
  • 第四步:给用户授予权限

创建表空间

-- 创建表空间  `BKJ`
CREATE TABLESPACE BKJ 
	TEMPFILE '/u01/app/oracle/oradata/tablespace/BKJ.DBF' 
	SIZE 32M 
	AUTOEXTEND ON 
	NEXT 32 M MASIZE UNLIMITED 
	EXTENT MANAGEMENT LOCAL;

新建用户

-- 新建用户`TEST`并选择刚创建的表空间 `BKJ`
CREATE USER TEST  
	IDENTIFIED BY  123456          
		ACCOUNT UNLOCK          
		DEFAULT TABLESPACE BKJ;

赋予用户权限

-- connect,resource,dba权限赋予 test用户
GRANT CONNECT,RESOURCE,DBA TO TEST;

-- 多权限授权
GRANT CREATE USER,DROP USER,ALTER USER ,CREATE ANY VIEW ,
DROP ANY VIEW,EXP_FULL_DATABASE,IMP_FULL_DATABASE,
DBA,CONNECT,RESOURCE,CREATE SESSION TO TEST;

新建用户成功啦>_<

Oracle导入dmp文件

# imp 命令导入

imp test/123456@localhost:1521/XE 
  file=/u01/app/oracle/test2020.dmp
  log=/u01/app/oracle/imp.log 
  fromuser=admin 
  touser=test 
  constraints=N ignore=y

# impdp命令导入
impdp test/123456@localhost/XE 
  DIRECTORY=DATA_PUMP_DIR 
  DUMPFILE=test2020.dmp
  REMAP_SCHEMA=admin:test 
  REMAP_TABLESPACE=ADMIN_BKJ:BKJ
# 说明:
#  remap_schema当你从A用户导出的数据,想要导入到B用户中去,就使用这个:
#    remap_schema=A:B


#  remap_tablespace 与上面类似,数据库对象本来存在于tbs_a表空间,现在你不想放那儿了,想换到tbs_b,就用这个
#    remap_tablespace=tbs_a:tbs_b 结果是所有tbs_a中的对象都会建在tbs_b表空间中。

#提示:这样做的前提是目标用户B和目标表空间都存在

Oracle导出dmp文件

导出数据库dmp文件(备份/迁移)

# 进入容器
docker exec -it myoracle /bin/bash
# 导出test用户所有数据
exp test/123456@localhost/xe  file=test20200514.dmp full=y 

查看数据文件大小

select name, bytes/1024/1024 as M from v$datafile
在这里插入图片描述

参考文章
Docker快速搭建Oracle12c
https://github.com/MaksymBilenko/docker-oracle-12c

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

DuebassLei

请我吃颗棒棒糖吧~~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值