当前位置:首页 » 操作系统 » oracle数据库分布

oracle数据库分布

发布时间: 2022-08-15 07:34:44

数据库oracle简介

Oracle Database,又名Oracle RDBMS,或简称Oracle。是甲骨文公司的一款关系数据库管理系统。它是在数据库领域一直处于领先地位的产品。可以说Oracle数据库系统是目前世界上流行的关系数据库管理系统,系统可移植性好、使用方便、功能强,适用于各类大、中、小、微机环境。它是一种高效率、可靠性好的 适应高吞吐量的数据库解决方案。

ORACLE数据库系统是美国ORACLE公司(甲骨文)提供的以分布式数据库为核心的一组软件产品,是目前最流行的客户/服务器(CLIENT/SERVER)或B/S体系结构的数据库之一。ORACLE数据库是目前世界上使用最为广泛的数据库管理系统,作为一个通用的数据库系统,它具有完整的数据管理功能;作为一个关系数据库,它是一个完备关系的产品;作为分布式数据库它实现了分布式处理功能。

特点

1、完整的数据管理功能:[2]

1)数据的大量性

2)数据的保存的持久性

3)数据的共享性

4)数据的可靠性

2、完备关系的产品:

1)信息准则---关系型DBMS的所有信息都应在逻辑上用一种方法,即表中的值显式地表示;

2)保证访问的准则

3)视图更新准则---只要形成视图的表中的数据变化了,相应的视图中的数据同时变化

4)数据物理性和逻辑性独立准则

3、分布式处理功能:

ORACLE数据库自第5版起就提供了分布式处理能力,到第7版就有比较完善的分布式数据库功能了,一个ORACLE分布式数据库由oraclerdbms、sql*Net、SQL*CONNECT和其他非ORACLE的关系型产品构成。

4、用ORACLE能轻松的实现数据仓库的操作。

这是一个技术发展的趋势,不在这里讨论。

优点

■ 可用性强

■ 可扩展性强

■ 数据安全性强

■ 稳定性强

㈡ Oracle数据库的比较

在了解了ORACLE数据库后,我们有必要对ORACLE和Sybase SQL Server的比较, Oracle采用的是并行服务器模式,而Sybase SQL Server采用的是虚拟服务器模式,它没有将一个查询分解成多个子查询,再在不同的CPU上同时执行这些子查询。我们可以说在对称多处理方面Oracle的性能优于Sybase的性能。业务量往往在系统运行后不断提高,如果数据库数量达到GB以上时,我们在提高系统的性能方面可以从两方面入手,一种是提高单台服务器的性能,还有就是增加服务器数目。基于此,如果我们是提高单台服务器的性能,选择Oracle 数据库较好,因为它们能在对称多CPU的系统上提供并行处理。相反,由于Sybase的导航服务器使网上的所有用户都注册到导航服务器并通过导航服务提出数据访问请求,导航服务器则将用户的请求分解,然后自动导向由它所控制的多台SQL Server,从而在分散数据的基础上提供并行处理能力,我们可以选择它。这些都是在其他条件和环境相同的情况下比较的,这样才有可比性。在数据的分布更新方面,Oracle采用的是基于服务器的自动的2PC(两阶段提交),而Sybase采用的则是基于客户机DB-Library或CT-Library的可编程的2PC,因此我们在选择数据库方面,必须根据需要进行选择,比如,从事的社会保险软件的开发,考虑到数据量大,并发操作比较多,实时性要求高,我们后台基本采取的是ORACLE数据库。Oracle服务器由Oracle数据库和Oracle实例组成。Oracle实例由系统全局区内存结构和用于管理数据库的后台进程组成。

㈢ 如何查看oracle数据库逻辑分区大小

oracle表空间表分区详解及oracle表分区查询使用方法,大家参考使用吧
此文从以下几个方面来整理关于分区表的概念及操作:
1.表空间及分区表的概念
2.表分区的具体作用
3.表分区的优缺点
4.表分区的几种类型及操作方法
5.对表分区的维护性操作.
(1.) 表空间及分区表的概念
表空间:
是一个或多个数据文件的集合,所有的数据对象都存放在指定的表空间中,但主要存放的是表, 所以称作表空间。

分区表:
当表中的数据量不断增大,查询数据的速度就会变慢,应用程序的性能就会下降,这时就应该考虑对表进行分区。表进行分区后,逻辑上表仍然是一张完整的表,只是将表中的数据在物理上存放到多个表空间(物理文件上),这样查询数据时,不至于每次都扫描整张表。

( 2).表分区的具体作用
Oracle的表分区功能通过改善可管理性、性能和可用性,从而为各式应用程序带来了极大的好处。通常,分区可以使某些查询以及维护操作的性能大大提高。此外,分区还可以极大简化常见的管理任务,分区是构建千兆字节数据系统或超高可用性系统的关键工具。

分区功能能够将表、索引或索引组织表进一步细分为段,这些数据库对象的段叫做分区。每个分区有自己的名称,还可以选择自己的存储特性。从数据库管理员的角度来看,一个分区后的对象具有多个段,这些段既可进行集体管理,也可单独管理,这就使数据库管理员在管理分区后的对象时有相当大的灵活性。但是,从应用程序的角度来看,分区后的表与非分区表完全相同,使用 SQL DML 命令访问分区后的表时,无需任何修改。

什么时候使用分区表:
1、表的大小超过2GB。
2、表中包含历史数据,新的数据被增加都新的分区中。

(3).表分区的优缺点
表分区有以下优点:
1、改善查询性能:对分区对象的查询可以仅搜索自己关心的分区,提高检索速度。
2、增强可用性:如果表的某个分区出现故障,表在其他分区的数据仍然可用;
3、维护方便:如果表的某个分区出现故障,需要修复数据,只修复该分区即可;
4、均衡I/O:可以把不同的分区映射到磁盘以平衡I/O,改善整个系统性能。

缺点:
分区表相关:已经存在的表没有方法可以直接转化为分区表。不过 Oracle 提供了在线重定义表的功能。

(4).表分区的几种类型及操作方法
一.范围分区:
范围分区将数据基于范围映射到每一个分区,这个范围是你在创建分区时指定的分区键决定的。这种分区方式是最为常用的,并且分区键经常采用日期。举个例子:你可能会将销售数据按照月份进行分区。
当使用范围分区时,请考虑以下几个规则:
1、每一个分区都必须有一个VALUES LESS THEN子句,它指定了一个不包括在该分区中的上限值。分区键的任何值等于或者大于这个上限值的记录都会被加入到下一个高一些的分区中。
2、所有分区,除了第一个,都会有一个隐式的下限值,这个值就是此分区的前一个分区的上限值。
3、在最高的分区中,MAXVALUE被定义。MAXVALUE代表了一个不确定的值。这个值高于其它分区中的任何分区键的值,也可以理解为高于任何分区中指定的VALUE LESS THEN的值,同时包括空值。
例一:
假设有一个CUSTOMER表,表中有数据200000行,我们将此表通过CUSTOMER_ID进行分区,每个分区存储100000行,我们将每个分区保存到单独的表空间中,这样数据文件就可以跨越多个物理磁盘。下面是创建表和分区的代码,如下:

复制代码代码如下:

CREATE TABLE CUSTOMER
(
CUSTOMER_ID NUMBER NOT NULL PRIMARY KEY,
FIRST_NAME VARCHAR2(30) NOT NULL,
LAST_NAME VARCHAR2(30) NOT NULL,
PHONEVARCHAR2(15) NOT NULL,
EMAILVARCHAR2(80),
STATUS CHAR(1)
)
PARTITION BY RANGE (CUSTOMER_ID)
(
PARTITION CUS_PART1 VALUES LESS THAN (100000) TABLESPACE CUS_TS01,
PARTITION CUS_PART2 VALUES LESS THAN (200000) TABLESPACE CUS_TS02
)

例二:按时间划分

复制代码代码如下:

CREATE TABLE ORDER_ACTIVITIES
(
ORDER_ID NUMBER(7) NOT NULL,
ORDER_DATE DATE,
TOTAL_AMOUNT NUMBER,
CUSTOTMER_ID NUMBER(7),
PAID CHAR(1)
)
PARTITION BY RANGE (ORDER_DATE)
(
PARTITION ORD_ACT_PART01 VALUES LESS THAN (TO_DATE('01- MAY -2003','DD-MON-YYYY')) TABLESPACEORD_TS01,
PARTITION ORD_ACT_PART02 VALUES LESS THAN (TO_DATE('01-JUN-2003','DD-MON-YYYY')) TABLESPACE ORD_TS02,
PARTITION ORD_ACT_PART02 VALUES LESS THAN (TO_DATE('01-JUL-2003','DD-MON-YYYY')) TABLESPACE ORD_TS03
)

例三:MAXVALUE

复制代码代码如下:

CREATE TABLE RangeTable
(
idd INT PRIMARY KEY ,
iNAME VARCHAR(10),
grade INT
)
PARTITION BY RANGE (grade)
(
PARTITION part1 VALUES LESS THEN (1000) TABLESPACE Part1_tb,
PARTITION part2 VALUES LESS THEN (MAXVALUE) TABLESPACE Part2_tb
);

二.列表分区:
该分区的特点是某列的值只有几个,基于这样的特点我们可以采用列表分区。
例一

复制代码代码如下:

CREATE TABLE PROBLEM_TICKETS
(
PROBLEM_ID NUMBER(7) NOT NULL PRIMARY KEY,
DESCRIPTION VARCHAR2(2000),
CUSTOMER_ID NUMBER(7) NOT NULL,
DATE_ENTERED DATE NOT NULL,
STATUS VARCHAR2(20)
)
PARTITION BY LIST (STATUS)
(
PARTITION PROB_ACTIVE VALUES ('ACTIVE') TABLESPACE PROB_TS01,
PARTITION PROB_INACTIVE VALUES ('INACTIVE') TABLESPACE PROB_TS02

)

例二

复制代码代码如下:

CREATE TABLE ListTable
(
id INT PRIMARY KEY ,
name VARCHAR (20),
area VARCHAR (10)
)
PARTITION BY LIST (area)
(
PARTITION part1 VALUES ('guangdong','beijing') TABLESPACE Part1_tb,
PARTITION part2 VALUES ('shanghai','nanjing') TABLESPACE Part2_tb
);
)

三.散列分区:

这类分区是在列值上使用散列算法,以确定将行放入哪个分区中。当列的值没有合适的条件时,建议使用散列分区。
散列分区为通过指定分区编号来均匀分布数据的一种分区类型,因为通过在I/O设备上进行散列分区,使得这些分区大小一致。
例一:

复制代码代码如下:

CREATE TABLE HASH_TABLE
(
COL NUMBER(8),
INF VARCHAR2(100)
)
PARTITION BY HASH (COL)
(
PARTITION PART01 TABLESPACE HASH_TS01,
PARTITION PART02 TABLESPACE HASH_TS02,
PARTITION PART03 TABLESPACE HASH_TS03
)

简写:

复制代码代码如下:

CREATE TABLE emp
(
empno NUMBER (4),
ename VARCHAR2 (30),
sal NUMBER
)
PARTITION BY HASH (empno) PARTITIONS 8
STORE IN (emp1,emp2,emp3,emp4,emp5,emp6,emp7,emp8);

hash分区最主要的机制是根据hash算法来计算具体某条纪录应该插入到哪个分区中,hash算法中最重要的是hash函数,Oracle中如果你要使用hash分区,只需指定分区的数量即可。建议分区的数量采用2的n次方,这样可以使得各个分区间数据分布更加均匀。

四.组合范围散列分区
这种分区是基于范围分区和列表分区,表首先按某列进行范围分区,然后再按某列进行列表分区,分区之中的分区被称为子分区。

复制代码代码如下:

CREATE TABLE SALES
(
PRODUCT_ID VARCHAR2(5),
SALES_DATE DATE,
SALES_COST NUMBER(10),
STATUS VARCHAR2(20)
)
PARTITION BY RANGE(SALES_DATE) SUBPARTITION BY LIST (STATUS)
(
PARTITION P1 VALUES LESS THAN(TO_DATE('2003-01-01','YYYY-MM-DD'))TABLESPACE rptfact2009
(
SUBPARTITION P1SUB1 VALUES ('ACTIVE') TABLESPACE rptfact2009,
SUBPARTITION P1SUB2 VALUES ('INACTIVE') TABLESPACE rptfact2009
),
PARTITION P2 VALUES LESS THAN (TO_DATE('2003-03-01','YYYY-MM-DD')) TABLESPACE rptfact2009
(
SUBPARTITION P2SUB1 VALUES ('ACTIVE') TABLESPACE rptfact2009,
SUBPARTITION P2SUB2 VALUES ('INACTIVE') TABLESPACE rptfact2009
)
)

五.复合范围散列分区:

这种分区是基于范围分区和散列分区,表首先按某列进行范围分区,然后再按某列进行散列分区。

复制代码代码如下:

create table dinya_test
(
transaction_id number primary key,
item_id number(8) not null,
item_description varchar2(300),
transaction_date date
)
partition by range(transaction_date)subpartition by hash(transaction_id) subpartitions 3 store in (dinya_space01,dinya_space02,dinya_space03)
(
partition part_01 values less than(to_date(‘2006-01-01','yyyy-mm-dd')),
partition part_02 values less than(to_date(‘2010-01-01','yyyy-mm-dd')),
partition part_03 values less than(maxvalue)
);

(5).有关表分区的一些维护性操作:
一、添加分区
以下代码给SALES表添加了一个P3分区

复制代码代码如下:

ALTER TABLE SALES ADD PARTITION P3 VALUES LESS THAN(TO_DATE('2003-06-01','YYYY-MM-DD'));

注意:以上添加的分区界限应该高于最后一个分区界限。
以下代码给SALES表的P3分区添加了一个P3SUB1子分区

复制代码代码如下:

ALTER TABLE SALES MODIFY PARTITION P3 ADD SUBPARTITION P3SUB1 VALUES('COMPLETE');

二、删除分区
以下代码删除了P3表分区:

复制代码代码如下:

ALTER TABLE SALES DROP PARTITION P3;

在以下代码删除了P4SUB1子分区:

复制代码代码如下:

ALTER TABLE SALES DROP SUBPARTITION P4SUB1;

注意:如果删除的分区是表中唯一的分区,那么此分区将不能被删除,要想删除此分区,必须删除表。
三、截断分区
截断某个分区是指删除某个分区中的数据,并不会删除分区,也不会删除其它分区中的数据。当表中即使只有一个分区时,也可以截断该分区。通过以下代码截断分区:

复制代码代码如下:

ALTER TABLE SALES TRUNCATE PARTITION P2;

通过以下代码截断子分区:

复制代码代码如下:

ALTER TABLE SALES TRUNCATE SUBPARTITION P2SUB2;

四、合并分区
合并分区是将相邻的分区合并成一个分区,结果分区将采用较高分区的界限,值得注意的是,不能将分区合并到界限较低的分区。以下代码实现了P1 P2分区的合并:

复制代码代码如下:

ALTER TABLE SALES MERGE PARTITIONS P1,P2 INTO PARTITION P2;

五、拆分分区
拆分分区将一个分区拆分两个新分区,拆分后原来分区不再存在。注意不能对HASH类型的分区进行拆分。
ALTER TABLE SALES SBLIT PARTITION P2 AT(TO_DATE('2003-02-01','YYYY-MM-DD')) INTO (PARTITION P21,PARTITION P22);

六、接合分区(coalesca)
结合分区是将散列分区中的数据接合到其它分区中,当散列分区中的数据比较大时,可以增加散列分区,然后进行接合,值得注意的是,接合分区只能用于散列分区中。通过以下代码进行接合分区:

复制代码代码如下:

ALTER TABLE SALES COALESCA PARTITION;

七、重命名表分区
以下代码将P21更改为P2

复制代码代码如下:

ALTER TABLE SALES RENAME PARTITION P21 TO P2;

八、相关查询
跨分区查询

复制代码代码如下:

select sum( *) from
(select count(*) cn from t_table_SS PARTITION (P200709_1)
union all
select count(*) cn from t_table_SS PARTITION (P200709_2)
);

查询表上有多少分区

复制代码代码如下:

SELECT * FROM useR_TAB_PARTITIONS WHERE TABLE_NAME='tableName'

查询索引信息

复制代码代码如下:

select object_name,object_type,tablespace_name,sum(value)
from v$segment_statistics
where statistic_name IN ('physical reads','physical write','logical reads')and object_type='INDEX'
group by object_name,object_type,tablespace_name
order by 4 desc

--显示数据库所有分区表的信息:
select * from DBA_PART_TABLES

--显示当前用户可访问的所有分区表信息:
select * from ALL_PART_TABLES

--显示当前用户所有分区表的信息:
select * from USER_PART_TABLES

--显示表分区信息 显示数据库所有分区表的详细分区信息:
select * from DBA_TAB_PARTITIONS

--显示当前用户可访问的所有分区表的详细分区信息:
select * from ALL_TAB_PARTITIONS

--显示当前用户所有分区表的详细分区信息:
select * from USER_TAB_PARTITIONS

--显示子分区信息 显示数据库所有组合分区表的子分区信息:
select * from DBA_TAB_SUBPARTITIONS

--显示当前用户可访问的所有组合分区表的子分区信息:
select * from ALL_TAB_SUBPARTITIONS

--显示当前用户所有组合分区表的子分区信息:
select * from USER_TAB_SUBPARTITIONS

--显示分区列 显示数据库所有分区表的分区列信息:
select * from DBA_PART_KEY_COLUMNS

--显示当前用户可访问的所有分区表的分区列信息:
select * from ALL_PART_KEY_COLUMNS

--显示当前用户所有分区表的分区列信息:
select * from USER_PART_KEY_COLUMNS

--显示子分区列 显示数据库所有分区表的子分区列信息:
select * from DBA_SUBPART_KEY_COLUMNS

--显示当前用户可访问的所有分区表的子分区列信息:
select * from ALL_SUBPART_KEY_COLUMNS

--显示当前用户所有分区表的子分区列信息:
select * from USER_SUBPART_KEY_COLUMNS

--怎样查询出oracle数据库中所有的的分区表
select * from user_tables a where a.partitioned='YES'

--删除一个表的数据是
truncate table table_name;

--删除分区表一个分区的数据是
alter table table_name truncate partition p5;

㈣ oracle 查看有哪些数据库

查看当前的所有数据库:
select * from v$database;
select name from v$database;

㈤ oracle默认安装有哪几个数据库

oracle的运行结构是:操作系统-->oracle程序-->实例,也就是说一个操作系统下可以创建多个实例,每个实例都有自己的内存结构和进程调度,所以与sqlserver不完全相同。至于默认实例,
oracle选择默认安装时会创建一个orcl实例,相当于你说的master model。不过一般我都是手动创建实例,从来不选默认实例。呵呵

㈥ oracle数据库服务器如何做分布式(注意,不是中间层分布的这种)

读写分离+集群

㈦ oracle是什么意思

Oracle是甲骨文公司的一款关系数据库管理系统。
1、它是在数据库领域一直处于领先地位的产品。可以说Oracle数据库系统是目前世界上流行的关系数据库管理系统,系统可移植性好、使用方便、功能强,适用于各类大、中、小、微机环境。它是一种高效率、可靠性好的适应高吞吐量的数据库解决方案。
2、ORACLE通常应用于大型系统的数据库产品。ORACLE数据库是目前世界上使用最为广泛的数据库管理系统,作为一个通用的数据库系统,它具有完整的数据管理功能;作为一个关系数据库,它是一个完备关系的产品;作为分布式数据库它实现了分布式处理功能。
3、Oracle数据库是数据的物理存储。这就包括(数据文件ORA或者DBF、控制文件、联机日志、参数文件)。其实Oracle数据库的概念和其它数据库不一样,这里的数据库是一个操作系统只有一个库。可以看作是Oracle就只有一个大数据库。

㈧ 解析:怎样理解分布处理和分布式数据库

一个分布式数据库在用户面前为单个逻辑数据库,但实际上是由存储在多台计算机上的一组数据库组成。在几台计算机 上的数据库通过网络可同时修改和存取,每一数据库受它的局部的DBMS控制。分布式数据库中每一个数据库服务器合作地维护全局数据库的一致性。 在系统中的每一台计算机称为结点。如果一结点具有管理数据库 软件,该结点称为数据库服务器。如果一个结点为请求服务器的信息的一应用,该结点称为客户。在ORACLE客户,执行数据库应用,可存取数据信息和与用户交互。在服务器,执行ORACLE软件,处理对ORACLE数据库并发、共享数据存取。ORACLE允许上述两部分在同一台计算机上,但当客户部分和服务器部分是由网连接的不同计算机上时,更有效。 分布处理是由多台处理机分担单个任务的处理。在ORACLE数据库系统中分布处理的例子如: 客户和服务器是位于网络连接的不同计算机上。 单台计算机上有多个处理器,不同处理器分别执行客户应用。 SQL*NET是ORACLE网络接口,允许运行在网络工作站的ORACLE工具和服务器上,可存取、修改、共享和存储在其它服务器上的数据。SAQL*NET可被认为是网络通信的程序接口。SQL*NET利用通信协议和应用程序接口(API)为OARCLE提供一个分布式数据库和分布处理。 SQL*NET驱动器为在数据库服务器上运行的ORACLE进程与ORACLE工具的用户进程之间提供一个接口。 参与分布式数据库的每一服务器是分别地独立地管理数据库,好 像每一数据库不是网络化的数据库。每一个数据库独立地被管理,称为场地自治性。场地自治性有下列好处: ◆系统的结点可反映公司的逻辑组织。 ◆由局部数据库管理员控制局部数据,这样每一个数据库管理员责任域要 小一些,可更好管理。 ◆只要一个数据库和网络是可用,那么全局数据库可部分可用。不会因一个数据库的故 障而停止全部操作或引起性能瓶颈。 ◆故障恢复通常在单个结点上进行。 ◆每个局部数据库存在一个数据字典。 ◆结点可独立地升级软件。 可从分布式数据库的所有结点存取模式对象,因此正像非分布的局部的DBMS,必须提供一种机制,可在局部数据库中引用一个对象。分布式DBMS必须提供一种命名模式,以致分布式数据库中一个对象可在应用中唯一标识和引用。一般彩在层次结构的每一层实施唯一性。分布式DVMS简单地扩充层次命名模型,实施在网络上唯一数据库命名。因此一个对象的全局对象名保证在分布式数据库内是唯一。 ORACLE允许在SQL语句中使用佤对象名引用分布式数据库中的模式对象(表、视图和过程)。在ORACLE中,一个模式对象的全局名由三部分组成:包含对象的模式名、对象名、数据库名、其形式如: [email protected] 其中SCOTT为模式名,EMP为表名,@符号之后为数据库名. 一个远程查询为一查询,是从一个或多个远程表中选择信息,这些表驻留在同一个远程结点. 一个分布式查询可从两个或多个结点检索数据.一个分布式更新可修改两个或两个以上结点的数据. 一个远程事务为一个事务,包含一人或多个远程语句,它所引用的全部是在同一个远程结点上.一个分布式事务中一个事务,包含一个或多个语句修改分布式数据库的两个或多个不同结点的数据. 在分布式数据库中,事务控制必须在网络上直辖市,保证数据一致性.两阶段提交机制保证参与分布式事务的全部数据库服务器是全部提交或全部回滚事务中的语句. ORACLE分布式数据库系统结构可由ORACLE数据库管理员为终端用户和应用提供位置透明性,利用视图、同义词、过程可提供ORACLE分布式数据库系统中的位置透明性. ORACLE允许在SELECT(查询)、INSERT、UPDATE、DELETE、SELECT…FOR UPDATE和LOCK TABLE语句中引用远程数据。对于查询,包含有连接、聚合、子查询和SELECT …FOR UPDATE,可引用本地的、远程的表和视图。对于UPDATE、INSERT、DELETE和LOCK TABLE语句可引用本地的和远程的表。注意在引用LONG和LONG RAW列、序列、修改表和封锁表时,必须位于同一个结点。ORACLE不允许作远程DDL语句。 在单场地或分布式数据库中,所有事务都是用COMMIT或ROLLBACK语句中止。ORACLE提供两种机制实现分布式数据库中表重复的透明性:表快照提供异步的表重复;触发器实现同步的表的重复。在两种情况下,都实现了对表重复的透明性。

㈨ 大型Oracle数据库如何设计

超大型系统的特点为: 1、处理的用户数一般都超过百万,有的还超过千万,数据库的数据量一般超过1TB; 2、系统必须提供实时响应功能,系统需不停机运行,要求系统有很高的可用性及可扩展性。 为了能达到以上要求,除了需要性能优越的计算机和海量存储设备外,还需要先进的数据库结构设计和优化的应用系统。 一般的超大型系统采用双机或多机集群系统。下面以数据库采用Oracle 8.0.6并行服务器为例来谈谈超大型数据库设计方法: 确定系统的ORACLE并行服务器应用划分策略 数据库物理结构的设计 系统硬盘的划分及分配 备份及恢复策略的考虑 二、Oracle并行服务器应用划分策略 Oracle并行服务器允许不同节点上的多个INSTANCE实例同时访问一个数据库,以提高系统的可用性、可扩展性及性能。Oracle并行服务器中的每个INSTANCE实例都可将共享数据库中的表或索引的数据块读入本地的缓冲区中,这就意味着一个数据块可存在于多个INSTANCE实例的SGA区中。那么保持这些缓冲区的数据的一致性就很重要。Oracle使用 PCM( Parallel Cache Management)锁维护缓冲区的一致性,Oracle同时通过I DLM(集成的分布式锁管理器)实现PCM 锁,并通过专门的LCK进程实现INSTANCE实例间的数据一致。 考虑这种情况:INSTANCE1对BLOCK X块修改,这时INSTANCE2对BLOCK X块也需要修改。Oracle并行服务器利用PCM锁机制,使BLOCK X从INSTANCE 1的SGA区写入数据库数据文件中,又从数据文件中把BLOCK X块读入INSTANCE2的SGA区中。发生这种情况即为一个PING。PING使原来1个MEMORY IO可以完成的工作变成2个DISK IO和1个 MEMORY IO才能够完成,如果系统中有过多的PING,将大大降低系统的性能。 Oracle并行服务器中的每个PCM锁可管理多个数据块。PCM锁管理的数据块的个数与分配给一个数据文件的PCM锁的个数及该数据文件的大小有关。当INSTANCE 1和INSTANCE 2要操作不同的BLOCK,如果这些BLOCK 是由同一个PCM锁管理的,仍然会发生PING。这些PING称为FALSE PING。当多个INSTANCE访问相同的BLOCK而产生的PING是TRUE PING。 合理的应用划分使不同的应用访问不同的数据,可避免或减少TRUE PING;通过给FALSE PING较多的数据文件分配更多的PCM锁可减少 FALSE PING的次数,增加PCM锁不能减少TRUE PING。 所以,Oracle并行服务器设计的目的是使系统交易处理合理的分布在INSTANCE实例间,以最小化PING,同时合理的分配PCM锁,减少FALSE PING。设计的关键是找出可能产生的冲突,从而决定应用划分的策略。应用划分有如下四种方法: 1、根据功能模块划分,不同的节点运行不同的应用 2、根据用户划分,不同类型的用户运行在不同的节点上 3、根据数据划分,不同的节点访问不同的数据或索引 4、根据时间划分,不同的应用在不同的时间段运行 应用划分的两个重要原则是使PING最小化及使各节点的负载大致均衡。 三、数据库物理结构的设计 数据库物理结构设计包括确定表及索引的物理存储参数,确定及分配数据库表空间,确定初始的回滚段,临时表空间,redo log files等,并确定主要的初始化参数。物理设计的目的是提高系统的性能。整个物理设计的参数可以根据实际运行情况作调整。 表及索引数据量估算及物理存储参数的设置 表及索引的存储容量估算是根据其记录长度及估算的最大记录数确定的。在容量计算中考虑了数据块的头开销及记录和字段的头开销等等。

㈩ Oracle里有没有分布式数据库的概念

因为看了Kamus, yangtingkun, eygle大人写的高级复制文档有这样一段话:
Replicated Database 和Distributed Database 并不一样,在分布式数据库系统中数据在
多个站点同时有效,但是一个表只会存在于一个站点中,而对于Replication 来说相同
的数据将同时存在于多个站点中。
而且我们头总问Oracle里有没有分布式数据库,所以才问的。

热点内容
谷歌浏览器缓存删除 发布:2025-01-16 10:19:36 浏览:413
数据库txt 发布:2025-01-16 10:16:41 浏览:456
小米账号王者传奇脚本挂机 发布:2025-01-16 10:07:25 浏览:916
Vs自带的c反编译器在哪找 发布:2025-01-16 10:06:42 浏览:55
如何查网线的密码 发布:2025-01-16 10:03:41 浏览:648
java属性访问权限 发布:2025-01-16 09:59:48 浏览:524
python扫雷 发布:2025-01-16 09:58:40 浏览:963
不需要无障碍的脚本 发布:2025-01-16 09:58:31 浏览:705
oracle升级脚本 发布:2025-01-16 09:37:39 浏览:21
垂直式压缩 发布:2025-01-16 09:15:38 浏览:532