docker安装oracle的详细步骤
1:docker软件下载(百度网盘)链接:https://pan.baidu.com/s/1qCRb52Rk5N8vsLqStIccTQ提取码:ghf02:设置镜像安装位置a.开始菜单右键->控制面板->管理工具->Hyper-V 管理器->虚拟机右键设置。b.将默认C:\Users\Public\Documents\Hyper-V\Virtual hard d...
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
更多推荐
所有评论(0)