1.創建物理standby
主庫操作
2.檢查補充日誌
SELECT SUPPLEMENTAL_LOG_DATA_PK AS PK_LOG,SUPPLEMENTAL_LOG_DATA_UI AS UI_LOG FROM V$DATABASE;
3.如果補充日誌沒有打開的話,就打開補充日誌
ALTER DATABASE ADD SUPPLEMENTAL LOG DATA (PRIMARY KEY, UNIQUE INDEX) COLUMNS;
4.修改LOG_ARCHIVE_DEST_1
alter system set LOG_ARCHIVE_DEST_1='LOCATION=D:\oracle\product\10.2.0\oradata\orcl\archivelog VALID_FOR=(ONLINE_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=orcl_main' scope=both;
5.LOG_ARCHIVE_DEST_2和物理standby一樣,不用修改
6.修改LOG_ARCHIVE_DEST_3
alter system set LOG_ARCHIVE_DEST_3='LOCATION=D:\oracle\product\10.2.0\oradata\orcl\archivelog1 VALID_FOR=(STANDBY_LOGFILES,STANDBY_ROLE) DB_UNIQUE_NAME=orcl_main' scope=both;
7.創建邏輯standby的控制文件
ALTER DATABASE CREATE LOGICAL STANDBY CONTROLFILE AS 'D:\oracle\product\10.2.0\oradata\orcl\CONTROL.CTL';
備庫操作
1.檢查補充日誌
SELECT SUPPLEMENTAL_LOG_DATA_PK AS PK_LOG,SUPPLEMENTAL_LOG_DATA_UI AS UI_LOG FROM V$DATABASE;
2.如果補充日誌沒有打開的話,就打開補充日誌
ALTER DATABASE ADD SUPPLEMENTAL LOG DATA (PRIMARY KEY, UNIQUE INDEX) COLUMNS;
3.修改LOG_ARCHIVE_DEST_1參數:邏輯standby數據庫本身產生的日誌
LOG_ARCHIVE_DEST_1='LOCATION=D:\oracle\product\10.2.0\oradata\orcl\archivelog1 VALID_FOR=(ONLINE_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=orcl_dg'
4.LOG_ARCHIVE_DEST_2和物理standby一樣,不用修改
5.修改LOG_ARCHIVE_DEST_3參數:邏輯standby接受主庫日誌的目錄
LOG_ARCHIVE_DEST_3='LOCATION=D:\oracle\product\10.2.0\oradata\orcl\archivelog VALID_FOR=(STANDBY_LOGFILES,STANDBY_ROLE) DB_UNIQUE_NAME=orcl_dg'
6.把主庫產生的控制文件複製到備庫的控制文件目錄替換存在的三個控制文件
7.Prepare for SQL Apply.
ALTER DATABASE RECOVER MANAGED STANDBY DATABASE;
8.打開standby數據庫
ALTER DATABASE ACTIVATE STANDBY DATABASE;
9.修改數據庫DB_NAME
nid TARGET=/ DBNAME=orcl_dg
10.創建新的密碼文件
11.修改參數文件pfie的DB_NAME
db_name=orcl_dg
12.根據pfile創建SPFILE
CREATE SPFILE FROM PFILE='D:\oracle\product\10.2.0\db_1\admin\orcl\pfile\init.ora.410201222544'
13.打開數據庫
STARTUP MOUNT;
ALTER DATABASE OPEN RESETLOGS;
14.修改數據庫global_name
ALTER DATABASE RENAME GLOBAL_NAME TO boston;
15.爲臨時表空間添加文件,文件位置大小應該和主庫一樣.
16.開啓SQL應用
ALTER DATABASE START LOGICAL STANDBY APPLY;