一、数据库版本

1.1 无数据卷

version: '3.0'
services:
  oracle12c:
    image: sath89/oracle-12c:latest
    container_name: oracle12c
    restart: always
    privileged: true
    ports:
      - '1522:1521'
      - '8080:8080'
    environment:
      - "TZ=Asia/Shanghai"

1.2 有数据卷

docker cp oracle12c:/u01/app/ data/
version: '3.0'
services:
  oracle12c:
    image: sath89/oracle-12c:latest
    container_name: oracle12c
    restart: always
    privileged: true
    ports:
      - '1522:1521'
    volumes:
      - ./data/app:/u01/app/
    environment:
      - "TZ=Asia/Shanghai"

二、数据导出

阿里云服务器数据库。

2.1 创建目录

点击目录。

image-20201130143700973

-- 目录名
EXPORT
-- 目录路径
/u01/app/oracle/oradata/xe/export/

点击确定。

image-20201130144513275

去服务器创建相应的目录。

mkdir export

image-20201130145243603

2.2 导出模式

-- 模式选SCHEMA
-- 选择要导出的模式
-- 目录选刚刚创建的EXPORT
-- 文件名自定义TEST_SCHEMA.DMP
-- 点击生成SQL

image-20201130150332446

导出成功。

image-20201130150551679

三、数据导入

本地虚拟机数据库。

3.1 获取导出的文件

导出成功后服务器已经有这个文件了。

image-20201130165649579

3.2 创建目录

-- 目录名
IMPORT
-- 目录路径
/u01/app/oracle/oradata/xe/import/

image-20201130165932909

去服务器创建相应的目录。

mkdir import

image-20201130152019752

将文件上传到import目录。

image-20201130170035266

3.3 创建表空间

CREATE TABLESPACE "TEST"
 DATAFILE  '/u01/app/oracle/oradata/xe/test.dbf' SIZE 10 M AUTOEXTEND ON NEXT 10 M MAXSIZE 100 M;

image-20201130170257553

3.4 导入模式

-- 模式选SCHEMA
-- 选择要导入的模式
-- 目录选刚刚创建的IMPORT
-- 文件名选择导出时自定义的TEST_SCHEMA.DMP
-- 点击生成SQL

image-20201130170406411

导入成功。

image-20201130170626178

用户的账号密码和权限也导入过来了。

image-20201130170741446