• Oracle-美团外卖


    美团外卖是国内主要的外卖平台,平台系统主要为商家提供商品管理服务,为消费者提供商品选购与订单评价服务,为配送员提供订单分配服务,同时系统会进行收益分配。假设该系统由于性能问题,需要升级开发,现在由你负责数据存储设计,假设数据库选择Oracle 11g,请你根据理解和所学知识,按照要求完成下面设计。

    1. 请设计该数据库的逻辑存储结构,即设计各个数据表的名称及各字段名称、字段大小及含义。字段名称使用英文或汉语拼音

    2.请设计该数据库所用的表空间,每个表空间至少两个文件,并指出每个表空间存储的数据表,并使用SQLPlus命令创建其中两个表空间。

    store存储的是store_info的数据

    evaluate存储的是evaluate_info的数据

    order存储的是order_info的数据

    SQL> create tablespace store datafile

    'c:\store01.dbf' size 2G ,

    'd:\store02.dbf' size 2 G,

    'e:\store03.dbf' size 2G 

    extent management local uniform size 512K;

    SQL> create tablespace evaluate datafile

    'c:\ evaluate 01.dbf' size 2G ,

    'd:\ evaluate 02.dbf' size 2G,

    'e:\ evaluate 03.dbf' size 2 G 

    extent management local uniform size 512K;

    SQL> create tablespace order datafile

    'c:\ order 01.dbf' size 2G ,

    'd:\ order 02.dbf' size 2 G,

    'e:\ order 03.dbf' size 2G 

    extent management local uniform size 512K;

    1. 请为该数据库设计主要的用户和权限,并指出每个用户的数据表及各个表空间配额。并用SQLPlus命令创建其中一个用户。

    SQL>create tablespace clients datafile 'c:\client01.dbf' size 20M ,'d:\client02.dbf' size 20M,'e:\client03.dbf' size 20M  extent management local uniform size 512K;

    SQL>create user client identified by client default tablespace clients  quota 40M on clients account unlock;

    SQL>grant insert on evaluate_info to client;

    SQL>grant insert,select on order_info to client;

    SQL>grant select on store_info to client;

    1. 将其中一个数据表设计为分区表,并给出设计依据。并SQLPlus命令创建该分区表和索引 。

    将order_info按照城市进行分区,地点为广州为一个分区表,上海为一个分区表,北京为一个分区表,其它地方为一个分区表。

    设计依据:北上广三大城市用户比较庞大,为其各自设置分区表便于维护与管理,也有利于查询速度。

    创建表空间:

    SQL> create tablespace order01 datafile

    'c:\ order 01.dbf' size 2G ,

    'd:\ order 02.dbf' size 2G,

    'e:\ order 03.dbf' size 2G 

    extent management local uniform size 512K;

    SQL> create tablespace order02 datafile

    'c:\ order 04.dbf' size 2G ,

    'd:\ order 05.dbf' size 2G,

    'e:\ order 06.dbf' size 2G 

    extent management local uniform size 512K;

    同理创建表空间order03、order04,步骤省略。

    创建分区表:

    create table order_info(

    order_number char(18) primary key,

    store varchar2(48) not null,

    goods varchar2(48) not null,

    city varchar2(48) not null,

    price number not null,

    amount number not null,

    extra_fee number not null,

    sort_fee number not null,

    order_date date not null,

    confirm_date date not null,

    place varchar2(255) not null

    )partition by list(city)

    (

    partition order01  values('广州')  tablespace order01,

    partition order02  values('上海')  tablespace order02,

    partition order03  values('北京')  tablespace order03,

    partition order04  values('其它')  tablespace order04

    );

    建立本地分区索引:

    create index city_range_global on order_info(order_number,city)

    local

    (

    partition orderInfo_index01 tablespace order01,

    partition orderInfo_index02 tablespace order02,

    partition orderInfo_index03 tablespace order03,

    partition orderInfo_indec04 tablespace order04

    );

    1. 设计该数据库的基本备份方案,并实现第一次完全备份,给出步骤和命令。

    由于美团外卖24小时都是在线提供服务,故没有足够时间进行冷备份,这时只能采取热备份。

    1. 启动SQLPlus,以SYSDBA身份登录数据库
    2. 将数据库设置为归档模式。

    SQL>shutdown immediate;

    SQL>startup mount;

    SQL>alter database archivelog;

                           SQL>alter database open;

    1. 以表空间为单位,进行数据文件备份。

    查看当前数据库有哪些表空间,以及每个表空间中有哪些数据文件。

    SQL>select tablespace_name,file_name from dba_data_files order by tablespace_name;

    分别对每个表空间中的数据文件进行备份,其方法为:

    1. 将需要备份的表空间(如:order01)设置为备份状态.

    SQL>alter tablespace order01 begin backup;

    1. 将表空间中所有的数据文件复制到备份磁盘。
    2. 结束表空间的备份状态。

    SQL>alter tablespace order01 end backup;

    1. 备份控制文件

    将控制文件备份为二进制文件,例如:

    SQL>alter database backup controlfile to 'd:\control.bkp';

      将控制文件备份为文本文件,例如:

      SQL>alter database backup controlfile to trace;

    1. 备份其它物理文件

    归档当前的联机重做日志文件

    SQL>alter system archive log current;

    归档当前的联机重做日志文件,也可以通过日志切换完成。

    SQL>alter system switch logfile;

    备份归档日志文件,将所有的归档日志文件复制到备份磁盘中。

    备份初始化参数文件,将初始化参数文件复制到备份磁盘中。

  • 相关阅读:
    MySQL常见的数据查询慢甚至导致死锁问题
    k8s deployment讲解
    具身智能(Embodied AI)
    MySQL (6)
    java解压缩
    项目经理如何做好项目管理中的风险管理
    从指定路径加载 Python 模块
    YOLOv5-理论部分
    传统Android 开发与 Android 音视频开发的差距……
    Wireshark TS | MQ 传输缓慢问题
  • 原文地址:https://blog.csdn.net/Vivien_CC/article/details/118079158