Windows 10gR2 RAC迁移OCR和Vote Disk以及ASM磁盘组上的数据

概要:本文详细记录如何把运行在Windows 2K8环境上的Oracle 10gR2 双节点RAC数据库的OCR、Vote Disk以及存放在ASM磁盘组里的数据,迁移至新存储的步骤。

迁移之前的存储信息:

wps_clip_image-4627

如上图所示,我们的最终目标是要把OCR、Vote Disk,DATA、FLASH磁盘组从Disk 2,Disk 3上分别迁移至Disk 4和Disk 5。

接下来给出详细的操作步骤和流程:

1  迁移OCR

A 创建磁盘分区

C:\Users\Administrator>diskpart

Microsoft DiskPart version 6.1.7601

Copyright (C) 1999-2008 Microsoft Corporation.

On computer: HAMNODE1

DISKPART> list disk

Disk ###  Status         Size     Free     Dyn  Gpt

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

Disk 0    Online           40 GB      0 B

Disk 1    Online           20 GB    19 GB

Disk 2    Online         6149 MB  2048 KB

Disk 3    Online         6149 MB  2048 KB

Disk 4    Online         6149 MB  6147 MB

Disk 5    Online           10 GB    10 GB

DISKPART> select disk 4

Disk 4 is now the selected disk.

DISKPART> list part

There are no partitions on this disk to show.

DISKPART> create part ext

DiskPart succeeded in creating the specified partition.

DISKPART> create part log size=320

DiskPart succeeded in creating the specified partition.

DISKPART> create part log

DiskPart succeeded in creating the specified partition.

DISKPART> list part

Partition ###  Type              Size     Offset

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

Partition 0    Extended          6147 MB  1024 KB

Partition 1    Logical            320 MB  2048 KB

* Partition 2    Logical           5825 MB   323 MB

DISKPART>

分区之后:

wps_clip_image-12024

注:您应该在其他节点上看到同样的磁盘分区信息。且,建议在其他节点上将Windows系统自动给新分区分配的盘符移除掉。

B 准备磁盘,创建裸设备链接

C:\oracle\product\10.2.0\crs\BIN\GUIOracleOBJManager.exe

wps_clip_image-12115

wps_clip_image-24325

wps_clip_image-17645

wps_clip_image-13996

同样,执行完上述操作,您应该在RAC的所有节点上通过

C:\oracle\product\10.2.0\crs\BIN\GUIOracleOBJManager.exe程序看到相同的信息。

C 手工备份OCR

ocrconfig -export c:\oracle…..\backup_filename

备份之前,可以查看下OCR的自动备份信息:

c:\oracle\product\10.2.0\crs\BIN>ocrconfig -showbackup

hamnode2     2014/05/08 06:01:07     C:\oracle\product\10.2.0\crs\cdata\crs

hamnode2     2014/05/07 23:44:04     C:\oracle\product\10.2.0\crs\cdata\crs

hamnode2     2014/05/07 19:44:04     C:\oracle\product\10.2.0\crs\cdata\crs

hamnode2     2014/05/06 16:34:35     C:\oracle\product\10.2.0\crs\cdata\crs

hamnode1     2014/04/30 07:09:51     C:\oracle\product\10.2.0\crs\cdata\crs

c:\oracle\product\10.2.0\crs\BIN>

执行备份:

c:\oracle\product\10.2.0\crs\BIN>ocrconfig -export C:\oracle\product\10.2.0\crs\cdata\crs\backup_ocr_140508.bak

c:\oracle\product\10.2.0\crs\BIN>cd ..\cdata\crs

c:\oracle\product\10.2.0\crs\cdata\crs>dir

Volume in drive C has no label.

Volume Serial Number is BA2B-5F59

Directory of c:\oracle\product\10.2.0\crs\cdata\crs

05/08/2014  07:50 AM    <DIR>          .

05/08/2014  07:50 AM    <DIR>          ..

05/06/2014  03:24 AM         4,063,232 backup00.ocr

05/05/2014  11:24 PM         4,063,232 backup01.ocr

05/05/2014  07:24 PM         4,063,232 backup02.ocr

05/08/2014  07:43 AM            94,029 backup_ocr_140508.bak

05/02/2014  06:23 AM         4,042,752 day.ocr

05/05/2014  03:24 PM         4,063,232 day_.ocr

05/02/2014  01:04 AM            93,359 hw_backup_ocr.bak

04/30/2014  07:09 AM         4,042,752 week.ocr

8 File(s)     24,525,820 bytes

2 Dir(s)  20,506,509,312 bytes free

c:\oracle\product\10.2.0\crs\cdata\crs>

D 添加OCR镜像

ocrconfig -replace ocrmirror \\.\ocrmirror

添加之前,查看OCR信息:

c:\oracle\product\10.2.0\crs\BIN>ocrcheck

Status of Oracle Cluster Registry is as follows :

Version                  :          2

Total space (kbytes)     :     327452

Used space (kbytes)      :       3836

Available space (kbytes) :     323616

ID                       :  478679697

Device/File Name         : \\.\ocrcfg

Device/File integrity check succeeded

Device/File not configured

Cluster registry integrity check succeeded

c:\oracle\product\10.2.0\crs\BIN>

添加OCRMIRROR并验证:

c:\oracle\product\10.2.0\crs\BIN>ocrconfig -replace ocrmirror \\.\ocrmirror

c:\oracle\product\10.2.0\crs\BIN>ocrcheck

Status of Oracle Cluster Registry is as follows :

Version                  :          2

Total space (kbytes)     :     327452

Used space (kbytes)      :       3836

Available space (kbytes) :     323616

ID                       :  478679697

Device/File Name         : \\.\ocrcfg

Device/File integrity check succeeded

Device/File Name         : \\.\ocrmirror

Device/File integrity check succeeded

Cluster registry integrity check succeeded

c:\oracle\product\10.2.0\crs\BIN>

E 删除OCR device并验证

c:\oracle\product\10.2.0\crs\BIN>ocrconfig -replace ocr

c:\oracle\product\10.2.0\crs\BIN>ocrcheck

Status of Oracle Cluster Registry is as follows :

Version                  :          2

Total space (kbytes)     :     327452

Used space (kbytes)      :       3836

Available space (kbytes) :     323616

ID                       :  478679697

Device/File Name         : \\.\ocrmirror

Device/File integrity check succeeded

Device/File not configured

Cluster registry integrity check succeeded

c:\oracle\product\10.2.0\crs\BIN>

F 重启CRS并验证

至此,我们通过给OCR添加1份镜像然后删除原主OCR的方式,完成对OCR的迁移。

注:通过这种方式,删除原OCR之后,新添加的OCR镜像自动成为主OCR。

2 迁移Vote Disk

A 创建磁盘分区

这里的创建磁盘分区如创建OCR磁盘分区时,方法一致:

C:\Users\Administrator>diskpart

Microsoft DiskPart version 6.1.7601

Copyright (C) 1999-2008 Microsoft Corporation.

On computer: HAMNODE1

DISKPART> list disk

Disk ###  Status         Size     Free     Dyn  Gpt

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

Disk 0    Online           40 GB      0 B

Disk 1    Online           20 GB    19 GB

Disk 2    Online         6149 MB  2048 KB

Disk 3    Online         6149 MB  2048 KB

Disk 4    Online         6149 MB  2048 KB

Disk 5    Online           10 GB    10 GB

DISKPART> select disk 5

Disk 5 is now the selected disk.

DISKPART> list part

There are no partitions on this disk to show.

DISKPART> create part ext

DiskPart succeeded in creating the specified partition.

DISKPART> create part log size=196

DiskPart succeeded in creating the specified partition.

DISKPART> create part log

DiskPart succeeded in creating the specified partition.

DISKPART> list part

Partition ###  Type              Size     Offset

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

Partition 0    Extended            10 GB  1024 KB

Partition 1    Logical            196 MB  2048 KB

* Partition 2    Logical              9 GB   199 MB

DISKPART>

分区之后的信息:

wps_clip_image-12445

注:您应该在其他节点上看到同样的磁盘分区信息。且,建议在其他节点上将Windows系统自动给新分区分配的盘符移除掉。

B 准备磁盘,创建裸设备链接

这里的创建磁盘分区如创建OCR磁盘分区时,方法一致:

C:\oracle\product\10.2.0\crs\BIN\GUIOracleOBJManager.exe

wps_clip_image-12507

wps_clip_image-3414

C 查看Vote Disk信息

c:\oracle\product\10.2.0\crs\BIN>crsctl query css votedisk

0.     0    \\.\votedsk1

located 1 votedisk(s).

c:\oracle\product\10.2.0\crs\BIN>

D 备份Vote Disk

c:\oracle\product\10.2.0\crs\BIN>ocopy \\.\votedsk1 c:\oracle\product\10.2.0\crs\cdata\crs\votedisk_140508.bak

C:\ORACLE\PRODUCT\10.2.0\CRS\CDATA\CRS\VOTEDISK_140508.BAK

c:\oracle\product\10.2.0\crs\BIN>cd ..\cdata\crs

c:\oracle\product\10.2.0\crs\cdata\crs>dir

Volume in drive C has no label.

Volume Serial Number is BA2B-5F59

Directory of c:\oracle\product\10.2.0\crs\cdata\crs

05/08/2014  08:37 AM    <DIR>          .

05/08/2014  08:37 AM    <DIR>          ..

05/06/2014  03:24 AM         4,063,232 backup00.ocr

05/05/2014  11:24 PM         4,063,232 backup01.ocr

05/05/2014  07:24 PM         4,063,232 backup02.ocr

05/08/2014  07:43 AM            94,029 backup_ocr_140508.bak

05/02/2014  06:23 AM         4,042,752 day.ocr

05/05/2014  03:24 PM         4,063,232 day_.ocr

05/02/2014  01:04 AM            93,359 hw_backup_ocr.bak

05/08/2014  08:37 AM       205,520,896 VOTEDISK_140508.BAK

04/30/2014  07:09 AM         4,042,752 week.ocr

9 File(s)    230,046,716 bytes

2 Dir(s)  20,299,304,960 bytes free

c:\oracle\product\10.2.0\crs\cdata\crs>

E 停止CRS

c:\oracle\product\10.2.0\crs\BIN>srvctl stop database -d hamrac

c:\oracle\product\10.2.0\crs\BIN>srvctl stop asm -n hamnode1

c:\oracle\product\10.2.0\crs\BIN>srvctl stop asm -n hamnode2

c:\oracle\product\10.2.0\crs\BIN>srvctl stop nodeapps -n hamnode2

c:\oracle\product\10.2.0\crs\BIN>srvctl stop nodeapps -n hamnode1

c:\oracle\product\10.2.0\crs\BIN>crs_stat -t

Name           Type           Target    State     Host

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

ora....SM1.asm application    OFFLINE   OFFLINE

ora....E1.lsnr application    OFFLINE   OFFLINE

ora....de1.gsd application    OFFLINE   OFFLINE

ora....de1.ons application    OFFLINE   OFFLINE

ora....de1.vip application    OFFLINE   OFFLINE

ora....SM2.asm application    OFFLINE   OFFLINE

ora....E2.lsnr application    OFFLINE   OFFLINE

ora....de2.gsd application    OFFLINE   OFFLINE

ora....de2.ons application    OFFLINE   OFFLINE

ora....de2.vip application    OFFLINE   OFFLINE

ora.hamrac.db  application    OFFLINE   OFFLINE

ora....c1.inst application    OFFLINE   OFFLINE

ora....c2.inst application    OFFLINE   OFFLINE

c:\oracle\product\10.2.0\crs\BIN>crsctl stop crs

Stopping resources. This could take several minutes.

Successfully stopped CRS resources.

Stopping CSSD.

Shutting down CSS daemon.

Shutdown request successfully issued.

c:\oracle\product\10.2.0\crs\BIN>

注:最后一步停止CRS时,您需要到RAC所有节点上都停止CRS!

F 添加Vote Disk

c:\oracle\product\10.2.0\crs\BIN>crsctl add css votedisk \\.\votedsk2 -force

Now formatting voting disk: \\.\votedsk2

successful addition of votedisk \\.\votedsk2.

c:\oracle\product\10.2.0\crs\BIN>crsctl query css votedisk

0.     0    \\.\votedsk1

1.     0    \\.\votedsk2

located 2 votedisk(s).

c:\oracle\product\10.2.0\crs\BIN>

G 删除原Vote Disk

c:\oracle\product\10.2.0\crs\BIN>crsctl delete css votedisk \\.\votedsk1 -force

successful deletion of votedisk \\.\votedsk1.

c:\oracle\product\10.2.0\crs\BIN>crsctl query css votedisk

0.     0    \\.\votedsk2

located 1 votedisk(s).

c:\oracle\product\10.2.0\crs\BIN>

H 启动CRS并验证

3 迁移ASM DATA磁盘组

A 查看ASM磁盘信息

C:\Users\Administrator>asmtool -list

NTFS                             \Device\Harddisk0\Partition1              100M

NTFS                             \Device\Harddisk0\Partition2            40858M

Oracle Raw Device file           \Device\Harddisk2\Partition1              320M

ORCLDISKDATA1                    \Device\Harddisk2\Partition2             5825M

Oracle Raw Device file           \Device\Harddisk3\Partition1              196M

ORCLDISKFRA0                     \Device\Harddisk3\Partition2             5949M

Oracle Raw Device file           \Device\Harddisk4\Partition1              320M

\Device\Harddisk4\Partition2             5825M

Oracle Raw Device file           \Device\Harddisk5\Partition1              196M

\Device\Harddisk5\Partition2            10044M

C:\Users\Administrator>set oracle_sid=+asm1

C:\Users\Administrator>sqlplus / as sysdba

SQL*Plus: Release 10.2.0.5.0 - Production on Fri May 9 01:57:46 2014

Copyright (c) 1982, 2010, Oracle.  All Rights Reserved.

Connected to:

Oracle Database 10g Enterprise Edition Release 10.2.0.5.0 - 64bit Production

With the Partitioning, Real Application Clusters, OLAP, Data Mining

and Real Application Testing options

SQL> col path for a30

SQL> set line 120

SQL> select name,state,total_mb,free_mb,path from v$asm_disk;

NAME                           STATE      TOTAL_MB    FREE_MB PATH

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

DATA_0001                      NORMAL         5825       4215 \\.\ORCLDISKDATA1

FRA_0000                       NORMAL         5949       5667 \\.\ORCLDISKFRA0

SQL> select name,state,total_mb,free_mb from v$asm_diskgroup;

NAME                           STATE         TOTAL_MB    FREE_MB

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

DATA                           MOUNTED           5825       4215

FRA                            MOUNTED           5949       5667

SQL>

结合上述,看到DATA磁盘组[目前只有1个ASM磁盘,DATA_0001]对应于\Device\Harddisk2\Partition2设备。

FRA磁盘组[目前也只有1个ASM磁盘,FRA_0000]对应于\Device\Harddisk3\Partition2。

B DATA磁盘组添加磁盘

wps_clip_image-12595

wps_clip_image-31477

wps_clip_image-22238

wps_clip_image-12359

wps_clip_image-21133

wps_clip_image-15974

wps_clip_image-10317

SQL> select name,state,total_mb,free_mb from v$asm_diskgroup;

NAME                           STATE         TOTAL_MB    FREE_MB

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

DATA                           MOUNTED          11650      10038

FRA                            MOUNTED           5949       5667

SQL> select name,state,total_mb,free_mb,path from v$asm_disk;

NAME                           STATE      TOTAL_MB    FREE_MB PATH

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

DATA_0001                      NORMAL         5825       5019 \\.\ORCLDISKDATA1

FRA_0000                       NORMAL         5949       5667 \\.\ORCLDISKFRA0

DATA_0000                      NORMAL         5825       5019 \\.\ORCLDISKDATA0

SQL>

C DATA磁盘组移除旧磁盘

SQL> alter diskgroup data drop disk data_0001;

Diskgroup altered.

SQL> select name,state,total_mb,free_mb,path from v$asm_disk;

NAME                           STATE      TOTAL_MB    FREE_MB PATH

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

DATA_0001                      DROPPING       5825       5186 \\.\ORCLDISKDATA1

FRA_0000                       NORMAL         5949       5667 \\.\ORCLDISKFRA0

DATA_0000                      NORMAL         5825       4852 \\.\ORCLDISKDATA0

SQL> select name,state,total_mb,free_mb from v$asm_diskgroup;

NAME                           STATE         TOTAL_MB    FREE_MB

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

DATA                           MOUNTED          11650      10038

FRA                            MOUNTED           5949       5667

SQL> select * from v$asm_operation;

GROUP_NUMBER OPERA STAT      POWER     ACTUAL      SOFAR   EST_WORK   EST_RATE EST_MINUTES

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

1 REBAL RUN           1          1        776        808       1451           0

SQL>

直到最后:

SQL> select * from v$asm_operation;

no rows selected

SQL> select name,state,total_mb,free_mb from v$asm_diskgroup;

NAME                           STATE         TOTAL_MB    FREE_MB

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

DATA                           MOUNTED           5825       4215

FRA                            MOUNTED           5949       5667

SQL> select name,state,total_mb,free_mb,path from v$asm_disk;

NAME                           STATE      TOTAL_MB    FREE_MB PATH

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

NORMAL         5825          0 \\.\ORCLDISKDATA1

FRA_0000                       NORMAL         5949       5667 \\.\ORCLDISKFRA0

DATA_0000                      NORMAL         5825       4215 \\.\ORCLDISKDATA0

SQL>

4 迁移ASM FRA磁盘组

A FRA磁盘组添加新磁盘

wps_clip_image-12791

wps_clip_image-4041

wps_clip_image-21263

SQL> select name,state,total_mb,free_mb,path from v$asm_disk;

NAME                           STATE      TOTAL_MB    FREE_MB PATH

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

NORMAL         5825          0 \\.\ORCLDISKDATA1

FRA_0000                       NORMAL         5949       5842 \\.\ORCLDISKFRA0

DATA_0000                      NORMAL         5825       4215 \\.\ORCLDISKDATA0

FRA_0001                       NORMAL        10044       9867 \\.\ORCLDISKFRA1

SQL> select name,state,total_mb,free_mb from v$asm_diskgroup;

NAME                           STATE         TOTAL_MB    FREE_MB

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

DATA                           MOUNTED           5825       4215

FRA                            MOUNTED          15993      15709

SQL>

B FRA磁盘组删除旧磁盘

SQL> alter diskgroup fra drop disk fra_0000;

Diskgroup altered.

SQL> select name,state,total_mb,free_mb from v$asm_diskgroup;

NAME                           STATE         TOTAL_MB    FREE_MB

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

DATA                           MOUNTED           5825       4215

FRA                            MOUNTED          15993      15709

SQL> select name,state,total_mb,free_mb,path from v$asm_disk;

NAME                           STATE      TOTAL_MB    FREE_MB PATH

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

NORMAL         5825          0 \\.\ORCLDISKDATA1

FRA_0000                       DROPPING       5949       5920 \\.\ORCLDISKFRA0

DATA_0000                      NORMAL         5825       4215 \\.\ORCLDISKDATA0

FRA_0001                       NORMAL        10044       9789 \\.\ORCLDISKFRA1

SQL> select * from v$asm_operation;

no rows selected

SQL> select name,state,total_mb,free_mb,path from v$asm_disk;

NAME                           STATE      TOTAL_MB    FREE_MB PATH

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

NORMAL         5825          0 \\.\ORCLDISKDATA1

NORMAL         5949          0 \\.\ORCLDISKFRA0

DATA_0000                      NORMAL         5825       4215 \\.\ORCLDISKDATA0

FRA_0001                       NORMAL        10044       9762 \\.\ORCLDISKFRA1

SQL> select name,state,total_mb,free_mb from v$asm_diskgroup;

NAME                           STATE         TOTAL_MB    FREE_MB

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

DATA                           MOUNTED           5825       4215

FRA                            MOUNTED          10044       9762

SQL>

其他具体操作步骤类似。

5 删除磁盘分区

删除卷、磁盘分区信息之后:

wps_clip_image-19324

最终,对于OCR、Vote Disk的数据,我们分别通过添加镜像的方式,然后删除现有的配置,进而间接的将OCR、Vote Disk分别从Disk 2、Disk 3迁移到Disk 4和Disk 5。

对于存放在ASM 磁盘的DATA和FRA中的数据,我们是通过先对现有DATA、FRA 磁盘组分别添加ASM磁盘,然后删除磁盘组中原有的旧ASM磁盘,进而完成迁移ASM 磁盘数据的目标!

6 注意事项

1 Note:

Note:

You can migrate the RAC OCR when CRS is running ,but you cannot migrate the Voting Disk when the CRS is running.That means we must stop the CRS before we can migrate the Voting Disk.

2 Note:

Also,you must backup the voting disk when the CRS is running,or else if you shutdown the CRS first,and then you cannot use the ocopy command to backup the voting disk.

3 Note:

PROT-22: Storage too small

wps_clip_image-21036

Cause:

The ocrmirror disk space is less than the ocr disk space.

wps_clip_image-2601

Solution:

Enlarge the ocrmirror disk space as the same as the ocr disk space.

4 Note:

PROT-21: Invalid parameter

wps_clip_image-27194

Cause:

PROT-21 error is encountered because the cluster is not yet fully aware of the newly created logical drive that is being specified for <filename> in the ocrconfig -replace command.

Solution:[Doc ID 1059663.1]

This code defect is fixed in patch bundle 31 (and higher) for Oracle on Windows.
Patch 31 is available for download from My Oracle Support under the following patch numbers:

Microsoft Windows (32-bit) – 9233830
Microsoft Windows Itanium (64-bit) – 9233831
Microsoft Windows x64 (64-bit) – 9233832

There is also a relatively simple workaround available.  Namely, stop and restart the Oracle Object Service after creating the symbolic link for the new logical drive and before running the ‘ocrconfig -replace’ command.

一步一步在Linux上升级10gR2 RAC到11gR2 RAC(8-完)

升级后修改/etc/orataboracle用户环境变量

将双节点的/etc/oratab文件中的下列

devdb:/u01/app/oracle/product/10.2.0/db_1:N

改为新的11g配置信息。

节点1改为:

devdb1:/u01/app/oracle/product/10.2.0/db_1:N

节点改为:

devdb2:/u01/app/oracle/product/10.2.0/db_1:N

 

修改双节点oracle用户的/home/oracle/.bash_profile配置文件:

节点1修改后:

节点2修改后:

 

修改cluster_database=true

关闭数据库,修改cluster_database=true之后,重启。

SQL> select * from v$version;

 

BANNER

——————————————————————————–

Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 – 64bit Production

PL/SQL Release 11.2.0.4.0 – Production

CORE    11.2.0.4.0      Production

TNS for Linux: Version 11.2.0.4.0 – Production

NLSRTL Version 11.2.0.4.0 – Production

 

SQL> shutdown immediate;

Database closed.

Database dismounted.

ORACLE instance shut down.

SQL>         

 

node1-> cat /u01/app/oracle/product/11.2.0/db_1/dbs/initdevdb1.ora 

SPFILE=’+DATA/devdb/spfiledevdb.ora’

node1-> 

 

节点1重启:

node1-> env|grep ORA

ORA_CRS_HOME=/u01/app/oracle/product/10.2.0/crs_1

ORACLE_SID=devdb1

ORACLE_BASE=/u01/app/oracle

ORACLE_HOME=/u01/app/oracle/product/11.2.0/db_1

node1-> sqlplus / as sysdba

 

SQL*Plus: Release 11.2.0.4.0 Production on Fri Dec 27 16:08:20 2013

 

Copyright (c) 1982, 2013, Oracle.  All rights reserved.

 

Connected to an idle instance.

 

SQL> startup

ORA-32004: obsolete or deprecated parameter(s) specified for RDBMS instance

ORACLE instance started.

 

Total System Global Area 1219260416 bytes

Fixed Size                  2252744 bytes

Variable Size             452984888 bytes

Database Buffers          754974720 bytes

Redo Buffers                9048064 bytes

Database mounted.

Database opened.

SQL> show parameter cluster_database

 

NAME                                 TYPE        VALUE

———————————— ———– ——————————

cluster_database                     boolean     TRUE

cluster_database_instances           integer     2

SQL> 

 

节点启动数据库:

 

将数据库、实例、服务重新配置到Grid Infrastructure下管理

添加数据库:

node1-> srvctl config database -d devdb

PRCD-1120 : The resource for database devdb could not be found.

PRCR-1001 : Resource ora.devdb.db does not exist

node1->

 

添加:

node1-> srvctl add database -d devdb -o /u01/app/oracle/product/11.2.0/db_1 -c RAC -m oracleonlinux.cn -p +DATA/devdb/spfiledevdb.ora -y automatic -a data,fra

node1-> 

 

添加之后:

node1-> srvctl config database -d devdb

Database unique name: devdb

Database name: 

Oracle home: /u01/app/oracle/product/11.2.0/db_1

Oracle user: oracle

Spfile: +DATA/devdb/spfiledevdb.ora

Domain: oracleonlinux.cn

Start options: open

Stop options: immediate

Database role: PRIMARY

Management policy: AUTOMATIC

Server pools: devdb

Database instances: 

Disk Groups: DATA,FRA

Mount point paths: 

Services: 

Type: RAC

Database is administrator managed

node1-> 

 

添加实例:

node1-> srvctl add instance -h

 

Adds a database instance configuration to the Oracle Clusterware.

 

Usage: srvctl add instance -d <db_unique_name> -i <inst_name> -n <node_name> [-f]

    -d <db_unique_name>      Unique name for the database

    -i <inst>                Instance name

    -n <node_name>           Node name

    -f                       Force the add operation even though some resource(s) will be stopped

    -h                       Print usage

node1-> srvctl add instance -d devdb -i devdb1 -n node1

node1-> srvctl add instance -d devdb -i devdb2 -n node2

 

添加服务:

 

验证

重启双节点OS

 

启动服务:

node1-> srvctl start service -d devdb -s rac11g

node1-> crs_stat -t

 

 

看到此时SCAN IP浮动到节点2

 

 

Q:如何处理gsd服务为OFFLINE的情况?

A:可以参照我之前的一篇文章:

http://www.oracleonlinux.cn/2012/03/how_to_start_11gr2_rac_oc4j_gsd_service/

 

最后,可以考虑将双节点上的原10g clusterware以及数据库软件删除掉!

此处不再给予赘述展示!!!!

一步一步在Linux上升级10gR2 RAC到11gR2 RAC(7)

开始正式升级

Note

11g 软件来启库,且已UPGRADE方式,注意环境变量的设置!

执行$ORACLE_HOME/rdbms/admin/catupgrd.sql来升级!

 

node1-> export ORACLE_SID=devdb1                                  

node1-> export ORACLE_BASE=/u01/app/oracle                       

node1-> export ORACLE_HOME=/u01/app/oracle/product/11.2.0/db_1 

node1-> export PATH=$ORACLE_HOME/bin:$PATH.                      

node1-> which sqlplus

/u01/app/oracle/product/11.2.0/db_1/bin/sqlplus

node1-> sqlplus / as sysdba

 

SQL*Plus: Release 11.2.0.4.0 Production on Fri Dec 27 13:01:19 2013

 

Copyright (c) 1982, 2013, Oracle.  All rights reserved.

 

Connected to an idle instance.

 

SQL> startup upgrade   

ORA-32004: obsolete or deprecated parameter(s) specified for RDBMS instance

ORACLE instance started.

 

Total System Global Area 1219260416 bytes

Fixed Size                  2252744 bytes

Variable Size             385876024 bytes

Database Buffers          822083584 bytes

Redo Buffers                9048064 bytes

Database mounted.

Database opened.

SQL> spool /home/oracle/u_info4.log

SQL> @?/rdbms/admin/catupgrd

…..

……

……

.

Oracle Database 11.2 Post-Upgrade Status Tool           12-27-2013 14:12:22

.

Component                               Current      Version     Elapsed Time

Name                                    Status       Number      HH:MM:SS

.

Oracle Server

.                                         VALID      11.2.0.4.0  00:13:37

JServer JAVA Virtual Machine

.                                         VALID      11.2.0.4.0  00:10:44

Oracle Real Application Clusters

.                                         VALID      11.2.0.4.0  00:00:00

Oracle Workspace Manager

.                                         VALID      11.2.0.4.0  00:00:37

OLAP Analytic Workspace

.                                         VALID      11.2.0.4.0  00:00:17

OLAP Catalog

.                                         VALID      11.2.0.4.0  00:00:50

Oracle OLAP API

.                                         VALID      11.2.0.4.0  00:00:29

Oracle Enterprise Manager

.                                         VALID      11.2.0.4.0  00:07:15

Oracle XDK

.                                         VALID      11.2.0.4.0  00:03:15

Oracle Text

.                                         VALID      11.2.0.4.0  00:00:46

Oracle XML Database

.                                         VALID      11.2.0.4.0  00:05:15

Oracle Database Java Packages

.                                         VALID      11.2.0.4.0  00:00:19

Oracle Multimedia

.                                         VALID      11.2.0.4.0  00:03:41

Spatial

.                                         VALID      11.2.0.4.0  00:05:15

Oracle Expression Filter

.                                         VALID      11.2.0.4.0  00:00:12

Oracle Rules Manager

.                                         VALID      11.2.0.4.0  00:00:09

Final Actions

.                                                                00:00:43

Total Upgrade Time: 00:53:32

 

PL/SQL procedure successfully completed.

 

SQL> 

SQL> SET SERVEROUTPUT OFF

SQL> SET VERIFY ON

SQL> commit;

 

Commit complete.

 

SQL> 

SQL> shutdown immediate;

Database closed.

Database dismounted.

ORACLE instance shut down.

SQL> 

SQL> 

SQL> 

SQL> DOC

DOC>#######################################################################

DOC>#######################################################################

DOC>

DOC>   The above sql script is the final step of the upgrade. Please

DOC>   review any errors in the spool log file. If there are any errors in

DOC>   the spool file, consult the Oracle Database Upgrade Guide for

DOC>   troubleshooting recommendations.

DOC>

DOC>   Next restart for normal operation, and then run utlrp.sql to

DOC>   recompile any invalid application objects.

DOC>

DOC>   If the source database had an older time zone version prior to

DOC>   upgrade, then please run the DBMS_DST package.  DBMS_DST will upgrade

DOC>   TIMESTAMP WITH TIME ZONE data to use the latest time zone file shipped

DOC>   with Oracle.

DOC>

DOC>#######################################################################

DOC>#######################################################################

DOC>#

SQL> 

SQL> Rem Set errorlogging off

SQL> SET ERRORLOGGING OFF;

SQL> 

SQL> REM END OF CATUPGRD.SQL

SQL> 

SQL> REM bug 12337546 – Exit current sqlplus session at end of catupgrd.sql.

SQL> REM                This forces user to start a new sqlplus session in order

SQL> REM                to connect to the upgraded db.

SQL> exit

Disconnected from Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 – 64bit Production

With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP,

Data Mining and Real Application Testing options

node1-> 

 

大概整个升级过程持续 00:53:32

提示检查升级日志,去查看/home/oracle/u_info4.log且需要处理掉错误!!!!!!!

检查日志过程中,之前在步骤尝试升级数据库时遇到的错误已经不存在,且亦无其它错误出现。

 

执行catuppst.sql执行升级后操作

执行 @$ORACLE_HOME/rdbms/admin/catuppst.sql

 

node1-> hostname

node1.oracleonlinux.cn

node1-> export ORACLE_SID=devdb1                                  

node1-> export ORACLE_BASE=/u01/app/oracle                       

node1-> export ORACLE_HOME=/u01/app/oracle/product/11.2.0/db_1 

node1-> export PATH=$ORACLE_HOME/bin:$PATH.                      

node1-> which sqlplus 

/u01/app/oracle/product/11.2.0/db_1/bin/sqlplus

node1-> sqlplus / as sysdba

 

SQL*Plus: Release 11.2.0.4.0 Production on Fri Dec 27 15:25:11 2013

 

Copyright (c) 1982, 2013, Oracle.  All rights reserved.

 

Connected to an idle instance.

 

SQL> startup

ORA-32004: obsolete or deprecated parameter(s) specified for RDBMS instance

ORACLE instance started.

 

Total System Global Area 1219260416 bytes

Fixed Size                  2252744 bytes

Variable Size             503316536 bytes

Database Buffers          704643072 bytes

Redo Buffers                9048064 bytes

Database mounted.

Database opened.

SQL> spool /home/oracle/u5.log

SQL> @$ORACLE_HOME/rdbms/admin/catuppst.sql

 

TIMESTAMP

——————————————————————————–

COMP_TIMESTAMP POSTUP_BGN 2013-12-27 15:26:38

 

 

PL/SQL procedure successfully completed.

 

 

This script will migrate the Baseline data on a pre-11g database

to the 11g database.

 

 

…..

…..

SQL> PROMPT Updating registry…

Updating registry…

SQL> INSERT INTO registry$history

  2    (action_time, action,

  3     namespace, version, id,

  4     bundle_series, comments)

  5  VALUES

  6    (SYSTIMESTAMP, ‘APPLY’,

  7     SYS_CONTEXT(‘REGISTRY$CTX’,’NAMESPACE’),

  8     ‘11.2.0.4’,

  9     0,

 10     ‘PSU’,

 11     ‘Patchset 11.2.0.2.0’);

 

1 row created.

 

SQL> COMMIT;

 

Commit complete.

 

SQL> SPOOL off

SQL> SET echo off

Check the following log file for errors:

/u01/app/oracle/cfgtoollogs/catbundle/catbundle_PSU_DEVDB_APPLY_2013Dec27_15_26_50.log

SQL> 

 

根据提示检查/home/oracle/u5.log

/u01/app/oracle/cfgtoollogs/catbundle/catbundle_PSU_DEVDB_APPLY_2013Dec27_15_26_50.log均无错误!!!!

编译失效对象

执行 @$ORACLE_HOME/rdbms/admin/utlrp.sql来编译失效对象

 

SQL> spool /home/oracle/u6.log

SQL> @$ORACLE_HOME/rdbms/admin/utlrp.sql

 

TIMESTAMP

————————————————————————————————————–

COMP_TIMESTAMP UTLRP_BGN  2013-12-27 15:31:15

 

DOC>   The following PL/SQL block invokes UTL_RECOMP to recompile invalid

DOC>   objects in the database. Recompilation time is proportional to the

DOC>   number of invalid objects in the database, so this command may take

DOC>   a long time to execute on a database with a large number of invalid

DOC>   objects.

DOC>

DOC>   Use the following queries to track recompilation progress:

DOC>

DOC>   1. Query returning the number of invalid objects remaining. This

DOC>      number should decrease with time.

DOC>         SELECT COUNT(*) FROM obj$ WHERE status IN (4, 5, 6);

DOC>

DOC>   2. Query returning the number of objects compiled so far. This number

DOC>      should increase with time.

DOC>         SELECT COUNT(*) FROM UTL_RECOMP_COMPILED;

DOC>

DOC>   This script automatically chooses serial or parallel recompilation

DOC>   based on the number of CPUs available (parameter cpu_count) multiplied

DOC>   by the number of threads per CPU (parameter parallel_threads_per_cpu).

DOC>   On RAC, this number is added across all RAC nodes.

DOC>

DOC>   UTL_RECOMP uses DBMS_SCHEDULER to create jobs for parallel

DOC>   recompilation. Jobs are created without instance affinity so that they

DOC>   can migrate across RAC nodes. Use the following queries to verify

DOC>   whether UTL_RECOMP jobs are being created and run correctly:

DOC>

DOC>   1. Query showing jobs created by UTL_RECOMP

DOC>         SELECT job_name FROM dba_scheduler_jobs

DOC>            WHERE job_name like ‘UTL_RECOMP_SLAVE_%’;

DOC>

DOC>   2. Query showing UTL_RECOMP jobs that are running

DOC>         SELECT job_name FROM dba_scheduler_running_jobs

DOC>            WHERE job_name like ‘UTL_RECOMP_SLAVE_%’;

DOC>#

 

PL/SQL procedure successfully completed.

 

 

TIMESTAMP

————————————————————————————————————–

COMP_TIMESTAMP UTLRP_END  2013-12-27 15:33:55

 

DOC> The following query reports the number of objects that have compiled

DOC> with errors.

DOC>

DOC> If the number is higher than expected, please examine the error

DOC> messages reported with each object (using SHOW ERRORS) to see if they

DOC> point to system misconfiguration or resource constraints that must be

DOC> fixed before attempting to recompile these objects.

DOC>#

 

OBJECTS WITH ERRORS

——————-

                  0

 

DOC> The following query reports the number of errors caught during

DOC> recompilation. If this number is non-zero, please query the error

DOC> messages in the table UTL_RECOMP_ERRORS to see if any of these errors

DOC> are due to misconfiguration or resource constraints that must be

DOC> fixed before objects can compile successfully.

DOC>#

 

ERRORS DURING RECOMPILATION

—————————

                          0

 

 

Function created.

 

 

PL/SQL procedure successfully completed.

 

 

Function dropped.

 

 

PL/SQL procedure successfully completed.

 

SQL>

升级后确认监听

确保listener是运行在11gR2 Grid路径下:

node1-> lsnrctl status

 

LSNRCTL for Linux: Version 11.2.0.4.0 – Production on 27-DEC-2013 15:39:46

 

Copyright (c) 1991, 2013, Oracle.  All rights reserved.

 

Connecting to (ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521))

STATUS of the LISTENER

————————

Alias                     LISTENER

Version                   TNSLSNR for Linux: Version 11.2.0.4.0 – Production

Start Date                26-DEC-2013 22:12:55

Uptime                    0 days 17 hr. 26 min. 51 sec

Trace Level               off

Security                  ON: Local OS Authentication

SNMP                      OFF

Listener Parameter File   /u01/app/11.2.0/grid/network/admin/listener.ora

Listener Log File         /u01/app/grid/diag/tnslsnr/node1/listener/alert/log.xml

Listening Endpoints Summary…

  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=LISTENER)))

  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=172.16.0.33)(PORT=1521)))

  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=172.16.0.35)(PORT=1521)))

Services Summary…

Service “+ASM” has 1 instance(s).

  Instance “+ASM1”, status READY, has 1 handler(s) for this service…

Service “devdb.oracleonlinux.cn” has 1 instance(s).

  Instance “devdb1”, status READY, has 2 handler(s) for this service…

Service “devdbXDB.oracleonlinux.cn” has 1 instance(s).

  Instance “devdb1”, status READY, has 1 handler(s) for this service…

The command completed successfully

node1-> 

一步一步在Linux上升级10gR2 RAC到11gR2 RAC(6)

11 升级10gR2 RAC数据库至11gR2 RAC数据库

升级前的准备工作:

确保原10g RAC数据库在双节点上都已经正常关闭,如果没关闭,请确保在所有节点上都关闭。

B Copy 10gR2 RAC下的初始化参数文件、口令文件、网络配置文件至11gR2 软件下对应的目录

节点1

node1-> cp /u01/app/oracle/product/10.2.0/db_1/network/admin/tnsnames.ora /u01/app/oracle/product/11.2.0/db_1/network/admin/

node1-> cp /u01/app/oracle/product/10.2.0/db_1/dbs/initdevdb1.ora /u01/app/oracle/product/11.2.0/db_1/dbs/  

node1-> cp /u01/app/oracle/product/10.2.0/db_1/dbs/orapwdevdb1 /u01/app/oracle/product/11.2.0/db_1/dbs/

 

节点2

node2-> cp /u01/app/oracle/product/10.2.0/db_1/network/admin/tnsnames.ora /u01/app/oracle/product/11.2.0/db_1/network/admin/

node2-> cp /u01/app/oracle/product/10.2.0/db_1/dbs/initdevdb2.ora /u01/app/oracle/product/11.2.0/db_1/dbs/

node2-> cp /u01/app/oracle/product/10.2.0/db_1/dbs/orapwdevdb2 /u01/app/oracle/product/11.2.0/db_1/dbs/

node2-> 

Note 1

请将cluster_database=false,如果不修改该参数的话,在下一步中,用11gR2版本的数据库软件来拉起10gRAC库的时候,您会遭遇下述错误:

即,在启动数据库的过程中,发现Hang

检查alert日志:

node1-> tail -f /u01/app/oracle/diag/rdbms/devdb/devdb1/trace/alert_devdb1.log 

minact-scn: Inst 1 is now the master inc#:2 mmon proc-id:24159 status:0x7

minact-scn status: grec-scn:0x0000.00000000 gmin-scn:0x0000.00000000 gcalc-scn:0x0000.00000000

Errors in file /u01/app/oracle/diag/rdbms/devdb/devdb1/trace/devdb1_ora_24227.trc:

ORA-39701: database must be mounted EXCLUSIVE for UPGRADE or DOWNGRADE

Errors in file /u01/app/oracle/diag/rdbms/devdb/devdb1/trace/devdb1_ora_24227.trc:

ORA-39701: database must be mounted EXCLUSIVE for UPGRADE or DOWNGRADE

Error 39701 happened during db open, shutting down database

USER (ospid: 24227): terminating the instance due to error 39701

Instance terminated by USER, pid = 24227

ORA-1092 signalled during: ALTER DATABASE OPEN MIGRATE…

 

node1-> oerr ora 39701

39701, 00000, “database must be mounted EXCLUSIVE for UPGRADE or DOWNGRADE”

// *Cause:  The database was mounted for SHARED cluster access.

// *Action: Set the CLUSTER_DATABASE initialization parameter to FALSE and

//          restart the server with the UPGRADE or DOWNGRADE option.

node1-> 

 

Note2

如果不将原10g RAC下的/u01/app/oracle/product/10.2.0/db_1/network/admin/tnsnames.ora文件拷贝至11g RAC的下u01/app/oracle/product/11.2.0/db_1/network/admin/tnsnames.ora,在下一步中,您将遭遇下述错误:

node1-> sqlplus / as sysdba

 

SQL*Plus: Release 11.2.0.4.0 Production on Thu Dec 26 10:57:22 2013

 

Copyright (c) 1982, 2013, Oracle.  All rights reserved.

 

Connected to an idle instance.

 

SQL> startup upgrade pfile=’/u01/app/oracle/product/11.2.0/db_1/dbs/initdevdb1.ora’; 

ORA-32004: obsolete or deprecated parameter(s) specified for RDBMS instance

ORA-00119: invalid specification for system parameter REMOTE_LISTENER

ORA-00132: syntax error or unresolved network name ‘LISTENERS_DEVDB’

SQL> 

尝试升级数据库

这里通过执行$ORACL_HOME/rdbms/admin/catupgrd.sql来尝试升级数据库。

其实,在这步骤里应该是过不去,因为源库需要执行升级前预检查的工作!

预检查脚本:

Note

要用新装的11g 11204版本的数据库软件来拉10gRAC的库,注意环境变量的设置,且要以UPGRADE的方式来拉库

 

node1-> hostname

node1.oracleonlinux.cn

node1-> export ORACLE_SID=devdb1                                  

node1-> export ORACLE_BASE=/u01/app/oracle                       

node1-> export ORACLE_HOME=/u01/app/oracle/product/11.2.0/db_1 

node1-> export PATH=$ORACLE_HOME/bin:$PATH.                      

node1-> which sqlplus 

/u01/app/oracle/product/11.2.0/db_1/bin/sqlplus

node1-> sqlplus / as sysdba

 

SQL*Plus: Release 11.2.0.4.0 Production on Fri Dec 27 10:27:20 2013

 

Copyright (c) 1982, 2013, Oracle.  All rights reserved.

 

Connected to an idle instance.

 

SQL> startup upgrade

ORA-32004: obsolete or deprecated parameter(s) specified for RDBMS instance

ORACLE instance started.

 

Total System Global Area 1219260416 bytes

Fixed Size                  2252744 bytes

Variable Size             385876024 bytes

Database Buffers          822083584 bytes

Redo Buffers                9048064 bytes

Database mounted.

Database opened.

SQL> 

然后执行$ORACL_HOME/rdbms/admin/catupgrd.sql脚本来升级数据库:

SQL> spool /home/oracle/upgrade_info.log

SQL> @?/rdbms/admin/catupgrd

DOC>#######################################################################

DOC>#######################################################################

DOC>

DOC>   The first time this script is run, there should be no error messages

DOC>   generated; all normal upgrade error messages are suppressed.

DOC>

DOC>   If this script is being re-run after correcting some problem, then

DOC>   expect the following error which is not automatically suppressed:

DOC>

DOC>   ORA-00001: unique constraint (<constraint_name>) violated

DOC>              possibly in conjunction with

DOC>   ORA-06512: at “<procedure/function name>”, line NN

DOC>

DOC>   These errors will automatically be suppressed by the Database Upgrade

DOC>   Assistant (DBUA) when it re-runs an upgrade.

DOC>

DOC>#######################################################################

DOC>#######################################################################

DOC>#

DOC>######################################################################

DOC>######################################################################

DOC>    The following statement will cause an “ORA-01722: invalid number”

DOC>    error if the user running this script is not SYS.  Disconnect

DOC>    and reconnect with AS SYSDBA.

DOC>######################################################################

DOC>######################################################################

DOC>#

 

no rows selected

 

DOC>######################################################################

DOC>######################################################################

DOC>    The following statement will cause an “ORA-01722: invalid number”

DOC>    error if the database server version is not correct for this script.

DOC>    Perform “ALTER SYSTEM CHECKPOINT” prior to “SHUTDOWN ABORT”, and use

DOC>    a different script or a different server.

DOC>######################################################################

DOC>######################################################################

DOC>#

 

no rows selected

 

DOC>#######################################################################

DOC>#######################################################################

DOC>   The following statement will cause an “ORA-01722: invalid number”

DOC>   error if the database has not been opened for UPGRADE.

DOC>

DOC>   Perform “ALTER SYSTEM CHECKPOINT” prior to “SHUTDOWN ABORT”,  and

DOC>   restart using UPGRADE.

DOC>#######################################################################

DOC>#######################################################################

DOC>#

 

no rows selected

 

DOC>#######################################################################

DOC>#######################################################################

DOC>     The following statement will cause an “ORA-01722: invalid number”

DOC>     error if the Oracle Database Vault option is TRUE.  Upgrades cannot

DOC>     be run with the Oracle Database Vault option set to TRUE since

DOC>     AS SYSDBA connections are restricted.

DOC>

DOC>     Perform “ALTER SYSTEM CHECKPOINT” prior to “SHUTDOWN ABORT”, relink

DOC>     the server without the Database Vault option, and restart the server

DOC>     using UPGRADE mode.

DOC>

DOC>

DOC>#######################################################################

DOC>#######################################################################

DOC>#

 

no rows selected

 

DOC>#######################################################################

DOC>#######################################################################

DOC>   The following statement will cause an “ORA-01722: invalid number”

DOC>   error if Database Vault is installed in the database but the Oracle

DOC>   Label Security option is FALSE.  To successfully upgrade Oracle

DOC>   Database Vault, the Oracle Label Security option must be TRUE.

DOC>

DOC>   Perform “ALTER SYSTEM CHECKPOINT” prior to “SHUTDOWN ABORT”,

DOC>   relink the server with the OLS option (but without the Oracle Database

DOC>   Vault option) and restart the server using UPGRADE.

DOC>#######################################################################

DOC>#######################################################################

DOC>#

 

no rows selected

 

DOC>#######################################################################

DOC>#######################################################################

DOC>   The following statement will cause an “ORA-01722: invalid number”

DOC>   error if bootstrap migration is in progress and logminer clients

DOC>   require utlmmig.sql to be run next to support this redo stream.

DOC>

DOC>   Run utlmmig.sql

DOC>   then (if needed)

DOC>   restart the database using UPGRADE and

DOC>   rerun the upgrade script.

DOC>#######################################################################

DOC>#######################################################################

DOC>#

 

no rows selected

 

DOC>#######################################################################

DOC>#######################################################################

DOC>   The following error is generated if the pre-upgrade tool has not been

DOC>   run in the old ORACLE_HOME home prior to upgrading a pre-11.2 database:

DOC>

DOC>   SELECT TO_NUMBER(‘MUST_HAVE_RUN_PRE-UPGRADE_TOOL_FOR_TIMEZONE’)

DOC>                       *

DOC>      ERROR at line 1:

DOC>      ORA-01722: invalid number

DOC>

DOC>     o Action:

DOC>       Shutdown database (“alter system checkpoint” and then “shutdown abort”).

DOC>       Revert to the original oracle home and start the database.

DOC>       Run pre-upgrade tool against the database.

DOC>       Review and take appropriate actions based on the pre-upgrade

DOC>       output before opening the datatabase in the new software version.

DOC>

DOC>#######################################################################

DOC>#######################################################################

DOC>#

 

Session altered.

 

 

Table created.

 

 

Table altered.

 

SELECT TO_NUMBER(‘MUST_HAVE_RUN_PRE-UPGRADE_TOOL_FOR_TIMEZONE’)

                 *

ERROR at line 1:

ORA-01722: invalid number

 

 

Disconnected from Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 – 64bit Production

With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP,

Data Mining and Real Application Testing options

node1->

果不其然,发现报错!!!

执行预检查脚本

根据上一步的错误提示:

我们要以原来10gRAC环境的数据库软件来启动数据库,去执行1个升级前的预检查脚本:

Note

该预检查脚本是要把低版本的数据库升级到11204版本的数据库需要执行预检查的脚本,可以参考MetaLink官方文档:Doc ID 837570.1Note 884522.1

这里将utlu112i_7.sql脚本下载至/home/oracle路径下。

这里要以原来10gRAC环境的数据库软件来启动数据库、并且以UPGRADE方式来启库、且需要注意环境变量需要设置成对应原10g RAC数据库软件的配置。

同样,记得需要修改10g参数文件里的cluster_database=false

 

 

Note

11gR2版本下,oracle会自动创建一个隐含参数__oracle_base,而在10g版本下不支持该参数。当然,如果不去掉该参数的话,那么您可能会遇到下述错误:

node1-> export ORACLE_SID=devdb1                                

node1-> export ORACLE_BASE=/u01/app/oracle                      

node1-> export ORACLE_HOME=/u01/app/oracle/product/10.2.0/db_1  

node1-> export PATH=$ORACLE_HOME/bin:$PATH.                     

node1-> which sqlplus                                           

/u01/app/oracle/product/10.2.0/db_1/bin/sqlplus

node1-> sqlplus / as sysdba

 

SQL*Plus: Release 10.2.0.5.0 – Production on Fri Dec 27 10:46:12 2013

 

Copyright (c) 1982, 2010, Oracle.  All Rights Reserved.

 

Connected to an idle instance.

 

SQL> startup upgrade

ORA-01078: failure in processing system parameters

LRM-00101: unknown parameter name ‘__oracle_base’

SQL>

 

解决:

通过11g创建1pfile,然后将pfile里的初始化参数去掉:

node1-> export ORACLE_SID=devdb1                                  

node1-> export ORACLE_BASE=/u01/app/oracle                       

node1-> export ORACLE_HOME=/u01/app/oracle/product/11.2.0/db_1 

node1-> export PATH=$ORACLE_HOME/bin:$PATH.                      

node1-> which sqlplus                                              

/u01/app/oracle/product/11.2.0/db_1/bin/sqlplus

node1-> sqlplus / as sysdba

 

SQL*Plus: Release 11.2.0.4.0 Production on Fri Dec 27 10:47:09 2013

 

Copyright (c) 1982, 2013, Oracle.  All rights reserved.

 

Connected to an idle instance.

 

SQL> startup nomount;

ORA-32004: obsolete or deprecated parameter(s) specified for RDBMS instance

ORACLE instance started.

 

Total System Global Area 1219260416 bytes

Fixed Size                  2252744 bytes

Variable Size             385876024 bytes

Database Buffers          822083584 bytes

Redo Buffers                9048064 bytes

SQL> create pfile=’/home/oracle/pfile.txt’ from spfile;

 

修改注释掉/home/oracle/pfile.txt里的下述参数:

devdb1.__oracle_base=’/u01/app/oracle’#ORACLE_BASE set from environment

以及修改

*.cluster_database=false

再根据提示,重新执行,参数文件指向新生成的且已修改的/home/oracle/pfile.txt

node1-> export ORACLE_SID=devdb1                               

node1-> export ORACLE_BASE=/u01/app/oracle                     

node1-> export ORACLE_HOME=/u01/app/oracle/product/10.2.0/db_1 

node1-> export PATH=$ORACLE_HOME/bin:$PATH.                    

node1-> which sqlplus                                          

/u01/app/oracle/product/10.2.0/db_1/bin/sqlplus

node1-> sqlplus / as sysdba

 

SQL*Plus: Release 10.2.0.5.0 – Production on Fri Dec 27 10:49:18 2013

 

Copyright (c) 1982, 2010, Oracle.  All Rights Reserved.

 

Connected to an idle instance.

 

SQL> startup upgrade pfile=’/home/oracle/pfile.txt’;      

ORACLE instance started.

 

Total System Global Area 1224736768 bytes

Fixed Size                  2095896 bytes

Variable Size             318768360 bytes

Database Buffers          889192448 bytes

Redo Buffers               14680064 bytes

Database mounted.

Database opened.

SQL> spool /home/oracle/u2.log   

SQL> @/home/oracle/utlu112i_7

Oracle Database 11.2 Pre-Upgrade Information Tool 12-27-2013 10:50:45

Script Version: 11.2.0.4.0 Build: 007

.

**********************************************************************

Database:

**********************************************************************

–> name:          DEVDB

–> version:       10.2.0.5.0

–> compatible:    10.2.0.5.0

–> blocksize:     8192

–> platform:      Linux x86 64-bit

–> timezone file: V4

.

**********************************************************************

Tablespaces: [make adjustments in the current environment]

**********************************************************************

–> SYSTEM tablespace is adequate for the upgrade.

…. minimum required size: 942 MB

–> UNDOTBS1 tablespace is adequate for the upgrade.

…. minimum required size: 400 MB

–> SYSAUX tablespace is adequate for the upgrade.

…. minimum required size: 731 MB

–> TEMP tablespace is adequate for the upgrade.

…. minimum required size: 60 MB

.

**********************************************************************

Flashback: OFF

**********************************************************************

**********************************************************************

Update Parameters: [Update Oracle Database 11.2 init.ora or spfile]

Note: Pre-upgrade tool was run on a lower version 64-bit database.

**********************************************************************

–> If Target Oracle is 32-Bit, refer here for Update Parameters:

— No update parameter changes are required.

.

 

–> If Target Oracle is 64-Bit, refer here for Update Parameters:

— No update parameter changes are required.

.

**********************************************************************

Renamed Parameters: [Update Oracle Database 11.2 init.ora or spfile]

**********************************************************************

— No renamed parameters found. No changes are required.

.

**********************************************************************

Obsolete/Deprecated Parameters: [Update Oracle Database 11.2 init.ora or spfile]

**********************************************************************

–> background_dump_dest         11.1       DEPRECATED   replaced by  “diagnostic_dest”

–> user_dump_dest               11.1       DEPRECATED   replaced by  “diagnostic_dest”

.

 

**********************************************************************

Components: [The following database components will be upgraded or installed]

**********************************************************************

–> Oracle Catalog Views         [upgrade]  VALID

–> Oracle Packages and Types    [upgrade]  VALID

–> JServer JAVA Virtual Machine [upgrade]  VALID

–> Oracle XDK for Java          [upgrade]  VALID

–> Real Application Clusters    [upgrade]  VALID

–> Oracle Workspace Manager     [upgrade]  VALID

–> OLAP Analytic Workspace      [upgrade]  VALID

–> OLAP Catalog                 [upgrade]  VALID

–> EM Repository                [upgrade]  VALID

–> Oracle Text                  [upgrade]  VALID

–> Oracle XML Database          [upgrade]  VALID

–> Oracle Java Packages         [upgrade]  VALID

–> Oracle interMedia            [upgrade]  VALID

–> Spatial                      [upgrade]  VALID

–> Data Mining                  [upgrade]  VALID

–> Expression Filter            [upgrade]  VALID

–> Rule Manager                 [upgrade]  VALID

–> Oracle OLAP API              [upgrade]  VALID

.

**********************************************************************

Miscellaneous Warnings

**********************************************************************

WARNING: –> Database is using a timezone file older than version 14.

…. After the release migration, it is recommended that DBMS_DST package

…. be used to upgrade the 10.2.0.5.0 database timezone version

…. to the latest version which comes with the new release.

WARNING: –> Database contains INVALID objects prior to upgrade.

…. The list of invalid SYS/SYSTEM objects was written to

…. registry$sys_inv_objs.

…. The list of non-SYS/SYSTEM objects was written to

…. registry$nonsys_inv_objs.

…. Use utluiobj.sql after the upgrade to identify any new invalid

…. objects due to the upgrade.

…. USER MDSYS has 18 INVALID objects.

…. USER DMSYS has 2 INVALID objects.

…. USER PUBLIC has 352 INVALID objects.

…. USER CTXSYS has 1 INVALID objects.

…. USER ORACLE_OCM has 2 INVALID objects.

…. USER EXFSYS has 8 INVALID objects.

…. USER DBSNMP has 4 INVALID objects.

…. USER SYSMAN has 3 INVALID objects.

…. USER XDB has 3 INVALID objects.

…. USER SYS has 429 INVALID objects.

…. USER WMSYS has 25 INVALID objects.

WARNING: –> EM Database Control Repository exists in the database.

…. Direct downgrade of EM Database Control is not supported. Refer to the

…. Upgrade Guide for instructions to save the EM data prior to upgrade.

WARNING: –> Your recycle bin is turned on and currently contains no objects.

…. Because it is REQUIRED that the recycle bin be empty prior to upgrading

…. and your recycle bin is turned on, you may need to execute the command:

        PURGE DBA_RECYCLEBIN

…. prior to executing your upgrade to confirm the recycle bin is empty.

.

**********************************************************************

Recommendations

**********************************************************************

Oracle recommends gathering dictionary statistics prior to

upgrading the database.

To gather dictionary statistics execute the following command

while connected as SYSDBA:

 

    EXECUTE dbms_stats.gather_dictionary_stats;

 

**********************************************************************

Oracle recommends removing all hidden parameters prior to upgrading.

 

To view existing hidden parameters execute the following command

while connected AS SYSDBA:

 

    SELECT name,description from SYS.V$PARAMETER WHERE name

        LIKE ‘\_%’ ESCAPE ‘\’

 

Changes will need to be made in the init.ora or spfile.

 

**********************************************************************

SQL> 

 

看到有几个警告,分别是时区、用户的无效对象、以及回收站、数据字典的统计信息,我们可以忽略之!!!!

在这里我们把数据库正常关闭、准备正式升级数据库!!!

一步一步在Linux上升级10gR2 RAC到11gR2 RAC(5)

10 安装11gR2 oracle软件

解压oracle 11g 11.2.0.4.0版本的数据库软件:

解压前2个压缩文件,解压后copy database文件至/home/oracle目录:

[root@node1 ~]# unzip p13390677_112040_Linux-x86-64_1of7.zip 

[root@node1 ~]# unzip p13390677_112040_Linux-x86-64_2of7.zip 

Oracle用户登录图形界面,执行安装:

 

进入安装界面:

 

Next

 

Next

 

Next

 

解决安装RAC数据库软件时,OUI找不到节点:

node1-> pwd

/u01/app/oracle/oraInventory/ContentsXML

node1-> ll

total 12

-rwxrwx— 1 oracle oinstall 329 Dec 25 21:11 comps.xml

-rwxrwx— 1 oracle oinstall 924 Dec 25 21:11 inventory.xml

-rwxrwx— 1 oracle oinstall 292 Dec 25 21:11 libs.xml

node1-> cat inventory.xml 

<?xml version=”1.0″ standalone=”yes” ?>

<!– Copyright (c) 1999, 2013, Oracle and/or its affiliates.

All rights reserved. –>

<!– Do not modify the contents of this file by hand. –>

<INVENTORY>

<VERSION_INFO>

   <SAVED_WITH>11.2.0.4.0</SAVED_WITH>

   <MINIMUM_VER>2.1.0.6.0</MINIMUM_VER>

</VERSION_INFO>

<HOME_LIST>

<HOME NAME=”crs” LOC=”/u01/app/oracle/product/10.2.0/crs_1″ TYPE=”O” IDX=”1″ CRS=”true”>

   <NODE_LIST>

      <NODE NAME=”node1″/>

      <NODE NAME=”node2″/>

   </NODE_LIST>

</HOME>

<HOME NAME=”db” LOC=”/u01/app/oracle/product/10.2.0/db_1″ TYPE=”O” IDX=”2″>

   <NODE_LIST>

      <NODE NAME=”node1″/>

      <NODE NAME=”node2″/>

   </NODE_LIST>

</HOME>

<HOME NAME=”Ora11g_gridinfrahome1″ LOC=”/u01/app/11.2.0/grid” TYPE=”O” IDX=”3″ CRS=”true”>

   <NODE_LIST>

      <NODE NAME=”node1″/>

      <NODE NAME=”node2″/>

   </NODE_LIST>

</HOME>

</HOME_LIST>

<COMPOSITEHOME_LIST>

</COMPOSITEHOME_LIST>

</INVENTORY>

node1-> 

在双节上去掉该文件的下述部分:

<HOME NAME=”crs” LOC=”/u01/app/oracle/product/10.2.0/crs_1″ TYPE=”O” IDX=”1″ CRS=”true”>

   <NODE_LIST>

      <NODE NAME=”node1″/>

      <NODE NAME=”node2″/>

   </NODE_LIST>

</HOME>

重新执行安装:

 

Next


Next

 

Next:输入第4步骤中创建的ORACLE_HOME目录:/u01/app/oracle/product/11.2.0/db_1

 

Next

 

Next

 

Next

 

Next

 

Next

 

节点1

[root@node1 ~]# /u01/app/oracle/product/11.2.0/db_1/root.sh 

Performing root user operation for Oracle 11g 

 

The following environment variables are set as:

    ORACLE_OWNER= oracle

    ORACLE_HOME=  /u01/app/oracle/product/11.2.0/db_1

 

Enter the full pathname of the local bin directory: [/usr/local/bin]: 

The file “dbhome” already exists in /usr/local/bin.  Overwrite it? (y/n) 

[n]: 

The file “oraenv” already exists in /usr/local/bin.  Overwrite it? (y/n) 

[n]: 

The file “coraenv” already exists in /usr/local/bin.  Overwrite it? (y/n) 

[n]: 

 

Entries will be added to the /etc/oratab file as needed by

Database Configuration Assistant when a database is created

Finished running generic part of root script.

Now product-specific root actions will be performed.

Finished product-specific root actions.

[root@node1 ~]# 

节点2

[root@node2 ~]# /u01/app/oracle/product/11.2.0/db_1/root.sh 

Performing root user operation for Oracle 11g 

 

The following environment variables are set as:

    ORACLE_OWNER= oracle

    ORACLE_HOME=  /u01/app/oracle/product/11.2.0/db_1

 

Enter the full pathname of the local bin directory: [/usr/local/bin]: 

The file “dbhome” already exists in /usr/local/bin.  Overwrite it? (y/n) 

[n]: 

The file “oraenv” already exists in /usr/local/bin.  Overwrite it? (y/n) 

[n]: 

The file “coraenv” already exists in /usr/local/bin.  Overwrite it? (y/n) 

[n]: 

 

Entries will be added to the /etc/oratab file as needed by

Database Configuration Assistant when a database is created

Finished running generic part of root script.

Now product-specific root actions will be performed.

Finished product-specific root actions.

[root@node2 ~]# 

一步一步在Linux上升级10gR2 RAC到11gR2 RAC(4)

迁移10g RAC 磁盘组至11gR2 grid

Oracle用户调用/u01/app/11.2.0/grid/bin/asmca 进入ASMCA图形界面来将之前10gR2 RAC下的2ASM磁盘添加到11gR2 grid软件下来进行管理。

:为什么可以把存放10g数据库的磁盘放在11g ASM实例来管理?

:可以参考本人之前文章如何在一台服务器上共用一个ASM实例来创建10.2.0.5和11gR2的物理备库

 

node1-> /u01/app/11.2.0/grid/bin/asmca 

 

Mountdatafra磁盘组:

 

 

节点1通过SQL*PLUS来查看:

 

其中,v$ASM_DISK中看到的name问空的前2条记录是10g RAC下的存放OCRVoting Disk的磁盘,不予理会。

同时,通过11g grid infrastructure下的crs_stat命令也可以查看datafra磁盘组的信息:

node2-> /u01/app/11.2.0/grid/bin/crs_stat -t

Name           Type           Target    State     Host        

————————————————————

ora.DATA.dg    ora….up.type ONLINE    ONLINE    node1       

ora.FRA.dg     ora….up.type ONLINE    ONLINE    node1       

ora.GRIDDG.dg  ora….up.type ONLINE    ONLINE    node1       

ora….ER.lsnr ora….er.type ONLINE    ONLINE    node1       

ora….N1.lsnr ora….er.type ONLINE    ONLINE    node1       

ora.asm        ora.asm.type   ONLINE    ONLINE    node1       

ora.cvu        ora.cvu.type   ONLINE    ONLINE    node1       

ora.gsd        ora.gsd.type   OFFLINE   OFFLINE               

ora….network ora….rk.type ONLINE    ONLINE    node1       

ora….SM1.asm application    ONLINE    ONLINE    node1       

ora….E1.lsnr application    ONLINE    ONLINE    node1       

ora.node1.gsd  application    OFFLINE   OFFLINE               

ora.node1.ons  application    ONLINE    ONLINE    node1       

ora.node1.vip  ora….t1.type ONLINE    ONLINE    node1       

ora….SM2.asm application    ONLINE    ONLINE    node2       

ora….E2.lsnr application    ONLINE    ONLINE    node2       

ora.node2.gsd  application    OFFLINE   OFFLINE               

ora.node2.ons  application    ONLINE    ONLINE    node2       

ora.node2.vip  ora….t1.type ONLINE    ONLINE    node2       

ora.oc4j       ora.oc4j.type  ONLINE    ONLINE    node1       

ora.ons        ora.ons.type   ONLINE    ONLINE    node1       

ora….ry.acfs ora….fs.type ONLINE    ONLINE    node1       

ora.scan1.vip  ora….ip.type ONLINE    ONLINE    node1       

node2-> 

一步一步在Linux上升级10gR2 RAC到11gR2 RAC(3)

安装grid软件

解压grid安装介质:

[root@node1 ~]# unzip p13390677_112040_Linux-x86-64_3of7.zip 

解压出第3个压缩包,解压之后,将grid文件mv/home/oracle家目录下:

[root@node1 ~]# ll

total 3667892

drwxr-xr-x 4 root root       4096 Dec 24 17:34 10gbackup

-rw-r–r– 1 root root       1016 Dec 19 13:50 7oracle_.bash_profile.sh

-rw——- 1 root root       1396 Dec 19 10:50 anaconda-ks.cfg

drwxr-xr-x 2 root root       4096 Dec 19 16:29 Desktop

-rw-r–r– 1 root root      52733 Dec 19 10:50 install.log

-rw-r–r– 1 root root       4077 Dec 19 10:50 install.log.syslog

drwxr-xr-x 7 root root       4096 Dec 24 15:51 media

-rw-r–r– 1 root root 1395582860 Dec 24 20:04 p13390677_112040_Linux-x86-64_1of7.zip

-rw-r–r– 1 root root 1151304589 Dec 24 20:05 p13390677_112040_Linux-x86-64_2of7.zip

-rw-r–r– 1 root root 1205251894 Dec 24 20:06 p13390677_112040_Linux-x86-64_3of7.zip

[root@node1 ~]# unzip p13390677_112040_Linux-x86-64_3of7.zip 

….

….

  inflating: grid/rpm/cvuqdisk-1.0.9-1.rpm  

  inflating: grid/runcluvfy.sh       

  inflating: grid/welcome.html       

[root@node1 ~]# ll

total 3667900

drwxr-xr-x 4 root root       4096 Dec 24 17:34 10gbackup

-rw-r–r– 1 root root       1016 Dec 19 13:50 7oracle_.bash_profile.sh

-rw——- 1 root root       1396 Dec 19 10:50 anaconda-ks.cfg

drwxr-xr-x 2 root root       4096 Dec 19 16:29 Desktop

drwxr-xr-x 7 root root       4096 Aug 27 12:33 grid

-rw-r–r– 1 root root      52733 Dec 19 10:50 install.log

-rw-r–r– 1 root root       4077 Dec 19 10:50 install.log.syslog

drwxr-xr-x 7 root root       4096 Dec 24 15:51 media

-rw-r–r– 1 root root 1395582860 Dec 24 20:04 p13390677_112040_Linux-x86-64_1of7.zip

-rw-r–r– 1 root root 1151304589 Dec 24 20:05 p13390677_112040_Linux-x86-64_2of7.zip

-rw-r–r– 1 root root 1205251894 Dec 24 20:06 p13390677_112040_Linux-x86-64_3of7.zip

[root@node1 ~]# 

Root将解压出来的grid目录移动到oracle用户的家目录:

[root@node1 ~]# mv grid/ /home/oracle/

oracle 用户登录图形界面:

 

进入图形安装界面:

 

Next

 

Next

 

Next

 

NextSCAN name输入之前在/etc/hosts文件中配置好的scan-cluster.oracleonlinux.cn

 

Next

添加节点2信息:node2.oracleonlinux.cnnode2-vip.oracleonlinux.cn

 

Next

 

Next


Next

 

Next

 

Next

 

Next

 

Next

 

Next

 

Next:指定在第3步骤中创建的ORACLE_BASEORACELE_HOME:


Next

 

 

单击Fix& CheckAgain:

按照提示:

节点1

[root@node1 ~]# /tmp/CVU_11.2.0.4.0_oracle/runfixup.sh

Response file being used is :/tmp/CVU_11.2.0.4.0_oracle/fixup.response

Enable file being used is :/tmp/CVU_11.2.0.4.0_oracle/fixup.enable

Log file location: /tmp/CVU_11.2.0.4.0_oracle/orarun.log

Setting Kernel Parameters…

fs.file-max = 101365

fs.file-max = 6815744

The upper limit of ip_local_port range in response file is not greater than value in /etc/sysctl.conf, hence not changing it.

The upper limit of ip_local_port range in response file is not greater than value for current session, hence not changing it.

net.ipv4.ip_local_port_range = 9000 65500

net.core.rmem_max=1048576

net.core.rmem_max = 4194304

net.core.wmem_max=262144

net.core.wmem_max = 1048576

fs.aio-max-nr = 1048576

Installing Package /tmp/CVU_11.2.0.4.0_oracle//cvuqdisk-1.0.9-1.rpm

Preparing…                ########################################### [100%]

   1:cvuqdisk               ########################################### [100%]

[root@node1 ~]# 

节点2

[root@node2 ~]# /tmp/CVU_11.2.0.4.0_oracle/runfixup.sh

Response file being used is :/tmp/CVU_11.2.0.4.0_oracle/fixup.response

Enable file being used is :/tmp/CVU_11.2.0.4.0_oracle/fixup.enable

Log file location: /tmp/CVU_11.2.0.4.0_oracle/orarun.log

Setting Kernel Parameters…

fs.file-max = 101365

fs.file-max = 6815744

The upper limit of ip_local_port range in response file is not greater than value in /etc/sysctl.conf, hence not changing it.

The upper limit of ip_local_port range in response file is not greater than value for current session, hence not changing it.

net.ipv4.ip_local_port_range = 9000 65500

net.core.rmem_max=1048576

net.core.rmem_max = 4194304

net.core.wmem_max=262144

net.core.wmem_max = 1048576

fs.aio-max-nr = 1048576

Installing Package /tmp/CVU_11.2.0.4.0_oracle//cvuqdisk-1.0.9-1.rpm

Preparing…                ########################################### [100%]

   1:cvuqdisk               ########################################### [100%]

[root@node2 ~]# 

执行之后,提示缺少软件包:

 

安装缺失的软件包:

节点1

[root@node1 ~]# ll

total 280

drwxr-xr-x 4 root root   4096 Dec 26 21:16 10gbackup

-rw——- 1 root root   1434 Dec 26 15:32 anaconda-ks.cfg

-rw-r–r– 1 root root  54649 Dec 26 15:32 install.log

-rw-r–r– 1 root root   4077 Dec 26 15:32 install.log.syslog

-rw-r–r– 1 root root  11675 Dec 26 21:47 libaio-devel-0.3.106-5.x86_64.rpm

drwxr-xr-x 7 root root   4096 Dec 26 21:28 media

-rw-r–r– 1 root root 178400 Dec 26 21:47 sysstat-7.0.2-3.el5.x86_64.rpm

[root@node1 ~]# rpm -ivh libaio-devel-0.3.106-5.x86_64.rpm 

warning: libaio-devel-0.3.106-5.x86_64.rpm: Header V3 DSA signature: NOKEY, key ID 1e5e0159

Preparing…                ########################################### [100%]

   1:libaio-devel           ########################################### [100%]

[root@node1 ~]# rpm -ivh sysstat-7.0.2-3.el5.x86_64.rpm 

warning: sysstat-7.0.2-3.el5.x86_64.rpm: Header V3 DSA signature: NOKEY, key ID 1e5e0159

Preparing…                ########################################### [100%]

   1:sysstat                ########################################### [100%]

[root@node1 ~]# 

节点2

[root@node2 ~]# ll

total 280

drwxr-xr-x 4 root root   4096 Dec 26 21:17 10gbackup

-rw——- 1 root root   1434 Dec 26 15:40 anaconda-ks.cfg

-rw-r–r– 1 root root  54649 Dec 26 15:40 install.log

-rw-r–r– 1 root root   4077 Dec 26 15:40 install.log.syslog

-rw-r–r– 1 root root  11675 Dec 26 21:48 libaio-devel-0.3.106-5.x86_64.rpm

drwxr-xr-x 7 root root   4096 Dec 26 21:09 media

-rw-r–r– 1 root root 178400 Dec 26 21:48 sysstat-7.0.2-3.el5.x86_64.rpm

[root@node2 ~]# rpm -ivh libaio-devel-0.3.106-5.x86_64.rpm 

warning: libaio-devel-0.3.106-5.x86_64.rpm: Header V3 DSA signature: NOKEY, key ID 1e5e0159

Preparing…                ########################################### [100%]

   1:libaio-devel           ########################################### [100%]

[root@node2 ~]# rpm -ivh sysstat-7.0.2-3.el5.x86_64.rpm 

warning: sysstat-7.0.2-3.el5.x86_64.rpm: Header V3 DSA signature: NOKEY, key ID 1e5e0159

Preparing…                ########################################### [100%]

   1:sysstat                ########################################### [100%]

[root@node2 ~]# 

Next

 

Next

 

Next

 

执行:

节点1

[root@node1 ~]# /u01/app/11.2.0/grid/root.sh 

Performing root user operation for Oracle 11g 

 

The following environment variables are set as:

    ORACLE_OWNER= oracle

    ORACLE_HOME=  /u01/app/11.2.0/grid

 

Enter the full pathname of the local bin directory: [/usr/local/bin]: 

The file “dbhome” already exists in /usr/local/bin.  Overwrite it? (y/n) 

[n]: 

The file “oraenv” already exists in /usr/local/bin.  Overwrite it? (y/n) 

[n]: 

The file “coraenv” already exists in /usr/local/bin.  Overwrite it? (y/n) 

[n]: 

 

Entries will be added to the /etc/oratab file as needed by

Database Configuration Assistant when a database is created

Finished running generic part of root script.

Now product-specific root actions will be performed.

Using configuration parameter file: /u01/app/11.2.0/grid/crs/install/crsconfig_params

Creating trace directory

Installing Trace File Analyzer

OLR initialization – successful

  root wallet

  root wallet cert

  root cert export

  peer wallet

  profile reader wallet

  pa wallet

  peer wallet keys

  pa wallet keys

  peer cert request

  pa cert request

  peer cert

  pa cert

  peer root cert TP

  profile reader root cert TP

  pa root cert TP

  peer pa cert TP

  pa peer cert TP

  profile reader pa cert TP

  profile reader peer cert TP

  peer user cert

  pa user cert

Adding Clusterware entries to inittab

CRS-2672: Attempting to start ‘ora.mdnsd’ on ‘node1’

CRS-2676: Start of ‘ora.mdnsd’ on ‘node1’ succeeded

CRS-2672: Attempting to start ‘ora.gpnpd’ on ‘node1’

CRS-2676: Start of ‘ora.gpnpd’ on ‘node1’ succeeded

CRS-2672: Attempting to start ‘ora.cssdmonitor’ on ‘node1’

CRS-2672: Attempting to start ‘ora.gipcd’ on ‘node1’

CRS-2676: Start of ‘ora.gipcd’ on ‘node1’ succeeded

CRS-2676: Start of ‘ora.cssdmonitor’ on ‘node1’ succeeded

CRS-2672: Attempting to start ‘ora.cssd’ on ‘node1’

CRS-2672: Attempting to start ‘ora.diskmon’ on ‘node1’

CRS-2676: Start of ‘ora.diskmon’ on ‘node1’ succeeded

CRS-2676: Start of ‘ora.cssd’ on ‘node1’ succeeded

 

ASM created and started successfully.

 

Disk Group griddg created successfully.

 

clscfg: -install mode specified

Successfully accumulated necessary OCR keys.

Creating OCR keys for user ‘root’, privgrp ‘root’..

Operation successful.

CRS-4256: Updating the profile

Successful addition of voting disk 1ddd6122f4024f75bf5bba77ba8af58b.

Successfully replaced voting disk group with +griddg.

CRS-4256: Updating the profile

CRS-4266: Voting file(s) successfully replaced

##  STATE    File Universal Id                File Name Disk group

—  —–    —————–                ——— ———

 1. ONLINE   1ddd6122f4024f75bf5bba77ba8af58b (ORCL:ASMDISK3) [GRIDDG]

Located 1 voting disk(s).

CRS-2672: Attempting to start ‘ora.asm’ on ‘node1’

CRS-2676: Start of ‘ora.asm’ on ‘node1’ succeeded

CRS-2672: Attempting to start ‘ora.GRIDDG.dg’ on ‘node1’

CRS-2676: Start of ‘ora.GRIDDG.dg’ on ‘node1’ succeeded

Configure Oracle Grid Infrastructure for a Cluster … succeeded

[root@node1 ~]# 

节点2

[root@node2 ~]# /u01/app/11.2.0/grid/root.sh 

Performing root user operation for Oracle 11g 

 

The following environment variables are set as:

    ORACLE_OWNER= oracle

    ORACLE_HOME=  /u01/app/11.2.0/grid

 

Enter the full pathname of the local bin directory: [/usr/local/bin]: 

The file “dbhome” already exists in /usr/local/bin.  Overwrite it? (y/n) 

[n]: 

The file “oraenv” already exists in /usr/local/bin.  Overwrite it? (y/n) 

[n]: 

The file “coraenv” already exists in /usr/local/bin.  Overwrite it? (y/n) 

[n]: 

 

Entries will be added to the /etc/oratab file as needed by

Database Configuration Assistant when a database is created

Finished running generic part of root script.

Now product-specific root actions will be performed.

Using configuration parameter file: /u01/app/11.2.0/grid/crs/install/crsconfig_params

Creating trace directory

Installing Trace File Analyzer

OLR initialization – successful

Adding Clusterware entries to inittab

CRS-4402: The CSS daemon was started in exclusive mode but found an active CSS daemon on node node1, number 1, and is terminating

An active cluster was found during exclusive startup, restarting to join the cluster

Configure Oracle Grid Infrastructure for a Cluster … succeeded

[root@node2 ~]# 

 

Next

 

执行grid软件$ORACLE_HOME/bin下的crs_stat来查看集群信息:

node1-> /u01/app/11.2.0/grid/bin/crs_stat -t

Name           Type           Target    State     Host        

————————————————————

ora.GRIDDG.dg  ora….up.type ONLINE    ONLINE    node1       

ora….ER.lsnr ora….er.type ONLINE    ONLINE    node1       

ora….N1.lsnr ora….er.type ONLINE    ONLINE    node1       

ora.asm        ora.asm.type   ONLINE    ONLINE    node1       

ora.cvu        ora.cvu.type   ONLINE    ONLINE    node1       

ora.gsd        ora.gsd.type   OFFLINE   OFFLINE               

ora….network ora….rk.type ONLINE    ONLINE    node1       

ora….SM1.asm application    ONLINE    ONLINE    node1       

ora….E1.lsnr application    ONLINE    ONLINE    node1       

ora.node1.gsd  application    OFFLINE   OFFLINE               

ora.node1.ons  application    ONLINE    ONLINE    node1       

ora.node1.vip  ora….t1.type ONLINE    ONLINE    node1       

ora….SM2.asm application    ONLINE    ONLINE    node2       

ora….E2.lsnr application    ONLINE    ONLINE    node2       

ora.node2.gsd  application    OFFLINE   OFFLINE               

ora.node2.ons  application    ONLINE    ONLINE    node2       

ora.node2.vip  ora….t1.type ONLINE    ONLINE    node2       

ora.oc4j       ora.oc4j.type  ONLINE    ONLINE    node1       

ora.ons        ora.ons.type   ONLINE    ONLINE    node1       

ora….ry.acfs ora….fs.type ONLINE    ONLINE    node1       

ora.scan1.vip  ora….ip.type ONLINE    ONLINE    node1       

node1-> 

一步一步在Linux上升级10gR2 RAC到11gR2 RAC(2)

停止10gR2 RAC软件

停止数据库

[root@node1 ~]# su – oracle

node1-> crs_stat -t

Name           Type           Target    State     Host        

————————————————————

ora.devdb.db   application    ONLINE    ONLINE    node1       

ora….b1.inst application    ONLINE    ONLINE    node1       

ora….b2.inst application    ONLINE    ONLINE    node2       

ora….c10g.cs application    ONLINE    ONLINE    node1       

ora….db1.srv application    ONLINE    ONLINE    node1       

ora….SM1.asm application    ONLINE    ONLINE    node1       

ora….E1.lsnr application    ONLINE    ONLINE    node1       

ora.node1.gsd  application    ONLINE    ONLINE    node1       

ora.node1.ons  application    ONLINE    ONLINE    node1       

ora.node1.vip  application    ONLINE    ONLINE    node1       

ora….SM2.asm application    ONLINE    ONLINE    node2       

ora….E2.lsnr application    ONLINE    ONLINE    node2       

ora.node2.gsd  application    ONLINE    ONLINE    node2       

ora.node2.ons  application    ONLINE    ONLINE    node2       

ora.node2.vip  application    ONLINE    ONLINE    node2       

node1-> srvctl stop service -d devdb

node1-> crs_stat -t

Name           Type           Target    State     Host        

————————————————————

ora.devdb.db   application    ONLINE    ONLINE    node1       

ora….b1.inst application    ONLINE    ONLINE    node1       

ora….b2.inst application    ONLINE    ONLINE    node2       

ora….c10g.cs application    OFFLINE   OFFLINE               

ora….db1.srv application    OFFLINE   OFFLINE               

ora….SM1.asm application    ONLINE    ONLINE    node1       

ora….E1.lsnr application    ONLINE    ONLINE    node1       

ora.node1.gsd  application    ONLINE    ONLINE    node1       

ora.node1.ons  application    ONLINE    ONLINE    node1       

ora.node1.vip  application    ONLINE    ONLINE    node1       

ora….SM2.asm application    ONLINE    ONLINE    node2       

ora….E2.lsnr application    ONLINE    ONLINE    node2       

ora.node2.gsd  application    ONLINE    ONLINE    node2       

ora.node2.ons  application    ONLINE    ONLINE    node2       

ora.node2.vip  application    ONLINE    ONLINE    node2       

node1-> srvctl stop database -d devdb

node1-> crs_stat -t

Name           Type           Target    State     Host        

————————————————————

ora.devdb.db   application    OFFLINE   OFFLINE               

ora….b1.inst application    OFFLINE   OFFLINE               

ora….b2.inst application    OFFLINE   OFFLINE               

ora….c10g.cs application    OFFLINE   OFFLINE               

ora….db1.srv application    OFFLINE   OFFLINE               

ora….SM1.asm application    ONLINE    ONLINE    node1       

ora….E1.lsnr application    ONLINE    ONLINE    node1       

ora.node1.gsd  application    ONLINE    ONLINE    node1       

ora.node1.ons  application    ONLINE    ONLINE    node1       

ora.node1.vip  application    ONLINE    ONLINE    node1       

ora….SM2.asm application    ONLINE    ONLINE    node2       

ora….E2.lsnr application    ONLINE    ONLINE    node2       

ora.node2.gsd  application    ONLINE    ONLINE    node2       

ora.node2.ons  application    ONLINE    ONLINE    node2       

ora.node2.vip  application    ONLINE    ONLINE    node2       

node1-> srvctl stop asm -n node1     

node1-> srvctl stop asm -n node2

node1-> crs_stat -t

Name           Type           Target    State     Host        

————————————————————

ora.devdb.db   application    OFFLINE   OFFLINE               

ora….b1.inst application    OFFLINE   OFFLINE               

ora….b2.inst application    OFFLINE   OFFLINE               

ora….c10g.cs application    OFFLINE   OFFLINE               

ora….db1.srv application    OFFLINE   OFFLINE               

ora….SM1.asm application    OFFLINE   OFFLINE               

ora….E1.lsnr application    ONLINE    ONLINE    node1       

ora.node1.gsd  application    ONLINE    ONLINE    node1       

ora.node1.ons  application    ONLINE    ONLINE    node1       

ora.node1.vip  application    ONLINE    ONLINE    node1       

ora….SM2.asm application    OFFLINE   OFFLINE               

ora….E2.lsnr application    ONLINE    ONLINE    node2       

ora.node2.gsd  application    ONLINE    ONLINE    node2       

ora.node2.ons  application    ONLINE    ONLINE    node2       

ora.node2.vip  application    ONLINE    ONLINE    node2       

node1-> srvctl stop nodeapps -n node1

node1-> srvctl stop nodeapps -n node2

node1-> crs_stat -t

Name           Type           Target    State     Host        

————————————————————

ora.devdb.db   application    OFFLINE   OFFLINE               

ora….b1.inst application    OFFLINE   OFFLINE               

ora….b2.inst application    OFFLINE   OFFLINE               

ora….c10g.cs application    OFFLINE   OFFLINE               

ora….db1.srv application    OFFLINE   OFFLINE               

ora….SM1.asm application    OFFLINE   OFFLINE               

ora….E1.lsnr application    OFFLINE   OFFLINE               

ora.node1.gsd  application    OFFLINE   OFFLINE               

ora.node1.ons  application    OFFLINE   OFFLINE               

ora.node1.vip  application    OFFLINE   OFFLINE               

ora….SM2.asm application    OFFLINE   OFFLINE               

ora….E2.lsnr application    OFFLINE   OFFLINE               

ora.node2.gsd  application    OFFLINE   OFFLINE               

ora.node2.ons  application    OFFLINE   OFFLINE               

ora.node2.vip  application    OFFLINE   OFFLINE               

node1-> 

停止CRS

节点1

[root@node1 ~]# /u01/app/oracle/product/10.2.0/crs_1/bin/crsctl stop crs

Stopping resources. This could take several minutes.

Successfully stopped CRS resources.

Stopping CSSD.

Shutting down CSS daemon.

Shutdown request successfully issued.

[root@node1 ~]# 

 

节点2

[root@node2 ~]# /u01/app/oracle/product/10.2.0/crs_1/bin/crs_stat -t

Name           Type           Target    State     Host        

————————————————————

ora.devdb.db   application    OFFLINE   OFFLINE               

ora….b1.inst application    OFFLINE   OFFLINE               

ora….b2.inst application    OFFLINE   OFFLINE               

ora….c10g.cs application    OFFLINE   OFFLINE               

ora….db1.srv application    OFFLINE   OFFLINE               

ora….SM1.asm application    OFFLINE   OFFLINE               

ora….E1.lsnr application    OFFLINE   OFFLINE               

ora.node1.gsd  application    OFFLINE   OFFLINE               

ora.node1.ons  application    OFFLINE   OFFLINE               

ora.node1.vip  application    OFFLINE   OFFLINE               

ora….SM2.asm application    OFFLINE   OFFLINE               

ora….E2.lsnr application    OFFLINE   OFFLINE               

ora.node2.gsd  application    OFFLINE   OFFLINE               

ora.node2.ons  application    OFFLINE   OFFLINE               

ora.node2.vip  application    OFFLINE   OFFLINE               

[root@node2 ~]# /u01/app/oracle/product/10.2.0/crs_1/bin/crsctl stop crs

Stopping resources. This could take several minutes.

Successfully stopped CRS resources.

Stopping CSSD.

Shutting down CSS daemon.

Shutdown request successfully issued.

[root@node2 ~]# 

备份10gR2 RAC软件

备份OCRvoting disk

Note

只需要在其中一个节点备份就可以,因为OCRVoting Disk是存放在共享存储上的。

这里只在节点1上执行备份。

Node1:

[root@node1 ~]# pwd

/root

[root@node1 ~]# mkdir 10gbackup

[root@node1 ~]# ll /dev/raw/ra*

crw-r—– 1 oracle oinstall 162, 1 Dec 24 16:56 /dev/raw/raw1

crw-r—– 1 oracle oinstall 162, 2 Dec 24 16:59 /dev/raw/raw2

[root@node1 ~]# dd if=/dev/raw/raw1 of=/root/10gbackup/10gocr.bak

262112+0 records in

262112+0 records out

134201344 bytes (134 MB) copied, 104.927 seconds, 1.3 MB/s

[root@node1 ~]# dd if=/dev/raw/raw2 of=/root/10gbackup/10gvotingdisk.bak

262112+0 records in

262112+0 records out

134201344 bytes (134 MB) copied, 96.4558 seconds, 1.4 MB/s

[root@node1 ~]# ll /root/10gbackup/

total 262376

-rw-r–r– 1 root root 134201344 Dec 24 17:01 10gocr.bak

-rw-r–r– 1 root root 134201344 Dec 24 17:04 10gvotingdisk.bak

[root@node1 ~]# 

备份RAC初始化脚本

Note

这里需要在双节点上备份/etc/inittab配置文件以及

/etc/init.d/init.crs

/etc/init.d/init.crsd

/etc/init.d/init.cssd

/etc/init.d/init.evmd 初始化脚本。

Node1:

[root@node1 10gbackup]# ll

total 262376

-rw-r–r– 1 root root 134201344 Dec 24 17:01 10gocr.bak

-rw-r–r– 1 root root 134201344 Dec 24 17:04 10gvotingdisk.bak

[root@node1 10gbackup]# cp /etc/inittab /root/10gbackup/inittab.bak

[root@node1 10gbackup]# cp /etc/init.d/init.crs /root/10gbackup/init.crs.bak

[root@node1 10gbackup]# cp /etc/init.d/init.crsd /root/10gbackup/init.crsd.bak

[root@node1 10gbackup]# cp /etc/init.d/init.cssd /root/10gbackup/init.cssd.bak

[root@node1 10gbackup]# cp /etc/init.d/init.evmd /root/10gbackup/init.evmd.bak

[root@node1 10gbackup]# ll

total 262456

-rw-r–r– 1 root root 134201344 Dec 24 17:01 10gocr.bak

-rw-r–r– 1 root root 134201344 Dec 24 17:04 10gvotingdisk.bak

-r-xr-xr-x 1 root root      2436 Dec 24 17:17 init.crs.bak

-r-xr-xr-x 1 root root      5532 Dec 24 17:17 init.crsd.bak

-r-xr-xr-x 1 root root     55174 Dec 24 17:17 init.cssd.bak

-r-xr-xr-x 1 root root      3499 Dec 24 17:17 init.evmd.bak

-rw-r–r– 1 root root      1869 Dec 24 17:16 inittab.bak

[root@node1 10gbackup]# 

Node2:

[root@node2 ~]# cd

[root@node2 ~]# mkdir 10gbackup

[root@node2 ~]# cd 10gbackup/

[root@node2 10gbackup]# ll

total 0

[root@node2 10gbackup]# cp /etc/inittab /root/10gbackup/inittab.bak

[root@node2 10gbackup]# cp /etc/init.d/init.crs /root/10gbackup/init.crs.bak

[root@node2 10gbackup]# cp /etc/init.d/init.crsd /root/10gbackup/init.crsd.bak

[root@node2 10gbackup]# cp /etc/init.d/init.cssd /root/10gbackup/init.cssd.bak

[root@node2 10gbackup]# cp /etc/init.d/init.evmd /root/10gbackup/init.evmd.bak

[root@node2 10gbackup]# ll

total 100

-r-xr-xr-x 1 root root  2436 Dec 24 17:18 init.crs.bak

-r-xr-xr-x 1 root root  5532 Dec 24 17:18 init.crsd.bak

-r-xr-xr-x 1 root root 55174 Dec 24 17:18 init.cssd.bak

-r-xr-xr-x 1 root root  3499 Dec 24 17:18 init.evmd.bak

-rw-r–r– 1 root root  1869 Dec 24 17:18 inittab.bak

[root@node2 10gbackup]# 

备份oracle软件、集群软件

可以用OS tar命令来备份

tar -czf /home/oracle/oracle.tar.z $ORACLE_HOME/

这里不再赘述。

备份数据库

RMAN备份数据库。亦不再赘述。

移除/etc/oracle

Node1:

[root@node1 ~]# ll /etc/oracle/

total 12

-rw-r–r– 1 root oinstall   45 Dec 21 22:19 ocr.loc

drwxrwxr-x 5 root root     4096 Dec 24 16:54 oprocd

drwxr-xr-x 3 root root     4096 Dec 21 22:19 scls_scr

[root@node1 ~]# mv /etc/oracle/ /root/10gbackup/etc_oracle

[root@node1 ~]# ll /etc/oracle

ls: /etc/oracle: No such file or directory

[root@node1 ~]# 

Node2:

[root@node2 ~]# ll /etc/oracle/

total 24

-rw-r–r– 1 root oinstall   45 Dec 21 22:21 ocr.loc

drwxrwxr-x 5 root root     4096 Dec 24 16:55 oprocd

drwxr-xr-x 3 root root     4096 Dec 21 22:21 scls_scr

[root@node2 ~]# mv /etc/oracle/ /root/10gbackup/etc_oracle

[root@node2 ~]# ll /etc/oracle/

total 8

drwxrwxr-x 5 root root 4096 Dec 24 17:29 oprocd

[root@node2 ~]# ll /root/10gbackup/etc_oracle/

total 24

-rw-r–r– 1 root oinstall   45 Dec 21 22:21 ocr.loc

drwxrwxr-x 5 root root     4096 Dec 24 16:55 oprocd

drwxr-xr-x 3 root root     4096 Dec 21 22:21 scls_scr

[root@node2 ~]# 

移除/etc/init.d/init*

Node1:

[root@node1 10gbackup]# cd

[root@node1 ~]# cd /root/10gbackup/

[root@node1 10gbackup]# ll

total 262460

-rw-r–r– 1 root root     134201344 Dec 24 17:01 10gocr.bak

-rw-r–r– 1 root root     134201344 Dec 24 17:04 10gvotingdisk.bak

drwxr-xr-x 4 root oinstall      4096 Dec 21 23:07 etc_oracle

-r-xr-xr-x 1 root root          2436 Dec 24 17:17 init.crs.bak

-r-xr-xr-x 1 root root          5532 Dec 24 17:17 init.crsd.bak

-r-xr-xr-x 1 root root         55174 Dec 24 17:17 init.cssd.bak

-r-xr-xr-x 1 root root          3499 Dec 24 17:17 init.evmd.bak

-rw-r–r– 1 root root          1869 Dec 24 17:16 inittab.bak

[root@node1 10gbackup]# mkdir init_mv

[root@node1 10gbackup]# ll /etc/init.d/init.*

-r-xr-xr-x 1 root root  2436 Dec 21 23:08 /etc/init.d/init.crs

-r-xr-xr-x 1 root root  5532 Dec 21 23:08 /etc/init.d/init.crsd

-r-xr-xr-x 1 root root 55174 Dec 21 23:08 /etc/init.d/init.cssd

-r-xr-xr-x 1 root root  3499 Dec 21 23:08 /etc/init.d/init.evmd

[root@node1 10gbackup]# mv /etc/init.d/init.* /root/10gbackup/init_mv/

[root@node1 10gbackup]# ll /etc/init.d/init.*

ls: /etc/init.d/init.*: No such file or directory

[root@node1 10gbackup]# ll /root/10gbackup/init_mv/

total 76

-r-xr-xr-x 1 root root  2436 Dec 21 23:08 init.crs

-r-xr-xr-x 1 root root  5532 Dec 21 23:08 init.crsd

-r-xr-xr-x 1 root root 55174 Dec 21 23:08 init.cssd

-r-xr-xr-x 1 root root  3499 Dec 21 23:08 init.evmd

[root@node1 10gbackup]# 

Node2:

[root@node2 ~]# cd /root/10gbackup/

[root@node2 10gbackup]# mkdir init_mv

[root@node2 10gbackup]# ll /etc/init.d/init.*

-r-xr-xr-x 1 root root  2436 Dec 21 23:11 /etc/init.d/init.crs

-r-xr-xr-x 1 root root  5532 Dec 21 23:11 /etc/init.d/init.crsd

-r-xr-xr-x 1 root root 55174 Dec 21 23:11 /etc/init.d/init.cssd

-r-xr-xr-x 1 root root  3499 Dec 21 23:11 /etc/init.d/init.evmd

[root@node2 10gbackup]# mv /etc/init.d/init.* /root/10gbackup/init_mv/

[root@node2 10gbackup]# ll /etc/init.d/init.*

ls: /etc/init.d/init.*: No such file or directory

[root@node2 10gbackup]# ll /root/10gbackup/init_mv/

total 92

-r-xr-xr-x 1 root root  2436 Dec 21 23:11 init.crs

-r-xr-xr-x 1 root root  5532 Dec 21 23:11 init.crsd

-r-xr-xr-x 1 root root 55174 Dec 21 23:11 init.cssd

-r-xr-xr-x 1 root root  3499 Dec 21 23:11 init.evmd

[root@node2 10gbackup]# 

修改/etc/inittab文件

Node1:

[root@node1 10gbackup]# tail -10 /etc/inittab

3:2345:respawn:/sbin/mingetty tty3

4:2345:respawn:/sbin/mingetty tty4

5:2345:respawn:/sbin/mingetty tty5

6:2345:respawn:/sbin/mingetty tty6

 

# Run xdm in runlevel 5

x:5:respawn:/etc/X11/prefdm -nodaemon

#h1:35:respawn:/etc/init.d/init.evmd run >/dev/null 2>&1 </dev/null

#h2:35:respawn:/etc/init.d/init.cssd fatal >/dev/null 2>&1 </dev/null

#h3:35:respawn:/etc/init.d/init.crsd run >/dev/null 2>&1 </dev/null

[root@node1 10gbackup]#

Node2:

[root@node2 10gbackup]# tail -10 /etc/inittab

3:2345:respawn:/sbin/mingetty tty3

4:2345:respawn:/sbin/mingetty tty4

5:2345:respawn:/sbin/mingetty tty5

6:2345:respawn:/sbin/mingetty tty6

 

# Run xdm in runlevel 5

x:5:respawn:/etc/X11/prefdm -nodaemon

#h1:35:respawn:/etc/init.d/init.evmd run >/dev/null 2>&1 </dev/null

#h2:35:respawn:/etc/init.d/init.cssd fatal >/dev/null 2>&1 </dev/null

#h3:35:respawn:/etc/init.d/init.crsd run >/dev/null 2>&1 </dev/null

[root@node2 10gbackup]# 

删除/tmp/.oracle/var/tmp/.oracle

Node1:

[root@node1 10gbackup]# ll /tmp/.oracle/

total 0

[root@node1 10gbackup]# ll /var/tmp/.oracle/

total 0

srwxrwxrwx 1 oracle oinstall 0 Dec 22 10:08 s#4353.1

srwxrwxrwx 1 oracle oinstall 0 Dec 22 10:08 s#4353.2

srwxrwxrwx 1 oracle oinstall 0 Dec 24 16:55 sAnode1_crs_evm

srwxrwxrwx 1 oracle oinstall 0 Dec 24 16:55 sCnode1_crs_evm

srwxrwxrwx 1 root   root     0 Dec 24 16:55 sCRSD_UI_SOCKET

srwxrwxrwx 1 root   root     0 Dec 24 16:55 snode1DBG_CRSD

srwxrwxrwx 1 oracle oinstall 0 Dec 24 16:55 snode1DBG_CSSD

srwxrwxrwx 1 oracle oinstall 0 Dec 24 16:55 snode1DBG_EVMD

srwxrwxrwx 1 oracle oinstall 0 Dec 24 16:55 sOCSSD_LL_node1_

srwxrwxrwx 1 oracle oinstall 0 Dec 24 16:55 sOCSSD_LL_node1_crs

srwxrwxrwx 1 oracle oinstall 0 Dec 24 16:55 sOracle_CSS_LclLstnr_crs_1

srwxrwxrwx 1 root   root     0 Dec 24 16:55 sora_crsqs

srwxrwxrwx 1 root   root     0 Dec 24 16:55 sprocr_local_conn_0_PROC

srwxrwxrwx 1 oracle oinstall 0 Dec 24 16:55 sSYSTEM.evm.acceptor.auth

[root@node1 10gbackup]# rm -rf /tmp/.oracle/

[root@node1 10gbackup]# rm -rf /var/tmp/.oracle/

[root@node1 10gbackup]# 

[root@node1 10gbackup]# 

[root@node1 10gbackup]# ll /tmp/.oracle/

ls: /tmp/.oracle/: No such file or directory

[root@node1 10gbackup]# ll /var/tmp/.oracle/

ls: /var/tmp/.oracle/: No such file or directory

[root@node1 10gbackup]# 

Node2:

[root@node2 10gbackup]# ll /tmp/.oracle/

total 0

[root@node2 10gbackup]# ll /var/tmp/.oracle/

total 64

srwxrwxrwx 1 oracle oinstall 0 Dec 22 10:08 s#15791.1

srwxrwxrwx 1 oracle oinstall 0 Dec 22 10:08 s#15791.2

srwxrwxrwx 1 oracle oinstall 0 Dec 23 14:37 s#5706.1

srwxrwxrwx 1 oracle oinstall 0 Dec 23 14:37 s#5706.2

srwxrwxrwx 1 oracle oinstall 0 Dec 24 16:55 sAnode2_crs_evm

srwxrwxrwx 1 oracle oinstall 0 Dec 24 16:55 sCnode2_crs_evm

srwxrwxrwx 1 root   root     0 Dec 24 16:55 sCRSD_UI_SOCKET

srwxrwxrwx 1 root   root     0 Dec 24 16:55 snode2DBG_CRSD

srwxrwxrwx 1 oracle oinstall 0 Dec 24 16:55 snode2DBG_CSSD

srwxrwxrwx 1 oracle oinstall 0 Dec 24 16:55 snode2DBG_EVMD

srwxrwxrwx 1 oracle oinstall 0 Dec 24 16:55 sOCSSD_LL_node2_

srwxrwxrwx 1 oracle oinstall 0 Dec 24 16:55 sOCSSD_LL_node2_crs

srwxrwxrwx 1 oracle oinstall 0 Dec 24 16:55 sOracle_CSS_LclLstnr_crs_2

srwxrwxrwx 1 root   root     0 Dec 24 16:55 sora_crsqs

srwxrwxrwx 1 root   root     0 Dec 24 16:55 sprocr_local_conn_0_PROC

srwxrwxrwx 1 oracle oinstall 0 Dec 24 16:55 sSYSTEM.evm.acceptor.auth

[root@node2 10gbackup]# rm -rf /tmp/.oracle/

[root@node2 10gbackup]# rm -rf /var/tmp/.oracle/

[root@node2 10gbackup]# ll /tmp/.oracle

ls: /tmp/.oracle: No such file or directory

[root@node2 10gbackup]# ll /var/tmp/.oracle

ls: /var/tmp/.oracle: No such file or directory

[root@node2 10gbackup]# 

 

最后,重启RAC双节点,确认RAC相关服务、后台进程不再出现。

一步一步在Linux上升级10gR2 RAC到11gR2 RAC(1)

概述:

    继本人上一个系列的Oracle 11gR2 RAC+DG项目实战教程发布已一年有余,在此期间,那个系列的教程得到众多网友的喜爱与好评,更是在互联网上畅销不衰。为此,众多网友也一直希望本人推出Oracle 10gR2 RAC的系列教程,恰逢前不久,深圳某客户需要将一套Oracle 10gR2双节点RAC生产数据库升级至Oracle 11gR2 RAC,所以便有了本系列实战的视频教程。

为更贴切还原生产过程中的实际操作,本系列教程一个分两大部分:

第一部分,从零开始一步一步搭建一套在OEL 5.5 X86_64位环境下的双节点10gR2 RAC数据库,并将数据库升级至10.2.0.5.0版本。

第二部分,一步一步将10gR2 RAC升级至Oracle 11gR2 RAC,数据库版本选择11g最新的11.2.0.4.0版本。

 

本文是第二部分:

主要步骤:

一、配置SCAN IPDNS、停止ntpd服务

二、oracle用户添加至oper用户组

三、创建grid软件的basehome相关目录

四、创建11gR2 oracle软件的home目录

五、创建11gR2 grid Infrastructureasm磁盘

六、停止10gR2 RAC软件

七、备份10gR2 RAC软件

八、安装grid软件

九、迁移10g RAC 磁盘组至11gR2 grid

十、安装11gR2 oracle软件

十一、升级10gR2 RAC数据库至11gR2 RAC数据库

 

配置SCAN IPDNS、停止ntpd服务

DNS服务器配置在此不再赘述,具体可以:

查看本人之前的系列视频之《黄伟老师Oracle RAC+DG系列视频+售后安心技术支持服务2讲:RAC第一个节点准备工作之:配置网络、DNS服务器

2 或查看本人系列文章之一步一步在Linux上安装Oracle 11gR2 RAC (2)2.3配置DNS服务器,确认SCAN IP可以被解析

因为我们的双节点服务器指定了oracleonlinux.cn域名,所以具体需要做特别修改的地方,:

A  /var/named/chroot/etc/named.rfc1912.zones添加下述内容:

zone “oracleonlinux.cn” IN {

        type master;

        file “oracleonlinux.cn.zone”;

        allow-update { none; };

};

B  添加正向解析配置文件:

[root@rdd named]# pwd

/var/named/chroot/var/named

[root@rdd named]# cat oracleonlinux.cn.zone 

$TTL    86400

@               IN SOA  oracleonlinux.cn root.oracleonlinux.cn (

                                        42              ; serial (d. adams)

                                        3H              ; refresh

                                        15M             ; retry

                                        1W              ; expiry

                                        1D )            ; minimum

                IN NS           oracleonlinux.cn

localhost       IN A            127.0.0.1

scan-cluster        IN A            172.16.0.223

[root@rdd named]# 

C  修改反向解析配置文件:

[root@rdd named]# pwd

/var/named/chroot/var/named

[root@rdd named]# ll

total 44

-rw-r—– 1 root  named  491 Dec 19 11:39 0.16.172.in-addr.arpa

drwxrwx— 2 named named 4096 Dec 19 10:45 data

-rw-r—– 1 root  named  244 Nov 23 14:19 localdomain.zone

-rw-r—– 1 root  named  195 Jan 21  2010 localhost.zone

-rw-r—– 1 root  named  427 Jan 21  2010 named.broadcast

-rw-r—– 1 root  named 1892 Jan 21  2010 named.ca

-rw-r—– 1 root  named  424 Jan 21  2010 named.ip6.local

-rw-r—– 1 root  named  426 Jan 21  2010 named.local

-rw-r—– 1 root  named  427 Jan 21  2010 named.zero

-rw-r—– 1 root  named  275 Dec 19 11:39 oracleonlinux.cn.zone

drwxrwx— 2 named named 4096 Jul 27  2004 slaves

[root@rdd named]# cat 0.16.172.in-addr.arpa 

$TTL    86400

@       IN      SOA     oracleonlinux.cn. root.oracleonlinux.cn.  (

                                      1997022700 ; Serial

                                      28800      ; Refresh

                                      14400      ; Retry

                                      3600000    ; Expire

                                      86400 )    ; Minimum

        IN      NS      localhost.

1       IN      PTR     localhost.

223     IN      PTR     scan-cluster.oracleonlinux.cn.

[root@rdd named]# 

 

双节点验证SCAN IP可以解析:

Node1

 

Node2

 

 

双节点停止NTP服务:

Node1:

[root@node1 ~]# ll /etc/ntp.conf 

-rw-r–r– 1 root root 1833 Dec  9  2009 /etc/ntp.conf

[root@node1 ~]# mv /etc/ntp.conf /etc/ntp.conf.bak

[root@node1 ~]# service ntpd stop

Shutting down ntpd: [FAILED]

[root@node1 ~]# service ntpd status

ntpd is stopped

[root@node1 ~]# 

Node2:

[root@node2 ~]# ll /etc/ntp.conf 

-rw-r–r– 1 root root 1833 Dec  9  2009 /etc/ntp.conf

[root@node2 ~]# mv /etc/ntp.conf /etc/ntp.conf.bak

[root@node2 ~]# service ntpd status

ntpd is stopped

[root@node2 ~]# service ntpd stop

Shutting down ntpd: [FAILED]

[root@node2 ~]# 

 

oracle用户添加至oper用户组

双节点上创建oper用户组、并将oracle用户添加至oper组。

Node1:

[root@node1 ~]# id oracle

uid=500(oracle) gid=500(oinstall) groups=500(oinstall),501(dba)

[root@node1 ~]# groupadd oper

[root@node1 ~]# usermod -a -G oper oracle

[root@node1 ~]# id oracle

uid=500(oracle) gid=500(oinstall) groups=500(oinstall),501(dba),502(oper)

[root@node1 ~]# 

Node2:

[root@node2 ~]# id oracle

[root@node2 ~]# id oracle

uid=500(oracle) gid=500(oinstall) groups=500(oinstall),501(dba)

[root@node2 ~]# groupadd oper

[root@node2 ~]# usermod -a -G oper oracle

[root@node2 ~]# id oracle

uid=500(oracle) gid=500(oinstall) groups=500(oinstall),501(dba),502(oper) 

[root@node2 ~]# 

创建grid软件的basehome相关目录

Note

这里设置grid软件的oracle_base=/u01/app/gridgrid 软件的oracle_home=/u01/app/11.2.0/grid

需要注意的是,这两个目录是并行的目录,不能像传统的那样将oracle_home设置为oracle_base的子目录!

节点1

[root@node1 ~]# hostname 

node1.oracleonlinux.cn

[root@node1 ~]# mkdir -p /u01/app/grid

[root@node1 ~]# mkdir -p /u01/app/11.2.0/grid

[root@node1 ~]# chown -R oracle:oinstall /u01

[root@node1 ~]# ll /u01/app/

total 12

drwxrwxr-x 3 oracle oinstall 4096 Dec 25 20:19 11.2.0

drwxr-xr-x 2 oracle oinstall 4096 Dec 25 20:18 grid

drwxrwxr-x 5 oracle oinstall 4096 Dec 25 17:25 oracle

[root@node1 ~]# 

节点2

[root@node2 ~]# hostname 

node2.oracleonlinux.cn

[root@node2 ~]# mkdir -p /u01/app/grid

[root@node2 ~]# mkdir -p /u01/app/11.2.0/grid

[root@node2 ~]# chown -R oracle:oinstall /u01

[root@node2 ~]# ll /u01/app/

total 24

drwxrwxr-x 3 oracle oinstall 4096 Dec 25 20:21 11.2.0

drwxr-xr-x 2 oracle oinstall 4096 Dec 25 20:21 grid

drwxrwxr-x 5 oracle oinstall 4096 Dec 22 10:17 oracle

[root@node2 ~]# 

 

创建11gR2 oracle软件的home目录

Note

这里设置ORACLE_HOME=/u01/app/oracle/product/11.2.0/db_1ORACLE_BASE还保留之前的10g版本下的设置。

Node1

node1-> mkdir -p /u01/app/oracle/product/11.2.0/db_1

node1-> ll /u01/app/oracle/product/

total 8

drwxrwxr-x 4 oracle oinstall 4096 Dec 21 23:23 10.2.0

drwxr-xr-x 3 oracle oinstall 4096 Dec 26 09:32 11.2.0

node1-> 

Node2

node2-> pwd

/home/oracle

node2-> mkdir -p /u01/app/oracle/product/11.2.0/db_1

node2-> ll /u01/app/oracle/product/

total 16

drwxrwxr-x 4 oracle oinstall 4096 Dec 21 23:32 10.2.0

drwxr-xr-x 3 oracle oinstall 4096 Dec 26 09:34 11.2.0

node2-> 

创建11gR2 grid Infrastructureasm磁盘

节点上将之前配置的/dev/sdf1硬盘分区创建成第3ASM磁盘,用作将来安装grid软件时来存放OCRVoting Disk

Node1

[root@node1 ~]# /etc/init.d/oracleasm listdisks

ASMDISK1

ASMDISK2

[root@node1 ~]# /etc/init.d/oracleasm querydisk /dev/sd*

Device “/dev/sda” is not marked as an ASM disk

Device “/dev/sda1” is not marked as an ASM disk

Device “/dev/sda2” is not marked as an ASM disk

Device “/dev/sdb” is not marked as an ASM disk

Device “/dev/sdb1” is not marked as an ASM disk

Device “/dev/sdc” is not marked as an ASM disk

Device “/dev/sdc1” is not marked as an ASM disk

Device “/dev/sdd” is not marked as an ASM disk

Device “/dev/sdd1” is marked an ASM disk with the label “ASMDISK1”

Device “/dev/sde” is not marked as an ASM disk

Device “/dev/sde1” is marked an ASM disk with the label “ASMDISK2”

Device “/dev/sdf” is not marked as an ASM disk

Device “/dev/sdf1” is not marked as an ASM disk

[root@node1 ~]# /etc/init.d/oracleasm createdisk asmdisk3 /dev/sdf1

Marking disk “asmdisk3” as an ASM disk: [  OK  ]

[root@node1 ~]# /etc/init.d/oracleasm listdisks

ASMDISK1

ASMDISK2

ASMDISK3

[root@node1 ~]# 

Node2

[root@node2 ~]# /etc/init.d/oracleasm listdisks

ASMDISK1

ASMDISK2

[root@node2 ~]# /etc/init.d/oracleasm scandisks

Scanning the system for Oracle ASMLib disks: [  OK  ]

[root@node2 ~]# /etc/init.d/oracleasm listdisks

ASMDISK1

ASMDISK2

ASMDISK3

[root@node2 ~]# 

配置Oracle RAC时修改/etc/hosts文件的注意事项

首先,我们的问题是:在部署Oracle RAC的时候为什么需要修改/etc/hosts文件? 或者具体的说,我们在Linux平台部署Oracle RAC时为什么需要将/etc/hosts文件里的环路地址修改为
        127.0.0.1               localhost
格式? 当然,不同操作系统平台需要修改的hosts文件名称和位置,依赖于操作系统本身。如:Windows下需要修改的是C:\Windows\System32\drivers\etc\hosts文件。

接下来,要想搞清楚这个问题不难,了解一些网络相关的基础知识即可。
我们知道,在一个网络环境中,我们可以通过IP地址去精确访问某个网络设备[如主机、pc、打印机],也可以通过这个设备名来访问该设备。
通过IP地址去定位某个设备时,如果网络未遭受诸如ARP攻击的话,则通常都不会出现问题。关于ARP问题不是本篇重点,不再赘述。
而要想通过主机名去访问时,就需要有某种转换规则可以正确的将主机名称与IP地址成功映射。
这种转换规则通常可以有3种途径:
1 hosts配置文件;
2 NIS[Network Information System|Service],网络信息服务,或者称之为”网络黄页”;
3 DNS[Domain Name System],域名系统。

在没有配置NIS、DNS的网络环境下,/etc/hosts文件则成为我们通过主机名来访问该主机的唯一选择了。
这个配置文件里记录着网络中每一台主机名与其对应的IP地址,而且如果出现某个主机名对应多个IP的话,则只有第一条记录生效,可以用于正确的解析主机名,在解析过程中,后面出现的记录将被忽略。该文件的配置格式如下:
        IP Address    hostname    aliases

看个例子,如果保留默认情况下的环路地址:

[root@node1 ~]# hostname 
node1.oracleonlinux.cn
[root@node1 ~]# cat /etc/hosts
# Do not remove the following line, or various programs
# that require network functionality will fail.
127.0.0.1       node1.oracleonlinux.cn  node1 localhost.localdomain localhost localhost
::1             localhost6.localdomain6 localhost6

# public
172.16.0.33     node1.oracleonlinux.cn       node1
172.16.0.34     node2.oracleonlinux.cn       node2

# private
192.168.94.11   node1-priv.oracleonlinux.cn  node1-priv
192.168.94.12   node2-priv.oracleonlinux.cn  node2-priv

# virtual
172.16.0.35     node1-vip.oracleonlinux.cn   node1-vip
172.16.0.36     node2-vip.oracleonlinux.cn   node2-vip

# scan-ip
172.16.0.223            scan-cluster.oracleonlinux.cn
[root@node1 ~]# ping node1
PING node1.oracleonlinux.cn (127.0.0.1) 56(84) bytes of data.
64 bytes from node1.oracleonlinux.cn (127.0.0.1): icmp_seq=1 ttl=64 time=0.028 ms
64 bytes from node1.oracleonlinux.cn (127.0.0.1): icmp_seq=2 ttl=64 time=0.043 ms
64 bytes from node1.oracleonlinux.cn (127.0.0.1): icmp_seq=3 ttl=64 time=0.041 ms
64 bytes from node1.oracleonlinux.cn (127.0.0.1): icmp_seq=4 ttl=64 time=0.039 ms

--- node1.oracleonlinux.cn ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3001ms
rtt min/avg/max/mdev = 0.028/0.037/0.043/0.009 ms
[root@node1 ~]# ping node1.oracleonlinux.cn
PING node1.oracleonlinux.cn (127.0.0.1) 56(84) bytes of data.
64 bytes from node1.oracleonlinux.cn (127.0.0.1): icmp_seq=1 ttl=64 time=0.031 ms
64 bytes from node1.oracleonlinux.cn (127.0.0.1): icmp_seq=2 ttl=64 time=0.042 ms
64 bytes from node1.oracleonlinux.cn (127.0.0.1): icmp_seq=3 ttl=64 time=0.044 ms
64 bytes from node1.oracleonlinux.cn (127.0.0.1): icmp_seq=4 ttl=64 time=0.043 ms

--- node1.oracleonlinux.cn ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 2999ms
rtt min/avg/max/mdev = 0.031/0.040/0.044/0.005 ms
[root@node1 ~]#

我们修改默认环路地址后:

[root@node1 ~]# cat /etc/hosts
# Do not remove the following line, or various programs
# that require network functionality will fail.
127.0.0.1       localhost
::1             localhost6.localdomain6 localhost6

# public
172.16.0.33     node1.oracleonlinux.cn       node1
172.16.0.34     node2.oracleonlinux.cn       node2

# private
192.168.94.11   node1-priv.oracleonlinux.cn  node1-priv
192.168.94.12   node2-priv.oracleonlinux.cn  node2-priv

# virtual
172.16.0.35     node1-vip.oracleonlinux.cn   node1-vip
172.16.0.36     node2-vip.oracleonlinux.cn   node2-vip

# scan-ip
172.16.0.223            scan-cluster.oracleonlinux.cn
[root@node1 ~]# ping node1
PING node1.oracleonlinux.cn (172.16.0.33) 56(84) bytes of data.
64 bytes from node1.oracleonlinux.cn (172.16.0.33): icmp_seq=1 ttl=64 time=0.026 ms
64 bytes from node1.oracleonlinux.cn (172.16.0.33): icmp_seq=2 ttl=64 time=0.040 ms
64 bytes from node1.oracleonlinux.cn (172.16.0.33): icmp_seq=3 ttl=64 time=0.050 ms
64 bytes from node1.oracleonlinux.cn (172.16.0.33): icmp_seq=4 ttl=64 time=0.034 ms

--- node1.oracleonlinux.cn ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3000ms
rtt min/avg/max/mdev = 0.026/0.037/0.050/0.010 ms
[root@node1 ~]# ping node1.oracleonlinux.cn
PING node1.oracleonlinux.cn (172.16.0.33) 56(84) bytes of data.
64 bytes from node1.oracleonlinux.cn (172.16.0.33): icmp_seq=1 ttl=64 time=0.038 ms
64 bytes from node1.oracleonlinux.cn (172.16.0.33): icmp_seq=2 ttl=64 time=0.044 ms
64 bytes from node1.oracleonlinux.cn (172.16.0.33): icmp_seq=3 ttl=64 time=0.047 ms
64 bytes from node1.oracleonlinux.cn (172.16.0.33): icmp_seq=4 ttl=64 time=0.041 ms

--- node1.oracleonlinux.cn ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3001ms
rtt min/avg/max/mdev = 0.038/0.042/0.047/0.007 ms
[root@node1 ~]#

最后,看完之后,你有答案了吗?现在你知道了部署Oracle RAC时为什么需要将/etc/hosts文件里的环路地址修改为

           127.0.0.1  localhost

格式吗?