• Oracle体系结构和用户管理实验


    一:体系结构的定义
    1:什么是体系结构
    是指数据库的组成、工作过程与原理,以及数据在数据库中的组织与管理机制。

    2:体系结构中包含的组件
    (1)实例
         系统全局区
         
    (2)数据库
         数据库是数据的集合,指的是存储数据库信息的一组文件

    3:oracle服务器
    由实例和数据库文件组成

    4:oracle存储结构
    (1)物理结构
        主要文件:数据文件、重做日志文件、控制文件
        其他文件:参数文件、归档日志文件、密码文件
    (2)逻辑结构
        表空间:永久表空间、临时表空间、撤销表空间
        段:数据段、索引段、回退段、临时段
        区:磁盘空间分配的最小单位
        块:数据库中需i小的数据组织单位
        模式:数据库对象的集合

    5:oracle的内存结构
    (1)系统全局区SGA
        共享池
        数据缓冲区
        重做日志缓冲区
        大池
        java池
    (2)程序全局区PGA    
        不是实例的组成部分
        当用户连接到数据库并创建会话时系统自动分配的,保留每个与oracle连接的用户进程所需的内存。,会话结束,PGA释放

    6:oracle进程结构
    用户进程:在数据库用户请求连接oracle服务器是启动
    服务器进程:用户简历会话并连接oracel实例时启动
    后台进程:在oracel实例启动时启动。后台进程包括:进程监控进程、系统监控进程、数据写入进程、日志写入进程、检查点进程

    二:用户管理
    1:sys:oracle超级管理员,数据字典和视图保存在sys模式中
    2:system:oracle默认的数据库管理员,有dba的权限,使用该账户管理其他用户的权限和存储等,但不建议用他创键用户表
    3:scott:示范用户

    三:设置表空间

    [oracle@oracle root]$ sqlplus sys/aptech AS SYSDBA

    1:创建表空间

    SQL> CREATE TABLESPACE aaa

    datafile '/u01/app/oracle/oradata/orcl/user01.dbf'

    size 10M autoextend on;

    2:重设表空间大小

    SQL> alter database datafile

    '/u01/app/oracle/oradata/orcl/user01.dbf'

    resize 80M;

    3:向表空间添加数据文件

    SQL> alter tablespace aaa

    add datafile

    '/u01/app/oracle/oradata/orcl/user02.dbf' size 20M

    autoextend on;

    4:将表空间设置为只读

    SQL> alter tablespace aaa read only;

    将表空间设置为可读写

    SQL> alter tablespace aaa read write;

    四:CDB与PDB的基本操作

    1:查询当前所在的容器

    SQL> show con_name;

    CON_NAME

    ------------------------------

    CDB$ROOT

    2:查询当前都有哪些可插拔数据库

    SQL> show pdbs;

        CON_ID CON_NAME   OPEN MODE  RESTRICTED

    ---------- ------------------------------ ---------- ----------

     2 PDB$SEED   READ ONLY  NO

     3 ORCLPDB   READ WRITE NO

    3:CDB下修改可插拔库orclpdb的打开状态

    SQL> shutdown immediate;

    SQL> startup

    SQL> show pdbs;

        CON_ID CON_NAME   OPEN MODE  RESTRICTED

    ---------- ------------------------------ ---------- ----------

     2 PDB$SEED   READ ONLY  NO

     3 ORCLPDB   MOUNTED

    SQL> alter pluggable database orclpdb open;

    插接式数据库已变更。

    SQL> show pdbs;

        CON_ID CON_NAME   OPEN MODE  RESTRICTED

    ---------- ------------------------------ ---------- ----------

     2 PDB$SEED   READ ONLY  NO

     3 ORCLPDB   READ WRITE NO

    注释:

    PDB$SEED为模板pdb数据库,为创建其他的pdb数据库提供模板

    4:CDB下切换会话到PDB(orclpdb)中

    SQL> alter session set container=orclpdb;

    会话已更改。

    SQL> show con_name;

    CON_NAME

    ------------------------------

    ORCLPDB

    4:切换会话到CDB(CDB$ROOT)中

    SQL> alter session set container=cdb$root;

    会话已更改。

    SQL> show con_name;

    CON_NAME

    ------------------------------

    CDB$ROOT

    注释:

    CDB就是orcle的一个大容器,可以包含最多个PDB,PDB是连接进CDB的小数据库,可单独对PDB进行开启可关闭,这样只影响此PDB,不影响oracle实例,也不影响其他PDB;也可对CDB进行开启或关闭,此时影响整个实例。

    刚安装完oracle后,最好重启一下oracle实例,否则,使用show con_name命令查看当前数据库时,显示的是cbd@root,但是创建用户时,默认是向orclpdb中创建的,因此在找表空间时,会在orclpdb中找。所以,明明是在cbd中创建用户,而且表空间创建在了cbd中,可是系统会提示在orclpbd中找不到指定的表空间。此时可以重启一下oracle实例,再创建即可。

    五:用户管理

    1:在CDB中创建用户(在cdb$root中创建用户名)

    此时创建的是公用用户

    SQL> alter session set container=cdb$root;

    SQL> shutdown immediate;

    SQL> startup

    SQL> CREATE TABLESPACE aaa

    datafile '/u01/app/oracle/oradata/orcl/user01.dbf'

    size 10M autoextend on;

    SQL> create user c##zhangsan

    identified by aptech

    default tablespace aaa

    temporary tablespace temp

    quota unlimited on aaa

    password expire;

    修改用户口令

    SQL> alter user c##zhangsan identified by benet;

    2:在PDB中创建用户(在orclpdb中创建用户名)

    此时创建的是本地用户

    SQL> alter session set container=orclpdb;

    SQL> CREATE TABLESPACE bbb

    datafile '/u01/app/oracle/oradata/orcl/user02.dbf'

    size 10M autoextend on;

    SQL> create user lisi

    identified by aptech

    default tablespace bbb

    temporary tablespace temp

    quota unlimited on bbb

    password expire;

    修改用户口令

    SQL> alter user lisi identified by benet;

    3:用户权限的设置

    SQL> grant connect,resource to lisi;

    SQL> revoke connect,resource from lisi;

    4:用新用户访问数据库

    [oracle@oracle root]$ sqlplus lisi/aptech

    六:导入数据库

    1:sys身份登录oracle

    2:创建测试账号scott

    SQL> create user c##scott identified by scott default tablespace users temporary tablespace temp quota unlimited on users;

    3:授权

    SQL> grant connect,resource to c##scott;

    4:导入脚本文件

    SQL> @/opt/test.sql

    5:切换到c##scott用户

    SQL> conn c##scott/scott

    6:显示当前用户

    SQL> show user;

    7:查询改用下的所有的表

    SQL> col tname for a10; ##格式化输出,让一行中显示所有的列,调整tname列的宽度为10

    SQL> select * from tab;

    8:查询表的结构

    SQL> desc emp;

    9:查询表中的数据

    SQL> col empno for 9999; ##格式化输出,empno列为数字,9999代表宽度为4

    SQL> select * from emp;

  • 相关阅读:
    QT:浮动的饼状统计图(自绘不规则窗口)
    在QTableView中使用各种自定义委托
    QT:使用“状态模式”绘制界面
    Linux IO控制命令生成
    C++ new和delete实现原理——new和delete最终调用malloc和free
    Qt中如何 编写插件 加载插件 卸载插件
    QT:用QSet储存自定义结构体的问题——QSet和STL的set是有本质区别的,QSet是基于哈希算法的,要求提供自定义==和qHash函数
    两种方法:VS2008下C++窗体程序显示控制台的方法——在QT程序中使用cout和cin
    把自定义控件集成到Qt Designer中
    关闭Windows 2008下面应用程序出错后的提示
  • 原文地址:https://www.cnblogs.com/ccshi/p/13141560.html
Copyright © 2020-2023  润新知