docker之oracle测试数据库搭建

一、docker环境准备

这个配置好阿里云镜像加速

申请阿里云账号,然后会分配一个加速地址

在这里插入图片描述

1.准备docker环境;

2 . docker pull registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g --pull 镜像(6个多G)
容器内部 root密码 helowin
3.docker run -d -p 1521:1521 -v /usr/local/docker-data/oracle:/data/oracle --name oracle11 registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g --运行oracle镜像并映射本地1521端口;

4.docker exec -it oracle11 /bin/bash --进入容器;

5.配置环境变量,使用root 配置/etc/profile ,增加以下内容:
su root
export ORACLE_HOME=/home/oracle/app/oracle/product/11.2.0/dbhome_2
export ORACLE_SID=helowin
export PATH= P A T H : PATH: PATH:ORACLE_HOME/bin

6.保存后执行source /etc/profile 加载环境变量;

7.su - oracle 切换到oracle用户下执行数据库相关用户的修改与配置信息的修改;
sqlplus /nolog
conn /as sysdba
alter user system identified by oracle;–修改system用户账号;
alter user sys identified by oracle;–修改sys用户账号;
ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED; --修改密码规则策略为密码永不过期;
alter system set processes=1000 scope=spfile; --修改数据库最大连接数据;

8.修改以上信息后,需要重新启动数据库;
sqlplus /nolog
conn /as sysdba
shutdown immediate; --关闭数据库
startup; --启动数据库

9.退出docker后可使用pl/sql等客户端工具进行测试。

二、创建测试数据库

经过上面的操作,我们的数据库就能够访问了,使用Navicat或者其他链接oracle数据的可视化工具,下面我们创建测试用的数据库;

1.创建用户

create user xzp identified by xzp;

2.給用户授权

grant connect,resource,create session,create table to xzp;

3.创建表空间

create tablespace xzp datafile ‘/home/oracle/app/oracle/oradata/helowin/xzp.dbf’ size 50m autoextend on next 50M maxsize UNLIMITED;

4.将空间分配给用户

alter user xzp default tablespace xzp ;

三、创建表

我们以简单的学生的课表的管理系统为例:

我们创建下面的三个表:学生信息表,课程信息表,学生课程表

学生表的创建语句如下:

CREATE TABLE "XZP"."userinfo_tb" (
  "id" NUMBER NOT NULL,
  "name" VARCHAR2(255 BYTE),
  "age" NUMBER,
  "gender" VARCHAR2(2 BYTE),
  "telephone" VARCHAR2(20 BYTE),
  "email" VARCHAR2(100 BYTE),
  "bz" VARCHAR2(255 BYTE)
)
LOGGING
NOCOMPRESS
PCTFREE 10
INITRANS 1
STORAGE (
  BUFFER_POOL DEFAULT
)
PARALLEL 1
NOCACHE
DISABLE ROW MOVEMENT
;

-- ----------------------------
-- Primary Key structure for table userinfo_tb
-- ----------------------------
ALTER TABLE "XZP"."userinfo_tb" ADD CONSTRAINT "SYS_C0011089" PRIMARY KEY ("id");

课程表:

CREATE TABLE "XZP"."classinfo_tb" (
  "id" NUMBER NOT NULL,
  "name" VARCHAR2(255 BYTE),
  "time" NUMBER,
  "bz" VARCHAR2(255 BYTE)
)
LOGGING
NOCOMPRESS
PCTFREE 10
INITRANS 1
STORAGE (
  BUFFER_POOL DEFAULT
)
PARALLEL 1
NOCACHE
DISABLE ROW MOVEMENT
;
COMMENT ON COLUMN "XZP"."classinfo_tb"."id" IS '课程id';
COMMENT ON COLUMN "XZP"."classinfo_tb"."name" IS '课程名';
COMMENT ON COLUMN "XZP"."classinfo_tb"."time" IS '上课时长';
COMMENT ON COLUMN "XZP"."classinfo_tb"."bz" IS '备注';

学生课程关系表:

CREATE TABLE "XZP"."stuclass_tb" (
  "studentid" NUMBER NOT NULL,
  "classid" NUMBER
)
LOGGING
NOCOMPRESS
PCTFREE 10
INITRANS 1
STORAGE (
  BUFFER_POOL DEFAULT
)
PARALLEL 1
NOCACHE
DISABLE ROW MOVEMENT
;

-- ----------------------------
-- Foreign Keys structure for table stuclass_tb
-- ----------------------------
ALTER TABLE "XZP"."stuclass_tb" ADD CONSTRAINT "classid_ref" FOREIGN KEY ("classid") REFERENCES "XZP"."classinfo_tb" ("id") ON DELETE CASCADE NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
ALTER TABLE "XZP"."stuclass_tb" ADD CONSTRAINT "studentid_ref" FOREIGN KEY ("studentid") REFERENCES "XZP"."userinfo_tb" ("id") ON DELETE CASCADE NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;

我们创建好之后,就可以进行测试啦!

上面的内容亲测有效,有问题的朋友可以留言哈!

在博客中发布的文章同步会发布到下面的公众号上面!感兴趣的朋友可以多多关注,多多支持~
在这里插入图片描述

参考:

https://blog.csdn.net/qq_38380025/article/details/80647620

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值