美文网首页
Oracle的一些基本概念

Oracle的一些基本概念

作者: 华阳_3bcf | 来源:发表于2023-04-12 11:41 被阅读0次

数据库:database

oracle数据库是数据的物理存储。包括数据文件ORA或者DBF,控制文件,联机文件,日志文件,参数文件。

oracle数据库的概念和其他数据库概念有些不一样,比如mysql,mysql数据库创建数据库的过程是--创建库--创建表,而oracle创建数据库的过程是--创建一个表空间--创建一个用户--由用户去创建表

所以oracle数据库和其他数据库是有不同之处的。可以这样理解,oracle是只有一个数据库,是一个大的数据库,由用户来管理的。

实例

一个Oracle实例(Oracle Instance)有一系列的后台进程(Backguound Processes)和内存结构(Memory Structures)组成。一个数据库可以有n个实例(只有通过实例才能对数据库进行操作)。

数据文件(dbf、ora)

数据文件是数据库的物理存储单位。数据库的数据是存储在表空间中的,真正是存在于某一个或者多个数据文件中。而一个表空间可以由一个或多个数据文件组成,一个数据文件只能属于一个表空间。一旦数据文件被加入到某个表空间后,就不能删除这个文件,如果要删除某个数据文件,只能删除其所属于的表空间才行。

表空间

表空间是oracle对物理数据库上相关数据文件的逻辑映射。一个数据库逻辑上被划分成一个或若干个表空间,每个表空间包含了在逻辑上相关联的一组结构。每个数据库至少有一个表空间(system表空间)。每个表空间由同一磁盘上的一个或者多个文件组成,这些文件就是数据文件。一个数据文件只能属于一个表空间。

表空间是一个用来管理数据存储逻辑概念,表空间只是和数据文件(ORA或者DBF文件)发生关系,数据文件是物理的,一个表空间可以包含多个数据文件,而一个数据文件只能隶属一个表空间。
基本命令:

//创建临时表空间
create temporary tablespace fas 
tempfile '/u01/app/oracle/oradata/XE/fas_temp.dbf' 
size 32m 
autoextend on 
next 32m maxsize 2048m 
extent management local; 
//创建表空间
create tablespace fas 
logging 
datafile '/u01/app/oracle/oradata/XE/fas.dbf' 
size 100m 
autoextend on 
next 32m maxsize 2048m 
extent management local; 

SELECT DISTINCT tablespace_name FROM dba_tables;  
drop TABLESPACE 表空间名 INCLUDING CONTENTS AND DATAFILES cascade onstraints;

用户

用户是在实例下建立的。不同实例中可以建相同名字的用户。表的数据,是由用户放入某一个表空间的,而这个表空间会随机把这些表数据放到一个或多个数据文件DBF中。

oracle是由用户和表空间对数据进行管理和存储的。但是表数据不是由表空间去查询的,而是由用户去查询的。因为不同用户可以在同一个表空间建立相同名字的表。

基本命令:

select * from dba_users; //查全库的所有用户  
select * from all_users;   //查当前用户可见的用户
select * from user_users;  //当前的用户
drop user 用户名 cascade; 
create user 用户名 identified by 密码 default tablespace 表空间 temporary tablespace 临时表空间;  
之后授权
GRANT DBA to 用户   //此处假设授予dba角色拥有的权限
GRANT connect,resource to 用户  //指定权限

控制文件

控制文件在Oracle数据库中扮演着很重要的角色,没有控制文件(或者控制文件损坏了),运行着的实例立即崩溃,关闭着的死活打不开,你以为你是谁,可以说,控制文件一旦损坏,数据库必然down了。Oracle数据库实例启动过程中,当启动到unmount时,此时只是在内存中为Oracle实例分配了实例空间,然后如果继续要启动到mount状态,这个时候控制文件就闪亮登场了,因为Oracle要依据控制文件找到数据文件跟重做日志文件的路径,确定找到了再进去mount状态,至于打开数据库就是确定这些文件都一致,没有问题的话就能打开了。

控制文件包括了很多重要的信息,比如数据库的数据文件、重做日志文件、数据库的名称、数据库创建信息、表空间信息、数据文件的状态、日志文件信息、备份信息、检查点信息等

控制文件是一个2进制文件,不可以直接通过文本编辑器进行编写,这个文件由Oracle自己进行维护,Oracle建议控制文件至少有两份冗余,并且放在不同的磁盘中,这样能够避免一个磁盘的损坏,造成整个控制文件都丢失的情况,因为他还有一个兄弟健在,尽管一个坏了,数据库还是得down,但是有一个在的话,至少我恢复起来要快不少。

CDB与PDB

Oracle 12C引入了CDB与PDB的新特性,在ORACLE 12C数据库引入的多租用户环境(Multitenant Environment)中,允许一个数据库容器(CDB)承载多个可插拔数据库(PDB)。CDB全称为Container Database,中文翻译为数据库容器,PDB全称为Pluggable Database,即可插拔数据库。在ORACLE 12C之前,实例与数据库是一对一或多对一关系(RAC):即一个实例只能与一个数据库相关联,数据库可以被多个实例所加载。而实例与数据库不可能是一对多的关系。当进入ORACLE 12C后,实例与数据库可以是一对多的关系。下面是官方文档关于CDB与PDB的关系图。

image.png

其实大家如果对SQL SERVER比较熟悉的话,这种CDB与PDB是不是感觉和SQL SERVER的单实例多数据库架构是一回事呢。像PDB$SEED可以看成是master、msdb等系统数据库,PDBS可以看成用户创建的数据库。而可插拔的概念与SQL SERVER中的用户数据库的分离、附加其实就是那么一回事。看来ORACLE也“抄袭”了一把SQL SERVER的概念,只是改头换面的包装了一番。

相关文章

  • Oracle基本操作

    Oracle基本概念 DatabaseA database is a set files, located on ...

  • 甲骨文12cOCP培训

    Oracle Database 12c的Oracle认证助理(OCA)评估了DBA日常运营管理和维护所需的基本概念...

  • Oracle复习

    山交Oracle复习资料 10个填写,8个大题 第1章 数据库的基本概念与Oracle环境 1.1.2 数据模...

  • Oracle Database(1) 名词

    本文摘抄自Oracle官方手册,Oracle数据库的一些概念。 About Schema Oracle Datab...

  • RBO和CBO详解

    RBO和CBO的基本概念 Oracle数据库中的优化器又叫查询优化器(Query Optimizer)。它是SQL...

  • oracle 常用guide网站

    ** oracle数据库的一些常用网站 ** http://www.oracle.com/accessibilit...

  • 如何在Debian 10上安装 Oracle JDK 8/Ora

    Oracle JDK 和 OpenJDK 相比,Oracle JDK 有一些额外的商业功能。 准备条件 开始本教程...

  • Oracle学习

    自己一些关于Oracle练习整理 一、Oracle体系结构1、概念关系数据库与实例:Oracle只有一个数据库,但...

  • Oracle列转行函数版本不兼容解决方案

    业务场景 本博客记录一下Oracle列转行函数在Oracle11的一些不兼容问题,vm_concat在一些业务场景...

  • PHP OOP编程从入门到不会

    PHP object-oriented programming OOP中的一些基本概念 OOP基本概念代码实例 O...

网友评论

      本文标题:Oracle的一些基本概念

      本文链接:https://www.haomeiwen.com/subject/rttoddtx.html