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;