暂无图片
暂无图片
1
暂无图片
暂无图片
暂无图片

docker之oracle测试数据库搭建

社长爱编程 2021-05-25
761

一、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=$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数据的可视化工具,下面我们创建测试用的数据库;

    我使用的是Navicat;


    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  ;
            复制


            5.允许自动扩展表空间

              alter database datafile '/home/oracle/app/oracle/oradata/helowin/xzp.dbf'  autoextend on;
              复制


              三、创建表


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


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


              学生表的创建语句如下:

                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;
                    复制

                        


                    我们创建好之后,就可以使用Navicat或者其他的工具进行测试啦!




                    参考:


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


                    文章转载自社长爱编程,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

                    评论