Oracle体系结构+用户管理+案例:简单易懂

Oracle逻辑结构:

从逻辑角度分析数据库的组成:表空间——段——区——块——模式等。

表空间:每个Oracle都是通过若干个表空间构成的。用户在数据库中建立的所有内容都存放在指定数据库的指定表空间。但一个数据文件只能属于一个表空间。

表空间目的:

 

 

例:

创建一个表空间名字为LINFAN.dbf的自动增长,空间大小为10M。

SQL> CREATE TABLESPACE LINFAN

  2  DATAFILE '/u01/app/oracle/oradata/LINFAN.dbf'

  3  size 10M autoextend on;

 

表空间已创建。

 

更改空间大小

 

SQL> ALTER DATABASE DATAFILE

  2  '/u01/app/oracle/oradata/LINFAN.dbf'

  3  resize 80M;

 

数据库已更改。

 

向指定的表空间添加文件

SQL> alter tablespace LINFAN

  2   add datafile '/u01/app/oracle/oradata/orcl/LINFAN.dbf'         

  3  size 50M autoextend on;

 

表空间已更改。

 

删除表空间

SQL> DROP TABLESPACE LINFAN  INCLUDING CONTENTS;

 

表空间已删除。

Ps:INCLUDING CONTENTS 是可选项;删除有数据的表空间需要指定此项。

 

查看系统有多少个数据文件

SQL> select FILE_NAME from dba_data_files;

FILE_NAME

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

/u01/app/oracle/oradata/orcl/system01.dbf

/u01/app/oracle/oradata/orcl/sysaux01.dbf

/u01/app/oracle/oradata/orcl/undotbs01.dbf

/u01/app/oracle/oradata/orcl/users01.dbf

 

 

查看有多少个表空间

SQL> SELECT NAME FROM V$TABLESPACE;

 

NAME

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

SYSAUX

SYSTEM

UNDOTBS1

...........

 

CBDPDB的基本操作

什么是CBDPDB?

 Oracle12c开始,Oracle引入可插拔数据库的概念,为云计算而生。可插拔的结果又一个容器数据库(CBD),和若干个组成数据库(PDB)组成。

 

SQL> SHOW CON_NAME                         #查看当前容器

 

CON_NAME

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

CDB$ROOT                                                 # CDB$ROOT代表当前在CDB下。

 

SQL> SHOW PDBS;                                    #查看所有容器

 

    CON_ID CON_NAME                         OPEN MODE  RESTRICTED

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

          2 PDB$SEED                     READ ONLY  NO

          3 ORCLPDB                       MOUNTED           #状态MOUNTED并没有打开(open)    

 

 

SQL> ALTER PLUGGABLE DATABASE ORCLPDB OPEN;  #修改CBD下修改可插拔库orclpdb状态

 

插接式数据库已变更。

 

SQL> ALTER SESSION SET CONTAINER=ORCLPDB;               #CDB下切换会话到orclpdb中

 

会话已更改。

 

SQL> SHOW CON_NAME                                          #查看当前位置位于ORCLPDB下

 

CON_NAME

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

ORCLPDB

 

 

 

CDB切换到PDB以及相关的操作:

SQL> ALTER SESSION SET CONTAINER=ORCLPDB;                #切换到PDB

        

会话已更改。

 

SQL> SHOW CON_NAME                                                   #查看当前容器(相当与查看当前位置)

 

CON_NAME

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

ORCLPDB

 

 

SQL> SHUTDOWN IMMEDIATE                                         #在PDB下关闭插接式数据库

插接式数据库已关闭。

SQL> STARTUP                                                                              #在PDB下打开插接式数据库

插接式数据库已打开。

 

SQL> ALTER SESSION SET CONTAINER=CDB$ROOT;             #切换为CDB

会话已更改。

 

SQL> SHOW CON_NAME                                                   ##查看当前容器(相当与查看当前位置)               

CON_NAME

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

CDB$ROOT                                                

 

 

 

用户管理:

用户介绍:SYS               SYSTEM                      自定义用户

SYSOracle中的一个超级用户,主要管理实例和维护系统。数据库中的所有数据都存储在sys模式中。

 

SYSTEM:Oracle默认的管理员,用有DBA的权限,该用户存储管理工具使用的内部表和试图。

 

自定义用户:

创建一个表空间

SQL>  create tablespace shiyan

  2  datafile '/u01/app/oracle/oradata/orcl/shiyan.dbf'

  3  size 10M autoextend on;

 

表空间已创建。

 

案例:以system用户的身份登录Oracle数据库的CDB,创建一个c##lisi的用户。

SQL> create user c##lisi                               用户名

  2  identified by pwd123                         密码pwd123

  3  default tablespace shiyan                 用户确定的表空间shiyan

  4  temporary  tablespace  temp       tablespace表示有多大配额就用多少

  5  quota unlimited on shiyan                unlimited参数没有限制

  6  password expire;                                第一次登录密码修改密码

 

用户已创建。

修改密码的格式:

SQL> alter   user  c##lisi  identified  by  mpwd;

 

用户已更改。

 

 

删除用户

SQL> alter user c##lisi identified by mpwd;

 

用户已更改。

 

 

数据库权限管理:

案例:授权CONNECT, RESOURCE给lisi

SQL> GRANT  CONNECT, RESOURCE TO c##LISI ;

 

授权成功。

取消授权GRANT换成revoke

Ps:一半开发人员只要授权这连个角色即可。
 

 

 

案例:在PDB模式下创建jack,并对其授权。

SQL> ALTER  PLUGGABLE DATABASE ORCLPDB OPEN;

 

警告: PDB 已变更, 但出现错误。

 

SQL> CREATE USER JACK IDENTIFIED BY JACK;

 

用户已创建。

 

SQL> ALTER USER JACK IDENTIFIED BY JACK123;

 

用户已更改。

 

SQL> GRANT CONNECT TO JACK;

 

授权成功。

 

SQL> GRANT CONNECT TO JACK;

 

授权成功。

 

SQL> ALTER SESSION SET CONTAINER=CDB$ROOT

  2  ;

 

会话已更改。

 

SQL> SHOW CON_NAME

 

CON_NAME

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

CDB$ROOT

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值