数据库紧急救援服务 oracle数据库不明原因宕机,无法启动怎么办

数据库紧急救援服务 oracle数据库不明原因宕机,无法启动怎么办,第1张

不管是单机、双机热备份(HA系统)、RAC(Oracle

Real

Application)环境,如果数据库出现异常宕机,并且无法重新启动,那你可能面对了极为严重的问题。

检查Oracle的alert文件可能可以获得更为详细的故障信息,当您的技术力量无法判断或解决故障时,可以联系重庆思庄科技协助解决和处理。

data guard简称DG,是一个主库(包括instance和数据库文件),多个备库(多个instance、多套数据库文件):

主库和备库之间都是独立的数据库;

主库和备库的数据完全相同,DG通过复制、重演redo log,把主库的数据复制到备库中,所以备库的数据会有一点时间延迟;

DG的作用,当主库down机后,可以用备库顶上;或者主机负责数据写入、备库给外界提供数据读取,实现读写分离;

RAC,全称Realtime Application Cluster,多个instance,一套数据文件:

多个instance之间有自己独立的物理内容,但是共享内存数据,协同工作;

多个instance之间共享一套数据文件;

RAC作用,提供instance级别的HA,High Availability,即高可用,一个instance down掉了,另一个instance自动顶上;其次,在应用分离的情况下,可以提供SQL性能;

区别:个人认为,RAC提供了instance级别的HA,而DG提供了数据库文件的HA,所以大部分的oracle 724解决方案都是RAC+DG。

大家对通常oracle中的cluster的理解是不准确的,经常和sql server中的cluster index混淆。Cluster是存储一组table的一种方法,这些table共享同一数据块中的某些相同column,并把不同table在这一共享column上值相同的data row存储到同一block上。在sql server中的cluster index强制行根据index key按存储顺序存储,这一点和oracle中的IOT类似。

从下图中我们可以清楚的看到cluster 和非cluster 的一组table的物理存储的区别。在cluster中,单个block上的数据可能来自多个table,概念上可以存储“预连接”的数据。单个table也可以使用cluster,即根据某些column按组存储数据。如图中,所有部门ID为 20和 110的部门信息和员工信息的数据都将存储在同一block。注意,这里存储的并不是排序的数据(那是IOT的任务),存储的是按部门ID分组集合的数据,是以heap的方式存储的。因此,部门20刚好和部门110相邻,而部门99和部门100相距很远(硬盘的物理位置)。

当单个block放不下时,额外的block将链接到最初的block,来包容溢出的数据,这种方式和在IOT中溢出block非常相似。

现在我们看看如何创建一个cluster。在cluster中创建一系列table是很简单的,对象存储定义如PCTFREE,PCTUSED,INITIAL都是和cluster相关的,而不是和table相关。这是因为在cluster中存储了若干table,每个table在同一个block中拥有不同的PCTFREE没有意义。

SQL> create cluster e_d_cluster

2 (deptid number(2))

3 size 1024

4 /

Cluster created

这里首先创建了一个index cluster。这个cluster的key为 deptid,在table中这个列可以不命名为deptid,但数据类型number(2)必须匹配。Size选项是用来告诉oracle预计有1024

字节数据和每个cluser key相关。Oracle将使用这个信息来计算每个block能容纳的最大cluster key数目。因此size太高,在每一block将得到很少的key,并且将使用比需要的更多的空间;设置容量太低,将得到过多的数据连接,这将偏离使用cluster的目的。Size是cluster的重要参数。

现在我们来创建cluster index。在把数据放入之前,需要索引cluster。Cluster index的作用是存储一个cluster key,并且返回包含该key的block的地址。

SQL> create index e_d_cluster_idx

2 on cluster e_d_cluster

3 /

Index created

Cluster key 的index可以使用index所有的正常的存储参数,并且可以位于另一个tablespace。它是一个正常的index,能够索引到一个cluster,并且也包含一个完全null的条目。

我们在cluster中创建table:

SQL> create table department

2 (deptid number(2) primary key,

3 dname varchar2(14),

4 loc varchar2(13))

5 cluster e_d_cluster(deptid);

Table created

SQL> create table employee

2 (empid number primary key,

3 ename varchar2(10),

4 job varchar2(10),

5 mgr number,

6 hiredate date,

7 sal number,

8 comm number,

9 deptid number(2) references department(deptid))

10 cluster e_d_cluster(deptid);

Table created

这里创建table与普通的table唯一的区别就是使用了cluster关键字,我们往table中装载数据:

SQL> begin

2 for x in(select from scottdept)

3 loop

4 insert into department

5 values(xdeptno,xdname,xloc);

6 insert into employee

7 select from scottemp

8 where deptno = xdeptno;

9 end loop;

10 end;

11 /

PL/SQL procedure successfully completed

我们可以看到目前table中装载了如下数据:

SQL> select from department;

DEPTID DNAME LOC

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

10 ACCOUNTING NEW YORK

20 RESEARCH DALLAS

30 SALES CHICAGO

40 OPERATIONS BOSTON

SQL> select from employee;

EMPID ENAME JOB MGR HIREDATE SAL COMM DEPTID

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

7782 CLARK MANAGER 7839 1981-6-9 2450 10

7839 KING PRESIDENT 1981-11-17 5000 10

7934 MILLER CLERK 7782 1982-1-23 1300 10

7369 SMITH CLERK 7902 1980-12-17 800 20

7566 JONES MANAGER 7839 1981-4-2 2975 20

7788 SCOTT ANALYST 7566 1982-12-9 3000 20

7876 ADAMS CLERK 7788 1983-1-12 1100 20

7902 FORD ANALYST 7566 1981-12-3 3000 20

7499 ALLEN SALESMAN 7698 1981-2-20 1600 300 30

7521 WARD SALESMAN 7698 1981-2-22 1250 500 30

7654 MARTIN SALESMAN 7698 1981-9-28 1250 1400 30

7698 BLAKE MANAGER 7839 1981-5-1 2850 30

7844 TURNER SALESMAN 7698 1981-9-8 1500 0 30

7900 JAMES CLERK 7698 1981-12-3 950 30

现在我们看看这两个table数据存储的位置:

SQL> select dbms_rowidrowid_block_number(departmentrowid) dept_rid,

2 dbms_rowidrowid_block_number(employeerowid) emp_rid,departmentdeptid

3 from department,employee

4 where employeedeptid = departmentdeptid;

DEPT_RID EMP_RID DEPTID

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

5587 5587 10

5587 5587 10

5587 5587 10

5587 5587 20

5587 5587 20

5587 5587 20

5587 5587 20

5587 5587 20

5587 5587 30

5587 5587 30

5587 5587 30

5587 5587 30

5587 5587 30

5587 5587 30

可以看到部门ID相同的数据存储在一个block上。我们为什么推荐上述方法对cluster进行最初的装载呢?这样能够保证如果有些cluster key的相关数据超过了size,仍能使大部分数据聚集在一个block上。这只适用于最初的数据装载,在这以后,可以使用事务对cluster中的table insert数据。

由于cluster中的特殊的数据存储方式,出现了这样一个问题,rowid出现了重复,现在rowid只能在一个table中唯一标识一行数据了(另一种rowid重复出现在transport tablespace的 *** 作后)。

SQL> select rowid from department

2 intersect

3 select rowid from employee;

ROWID

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

AAAGWQAADAAABXTAAA

AAAGWQAADAAABXTAAB

AAAGWQAADAAABXTAAC

AAAGWQAADAAABXTAAD

RAC,全称real application clusters,译为“实时应用集群”, 是Oracle新版数据库中采用的一项新技术,是高可用性的一种,也是Oracle数据库支持网格计算环境的核心技术。

HA,双机集群,集群技术是新兴起的一项高性能计算技术。它是将一组相互独立的计算机通过网络整合成一个单一的计算机系统, 并以单一系统的模式加以管理。其目的是实现系统高可靠性和抗灾难性, 同时提高系统的可用性和可缩放性。

异构容灾,所谓的异构是指不同的厂商的数据存储设备,容灾是指在相隔较远的异地,建立两套或多套功能相同的IT系统,互相之间可以进行健康状态监视和功能切换,当一处系统因意外(如火灾、地震等)停止工作时,整个应用系统可以切换到另一处,使得该系统功能可以继续正常工作。异构容灾就是不同设备环境下实现IT系统数据实时保护。

ERP即企业资源计划 enterprise resource planning (ERP) ,通过反馈的物流和反馈的信息流、资金流,把客户需要和企业内部的生产经营活动以及供应商的资源整合在一起,体现完全按用户需要进行经营管理的一种全新的管理方法。

以上就是关于数据库紧急救援服务 oracle数据库不明原因宕机,无法启动怎么办全部的内容,包括:数据库紧急救援服务 oracle数据库不明原因宕机,无法启动怎么办、Oracle dataguard 和Oracle rac的区别和联系、Oracle中的cluster是什么意思,它有什么作用等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9289454.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-26
下一篇 2023-04-26

发表评论

登录后才能评论

评论列表(0条)

保存