第11步:數據庫冗餘

目前在 ASM 上控制文件只有一份,須要給控制文件作鏡像


      1. 查看當前控制文件
代碼 1
[root@sgdb1 ~]# su - oracle
[oracle@sgdb1 ~]$ export ORACLE_SID=sgdb1   //第2個節點爲: export ORACLE_SID=sgdb2
[oracle@sgdb1 ~]$ sqlplus / as sysdba
SQL> show parameter control_files
NAME                              TYPE  VALUE
------------------------------------ ----------- ------------------------------
control_files                       string  +BJ_SGDB_DATA/sgdb/controlfile/current .256.887810989


      1. 複製控制文件
1 )兩個節點分別關閉數據庫
代碼 2
[oracle@sgdb1 ~]$ sqlplus / as sysdba
SQL> shutdown immediate;     
Database closed.
Database dismounted.
ORACLE instance shut down.
 
代碼 3
[oracle@sgdb2 ~]$ sqlplus / as sysdba
SQL> shutdown immediate;     
Database closed.
Database dismounted.
ORACLE instance shut down.
 
2 )啓動數據庫到 nomount 狀態 (實例之一便可)
代碼 4
SQL> startup nomount;
ORACLE instance started.
Total System Global Area 1.0055E+10 bytes
Fixed Size                  2261888 bytes
Variable Size           5435821184 bytes
Database Buffers     4596957184 bytes
Redo Buffers            19742720 bytes
查看控制文件位置
SQL> show parameter control_files;
NAME                              TYPE  VALUE
------------------------------------ ----------- ------------------------------
control_files                       string  +BJ_SGDB_DATA/sgdb/controlfile/current
                                           .256.887810989
3 )使用 RMAN 複製控制文件 (實例之一便可)
代碼 5
[oracle@sgdb1 ~]$ rman target /
RMAN> restore controlfile to '+BJ_SGDB_DATA' from
'+BJ_SGDB_DATA/sgdb/controlfile/current.256.887810989';
4 )查看新生成的控制文件副本
注意:新生成的文件名目前沒有看到,能夠經過 grid 用戶,使用 asmcmd 查看
代碼 6
[grid@sgdb1 ~]$ export ORACLE_SID=+ASM1
[grid@sgdb1 ~]$ asmcmd
ASMCMD> cd DATA/SGDB/CONTROLFILE
ASMCMD> ls
Current.256.887810989
current.269.887816799
 
顯然,新生成的文件名字爲 current.269.887816799
 
5 )修改 SPFILE
注意 RAC 不能像單實例那樣直接修改 pfile ,不要輕易使用 「create pfile from spfile;」 命令建立 PFILE 文件,所以仍是老老實實地修改 spfile 吧:
代碼 7
[oracle@sgdb1 ~]$ sqlplus / as sysdba
當前狀態應該已經爲 nomount
SQL> select status from v$instance;
STATUS
------------
STARTED
修改參數文件
SQL> alter system set control_files = '+BJ_SGDB_DATA/sgdb/controlfile/current.256.887810989', '+BJ_SGDB_DATA/sgdb/controlfile/current.269.887816799' scope = spfile;
System altered.
 
 
 
6 )分別重啓兩個數據庫( sgdb1 & sgdb2 ),查看控制文件
代碼 8
SQL> startup force;
SQL> show parameter control_files;
NAME                              TYPE  VALUE
------------------------------------ ----------- ------------------------------
control_files                       string  +BJ_SGDB_DATA/sgdb/controlfile/current
                                           .256.887810989, +BJ_SGDB_DATA/sgdb/con
                                           trolfile/current.269.887816799

    1. REDO LOG冗餘sql

目前 REDO LOG 一共有 8 組,每一個組只有一名成員,須要作鏡像
代碼 9
[oracle@sgdb1 ~]$ sqlplus / as sysdba
拷貝下面語句,執行添加成員
alter database add logfile member '+BJ_SGDB_DATA' to group 1;
alter database add logfile member '+BJ_SGDB_DATA' to group 2;
alter database add logfile member '+BJ_SGDB_DATA' to group 3;
alter database add logfile member '+BJ_SGDB_DATA' to group 4;
alter database add logfile member '+BJ_SGDB_DATA' to group 5;
alter database add logfile member '+BJ_SGDB_DATA' to group 6;
alter database add logfile member '+BJ_SGDB_DATA' to group 7;
alter database add logfile member '+BJ_SGDB_DATA' to group 8;
 

終於,OracleRAC安裝完成!
數據庫

==============================================================================
1.rman-00554:initialization of internal recovery manager package failed
rman-04005:error from target database:
ORA-12162:TNS:net service name is incorrectly specified
 
 

解決過程:oracle

忘記了,下次在遇到留意下。ide

 
 
 
2.啓動RAC其中一個節點正常,啓動第二個節點報錯,提示以下:
SQL> startup force;
ORACLE instance started.
 
Total System Global Area 1068937216 bytes
Fixed Size            2260088 bytes
Variable Size          444597128 bytes
Database Buffers      616562688 bytes
Redo Buffers            5517312 bytes
ORA-01105: mount is incompatible with mounts by other instances
ORA-01606: parameter not identical to that of another mounted instance
 
解決過程:
以前的步驟修改SPFILE修改參數文件,應該兩個節點同時關閉,同時以nomount方式啓動,同時執行
alter system set control_files = '+BJ_SGDB_DATA/sgdb/controlfile/current.256.887810989', '+BJ_SGDB_DATA/sgdb/controlfile/current.269.887816799' scope = spfile;
System altered.
問題解決。
相關文章
相關標籤/搜索