• oracle创建数据库和用户、表空间,管理表空间和数据文件简介


    介绍

    表空间是数据库的逻辑组成部分

    从物理上将:数据库数据存放在数据文件中

    从逻辑上将:数据库则是存放在表空间中

    表空间由一个或是多个数据文件组成

     

    数据库的逻辑结构

    介绍:

    Oracle中逻辑结构包括表空间、段、区、块

    说明:

    数据库由表空间构成

    而表空间又是由段构成

    而段又是由区构成

    而区又是由Oracle块构成

     

     

    这样的一种结果,可以提高数据库的效率

     

    表空间

    介绍:

    表空间用于从逻辑上组织数据库的数据

    数据库逻辑上是由一个或是多个表空间组成的

     

    表空间的作用:

    1、控制数据库占用的磁盘空间

    2、dba可以将不同数据类型部署到不同的位置。这样有利于提高i/o性能,同时利于备份和恢复等管理操作

     

     

    oracle创建数据库和用户、表空间

    oracle的使用方式和mysql和sql server他们不同,oracle在创建数据库的时候要对应一个用户,数据库和用户一般一一对应,

    mysql和sql server 直接通过create databse “数据库名” 就可以直接创建数据库了,而oracle创建一个数据库需要以下三个步骤

    1. 创建两个表空间和对应的数据文件(.DBF),若已存在用户和关联的数据库,则需先删除用户和数据库
    2. 创建用户与上面创建的文件形成映射关系
    3. 给用户添加权限

    cmd命令登录sqlplus sys/密码 as sysdba 

    一、创建两个表空间和对应的数据文件(monitor.dbf 和monitor_temp.dbf 两个文件)  ,若已存在用户和关联的数据库,则需先删除用户和数据库

    CREATE TABLESPACE monitor LOGGING DATAFILE 'D:appowneroradataorclmonitor.dbf' 
    SIZE 100M AUTOEXTEND ON NEXT 32M MAXSIZE 500M EXTENT MANAGEMENT LOCAL;
    
    create temporary tablespace monitor_temp tempfile 'D:appowneroradataorclmonitor_temp.dbf'
    size 100m autoextend on next 32m maxsize 500m extent management local;

    tablespace:表空间名

    datafile:'数据文件路径'

    size:数据文件的大小

    maxsize:表数据文件最大大小

    uniform size 区的大小; 

    二、创建用户与上面创建的文件形成映射关系(用户名为monitor,密码为monitor)

    CREATE USER monitor IDENTIFIED BY monitor DEFAULT TABLESPACE monitor TEMPORARY TABLESPACE monitor_temp;

    三、添加权限

    grant connect,resource,dba to monitor;
    grant create session to monitor;

    有时候也会用到删除数据库和删除用户的操作,这里也给出删除的语句

    四、删除数据库

    DROP TABLESPACE monitor INCLUDING CONTENTS AND DATAFILES;

    五、删除用户

    drop user monitor cascade;

    管理表空间和数据文件简介

    建立表空间

    建立表空间是使用create tablespace命令完成的,要注意时,一般情况下,建立表空间是特权用户或是dba来执行的,

    如果用其它用户来创建表空间,则用户必须要具有create tablespace的系统权限

    建立数据表空间

    在建立数据库后,为便于管理表,最好建立自己的表空间

    create tablespace tangtao001 datafile 'd: 001.dbf' size 20m uniform size 128k;

     

    使用数据表空间

    向新建的表空间添加表:

    create table myDept(deptno number(4),dname varchar2(15),loc varchar2(13)) tablespace tangtao001;

    说明:执行完上述命令后,会建立名称为tangtao001 的表空间,并为该表空间建立名称为t001.dbf的数据文件,区的大小为128k

     

    1、显示表空间信息

    a) 查询数据字典视图dba_tablespaces。显示表空间信息

    select tablespace_name from dba_tablespaces;

    2、显示表空间所包含的数据文件

    a) 查询数据字典视图dba_data_files,可以显示表空间所包含的数据文件

    select file_name,bytes from dba_data_files where tablespace_name='表空间名';

     

    改变表空间的状态

    当建立表空间时,表空间处于联机的(online)状态,此时该表空间是可以访问的,并且该表空间是可以读写的,即可以查询该表空间的数据,而且还可以在表空间执行各种语句。

    但是在进行系统维护或是数据维护时,可能需要改变表空间的状态,一般情况下,由特权用户或是dba来操作

    1、使表空间脱机

    alter tablespace 表空间名 offline;

     

    2、使表空间联机

    alter tablespace 表空间名 online;

     

    3、只读表空间

    a) 当建立表空间时,表空间可以读写,如果不希望在该表空间上执行update、delete、insert操作,那么可以将该表空间修改为只读

    alter tablespace 表空间名 read only;

     

    案例:

    1、知道表空间名。显示该表空间的所有表

    select * from tall_tables where tablespace_name='表空间名';

    2、知道表明,查看该表属于哪个表空间

    select tablespace_name,table_name from user_tables where table_name='emp';

     

    注意:

    通过2,可以知道scott.emp是在system这个表空间上,现在可以将system改为只读,但是不会成功。因为system是系统表空间,如果是普通表空间,可以将其设为只读

     

    删除表空间

    一般情况下,有特权用户或是dba来操作,如果是其它用户操作,那么要求用户具有drop tablespace系统权限

    drop tablespace 表空间名 including contents and datafiles;

     

    说明:

    Including contents 表示删除表空间,删除该表空间的所有数据库对象,而datafiles表示将数据库文件也删除

     

    扩展表空间

    表空间是由数据文件组成的,表空间的大小实际上就是数据文件相加后的大小。那么我们可以想象。假定表employee存放到tangtao001表空间上,初始大小就是2m。

    当数据满2m空间后,如果在向employee表插入数据,这样就会显示空间不足的错误

     

    案例说明:

    1、建立一个表空间tangtao001

    2、在该表空间上建立一个普通标mydment 其结构和dept一样

    3、向该表中加入数据insert into mydment select * from dept;

    4、当一定时候就会出现无法扩展的问题,怎么办?

    5、就扩展该表空间,为其增加更多的存储空间。有三种方法:

     

     

    1、增加数据文件

    alter tablespace 表空间名 add datafile '数据文件存放路径' size 数据文件大小;

     

    2、增加数据文件的大小

    alter tablespace 表空间名 add datafile '数据文件存放的路径' resize 数据文件新的大小;

    这里需注意,数据文件的大小不要超过500m

     

    3、设置文件的自动增长

    alter tablespace 表空间名 add datafile '数据文件存放路径' autoextend on next 每次增加的大小 maxsize 数据文件大小的最大值;

     

    移动数据文件

    有时,如果数据文件所在的磁盘损坏时,该数据文件不能再使用,为了能够重新使用,需要将这些文件的副本移动到其它的磁盘,然后恢复

     

    案例说明:

    1、确定数据文件所在的表空间

    select tablespace_name from dba_data_files where file_name='d: 01.dbf';

    2、使表空间脱机

    a) 确保数据文件的一致性,将表空间转变为offline的状态

    alter tablespace tangtao001 offline;

    3、使用命令移动数据文件到指定的目标位置

    host move d:t01.dbf c:t01.dbf;

    4、执行alter tablespace命令

    a) 在物理上移动了数据后,还必须执行alter tablespace命令对数据库文件进行逻辑修改

    alter tablespace tangtao001 rename datafile 'd:t01.dbf' to 'c:t01.dbf';

    5、使得表空间联机

    a) 在移动了数据文件后,为了使用户可以访问该表空间,必须将其转变为online的状态

    alter tablespace tangtao001 online;

     

    表空间小结

    1、了解表空间和数据文件的作用

    2、掌握常用表空间,undo表空间和临时表空间的建立方法

    3、了解表空间的各个状态

    a) Online

    b) Offline

    c) Read write

    d) Read only

    4、了解移动数据文件的原因,即使用alter tablespace和alter datatable命令移动数据文件的方法

     

    参考博文:

    https://www.cnblogs.com/qintangtao/archive/2012/11/04/2753549.html

    https://www.cnblogs.com/0201zcr/p/4669548.html

    -----------------------------------------------------转载需备注博主名和原创网址!!!------------------------------------------------------
  • 相关阅读:
    读书笔记:7个示例科普CPU Cache
    no such partition grub rescue>
    这些个云盘
    原版win7镜像IE主页被篡改?
    JS判断访问设备、客户端操作系统类型
    floodlight make the VMs can not getDHCP IP address
    MPI之聚合通信-Scatter,Gather,Allgather
    MPI 环境搭建问题-运行程序闪退
    【算法、递归回溯解决数独】
    算法【最大子序列问题】
  • 原文地址:https://www.cnblogs.com/Luoters/p/13913400.html
Copyright © 2020-2023  润新知