Oracle学习笔记(2)——系统用户与表空间

来源:互联网 发布:网络配线图怎么画 编辑:程序博客网 时间:2024/05/18 03:27

系统用户:

sys、system(权限:sys > system)
    sys必须以系统管理员或者系统操作员的权限登录,system可以直接登录。
    sysman:管理员级别的用户。用于操作企业管理器使用的。
sys,system,sysman密码一般是我们安装Oracle时设置的口令密码,这里设置为root。
scott:默认用户权限最低,默认密码是:tiger

使用系统用户登录Oracle:

[username/password] [@server] [as sysdba|sysoper]
        例如:
        system/root  @orcl as sysdba
        orcl就是自己设置的服务名
        命令:
        1、connect连接。用于连接到另外一个用户。    
        connect  sys/root as sysdba
        2、查看登录用户:show  user
        3、dba_users:数据字典。数据字典是数据库提供的表,用于查看数据库的信息
              desc dba_users 查询数据字典的表结构。(注意:desc是命令,可以加分号,也可以不加分号)
              select username from dba_users;   (因为select是一个sql语句,所以必须有分号,代表一个命令的结束)



启用scott用户:

scott用户默认情况下是锁定的。
启用用户的语句:alter user username account unlock
使用scott用户登录SQL Plus:  connect scott/tiger
自己创建用户登录:先不是深究。


表空间概述:

1、理解表空间:
数据库与表空间之间的关系:表空间实际上是数据库的实际逻辑存储空间。我们可以把表空间理解为在数据库当中开辟的一个空间,用于存储数据库中的对象。一个数据库可以由多个表空间构成。Oracle 11g的表空间和其他数据库sql server,mysql...有所不同,并且Oracle 11g的许多优化都是通过表空间实现的。
表空间与数据文件之间的关系:一个表空间是由一个或多个数据文件构成的。数据库文件的位置和大小可以由我们用户自己调定。
2、表空间的分类:
永久表空间:主要用于永久化存储的数据库对象。例如:表,视图,存储过程...
临时表空间:主要用于存放一些数据库操作当中,中间执行的过程,当执行结束后,那么存放的内容就会释放掉。它不会永久存放。
UNDO表空间:用于保存事务所修改的数据的旧值。也就是说,被修改之前的数据。比如:当我们修改一个表的时候,它会将修改之前的数据进行保存。这样的话,我们就可以对数据进行回滚。也就说对数据执行撤销操作。
3、查看用户表空间:
dba_tablespaces、user_tablespaces数据字典
dba_tablespaces:针对于系统用户查看的数据字典。
user_tablespaces:针对于普通用户查看的数据字典。
小知识:数据库管理员(Database Administrator,简称DBA)

使用:
system用户登录下
desc dba_tablespaces;
select tablespace_name from dba_tablespaces;

scott用户登录下:
desc user_tablespaces;
select tablespace_name from user_tablespaces;
不能再scott用户登录下,查看dba_tablespaces数据字典,会报错.







dba_users、user_users数据字典:
dba_users:针对于系统用户查看的数据字典。
user_users:针对于普通用户查看的数据字典

设置用户的默认或临时表空间

ALTER USER username DEFAULT|TEMPORARY TABLESPACE tablespace_name
在Oracle数据库安装完成后,system用户的默认表空间和临时表空间分布是system,temp

创建表空间:

CREATE [TEMPORARY] TABLESPACE tablespace_name TEMPFILE | DATAGFILE 'xx.dbf' SIZE xx
创建永久表空间:
create tablespace test1_tablespace datafile 'test1file.dbf' size 10m;


查看已经创建的永久表空间或临时表空间的具体路径:
永久表空间路径
desc dba_data_files
select file_name from dba_data_files where tablespace_name = 'TEST1_TABLESPACE';

创建临时表空间:
create temporary tablespace temptest1_tablespace tempfile 'tempfile1.dbf' size 10m;

临时表空间路径
desc dba_temp_files
select file_name from dba_temp_files where tablespace_name='TEMPTEST1_TABLESPACE';

查看创建永久表空间和临时表空间的本地文件目录:

6、修改表空间:
    6.1:修改表空间的状态
        6.1.1:设置联机或脱机状态
        ALTER TABLESPACE tablespace_name ONLINE | OFFLINE;
        如果一个表空间设置为脱机状态后,就不能使用它了。
        
        alter tablespace test1_tablespace offline;
        查看表空间的状态
        desc dba_tablespaces
        select status from dba_tablespaces where tablespace_name='TEST1_TABLESPACE';
 该回online状态
         alter tablespace test1_tablespace online;

 6.1.2:设置只读或可读写状态
        ALTER TABLESPACE talbespace_name READ ONLY | READ WRITE;
        默认情况下,表空间是READ WRITE 可读写状态。默认的联机状态下就是可读写状态。
        alter tablespace test1_tablespace read only;
        select status from dba_tablespaces where tablespace_name='TEST1_TABLESPACE';

    6.2:修改数据文件
        6.2.1:增加数据文件
            ALTER TABLESPACE tablespace_name ADD DATAFILE 'xx.dbf' SIZE xx;

            alter tablespae test1_tablespace add datafile 'test2_file.dbf' size 10m;
            查看数据文件
            select file_name from dba_data_files where tablespace_name = 'TEST1_TABLESPACE';

            删除数据文件
            ALTER TABLESPACE tablespace_name DROP DATAFILE 'filename.dbf';
            需要注意:在删除表空间的数据文件的时候,我们不能删除表空间的第一个数据文件,要想删除的话,就得删除整个表空间。
            我们删除表空间中的第二个数据文件
            alter tablespace test1_tablespace drop datafile 'test2_file.dbf';
            select file_name from dba_data_files where tablespace_name = 'TEST1_TABLESPACE';

            删除表空间:
            DROP TABLESPACE tablespace_name [INCLUDING CONTENTS]   
            drop tablespace test1_tablespace including contents;




0 0