探索ORACLE之ASM04_维护

探索ORACLE之ASM04_维护

作者:吴伟龙

 

一、  ASM实例相关操作:

ASM实例的管理,启动,关闭

ASM实例的启动和数据库实例的启动有严格的先后关系,ASM启动一定早于数据库实例,关闭一定晚于ASM实例,因为它是数据库数据文件存储位置。如果ASM没有起来,起数据库将会报ORA-17503;ORA-15077的错误,错误信息如下:

 

SQL>startup

ORA-01078:failure in processing system parameters

ORA-01565:error in identifying file '+ASMGROUP1/WWL/spfileWWL.ora'

ORA-17503:ksfdopn:2 Failed to open file +ASMGROUP1/WWL/spfileWWL.ora

ORA-15077:could not locate ASM instance serving a required diskgroup

SQL>

 

1.1  ASM启动的方法:

 

SQL>startup

ASMinstance started

 

TotalSystem Global Area   83886080 bytes

FixedSize                  1217836 bytes

VariableSize              57502420 bytes

ASMCache                  25165824 bytes

ASMdiskgroups mounted

SQL>select instance_name,status from v$instance;

 

INSTANCE_NAME    STATUS

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

+ASM             STARTED

 

SQL>

 

1.2  ASM关闭的方法 (必须先关闭数据库)

没有关闭RDBMS实例关闭ASM将报错ORA-15097,提示已连接RDBMS实例,无法关闭ASM实例

$ export ORACLE_SID=+ASM

$ sqlplus / as sysdba

SQL> shutdown immediate

ORA-15097: cannot SHUTDOWNASM instance with connected RDBMS instance

关闭RDBMS实例状态ASM是可以正常关闭的。

$export ORACLE_SID=WWL    ---先关闭在ASM上运行的RDBMS实例

$sqlplus / as sysdba

SQL> shutdown immediate

Database closed.

Database dismounted.

ORACLE instance shut down.

SQL>

$export ORACLE_SID=+ASM  ---再关闭ASM实例

$ sqlplus / as sysdba

SQL> shutdown immediate

ASM diskgroups dismounted

ASM instance shutdown

SQL>

 

二、  ASM三种磁盘组及磁盘的添加和维护

1、ASM磁盘的添加及删除

1.1   添加这个步骤所需的磁盘(/dev/sdd -- /dev/sdm 共10块10G的盘)

1.2   通过root用户查看下当前有几个ASM磁盘,磁盘状态,实例状态

# oracleasm listdisks

VOL1

VOL2

# oracleasm querydisk VOL1

Disk"VOL1" is a valid ASM disk

# oracleasm querydisk VOL2

Disk"VOL2" is a valid ASM disk

# ls -l /dev/oracleasm/disks/*

brw-rw---- 1oracle dba 8, 17 Apr 12 05:30 /dev/oracleasm/disks/VOL1

brw-rw---- 1oracle dba 8, 33 Apr 12 05:30 /dev/oracleasm/disks/VOL2

# oracleasm status

Checking if ASMis loaded: yes

Checking if /dev/oracleasm is mounted: yes

  
  我们已知数据库当有两块通过ASMLiB已经标记了的磁盘,并且状态是正常的

 

1.3   开始通过ASMLib来标记新的磁盘,用于后面的实验:

l  报错了,很经典,是由于没有创建分区导致:

# /etc/init.d/oracleasm createdisk VOL3 /dev/sdd

Marking disk"VOL3" as an ASM disk: [FAILED]

l  先创建分区方法:fdisk /dev/sdd /n/p/1/回车/回车/w,将所有磁盘都创建分区。

# /etc/init.d/oracleasmcreatedisk VOL3 /dev/sdd1

Marking disk "VOL3" as anASM disk: [  OK  ]   ---可以看到,能正常创建

           # sh oracleasm   通过执行脚本命令,新建10个磁盘已全部完成标记

Marking disk "VOL4" as an ASM disk: [  OK  ]

Marking disk "VOL5" as an ASM disk: [  OK  ]

Marking disk "VOL6" as an ASM disk: [  OK  ]

Marking disk "VOL7" as an ASM disk: [  OK  ]

Marking disk "VOL8" as an ASM disk: [  OK  ]

Marking disk "VOL9" as an ASM disk: [  OK  ]

Marking disk "VOL10" as an ASM disk: [  OK  ]

Marking disk "VOL11" as an ASM disk: [  OK  ]

Marking disk "VOL12" as an ASM disk: [  OK  ]

 

1.4   为ASMGROUP1磁盘组添加删除磁盘

l  查看磁盘组的状态

SQL> selectGROUP_NUMBER,NAME,STATE,TYPE from v$asm_diskgroup;

 

GROUP_NUMBER   NAME      STATE       TYPE

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

1  ASMGROUP1  CONNECTED  NORMAL

           SQL> SELECT a.name GRPNAME,b.group_number GR_NUMBER,b.disk_numberDK_NUMBER,b.name ASMFILE,b.path,b.mount_status,b.state FROM v$asm_diskgroupa,v$asm_disk b;

 

GRPNAME    GR_NUMBER  DK_NUMBER ASMFILE                        PATH                      MOUNT_S STATE

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

ASMGROUP1  1    0ASMGROUP1_0000    /dev/oracleasm/disks/VOL1OPENED  NORMAL

ASMGROUP1 1   1ASMGROUP1_0001     /dev/oracleasm/disks/VOL2 OPENED  NORMAL

 

l  查看磁盘组ASMGROUP1中的成员

SQL> selectgroup_number,disk_number, failgroup,name,path from v$asm_disk where FAILGROUPlike 'ASMGROUP1%';

 

GROUP_NUMBERDISK_NUMBER FAILGROUP                     NAME                          PATH

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

          2           1 ASMGROUP1_0001                 ASMGROUP1_0001                 /dev/oracleasm/disks/VOL2

           2           0 ASMGROUP1_0000                 ASMGROUP1_0000                 /dev/oracleasm/disks/VOL1

 

SQL>

l  添加为ASMGROUP1添加磁盘

SQL> alterdiskgroup ASMGROUP1 add disk '/dev/oracleasm/disks/VOL10';

 

Diskgroupaltered.

l  我们可以看到已经添加成功了

SQL>  select group_number,disk_number,failgroup,name,path from v$asm_disk where FAILGROUP like 'ASMGROUP1%';

 

GROUP_NUMBERDISK_NUMBER FAILGROUP                      NAME                           PATH

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

           2           2 ASMGROUP1_0002                 ASMGROUP1_0002                 /dev/oracleasm/disks/VOL10

           2           1 ASMGROUP1_0001                 ASMGROUP1_0001                 /dev/oracleasm/disks/VOL2

           2           0 ASMGROUP1_0000                 ASMGROUP1_0000                 /dev/oracleasm/disks/VOL1

 

2、ASM三种磁盘组的创建及删除(High Normal Extermal

2.1  创建High级别的ASM磁盘组,最少需要三块磁盘来创建。

SQL> create diskgroup asmhigh high redundancy disk'/dev/oracleasm/disks/VOL3','/dev/oracleasm/disks/VOL4','/dev/oracleasm/disks/VOL5';

 

Diskgroupcreated.

 

2.2  创建Normal级别的ASM磁盘,最少需要两个磁盘来创建。

SQL> creatediskgroup asmnormal normal redundancy disk'/dev/oracleasm/disks/VOL6','/dev/oracleasm/disks/VOL7';

 

Diskgroupcreated.

 

 

2.3  创建Extermal级别的ASM磁盘,最少需要一个磁盘来创建。

SQL> creatediskgroup asmexternal external redundancy disk '/dev/oracleasm/disks/VOL8';

 

Diskgroupcreated.

                                                                       

2.4  查看刚才创建的磁盘状态

SQL> select name,state,type fromv$asm_diskgroup;

 

NAME            STATE       TYPE

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

ASMGROUP1       MOUNTED    NORMAL

ASMHIGH         MOUNTED     HIGH

ASMNORMAL      MOUNTED    NORMAL

ASMEXTERNAL     MOUNTED    EXTERN

2.5         为ASM磁盘组添加成员,在这里我们就以Normal磁盘组来进行成员添加的例子:

SQL> alter diskgroup ASMNORMAL add disk'/dev/oracleasm/disks/VOL9';

 

Diskgroup altered.

 

SQL> select group_number,disk_number,failgroup,name,path from v$asm_disk where FAILGROUP like 'ASMNORMAL%';

 

GROUP_NUMBER DISK_NUMBER FAILGROUP                      NAME                           PATH

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

          4           2 ASMNORMAL_0002                 ASMNORMAL_0002                 /dev/oracleasm/disks/VOL9

          4           1 ASMNORMAL_0001                 ASMNORMAL_0001                 /dev/oracleasm/disks/VOL7

           4           0 ASMNORMAL_0000                 ASMNORMAL_0000                 /dev/oracleasm/disks/VOL6

 

SQL>

2.6         删除磁盘组成员,在这里我们同样以NORMAL磁盘组来进行成员删除的例子:

SQL> alter diskgroup ASMNORMAL drop disk ASMNORMAL_0002;

 

Diskgroup altered.

 

SQL> select group_number,disk_number, failgroup,name,path fromv$asm_disk where FAILGROUP like 'ASMNORMAL%';

 

GROUP_NUMBER DISK_NUMBER FAILGROUP                      NAME                           PATH

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

           4           1 ASMNORMAL_0001                 ASMNORMAL_0001                 /dev/oracleasm/disks/VOL7

           4           0 ASMNORMAL_0000                 ASMNORMAL_0000                 /dev/oracleasm/disks/VOL6

 

SQL>

 

 

三、  模拟磁盘故障

3.1      在AMSGROUP1(NORMAL类型)磁盘组中写数据

SQL> selecttablespace_name,file_name,bytes/1024/1024 M from dba_data_files;

 

TABLESPACE_NAMEFILE_NAME                                              M

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

USERS          +ASMGROUP1/wwl/datafile/users.259.780215953            5

SYSAUX         +ASMGROUP1/wwl/datafile/sysaux.257.780215951         230

UNDOTBS1        +ASMGROUP1/wwl/datafile/undotbs1.258.78021595         25

                3

 

SYSTEM         +ASMGROUP1/wwl/datafile/system.256.780215951         480

ASM            +ASMGROUP1/wwl/datafile/asm.270.780300769            100

ASM             +ASMGROUP1/wwl/datafile/asm.271.780300809            100

 

6 rowsselected.

如上我们可以看到,我们所有的表空间均是放在ASMGROUP1中的,一会儿我们将对表空间写如数据,并删除一磁盘。

 

3.2     我们查看下该表空间的默认用户

SQL> selectusername,default_tablespace from dba_users where DEFAULT_TABLESPACE='ASM';

 

USERNAME                       DEFAULT_TABLESPACE

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

WWL                            ASM

3.3     在ASM表空间写入数据。

通过WWL用户登录到系统创建一张表,用来测试.

SQL> connwwl/wwl

Connected.

SQL> createtable wwl (id varchar(5),name varchar(10));

 

Table created.

 

SQL>  begin

  2  fori in 1..1000 loop

  3 insert into wwl values (15,'wwl15');

  4  endloop;

  5  end;

  6  /

 

PL/SQLprocedure successfully completed.

我们创建了一张wwl的表,并且插入了1000行数据

SQL> selectcount(*) from wwl;

 

  COUNT(*)

----------

      1000

3.4     模拟磁盘突然损坏

[root@wwl ~]#oracleasm deletedisk VOL2;

Clearing diskheader: done

Dropping disk:done

[root@wwl ~]#

仔细看下面,我们通过如上的命令删除了VOL2后,现在只认到一个磁盘了。

SQL> selectgroup_number,disk_number, failgroup,name,path from v$asm_disk where FAILGROUPlike 'ASMGROUP%';

 

GROUP_NUMBERDISK_NUMBER FAILGROUP                     NAME                          PATH

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

           2           0 ASMGROUP1_0000                 ASMGROUP1_0000                 /dev/oracleasm/disks/VOL1

 

SQL>

但是我们的实例和我们刚才创建的表数据都没有丢失,这就是冗余的好处,NORMAL模式它是用牺牲一块磁盘的空间来保障数据的安全性的,hight模式是至少牺牲一块硬盘来保障数据的安全性。

SQL> selectcount(*) from wwl;

 

  COUNT(*)

----------

      1000

3.5      而且业务是不会中断的,但是在日志和硬盘指示灯上会有告警:

ASM日志信息如下:

WARNING:offlining disk 2.3916240783 (ASMGROUP1_0002) with mask 0x1

NOTE: PSTupdate: grp = 2, dsk = 2, mode = 0x6

NOTE: cacheclosing disk 2 of grp 2: ASMGROUP1_0002

NOTE: PSTupdate: grp = 2

NOTE: erasingheader on grp 2 disk ASMGROUP1_0002

 

3.6     这个时候我们需要尽快更换新的硬盘,因为发生这问题之后如果另外一个磁盘再损坏的话那将是不可弥补的数据丢失,更换新硬盘后,数据将会再次进行同步。

3.7      

四、  ASM别名管理

别名就是外号,比如说当系统自动产生的名称太过复杂不怎么好记,DBA可以通过别名,为它创建一个简单化的名称,而又不会对其现有名称造成任何影响。ASM中创建别名是通过alter
diskgroup的alias子句实现,支持增加/修改/删除等多项操作。V$ASM_ALIAS视图中可以查询到当前实例中创建的别名。

4.1   添加别名

SQL> alter diskgroup ASMGROUP1 add alias'+ASMGROUP1/wwl/datafile/asm01.dbf' for'+ASMGROUP1/wwl/datafile/asm.270.780300769';

 

Diskgroup altered.

4.2   修改别名

SQL> alter diskgroup ASMGROUP1 renamealias '+ASMGROUP1/wwl/datafile/asm01.dbf' for'+ASMGROUP1/wwl/datafile/asm.270.780300769';

 

Diskgroup altered.

4.3   删除别名

SQL> alter diskgroup ASMGROUP1 dropalias '+ASMGROUP1/wwl/datafile/asm01.dbf' for'+ASMGROUP1/wwl/datafile/asm.270.780300769';

 

Diskgroup altered.

  无论是添加、删除或是修改别名,对原文件路径均不会有影响。

 

五、  目录及目录文件管理

5.1  创建目录

SQL> alter diskgroup ASMGROUP1 add directory '+ASMGROUP1/WWL1';

 

Diskgroupaltered.

5.2  修改目录

SQL> alterdiskgroup ASMGROUP1 rename directory '+ASMGROUP1/WWL1' to '+ASMGROUP1/WWL2';

 

Diskgroupaltered.

5.3  删除目录

SQL> alter diskgroup ASMGROUP1 drop directory '+ASMGROUP1/WWL2';

 

Diskgroupaltered.

 

六、  手动平衡磁盘组

一般情况下ASM都会自动对其下的磁盘组进行平衡,不过ORACLE也提供了手动平衡磁盘组的方式,通过alter
diskgroup ... power 语句。前面提到过磁盘组的平衡度有0到11多个级别,默认是按照ASM_POWER_LIMIT初始化参数中设置的值,手动平衡的话,设置的平衡度可以与初始化参数中并不相同,例如,设置磁盘组平衡度为5,语句如下:

     SQL>alter diskgroup asmgroup1 rebalance power 5;

Diskgroup altered.

 

七、  通过ASMCMD工具管理ASM

[oracle@wwl ~]$ which asmcmd

/oracle/orahome/10.2.0/db_1/bin/asmcmd

[oracle@wwl ~]$ cd/oracle/orahome/10.2.0/db_1/bin/

ASMCMD> ls 

ASMEXTERNAL/

ASMGROUP1/

ASMHIGH/

ASMNORMAL/

ASMCMD>

ASMCMD> help

       asmcmd [-p] [command]

 

       The environment variables ORACLE_HOME and ORACLE_SID determine the

       instance to which the program connects, and ASMCMD establishes a

       bequeath connection to it, in the same manner as a SQLPLUS / AS

       SYSDBA.  The user must be a memberof the SYSDBA group.

 

       Specifying the -p option allows the current directory to be displayed

       in the command prompt, like so:

 

       ASMCMD [+DATAFILE/ORCL/CONTROLFILE] >

 

       [command] specifies one of the following commands, along with its

       parameters.

 

       Type "help [command]" to get help on a specific ASMCMDcommand.

 

       commands:

       --------

cd:------------------------------------------进入下级目录或进入所需要的目录

du:------------------------------------------显示指定的ASM目录下ASM文件占用的所有磁盘空间

find:-----------------------------------------查找所需的文件

help:-----------------------------------------显示帮助信息

ls:---------------------------------------------列出ASM目录下的内容及其属性

lsct:-------------------------------------------列出当前ASM客户端的信息

lsdg:-------------------------------------------列出所有磁盘组及其属性

mkalias:--------------------------------------为系统生成的文件名创建别名

mkdir:----------------------------------------创建新目录

pwd:------------------------------------------显示当前目录路径

rm:--------------------------------------------删除ASM目录下的某个文件或文件夹

rmalias:--------------------------------------删除别名

ASMCMD>

要查看某个命令的相信通过在命令前添加help来查看,如下:

ASMCMD> help cd

       cd <dir>

 

       Change the current directory to <dir>.

ASMCMD> help du

       du [-H] [dir]

 

       Display total space used for files located recursively under [dir],

       similar to "du -s" under UNIX; default is the currentdirectory.  Two

       values are returned, both in units of megabytes.  The first value does

       not take into account mirroring of the diskgroup while the second does.

       For instance, if a file occupies 100 MB of space, then it actually

       takes up 200 MB of space on a normal redundancy diskgroup and 300 MB

       of space on a high redundancy diskgroup. 

 

       [dir] can also contain wildcards.

 

       The -H flag suppresses the column headers from the output.

ASMCMD> help find

       find [-t <type>] <dir> <pattern>

 

       Find the absolute paths of all occurrences of <pattern> under<dir>.

       <pattern> can be a directory and may include wildcards.  <dir> may also

       include wildcards.  Note thatdirectory names in the results have the

       "/" suffix to clarify their identity.

 

       The -t option allows searching by file type.  For instance, one can

       search for all the control files at once.  <type> must be one of the

       valid values in V$ASM_FILE.TYPE.

ASMCMD>

 

八、  oracleasm工具的使用和语法介绍

[root@wwl ~]# oracleasm --help

Usage: oracleasm[--exec-path=<exec_path>] <command> [ <args> ]

      oracleasm --exec-path

      oracleasm -h

      oracleasm -V

 

The basic oracleasm commands are:

   configure        Configure the OracleLinux ASMLib driver

   init             Load andinitialize the ASMLib driver

   exit             Stop the ASMLibdriver

   scandisks        Scan the systemfor Oracle ASMLib disks

   status           Display thestatus of the Oracle ASMLib driver

   listdisks        List known OracleASMLib disks

   querydisk        Determine if adisk belongs to Oracle ASMlib

   createdisk       Allocate a devicefor Oracle ASMLib use

   deletedisk       Return a deviceto the operating system

   renamedisk       Change the labelof an Oracle ASMlib disk

   update-driver    Download thelatest ASMLib driver

[root@wwl ~]#

 

 

九、  ASM相关视图(V$)和数据字典(X$)

ASM由于其高度的封装性,使得我们很难知道窥探其内部的原理。可以通过一下视图和数据字典来来查看ASM的信息。

相关视图和数据字典


View Name


X$ Table name


Description


V$ASM_DISKGROUP


X$KFGRP


performs  disk discovery and lists diskgroups


V$ASM_DISKGROUP_STAT


X$KFGRP_STAT


diskgroup  stats without disk discovery


V$ASM_DISK


X$KFDSK,  X$KFKID


performs  disk discovery, lists disks and their usage metrics


V$ASM_DISK_STAT


X$KFDSK_STAT,  X$KFKID


lists  disks and their usage metrics


V$ASM_FILE


X$KFFIL


lists  ASM files, including metadata/asmdisk files


V$ASM_ALIAS


X$KFALS


lists  ASM aliases, files and directories


V$ASM_TEMPLATE


X$KFTMTA


lists  the available templates and their properties


V$ASM_CLIENT


X$KFNCL


lists  DB instances connected to ASM


V$ASM_OPERATION


X$KFGMG


lists  rebalancing operations


N.A.


X$KFKLIB


available  libraries, includes asmlib path


N.A.


X$KFDPARTNER


lists  disk-to-partner relationships


N.A.


X$KFFXP


extent  map table for all ASM files


N.A.


X$KFDAT


extent  list for all ASM disks


N.A.


X$KFBH


describes  the ASM cache (buffer cache of ASM in blocks of 4K (_asm_blksize)


N.A.


X$KFCCE


a  linked list of ASM blocks. to be further investigated

This list isobtained querying v$fixed_view_definitionwhere view_name like '%ASM%' whichexposes all the v$ and gv$ views with theirdefinition. Fixed tables are exposedby querying v$fixed_table where name like'x$kf%' (ASM fixed tables
use the'X$KF' prefix).

SQL>select* fromv$fixed_view_definition whereview_name like '%ASM%';

SQL>select* from sys.v$fixed_tablewhere name like 'X$KF%' ;

 

十、  ASM常见的错误处理

错误一、

ORA-15097:cannotSHUTDOWN ASM instance with connected RDBMS instance

解决办法:

发生这个问题,唯一的一个原因就是Oracle实例没有关闭,或ORACLE实例正在关闭或处于挂起状态,导致ASM实例无法关闭,解决办法,关闭RDBMS实例后再关闭ASM实例。

错误二、

[root@wwl ~]# /etc/init.d/oracleasm createdisk VOL3 /dev/sdd

Marking disk "VOL3" as an ASM disk: [FAILED]

   报这个错的原因在于磁盘为分区导致。在创建ASM的之前必须线将磁盘分区,但不能格式化,后执行创建就不会有问题了。

 

十一、       ASM 扩展性

  • 最多支持63个磁盘组;    
  • 最多支持10000个磁盘;    
  • 最大支持4pb/磁盘;    
  • 最大支持40     exabyte/ASM存储;
  • 最大支持1百W个文件/磁盘组;
  • 外部冗余时单个文件最大35tb,标准冗余时单个文件最大5.8tb,高冗余度时单个文件最大3.9tb

 

十二、       ASM其它信息请参考如下连接:

http://docs.oracle.com/cd/E11882_01/server.112/e16102/asmfiles.htm

 

时间: 2024-11-03 23:34:01

探索ORACLE之ASM04_维护的相关文章

探索ORACLE之ASM01_概念

探索ORACLE之ASM01_概念 作者:吴伟龙 一.     ASM(自动存储管理)的来由: ASM是Oracle 10g R2中为了简化Oracle数据库的管理而推出来的一项新功能,这是Oracle自己提供的卷管理器,主要用于替代操作系统所提供的LVM,它不仅支持单实例,同时对RAC的支持也是非常好.ASM可以自动管理磁盘组并提供有效的数据冗余功能.使用ASM(自动存储管理)后,数据库管理员不再需要对ORACLE中成千上万的数据文件进行管理和分类,从而简化了DBA的工作量,可以使得工作效率大

探索ORACLE之RMAN_02基本使用

探索ORACLE之RMAN_02基本使用 作者:吴伟龙          RMAN工具是Oracle8i为了更好的实现数据库备份恢复而推出来的一实用工具,可以实现数据库的在线的备份和恢复从而不影响业务的正常运行.并且在Oracle软件安装上的那一时刻就已经存在了,不必另外安装或买介质,从今天开始就开始谈谈RMAN的使用和维护:   1.      登录和访问RMAN A.  在Windows下进入RMAN,很简单,只需要在命令行输入rman即可. 如下: C:\>rman Recovery Ma

探索ORACLE之RMAN_07控制文件丢失恢复

探索ORACLE之RMAN_07控制文件丢失恢复 作者:吴伟龙   Name:Prodence Woo QQ:286507175  msn:hapy-wuweilong@hotmail.com 1.     控制文件(controlfile)丢失恢复 基于控制文件的复合多路径性,它的丢失分为两种,一种是其中某个控制文件的损坏或丢失,另外一种是所有控制文件均丢失.基于第一种情况,只需把好的控制文件复制一份在损坏或丢失的那个控制文件路径下即可.第二种情况下则需要通过备份信息来对控制文件进行恢复或手工

探索Oracle之数据库升级一 升级补丁修复概述

探索Oracle之数据库升级一  升级补丁修复概述 一. 升级路线图         无论你是谁,要想做数据库升级,我想一定离不开如下这张升级线路图:企业中数据库的升级是一个浩大的工程,但是却又必不可少,小在打一个PSU解决一个简单的问题或实现某个功能,大到打安装Patch对数据库版本升级,都是作为一名合格的DBA必备的技能.再后面的几篇博客当中将详细讲述如何将数据库从11.2.0.3.0升级到11.2.0.4并且打上最新的OPATCH之后再升级到Oracle 12c.   二.  升级类型:

Oracle数据安全的维护

Oracle数据安全的维护     记得某位哲学家说过:"事物的变化离不开内因和外因."那么对于Oracle数据安全这个话题而言,也势必分为"内"和"外"两个部分.那么好,我们就先从"内"开始说起: 1.从Oracle系统本身说起     我们先抛开令人闻风色变的"hacker"和其他一些外部的原因,先想一下我们的数据库.什么硬盘损坏,什么软件受损,什么操作事物--一系列由于我们的"疏忽"

《Oracle数据库管理与维护实战》——2.6 Oracle逻辑结构

2.6 Oracle逻辑结构 Oracle数据库管理与维护实战 Oracle逻辑结构是从用户角度来看数据库,对使用Oracle的用户来说,一般只关心数据库的逻辑结构,如关心表.视图等.逻辑结构从操作系统中是看不到的,只能通过数据字典查询到. 2.6.1 逻辑结构概述 从逻辑结构上讲,Oracle包括表空间(Tablespaces).段(Segments).区(Extents).数据块(Data Blocks)以及模式(Schema).数据库由若干个表空间组成,表空间又由若干个段组成,段由区组成,

《Oracle数据库管理与维护实战》——1.3 Oracle 12c新特性

1.3 Oracle 12c新特性 Oracle数据库管理与维护实战 纵观甲骨文全球大会和甲骨文公司的各种资讯,我们可以发现云计算和大数据是两个重要的主题,Oracle 12c则融合了这两大主题.与以往的Oracle数据库相比,Oracle 12c在16个方面进行了更新.本节将详细介绍Oracle 12c数据库中的16个新特性. 1.3.1 支持多线程模式 在Oracle 12c中,Oracle引入了多线程模式,允许在Windows平台之外的UNIX.Linux等系统使用多线程模式.结合多进程与

《Oracle数据库管理与维护实战》——2.7 数据分区

2.7 数据分区 Oracle数据库管理与维护实战 巨型表或索引由于太大,在数据库系统会引起类似以下几条的很多问题. 因为表变得非常大,以至于要花费大量的时间对这张表进行管理. 对巨型表进行全表扫描,会花费系统大量的时间和资源. 一个事务要查询这张巨型表,如果由于磁盘错误,读写一个数据块发生错误,整个表就变得不能用.管理员恢复这张表要耗费很长时间. 为减少这类问题的发生,Oracle使用分区表和分区索引. 2.7.1 分区表 Oracle允许将表的存储分离为一些空间较小的存储单元,这些小的存储单

探索ORACLE之11g DataGuard_04 Oracle EnterPrise Manager OEM部署

探索ORACLE之11g DataGuard_04 Oracle EnterPrise Manager OEM部署 作者:吴伟龙 我们可以看到EM这个时候无法起来,需要重新配置: emctl startup console Environment variable ORACLE_UNQNAME not defined. Please set ORACLE_UNQNAME to database unique name. 重新配置Oracle EnterPrise Manager [oracle@