ASM共享磁盤組冗餘模式變更方案

目錄

 

1、方案背景

1.1 需求:

1.2 備份數據庫

2、遷移步驟

2.1 創建磁盤組

2.1.1 新建磁盤組

2.1.2 查看磁盤組

2.2 遷移控制文件

2.2.1 現環境

2.2.2 遷移方法

2.2.3 遷移步驟

2.3 遷移數據文件

2.3.1 現環境

2.3.2 遷移方法

2.3.3 遷移步驟

2.4 遷移臨時文件

2.4.1 現環境

2.4.2 遷移方法

2.4.3 遷移步驟

2.5 啓動二節點

2.5.1 啓動到nomount

2.5.2 修改控制文件

2.5.3 重啓至open狀態

2.6 遷移日誌文件

2.6.1 現環境

2.6.2 遷移方法

2.6.3 遷移步驟

2.7 遷移參數文件

2.7.1 現環境

2.7.2 遷移方法

2.7.3 遷移步驟

2.8 更新crs配置

2.8.1 現環境

2.8.2 修改參數文件配置

2.8.3 修改磁盤組配置

2.8.4 刪除舊磁盤組

3、啓動數據庫

3.1 啓動數據庫

3.2 檢查數據庫

4.1 創建磁盤組回退

4.1.1圖形界面

4.1.2 命令行

4.2 回退控制文件

4.2.1 更改控制文件參數

4.2.2 restore控制文件

4.3 回退數據文件

4.3.1 拷貝數據文件

4.3.2 切換數據文件

4.3.3 修改參數

4.4 回退臨時文件

4.4.1 新建臨時表空間

4.4.2 更改默認臨時表空間

4.4.3 刪除old臨時表空間

4.5 啓動二節點

4.5.1 修改控制文件

4.5.2 啓動open狀態

4.6 回退日誌文件

4.6.1 添加新日誌成員

4.6.2 刪除舊日誌成員

4.7 回退參數文件

4.7.1 一節點:

4.7.2 二節點:

4.8 回退crs配置

4.8.1 回退參數文件配置

4.8.2 回退磁盤組配置

4.8.3 回退磁盤組

4.9 異常恢復


1.1 需求:

由於於該套數據庫爲生產核心數據庫,在使用ASM建立Oracle數據庫的時候,ASM磁盤組的缺省冗餘爲normal(兩路冗餘),而該數數據庫系統是建立在RAID存儲上的,在存儲上已經有了一個冗餘以保證數據的安全,如果在ASM中再建立一個兩路冗餘,一來會浪費很多的存儲空間,二來也會增加很大的存儲IO負載。

      

現需要將存放數據的DATADG1共享盤的冗餘模式更改爲EXTERNAL。

 

由於normal模式在性能和cost都是很大的浪費,這就需要在建庫後修改磁盤組的冗餘模式,而Oracle沒有提供直接修改ASM磁盤組冗餘模式的手段,我們可以藉助磁盤組替換來修改冗餘模式,本方案使用RMAN的copy-switch方法遷移數據文件來實現磁盤組的替換。

      

先創建一個新ASM磁盤組。

關閉二節點,無需對二節點進行操作

先將控制文件遷移至磁盤組,再遷移數據文件、日誌文件等。

1.2 備份數據庫

       爲了數據的安全性,做任何變更之前都需要對數據庫進行一個全備,以防遇到不可逆轉問題,也能保證數據的完整。

backup database plus archivelog format '/home/oracle/backup/%U';

 

在測試環境中演練該方案,步驟如下:

原ASM磁盤組情況:

       將把normal模式的NEWDATA共享磁盤組更改爲external模式的磁盤組。

 

2.1 創建磁盤組

  1. 可以使用asmca圖形化來創建磁盤組

     2. 也可以使用asmca靜默創建;

asmca -silent  -createDiskGroup -diskGroupName data -diskList '/dev/asm-diske','/dev/asm-diskf' -redundancy EXTERNAL

    3. 可以使用create diskgroup命令創建。

create diskgroup DATA EXTERNAL redundancy disk '/dev/asm-diske','/dev/asm-diskf';

2.1.1 新建磁盤組

新創建一個冗餘方式爲EXTERNAL的共享磁盤組—NEWDATA1。

2.1.2 查看磁盤組

[oracle@rac1 dbs]$ sqlplus / as sysdba

 

SQL*Plus: Release 11.2.0.4.0 Production on Mon Jun 3 13:22:12 2019

 

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

 

 

Connected to:

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

 

SQL> select state,name,type from v$asm_diskgroup;

 

STATE         NAME                   TYPE

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

MOUNTED     NEWDATA1              EXTERN

CONNECTED   NEWDATA               NORMAL

MOUNTED     OCR                     EXTERN

 

SQL>

標紅的磁盤組就是新創建的一個ASM磁盤組,名爲NEWDATA1,external外部冗餘。

 

 

2.2 遷移控制文件

2.2.1 現環境

控制文件存放2分在+ NEWDATA磁盤組上,需遷移 至+NEWDATA1磁盤組上。

 

2.2.2 遷移方法

       修改control_files參數,在+NEWDATA1上增加一個控制文件

alter system set control_files='+NEWDATA1','+NEWDATA1' scope=spfile;

2.2.3 遷移步驟

       改爲控制文件路徑後,由於第二個文件並不存在,會報錯。

這時重啓數據庫至nomount模式,使用rman從第一個控制文件恢復第二個控制文件

啓動到nomount

關閉數據庫,啓動節點至nomount狀態:

SQL> shutdown immediate

Database closed.

Database dismounted.

ORACLE instance shut down.

SQL>      

SQL> startup nomount

ORACLE instance started.

 

Total System Global Area 1135747072 bytes

Fixed Size                  2252544 bytes

Variable Size            1006633216 bytes

Database Buffers          117440512 bytes

Redo Buffers                9420800 bytes

SQL>

 

恢復控制文件

[oracle@rac1 ~]$ rman target /

Recovery Manager: Release 11.2.0.4.0 - Production on Mon Jun 3 13:41:49 2019

Copyright (c) 1982, 2011, Oracle and/or its affiliates.  All rights reserved.

connected to target database: RAC (not mounted)

RMAN>

RMAN> restore controlfile from '+NEWDATA/rac/controlfile/current.257.1009970067';

Starting restore at 03-JUN-19

using target database control file instead of recovery catalog

allocated channel: ORA_DISK_1

channel ORA_DISK_1: SID=17 instance=rac1 device type=DISK

channel ORA_DISK_1: copied control file copy

output file name=+NEWDATA1/rac/controlfile/current.257.1009979623

output file name=+NEWDATA1/rac/controlfile/current.258.1009979625

Finished restore at 03-JUN-19

RMAN>

       這裏可以看到紅色標註的是生成的新的控制文件。

重新啓動到open

SQL> shutdown immediate

ORA-01109: database not open

Database dismounted.

ORACLE instance shut down.

SQL> startup

ORACLE instance started.

 

Total System Global Area 1135747072 bytes

Fixed Size                  2252544 bytes

Variable Size            1006633216 bytes

Database Buffers          117440512 bytes

Redo Buffers                9420800 bytes

Database mounted.

Database opened.

SQL> show parameter control_files

NAME                            TYPE         VALUE

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

control_files                        string          +NEWDATA1/rac/controlfile/curr

                                                 ent.257.1009979623, +NEWDATA1/

                                                 rac/controlfile/current.258.10

                                                 09979625

SQL>

至此,控制文件已經被成功移動到+NEWDATA1磁盤上了

 

2.3 遷移數據文件

2.3.1 現環境

數據文件放在+NEWDATA磁盤組上,需遷移至+NEWDATA1磁盤組上。

2.3.2 遷移方法

先在+NEWDATA1上做數據文件的鏡像拷貝,再做switch告訴控制文件我們的數據文件在+NEWDATA1上,而非+NEWDATA磁盤上。

2.3.3 遷移步驟

拷貝數據文件

[oracle@rac1 ~]$ rman target /

Recovery Manager: Release 11.2.0.4.0 - Production on Mon Jun 3 14:17:59 2019

Copyright (c) 1982, 2011, Oracle and/or its affiliates.  All rights reserved.

connected to target database: RAC (DBID=2597034538)

RMAN> backup as copy database format '+NEWDATA1';

Starting backup at 03-JUN-19

using target database control file instead of recovery catalog

allocated channel: ORA_DISK_1

channel ORA_DISK_1: SID=28 instance=rac1 device type=DISK

channel ORA_DISK_1: starting datafile copy

input datafile file number=00001 name=+NEWDATA/rac/datafile/system.260.1009972351

output file name=+NEWDATA1/rac/datafile/system.259.1009981091 tag=TAG20190603T141810 RECID=13 STAMP=1009981102

channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:15

channel ORA_DISK_1: starting datafile copy

input datafile file number=00003 name=+NEWDATA/rac/datafile/undotbs1.261.1009972381

output file name=+NEWDATA1/rac/datafile/undotbs1.260.1009981107 tag=TAG20190603T141810 RECID=14 STAMP=1009981114

channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:15

channel ORA_DISK_1: starting datafile copy

input datafile file number=00002 name=+NEWDATA/rac/datafile/sysaux.262.1009972441

output file name=+NEWDATA1/rac/datafile/sysaux.261.1009981121 tag=TAG20190603T141810 RECID=15 STAMP=1009981129

channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:15

channel ORA_DISK_1: starting datafile copy

input datafile file number=00004 name=+NEWDATA/rac/datafile/undotbs2.263.1009972495

output file name=+NEWDATA1/rac/datafile/undotbs2.262.1009981137 tag=TAG20190603T141810 RECID=16 STAMP=1009981139

channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:03

channel ORA_DISK_1: starting datafile copy

copying current control file

output file name=+NEWDATA1/rac/controlfile/backup.263.1009981141 tag=TAG20190603T141810 RECID=17 STAMP=1009981141

channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:01

channel ORA_DISK_1: starting datafile copy

input datafile file number=00005 name=+NEWDATA/rac/datafile/users.265.1009972527

output file name=+NEWDATA1/rac/datafile/users.264.1009981143 tag=TAG20190603T141810 RECID=18 STAMP=1009981142

channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:01

channel ORA_DISK_1: starting full datafile backup set

channel ORA_DISK_1: specifying datafile(s) in backup set

including current SPFILE in backup set

channel ORA_DISK_1: starting piece 1 at 03-JUN-19

channel ORA_DISK_1: finished piece 1 at 03-JUN-19

piece handle=+NEWDATA1/rac/backupset/2019_06_03/nnsnf0_tag20190603t141810_0.265.1009981143 tag=TAG20190603T141810 comment=NONE

channel ORA_DISK_1: backup set complete, elapsed time: 00:00:01

Finished backup at 03-JUN-19

 

RMAN> list copy of database;

List of Datafile Copies

=======================

Key     File S Completion Time Ckp SCN    Ckp Time      

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

13      1    A 03-JUN-19       1089257    03-JUN-19     

        Name: +NEWDATA1/rac/datafile/system.259.1009981091

        Tag: TAG20190603T141810

15      2    A 03-JUN-19       1089269    03-JUN-19     

        Name: +NEWDATA1/rac/datafile/sysaux.261.1009981121

        Tag: TAG20190603T141810

14      3    A 03-JUN-19       1089263    03-JUN-19     

        Name: +NEWDATA1/rac/datafile/undotbs1.260.1009981107

        Tag: TAG20190603T141810

16      4    A 03-JUN-19       1089277    03-JUN-19     

        Name: +NEWDATA1/rac/datafile/undotbs2.262.1009981137

        Tag: TAG20190603T141810

18      5    A 03-JUN-19       1089280    03-JUN-19      

        Name: +NEWDATA1/rac/datafile/users.264.1009981143

        Tag: TAG20190603T141810RMAN>

 

切換數據文件

數據文件拷貝完成,是在數據庫開着的情況下拷貝的,需要將數據庫切換到新的文件,切換文件實際是告訴控制文件,數據文件被移到了新的位置。因此這個步驟只是改變控制文件的內容,會很快,但是需要將數據庫置爲mount狀態。

RMAN> shutdown immediate

database closed

database dismounted

Oracle instance shut down

RMAN> startup mount

connected to target database (not started)

Oracle instance started

database mounted

Total System Global Area    1135747072 bytes

Fixed Size                     2252544 bytes

Variable Size               1006633216 bytes

Database Buffers             117440512 bytes

Redo Buffers                   9420800 bytes

RMAN> switch database to copy;

datafile 1 switched to datafile copy "+NEWDATA1/rac/datafile/system.259.1009981091"

datafile 2 switched to datafile copy "+NEWDATA1/rac/datafile/sysaux.261.1009981121"

datafile 3 switched to datafile copy "+NEWDATA1/rac/datafile/undotbs1.260.1009981107"

datafile 4 switched to datafile copy "+NEWDATA1/rac/datafile/undotbs2.262.1009981137"

datafile 5 switched to datafile copy "+NEWDATA1/rac/datafile/users.264.1009981143"

RMAN>

 

open數據庫

switch成功,數據庫使用新的數據文件,恢復數據庫,打開數據庫至open狀態。

RMAN> recover database;

Starting recover at 03-JUN-19

allocated channel: ORA_DISK_1

channel ORA_DISK_1: SID=18 instance=rac1 device type=DISK

starting media recovery

media recovery complete, elapsed time: 00:00:01

Finished recover at 03-JUN-19

RMAN> alter database open;

database opened

RMAN>

查看數據文件

查看數據文件是否正常,可以看到數據文件都已經遷移至+NEWDATA1磁盤組上了。

修改參數

更改db_create_file_dest參數,使得新的文件都生成在新的磁盤組

SQL> show parameter db_create_file_dest

NAME                           TYPE      VALUE

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

db_create_file_dest                  string      +NEWDATA

SQL> alter system set db_create_file_dest='+NEWDATA1';

System altered.

SQL>

 

2.4 遷移臨時文件

2.4.1 現環境

       現環境的臨時表空間爲temp,數據文件存放在+NEWDATA磁盤組上,需遷移至+NEWDATA1磁盤組上。

2.4.2 遷移方法

添加新的臨時文件,刪除舊的即可

2.4.3 遷移步驟

新建臨時表空間

create temporary tablespace temp01 tempfile size 60M;

更改默認臨時表空間

alter database default temporary tablespace temp01;

刪除old臨時表空間

drop tablespace temp including contents and datafiles;

2.5 啓動二節點

2.5.1 啓動到nomount

 

2.5.2 修改控制文件

alter system set control_files='+NEWDATA1/rac/controlfile/current.257.1009979623','+NEWDATA1/rac/controlfile/current.258.1009979625' sid='rac2' scope=spfile;

2.5.3 重啓至open狀態

 

2.6 遷移日誌文件

2.6.1 現環境

       現2個節點分別有2個日誌組,每個日誌組裏有2個日誌成員。且都存在+NEWDATA磁盤組中,需遷移至+NEWDATA1磁盤組中。

 

2.6.2 遷移方法

       在新磁盤組+NEWDATA1中中添加新的日誌成員,再刪除在+NEWDATA磁盤組中的日誌成員。

 

2.6.3 遷移步驟

添加新日誌成員

SQL> alter database add logfile member '+NEWDATA1','+NEWDATA1' to group 1;

Database altered.

SQL> alter database add logfile member '+NEWDATA1','+NEWDATA1' to group 2;

Database altered.

SQL> alter database add logfile member '+NEWDATA1','+NEWDATA1' to group 3;

Database altered.

SQL> alter database add logfile member '+NEWDATA1','+NEWDATA1' to group 4;

Database altered.

SQL>

 

刪除舊日誌成員

alter database drop logfile member 'XXXXXXXX ';

報錯1

SQL> alter database drop logfile member '+NEWDATA/rac/onlinelog/group_1.268.1009973265';

alter database drop logfile member '+NEWDATA/rac/onlinelog/group_1.268.1009973265'

*

ERROR at line 1:

ORA-00362: member is required to form a valid logfile in group 1

ORA-01517: log member: '+NEWDATA/rac/onlinelog/group_1.268.1009973265'

SQL>

由於新加的日誌成員狀態爲INVALID,所以需要切換日誌組,使成員狀態不爲INVALID情況下刪除日誌成員。

 

報錯2

SQL> alter database drop logfile member '+NEWDATA/rac/onlinelog/group_2.273.1009983211';

alter database drop logfile member '+NEWDATA/rac/onlinelog/group_2.273.1009983211'

*

ERROR at line 1:

ORA-01609: log 2 is the current log for thread 1 - cannot drop members

ORA-00312: online log 2 thread 1: '+NEWDATA/rac/onlinelog/group_2.269.1009973267'

ORA-00312: online log 2 thread 1: '+NEWDATA/rac/onlinelog/group_2.273.1009983211'

ORA-00312: online log 2 thread 1: '+NEWDATA1/rac/onlinelog/group_2.269.1009983527'

ORA-00312: online log 2 thread 1: '+NEWDATA1/rac/onlinelog/group_2.270.1009983527'

以上情況是由於當前日誌組無法刪除,需切換日誌組後,重新刪除。

刪除之後,所有的日誌成員均已存儲在+NEWDATA1磁盤組中了。

 

2.7 遷移參數文件

2.7.1 現環境

現環境中是使用spfile啓動的,spfile存儲在+NEWDATA磁盤組中,需遷移至+NEWDATA1磁盤組中。

2.7.2 遷移方法

  1. 使用spfile生成pfile
  2. pfile生成新的spfile
  3. 將pfile指向新的spfile

 

2.7.3 遷移步驟

1節點:

SQL> create pfile='/tmp/123.ora' from spfile;

File created.

SQL> shutdown immediate;

Database closed.

Database dismounted.

ORACLE instance shut down.

SQL> create spfile='+NEWDATA1/rac/spfilerac.ora' from pfile='/tmp/123.ora';

File created.

SQL> !

[oracle@rac1 ~]$ vi /u01/app/oracle/product/11.2.0/db_1/dbs/initrac1.ora

SPFILE='+NEWDATA1/rac/spfilerac.ora'

~

"/u01/app/oracle/product/11.2.0/db_1/dbs/initrac1.ora" 1L, 37C written

[oracle@rac1 ~]$

 

2節點:

SQL> shutdown immediate;

Database closed.

Database dismounted.

ORACLE instance shut down.

SQL> !

[oracle@rac2 ~]$ vi /u01/app/oracle/product/11.2.0/db_1/dbs/initrac2.ora

SPFILE='+NEWDATA1/rac/spfilerac.ora'

~

"/u01/app/oracle/product/11.2.0/db_1/dbs/initrac2.ora" 1L, 37C written

[oracle@rac2 ~]$

 

2.8 更新crs配置

2.8.1 現環境

[grid@rac1 ~]$ srvctl config database -d rac

數據庫唯一名稱: rac

數據庫名: rac

Oracle 主目錄: /u01/app/oracle/product/11.2.0/db_1

Oracle 用戶: oracle

Spfile: +DATA/rac/spfilerac.ora

:

啓動選項: open

停止選項: immediate

數據庫角色: PRIMARY

管理策略: AUTOMATIC

服務器池: rac

數據庫實例: rac1,rac2

磁盤組:FRA,NEWDATA,NEWDATA1

裝載點路徑:

服務:

類型: RAC

數據庫是管理員管理的

[grid@rac1 ~]

這裏標紅的就需要更改,spfile,diskgroup

2.8.2 修改參數文件配置

[root@rac1 bin]# ./srvctl modify database -d rac -p +NEWDATA1/rac/spfilerac.ora

[root@rac1 bin]# ./srvctl config database -d rac

數據庫唯一名稱: rac

數據庫名: rac

Oracle 主目錄: /u01/app/oracle/product/11.2.0/db_1

Oracle 用戶: oracle

Spfile: +NEWDATA1/rac/spfilerac.ora

:

啓動選項: open

停止選項: immediate

數據庫角色: PRIMARY

管理策略: AUTOMATIC

服務器池: rac

數據庫實例: rac1,rac2

磁盤組: FRA,NEWDATA,NEWDATA1

裝載點路徑:

服務:

類型: RAC

數據庫是管理員管理的

[root@rac1 bin]#

 

2.8.3 修改磁盤組配置

[root@rac1 ~]# cd /u01/app/grid/product/11.2.0/grid/bin/

[root@rac1 bin]# ./srvctl modify database -d rac -a FRA,NEWDATA1

[root@rac1 bin]#su - grid

[grid@rac1 ~]$ srvctl config database -d rac

數據庫唯一名稱: rac

數據庫名: rac

Oracle 主目錄: /u01/app/oracle/product/11.2.0/db_1

Oracle 用戶: oracle

Spfile: +NEWDATA1/rac/spfilerac.ora

:

啓動選項: open

停止選項: immediate

數據庫角色: PRIMARY

管理策略: AUTOMATIC

服務器池: rac

數據庫實例: rac1,rac2

磁盤組: FRA,NEWDATA1

裝載點路徑:

服務:

類型: RAC

數據庫是管理員管理的

[grid@rac1 ~]$

 

2.8.4 刪除舊磁盤組

srvctl remove diskgroup -g NEWDATA

3.1 啓動數據庫

共享磁盤組遷移完畢,啓動數據庫

[oracle@rac1 ~]$ sqlplus "/ as sysdba"

SQL*Plus: Release 11.2.0.4.0 Production on Mon Jun 3 15:51:46 2019

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

Connected to an idle instance.

SQL> startup

ORACLE instance started.

Total System Global Area 1135747072 bytes

Fixed Size                  2252544 bytes

Variable Size            1006633216 bytes

Database Buffers          117440512 bytes

Redo Buffers                9420800 bytes

Database mounted.

Database opened.

SQL>

 

3.2 檢查數據庫

SQL> show parameter spfile;

 

NAME                                 TYPE        VALUE

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

spfile                               string      +NEWDATA1/rac/spfilerac.ora

SQL> select name from v$controlfile;

 

NAME

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

+NEWDATA1/rac/controlfile/current.257.1009979623

+NEWDATA1/rac/controlfile/current.258.1009979625

 

SQL> select name from v$datafile;

 

NAME

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

+NEWDATA1/rac/datafile/system.259.1009981091

+NEWDATA1/rac/datafile/sysaux.261.1009981121

+NEWDATA1/rac/datafile/undotbs1.260.1009981107

+NEWDATA1/rac/datafile/undotbs2.262.1009981137

+NEWDATA1/rac/datafile/users.264.1009981143

 

SQL> select name from v$tempfile;

 

NAME

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

+NEWDATA1/rac/tempfile/temp01.267.1009982857

 

SQL> select member from v$logfile;

 

MEMBER

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

+NEWDATA1/rac/onlinelog/group_1.266.1009983525

+NEWDATA1/rac/onlinelog/group_1.268.1009983525

+NEWDATA1/rac/onlinelog/group_2.269.1009983527

+NEWDATA1/rac/onlinelog/group_2.270.1009983527

+NEWDATA1/rac/onlinelog/group_3.271.1009983529

+NEWDATA1/rac/onlinelog/group_3.272.1009983529

+NEWDATA1/rac/onlinelog/group_4.273.1009983529

+NEWDATA1/rac/onlinelog/group_4.274.1009983531

 

8 rows selected.

 

SQL> select filename from v$block_change_tracking;

 

FILENAME

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

 

 

SQL>

 

 

對於變更方案,都有着回退的步驟。將共享磁盤組NEWDATA1回退使用到NEWDATA磁盤組

關閉二節點數據庫。

4.1 創建磁盤組回退

對於磁盤組創建一步,回退即爲刪除磁盤組。

4.1.1圖形界面

選中需要刪除的磁盤組,單擊右鍵,選中drop按鈕。

4.1.2 命令行

drop diskgroup DATA;

 

4.2 回退控制文件

只需要根據文檔2.2相反的步驟進行回退即可。

4.2.1 更改控制文件參數

alter system set control_files='+NEWDATA','+NEWDATA';

4.2.2 restore控制文件

啓動到nomount狀態下,恢復控制文件。

restore controlfile from '+NEWDATA1/rac/controlfile/current.257.1009979623';

 

4.3 回退數據文件

只需要根據文檔2.3相反的步驟進行回退即可

4.3.1 拷貝數據文件

Open狀態下copy參數文件。

backup as copy database format '+NEWDATA';

4.3.2 切換數據文件

重新啓動到mount狀態下。

switch database to copy;

4.3.3 修改參數

將數據庫啓動到open狀態下。

alter system set db_create_file_dest='+NEWDATA';

 

4.4 回退臨時文件

只需要根據文檔2.4相反的步驟進行回退即可

4.4.1 新建臨時表空間

create temporary tablespace temp tempfile size 60M;

4.4.2 更改默認臨時表空間

alter database default temporary tablespace temp;

4.4.3 刪除old臨時表空間

drop tablespace temp01 including contents and datafiles;

 

4.5 啓動二節點

4.5.1 修改控制文件

啓動到nomount狀態下,更改參數。

alter system set control_files='+NEWDATA1/rac/controlfile/current.257.1009979623','+NEWDATA1/rac/controlfile/current.258.1009979625' sid='rac2' scope=spfile;

 

4.5.2 啓動open狀態

重新啓動到open狀態。

Shutdown immediate

Startup

 

4.6 回退日誌文件

只需要根據文檔2.6相反的步驟進行回退即可

4.6.1 添加新日誌成員

SQL> alter database add logfile member '+NEWDATA','+NEWDATA' to group 1;

Database altered.

SQL> alter database add logfile member '+NEWDATA','+NEWDATA' to group 2;

Database altered.

SQL> alter database add logfile member '+NEWDATA','+NEWDATA' to group 3;

Database altered.

SQL> alter database add logfile member '+NEWDATA','+NEWDATA' to group 4;

Database altered.

SQL>

4.6.2 刪除舊日誌成員

alter database drop logfile member 'XXXXXXXX ';

刪除之後,所有的日誌成員均已存儲在+NEWDATA磁盤組中。

 

4.7 回退參數文件

只需要根據文檔2.7相反的步驟進行回退即可

4.7.1 一節點:

SQL> create pfile='/tmp/1234.ora' from spfile;

File created.

SQL> shutdown immediate;

Database closed.

Database dismounted.

ORACLE instance shut down.

SQL> create spfile='+NEWDATA/rac/spfilerac.ora' from pfile='/tmp/1234.ora';

File created.

SQL> !

[oracle@rac1 ~]$ vi /u01/app/oracle/product/11.2.0/db_1/dbs/initrac1.ora

SPFILE='+NEWDATA/rac/spfilerac.ora'

~

"/u01/app/oracle/product/11.2.0/db_1/dbs/initrac1.ora" 1L, 37C written

[oracle@rac1 ~]$

 

4.7.2 二節點:

SQL> shutdown immediate;

Database closed.

Database dismounted.

ORACLE instance shut down.

SQL> !

[oracle@rac2 ~]$ vi /u01/app/oracle/product/11.2.0/db_1/dbs/initrac2.ora

SPFILE='+NEWDATA/rac/spfilerac.ora'

~

"/u01/app/oracle/product/11.2.0/db_1/dbs/initrac2.ora" 1L, 37C written

[oracle@rac2 ~]$

 

4.8 回退crs配置

只需要根據文檔2.8相反的步驟進行回退即可

4.8.1 回退參數文件配置

[root@rac1 bin]# ./srvctl modify database -d rac -p +NEWDATA/rac/spfilerac.ora

[root@rac1 bin]# ./srvctl config database -d rac

數據庫唯一名稱: rac

數據庫名: rac

Oracle 主目錄: /u01/app/oracle/product/11.2.0/db_1

Oracle 用戶: oracle

Spfile: +NEWDATA/rac/spfilerac.ora

:

啓動選項: open

停止選項: immediate

數據庫角色: PRIMARY

管理策略: AUTOMATIC

服務器池: rac

數據庫實例: rac1,rac2

磁盤組: FRA,NEWDATA1

裝載點路徑:

服務:

類型: RAC

數據庫是管理員管理的

[root@rac1 bin]#

 

 

4.8.2 回退磁盤組配置

[root@rac1 ~]# cd /u01/app/grid/product/11.2.0/grid/bin/

[root@rac1 bin]# ./srvctl modify database -d rac -a FRA,NEWDATA

[root@rac1 bin]#su - grid

[grid@rac1 ~]$ srvctl config database -d rac

數據庫唯一名稱: rac

數據庫名: rac

Oracle 主目錄: /u01/app/oracle/product/11.2.0/db_1

Oracle 用戶: oracle

Spfile: +NEWDATA/rac/spfilerac.ora

:

啓動選項: open

停止選項: immediate

數據庫角色: PRIMARY

管理策略: AUTOMATIC

服務器池: rac

數據庫實例: rac1,rac2

磁盤組: FRA,NEWDATA

裝載點路徑:

服務:

類型: RAC

數據庫是管理員管理的

[grid@rac1 ~]$

 

4.8.3 回退磁盤組

 

 

4.9 異常恢復

       對一些非正常因素導致是不可逆轉的問題,從而使數據丟失的情況,就需要使用步驟1.3中備份的數據。

發佈了41 篇原創文章 · 獲贊 2 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章