利用Oracle的STANDBY技術,可以將單一實例資料庫升級到RAC資料庫。這種方式可以有效降低單一實例遷移到RAC環境的停機時間。
這篇文章介紹STANDBY資料庫建立的準備工作。
首先需要確保目標伺服器上的RAC環境已經建立,如果使用ASM作為儲存機制,則ASM執行個體也配置完成。
下面開始STANDBY資料庫建立的過程,更改來源資料庫的FORCE LOGGING屬性:
bash-3.00$ sqlplus "/ as sysdba"
SQL*Plus: Release11.1.0.6.0 - Production on星期三7月1 00:18:29 2009
Copyright (c) 1982, 2007, Oracle. All rights reserved.
串連到:
Oracle Database11gEnterprise Edition Release11.1.0.6.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
SQL> SET PAGES 100 LINES 120
SQL> SELECT NAME, LOG_MODE, FORCE_LOGGING FROM V$DATABASE;
NAME LOG_MODE FORCE_
------------------ ------------------------ ------
TEST11G ARCHIVELOG NO
SQL> ALTER DATABASE FORCE LOGGING;
資料庫已更改。
由於要進行將目標資料庫升級為RAC環境,因此需要添加UNDOTBS2和THREAD2對應的日誌:
SQL> CREATE UNDO TABLESPACE UNDOTBS2
2 DATAFILE '/data/oracle/oradata/test11g/undotbs2_01.dbf' SIZE1024M;
資料表空間已建立。
SQL> ALTER DATABASE ADD LOGFILE THREAD 2 GROUP 4
2 '/data/oracle/oradata/test11g/redo04.log' SIZE50M;
資料庫已更改。
SQL> ALTER DATABASE ADD LOGFILE THREAD 2 GROUP 5
2 '/data/oracle/oradata/test11g/redo05.log' SIZE50M;
資料庫已更改。
SQL> ALTER DATABASE ADD LOGFILE THREAD 2 GROUP 6
2 '/data/oracle/oradata/test11g/redo06.log' SIZE50M;
資料庫已更改。
SQL> ALTER DATABASE ENABLE THREAD 2;
資料庫已更改。
由於RMAN的DUPLICATE建立STANDBY,沒有辦法將資料檔案放到遠端的ASM磁碟組中,因此採用手工建立備份的方法,首先將所有的資料表空間置於BACKUP狀態:
SQL> SELECT 'ALTER TABLESPACE ' || TABLESPACE_NAME || ' BEGIN BACKUP;'
2 FROM DBA_TABLESPACES
3 WHERE CONTENTS != 'TEMPORARY';
'ALTERTABLESPACE'||TABLESPACE_NAME||'BEGINBACKUP;'
---------------------------------------------------------------------------------
ALTER TABLESPACE SYSTEM BEGIN BACKUP;
ALTER TABLESPACE SYSAUX BEGIN BACKUP;
ALTER TABLESPACE UNDOTBS1 BEGIN BACKUP;
ALTER TABLESPACE UNDOTBS2 BEGIN BACKUP;
ALTER TABLESPACE USERS BEGIN BACKUP;
ALTER TABLESPACE YANGTK BEGIN BACKUP;
ALTER TABLESPACE TEST BEGIN BACKUP;
已選擇7行。
SQL> ALTER TABLESPACE SYSTEM BEGIN BACKUP;
資料表空間已更改。
SQL> ALTER TABLESPACE SYSAUX BEGIN BACKUP;
資料表空間已更改。
SQL> ALTER TABLESPACE UNDOTBS1 BEGIN BACKUP;
資料表空間已更改。
SQL> ALTER TABLESPACE UNDOTBS2 BEGIN BACKUP;
資料表空間已更改。
SQL> ALTER TABLESPACE USERS BEGIN BACKUP;
資料表空間已更改。
SQL> ALTER TABLESPACE YANGTK BEGIN BACKUP;
資料表空間已更改。
SQL> ALTER TABLESPACE TEST BEGIN BACKUP;
資料表空間已更改。
下面將資料檔案發送到遠端伺服器的ASM磁碟組上,方法其實有很多,但是絕大部分需要額外的資料庫支援,比如如果遠端ASM執行個體上存在一個資料庫,那麼可以使用ftp的方式、DBMS_FILE_TRANSFER的方式等等。如果不依靠其他的資料庫輔助,那麼可以使用ftp到遠端磁碟,然後通過asmcmd工具將檔案拷貝到ASM磁碟組中。
查看本欄目更多精彩內容:http://www.bianceng.cnhttp://www.bianceng.cn/database/Oracle/