8.5日下午更新!!
刚刚紫龙哥又重新给自己讲了,数据库底层的一些东西,这下子一下完全完全懂了datafile,instance,RAC,还有schema之间的差异和联系。
一、关于schema
在登陆数据库的时候会要我们选择不同的库,同一个库可以对应不同的用户,一个用户就对应于一个schema。
以下的讨论都是在同一个库的情况下展开的。
我们知道,在数据库中有很多对象,包括熟知的tables, views, sequences, stored procedures, synonyms, indexes, clusters, and database links等。所谓的schema其实就是一些数据对象的集合,为了区分不同对象的集合,就需要给这些集合起不同的名字。
我们常见的数据库用户一般就是对应一个schema,该用户的schema名就等于用户名,并作为该用户的缺省schema。当然一个用户还可以访问其他schema中的数据,如果我们访问scott用户下的emp表,只需用select * from emp; 其实,这sql语句的完整写法为select * from scott.emp。在数据库中一个对象的完整名称为schema.object,而不属user.object。
二、datafile,instance,RAC以及Data guard的含义
datafile是纯粹的存储数据的地方,包括很多数据块;
上面的datafile只类似于C++中的类class,只有被实例化后才具有属性和方法,那么在数据库中就需要有很多的process来对应解释用户传来的查询、修改等语句,实现对数据的调用,这些所有的process就称为instance;
RAC即real application cluster,实时应用集群。外部用户通过不同的服务器节点去访问到datafile,如果只是一个单一的服务器节点,就不存在RAC的概念。RAC是为了提高数据库的可用性,如果某一个服务器节点挂掉后,oracle可以为用户指向另外一个可用的服务器节点,从而继续访问数据库。
Data guard,是oracle推出的一种高可用性数据库方案。它是在主节点与备用节点间通过日志同步来保证数据的同步,可以实现数据库快速切换与灾难性恢复。
后面自己会接触到数据库的迁移这一块,所以会继续了解数据库系统表,以及informatica工具的应用,加油学习!