1:docker软件下载(百度网盘)
链接:https://download.docker.com/win/stable/Docker%20for%20Windows%20Installer.exe
2:设置镜像安装位置
a.开始菜单右键->控制面板->管理工具->Hyper-V 管理器->虚拟机右键设置。
在这里插入图片描述
b.将默认C:\Users\Public\Documents\Hyper-V\Virtual hard disks\MobyLinuxVM.vhdx的文件拷贝到想要改变的路径,比如拷贝到D:\vmwork\Virtual Hard Disks路径下,然后点击浏览读取并确定保存设置
在这里插入图片描述
3:使用阿里云docker镜像加速
a.注册账号
阿里云镜像加速器:https://dev.aliyun.com/search.html
b.登录网址在这里插入图片描述
b.登录账户
在这里插入图片描述
c.找到容器镜像服务
在这里插入图片描述
d.进入控制台
在这里插入图片描述
e.点击镜像加速器,选择自己的操作系统,复制下面的命令到操作系统终端中
在这里插入图片描述
f.打开docke客户端设置,在daemon-registry mirrors中将阿里云镜像的地址粘贴在里面
在这里插入图片描述
4.拉去oracle镜像
a.打开cmd:
输入命令:docker pull wnameless/oracle-xe-11g
运行,并开放 49160 和 49161 端口,分别对应 22 端口和 Oracle 端口(SSH 和 oracle 数据库)
b.拉去成功后,复制代码并执行:

docker run -d -p 49160:22 -p 49161:1521 wnameless/oracle-xe-11g

数据库信息如下:
hostname: localhost
port: 49161
(这个是访问数据库端口,可进行修改 比如我自己的
docker run -d -p 49160:22 -p 1521:1521 wnameless/oracle-xe-11g,访问时地址就是 localhost:1521/xe)
sid: xe
username: system
password: oracle
SYSTEM和SYS的初始密码都为 oracle
Container SSH 的 root 密码为admin。
登录验证,如果登录成功,恭喜你,数据库创建成功
在这里插入图片描述
5.进入容器
命令行:docker exec -it 容器ID
在这里插入图片描述
6.设置oracle字符集
a.启动 cmd
b.输入 docker ps -a , 启动数据库 docker start 数据库容器ID
在这里插入图片描述
c.进入oracle
在这里插入图片描述
d.做字符集更改(依次执行):
SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup mount
ORACLE instance started.
Total System Global Area 236000356 bytes
Fixed Size 451684 bytes
Variable Size 201326592 bytes
Database Buffers 33554432 bytes
Redo Buffers 667648 bytes
Database mounted.
SQL> ALTER SYSTEM ENABLE RESTRICTED SESSION;
System altered.
SQL> ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;
System altered.
SQL> ALTER SYSTEM SET AQ_TM_PROCESSES=0;
System altered.
SQL> alter database open;
Database altered.
SQL> ALTER DATABASE CHARACTER SET ZHS16GBK;
ALTER DATABASE CHARACTER SET ZHS16GBK
*
ERROR at line 1:
ORA-12712: new character set must be a superset of old character set
提示我们的字符集:新字符集必须为旧字符集的超集,这时我们可以跳过超集的检查做更改:
SQL> ALTER DATABASE character set INTERNAL_USE ZHS16GBK;
Database altered.
SQL> select * from v$nls_parameters;
重启检查是否更改完成:
SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup
ORACLE instance started.
Total System Global Area 236000356 bytes
Fixed Size 451684 bytes
Variable Size 201326592 bytes
Database Buffers 33554432 bytes
Redo Buffers 667648 bytes
Database mounted.
Database opened.

SQL> select * from v$nls_parameters;
登录plsql。如果没有字符集不一致的提示,那说明字符集修改成功
7.创建表空间
*分为四步 */

/*第1步:创建临时表空间  */
create temporary tablespace table_temp 
tempfile '/u01/app/oracle/oradata/XE/table_temp.dbf' 
size 50m
autoextend on  
next 50m maxsize 20480m  
extent management local;  
/*第2步:创建数据表空间  */
create tablespace table_data
logging  
datafile '/u01/app/oracle/oradata/XE/table_data.dbf' 
size 50m  
autoextend on  
next 50m maxsize 20480m  
extent management local;  
/*第3步:创建用户并指定表空间  */
create user table identified by a123456
default tablespace table_data  
temporary tablespace table_temp;  
/*第4步:给用户授予权限  */
grant connect,resource,dba to table;

8.将本地oracle的dmp文件复制至docker容器
打开cmd,执行命令:

docker cp C:\20200224.dmp 容器ID:/usr/local/

在这里插入图片描述
9.查询oracle容器下的附件
在这里插入图片描述
10.执行导入命令,注意:执行导入命令前将字符集设置好,不然导入会有字符集问题
在这里插入图片描述
等待导入成功
11.导出后的注释乱码问题处理
1)在原数据库中执行以下命令,导出所有表和字段的注释

--导出、生成当前用户的所有表和视图的注释
select 'comment on table '||a.table_name|| ' is '||''''||a.comments||''''||';' 
from user_tab_comments a 
where a.table_type in('TABLE','VIEW')
union all
--导出、生成当前用户的所有表字段的注释
select 'comment on column '||t.table_name||'.'||t.column_name||' is '||''''||t.comments||''''||';'
from user_col_comments t

2)将导出的数据另存为txt,在新数据库中执行即可

以上部分内容由博主进行汇总整理,部分内容出自其他用户的博客,注重原创,转载请注明出处,欢迎交流分享,谢谢
1、设置镜像安装位置:https://blog.csdn.net/stemq/article/details/53150939
2、使用阿里云docker镜像加速:https://blog.csdn.net/qq_37495786/article/details/83246421
3、在Docker上安装配置Oracle:https://www.jb51.net/article/110520.htm
4、设置oracle字符集:https://blog.csdn.net/qq_22472921/article/details/82020646

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐