oracle 基础概念介绍

基础概念

Oracle instance

每一个Oracle实例都有一个SID(system identifier)来唯一标识. Oracle实例由若干个操作系统的进程构成,这些进程分别提供不同的服务,同时有SGA(System Global Area)和PGA(Program Global Area).可以执行PL/SQL等。

 

表空间Tablespace

逻辑的数据存储空间。可由一个或者多个数据文件组成。其中可以存储表、视图、存储过程等Schema结构。

 

Oracle用户Oracle account

登录Oracle的帐号。有若干权限分配给用户,包括哪些表空间可以访问, 并且有一个默认的表空间。

 

Oracle数据库  Oracle database

从物理上看,Oracle数据库包括:一个或者多个数据文件,两个或者更多重做日志文件,一个或者更多的控制文件。

从逻辑上看,Oracle数据库包括:一个或者多个表空间,数据结构,如表,视图,存储过程,序列,触发器,索引等。

 

Schema结构

指的是: 表,视图,存储过程,序列,触发器,索引等。

mysql&oracle

mysql和oracle的核心概念是有区别的,当有人问mysql的数据库地址是啥,那么他的确是在问mysql的database连接地址。如果有人问oracle的数据库地址是啥,往往他是在问当前应用所使用的database中的schema(而schema其实是oracle中的user account)。所以一般而言,我们是无法创建oracle的schema的。我们只能通过创建用户来定义schema。

image.png

对于MySQL而言,“database 数据库” 和 “schema 模式” 是同一件事。具体区分如下表:

In MySQL:

  • server instance == not identified with catalog, just a set of databases(数据库实例不等同于catalog,只是一个数据库的集合)

  • database == schema == catalog == a namespace within the server.
    (数据库等同于schema 等同于catalog等同于数据库服务的一个命名空间)

  • user == named account, who can connect to server and use (but can not own - no concept of ownership) objects in one or more databases(用户等同于账号,用于连接数据库服务)
    to identify any object you need (database name + object name)
    image.png
    mysql中,比如我要问database 的连接地址一般就是指的database的jdbc url。一般就直接包含了数据库服务的ip端口以及database的名称。然后才会问用户密码。

In Oracle:

  • server instance == database == catalog == all data managed by same execution engine(数据库实例等同于数据库等同于catalog等同于所有数据管理引擎)
  • schema == namespace within database, identical to user account
    user == schema owner == named account, identical to schema, who can connect to database, who owns the schema and use objects possibly in other schemas(schema等同于命名空间 ,等同于用户等同于模式拥有者等同于账号)
    to identify any object you need (schema name + object name)
    所以oracle中用户其实就是schema,新建一个用户就会多一个schema,平时我们用的navicat可以查看到当前数据库下的所有schema和用户是完全匹配的。
    image.png

从物理方面来讲:数据库是柜子,柜中的抽屉是表空间,抽屉中的文件夹是数据文件,文件夹中的纸是表,写在纸上的信息就是数据。
image.png

从对象方面来讲:数据库是柜子,柜中的抽屉是Schema,抽屉中直接就是各种纸,这些纸就是表,写在纸上的信息就是数据。

所以一般如果从专业角度上去问一个oracle的jdbc,首先是问oracle服务器的IP端口+database(实例或者服务名),然后问schema(用户)是是什么,然后问密码是什么。最终driver驱动包拿着这些信息,构建jdbc url打开抽屉(schema)执行sql语句。

jdbc

Oracle JDBC Thin using a ServiceName:

jdbc:oracle:thin:@//:/<service_name>
Example: jdbc:oracle:thin:@//192.168.8.8:1521/orcl

注意这里的格式,@后面有//, 这是与使用SID的主要区别。

这种格式是Oracle 推荐的格式,因为对于集群来说,每个节点的SID 是不一样的,但是SERVICE_NAME 确可以包含所有节点。我们平时最常用的连接方式也是通过servicename来连接的。

Oracle JDBC Thin using an SID:

jdbc:oracle:thin:@::
Example: jdbc:oracle:thin:192.168.2.1:1521:X01A

Note: Support for SID is being phased out. Oracle recommends that users switch over to usingservice names.

Oracle JDBC Thin using a TNSName:

jdbc:oracle:thin:@
Example: jdbc:oracle:thin:@GL

Note:
Support for TNSNames was added in the driver release 10.2.0.1

文件介绍

控制文件

控制文件中存放数据库的名字和状态信息、数据库的物理结构信息、数据库备份集的信息、还有数据库的 SCN 、 CKPT 、归档日志的信息等。

select name from v$controlfile;

image.png
图中两个控制文件是完全一样的,起到冗余的作用。建议将两个控制文件放到两个不同的目录下,最好是放到 2 个不同的磁盘中。

数据文件

数据文件中存放的是数据库中的数据。数据文件分为两类,一类是我们存放的普通数据文件,另外一类数据文件是临时数据文件。

select file#,name from v$datafile;

image.png

临时文件

select file#,name from v$tempfile;

image.png

重做日志文件

日志文件中存放的是数据库中所有数据的更改信息。

select member from v$logfile;

image.png

对于数据库来讲,控制文件、数据文件、日志文件是联机文件。 这三种文件不管哪个出现错误,数据库都会报错。这三类文件通常都放在存储上。

参数文件

参数文件中存放的是数据库的一些参数。在数据库启动过程中,需要读取参数文件的信息,才能够将数据库启动到 nomount 状态。

show parameter spfile;

image.png

备份文件

备份文件就是用于备份恢复的,是离线的。对于备份文件来讲,主要备的是数据文件、控制文件、参数文件、归档日志文件。其中,数据文件和归档日志文件每次备份一定需要备份的,但是参数文件和控制文件不用每次都备份。

备份文件千万不能放在存储上!建议将备份文件放在从库上。

归档日志文件

归档日志文件是离线文件,是对日志文件的一种保护收集,是数据库文件中特别重要的文件。

select * from v$archived_log;

这个结果反映了 Oracle 当时归档时,是将文件归档到这个位置。如果 Oracle 要找归档的话,它会按照这个路径的相同名字下寻找归档。如果找不到的话就会报错。

归档日志文件也千万不要放在存储上!

口令文件

当远程登录数据库的时候,需要用到口令文件。口令文件丢失了也没关系,可以再次生成。

Alert 日志

Oracle 所有重大操作以及错误信息都会在这个日志中出现。
Alter 日志默认路径为 /u01/app/oracle/diag/rdbms/orcl/orcl/trace 。
这个路径可以在参数文件中更改。
image.png

orale 官网帮助手册

善用oracle官网的帮助手册,所有oracle理论知识,操作手册,开发手册等官网的资料是最全最权威的。本文中的dg环境搭建同样也参考了官网的dg操作手册
https://docs.oracle.com/en/
https://docs.oracle.com/cd/E11882_01/server.112/e41134/create_ps.htm#SBYDB4722
image.png
我们一般也可以选allbook
image.png
通过索引来选择自己需要查询的书籍资料,比如关于dg的操作指南
image.png
oracle官网的资料是非常全的,不同产品都有对应的帮助手册,但是全是英文,学习oracle最好的方式就是查询官网的资料,但是真是需要耐心以及时间。而且官网关于oracle database相关的帮助手册内容非常多,压缩包一共有500多M的文档。

# oracle   ocp   dba   oracle基础概念  

评论

公众号:mumuser

企鹅群:932154986

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×