在mac中使用docker来搭建oracle数据库服务器

近期需要使用oracle来做点事情,我需要在我的pc上搭建一个oracle服务器。以下就是记录搭建数据库服务器的流程。
主机系统:macOS big sur 版本:11.2.3

下载安装docker
在官网下载docker,路径是:https://docs.docker.com/docker-for-mac/install/,安装成功之后,运行docker,就绪之后,就可以在上面的状态栏看到一个静止的docker图标,此时,在命令行输入docker,shell会提示帮助信息。
常用的docker命令,请参见https://www.runoob.com/docker/docker-command-manual.html
修改镜像源配置
打开docker的preference,可以更改一些docker控制界面的配置,选择docker ENGINE,修改json格式的配置文件,内容如下:
{
  "features": {
    "buildkit": true
  },
  "experimental": false,
  "registry-mirrors": [
    "https://fzkgv7fj.mirror.aliyuncs.com"
  ]
}

拉取oracle数据库镜像
docker pull filemon/oracle_11g
拉取成功之后,可以单击右上角的docker图标,选择dashboard来查看当前的docker管理的镜像,如下:


也可以通过命令来查看:
[21-03-22 9:40:54 /Users/huGuohua]$docker images -a
REPOSITORY           TAG       IMAGE ID       CREATED       SIZE
filemon/oracle_11g   latest    d03c4f0a4743   6 years ago   8.62GB

另外一种获得docker镜像的图形化方法
使用Kitematic
在https://kitematic.com/中找到下载路径,下载软件。然后运行软件,查找自己需要的镜像即可,如图:

运行oracle镜像来启动数据库
也可以在dashboard中修改好参数之后,直接点击开始按钮来运行oracle镜像,下面是运行的命令:
docker run -d -p 11521:1521 -p 10022:22 --name=oracle11g filemon/oracle_11g
这个命令的参数说明如下:
1.-p 11521:1521 允许远程的客户端可以从11521端口连接到数据库实例(端口映射,格式为:主机(宿主)端口:容器端口).
2.-d: 后台运行容器,并返回容器ID;
3.--name="oracle11g": 为容器指定一个名称;
正常的情况下,输入docker ps可以看到
[21-03-22 9:05:05 /Users/huGuohua]$docker ps                                      
CONTAINER ID   IMAGE                COMMAND                  CREATED          STATUS          PORTS                                            NAMES
6c720c9aebbc   filemon/oracle_11g   "bash -c 'sed -i -E …"   34 minutes ago   Up 15 seconds   0.0.0.0:10022->22/tcp, 0.0.0.0:11521->1521/tcp   oracle11g
这就说明,docker启动正常了
这个镜像的oracle数据库的用户名和密码是:
system/admin@orcl
sys/admin@orcl

创建用户和表空间等
进入数据库
docker exec -it --user root oracle11g /bin/bash
如果找不到SQLPLUS,那就进入对应的sqlplus的所在的目录
cd /home/oracle/app/oracle/product/11.2.0/dbhome_2/bin
sqlplus sys/admin@orcl as sysdba

-- 创建表空间
create tablespace BABY
datafile '/home/oracle/app/oracle/oradata/orcl/baby.dbf'
size 100m
autoextend on next 50m;
 
-- 创建索引空间
create tablespace BABY_INDEX
datafile '/home/oracle/app/oracle/oradata/orcl/baby_index.dbf'
size 100m
autoextend on next 10m;
 
-- 创建用户
create user baby
identified by baby1234
default tablespace BABY
temporary tablespace TEMP
profile DEFAULT;

-- 给用户授权
grant connect to baby;
grant dba to baby;
grant resource to baby;
grant unlimited tablespace to baby;

用客户端验证操作
用dbeaver来验证

配置如图:

此时,数据库服务器就搭建完成了,就可以编写SQL来处理数据了。

关闭数据库
进入数据库
docker exec -it --user root oracle11g /bin/bash
如果找不到SQLPLUS,那就进入对应的sqlplus的所在的目录
cd /home/oracle/app/oracle/product/11.2.0/dbhome_2/bin
./sqlplus sys/admin@orcl as sysdba
shutdown normal

然后关闭所有的数据库连接,数据库就会关闭了。

重启docker
可以使用命令或者在任务栏点击docker图标来重启。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
要在Docker容器导出Oracle数据库的dmp文件,可以按照以下步骤操作: 1. 在Docker容器安装Oracle客户端工具,例如sqlplus和expdp等。 2. 运行Docker容器并登录到Oracle数据库。 3. 使用expdp命令导出dmp文件。例如,使用以下命令导出整个数据库: ``` expdp username/password@connect_string dumpfile=export.dmp directory=DATA_PUMP_DIR full=y ``` 其,username是数据库用户名,password是密码,connect_string是连接字符串,dumpfile是导出的dmp文件名,directory是导出文件的目录,full=y表示导出整个数据库。 4. 导出完成后,将dmp文件复制到本地计算机。 ``` docker cp container_id:/path/to/export.dmp /path/on/host ``` 其,container_id是Docker容器的ID,/path/to/export.dmp是dmp文件的路径,/path/on/host是本地计算机上存储dmp文件的路径。 5. 在本地计算机上使用Oracle客户端工具导入dmp文件到另一个Oracle数据库。例如,使用以下命令导入dmp文件: ``` impdp username/password@connect_string dumpfile=export.dmp directory=DATA_PUMP_DIR ``` 其,username是目标数据库的用户名,password是密码,connect_string是连接字符串,dumpfile是导入的dmp文件名,directory是导入文件的目录。 注意:在使用expdp和impdp命令时,需要先在Oracle数据库创建数据泵目录。例如,使用以下命令创建数据泵目录: ``` CREATE DIRECTORY DATA_PUMP_DIR AS '/path/to/directory'; ``` 其,/path/to/directory是数据泵目录的路径。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值