zoukankan      html  css  js  c++  java
  • Oracle数据库体系结构及创建表结构

    Oracle服务器主要由实例、数据库、程序全局区和前台进程组成,其中
    实例就是用来提供管理数据库的功能;
    数据库由数据库文件组成,用来存储系统数据;
    实例可以进一步划分为系统全局区(SGA)和后台进程(PMON、SMON等)两部分,其中
    SGA是所有用户进程共享的一块内存区域,使用操作系统的内存资源,而后台进程需要使用CPU与内存资源。数据库中包含数据文件、控制文件和重做控制文件,数据库存放在硬盘中。
    程序全局区(PGA)是一个非共享的内存区域,用于管理用户进程的私有资源。前台进程可以再划分为用户进程和服务器进程,他们需要使用CPU与内存资源。

    Oracle数据库的逻辑结构由多个表空间(tablespace)组成,而表空间又由多个段(segment)组成,段由多个数据区(Extent)组成,数据区又由多个数据块(Blocks)组成,如图:


    Oracle的数据在逻辑上存储在表空间中,而在物理上存储在表空间所包含的物理文件(即数据文件)中,如图:


    Oracle数据库的物理存储结构由多种物理文件组成,主要有数据文件、控制文件、重做日志文件、归档日志文件、参数文件、口令文件和警告日志文件,如图:


    每个数据文件只对应一个表空间,一个表空间可以存放多个数据文件。
    /*查看表空间*/
    select * from dba_tablespaces;

    /*查看表空间数据文件的路径*/
    select tablespace_name,file_name from dba_tablespaces;

    /*表空间使用情况查询*/
    select dbf.tablespace_name,dbf.totalspace "总量(M)", dbf.totalblocks as 总块数,dfs.freespace "剩余总量(M)",dfs.freeblocks "剩余块数",(dfs.freespace / dbf.totalspace) * 100 "空闲比例"from (select t.tablespace_name,sum(t.bytes) / 1024 / 1024 totalspace,sum(t.blocks) totalblocks from dba_data_files t  group by t.tablespace_name) dbf,  (select tt.tablespace_name,  sum(tt.bytes) / 1024 / 1024 freespace,  sum(tt.blocks) freeblocks from dba_free_space tt  group by tt.tablespace_name) dfs  where trim(dbf.tablespace_name) = trim(dfs.tablespace_name);

    /*创建表空间后创建用户和授权分为四步:创建临时表空间/表空间/创建用户/授权*/
    /*第1步:创建临时表空间*/
    /*临时表空间一般是指在数据库中存储数据,当内存不够的情况下写入的空间,主要用作查询时带有排序(Group by,Order by等)算法时所用,这个空间并不像一般的表空间,当执行完对数据库的操作后,该空间的数据会自动清空*/
    create temporary tablespace test_temp
    tempfile 'D:oracledata est_temp.dbf'
    size 50m
    autoextend on
    next 50m maxsize 20480m
    extent management local;

    /*第2步:创建数据表空间*/
    create tablespace test_data
    logging
    datafile 'D:oracledata est_data.dbf'
    size 50m
    autoextend on
    next 50m maxsize 20480m
    extent management local;

    /*第3步:创建用户并指定表空间*/
    create user test identified by test
    default tablespace test_data
    temporary tablespace test_temp;

    /*第4步:给用户授予权限*/
    grant connect,resource,dba to test;

    /*重命名表空间*/
    alter tablespace test_data rename to testOne_data;/*将表空间test_data命名为testOne_data*/

    /*修改表空间数据文件大小*/
    alter database datafile '/ora/oradata/radius/undo.dbf' resize 10240M;

  • 相关阅读:
    *关于如何获取指定表的指定字段的数据类型的方法
    *检查表是否存在
    *用Sql添加删除字段,判断字段是否存在的方法
    *MSSQL三个关键系统表
    *系统表的应用
    VC++ ADO编程入门简介
    int i=0; i=i++ System.out.Println(i)
    Microsoft Visual C++ 6.0 关联源代码
    VC ADO接口详解
    程序员每年该做的事
  • 原文地址:https://www.cnblogs.com/cnjavahome/p/4264795.html
Copyright © 2011-2022 走看看