Oracle 10g通过Rman DUPLICATE实现dataguard 下载本文

Oracle 10g可以通过基于备份的rman DUPLICATE实现

dataguard,通过步骤需要对数据库进行备份,并在standby侧进行数据库的恢复。而到了11g,oracle推出了Duplicate From Active Database技术,不需要再对数据库进行rman备份恢复,一切动作都通过网络自动完成。 1.对主数据库进行必要的更改。 a. 启用 force logging。 b. 拷贝密码文件到从节点。 c. 创建备用 redo 日志。

d. 修改参数文件,使其适用于 Dataguard。 2. 确保 sql*net 连接正常。

3. 使用主数据库活动文件,通过网络创建备用数据库。 a. 创建密码文件

b. 为备用数据库(辅助数据库)创建初始化参数文件 c. 为数据库文件创建需要的装载点或文件夹

d. 连接至主数据库作为其目标数据库,以运行创建备用STANDBY。

ON 第一步:主库(primary)的环境配置 1、确认数据库处于归档模式:

SQL> select log_mode from v$database;

2、允许数据库强制日志

SQL> ALTER DATABASE FORCE LOGGING;

SQL>select force_logging from v$database;

3、添加standby日志文件

SQL> alter database add standby logfile '/opt/app/oracle/oradata/study/standby01.log' size 100M;

SQL> alter database add standby logfile '/opt/app/oracle/oradata/study/standby02.log' size 100M;

SQL> alter database add standby logfile '/opt/app/oracle/oradata/study/standby03.log' size 100M;

SQL> alter database add standby logfile '/opt/app/oracle/oradata/study/standby04.log' size 100M;

4,修改primary参数文件spfile,需要设置以下8个参数

SQL>alter system set LOG_ARCHIVE_CONFIG='DG_CONFIG=(pridb,stadb)'; SQL> alter system set db_unique_name='pridb' scope=spfile; SQL>

alter

system

set

LOG_ARCHIVE_DEST_1='LOCATION=/opt/app/oracle/pridb

VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=pridb'; SQL>alter

system

set

LOG_ARCHIVE_DEST_2='SERVICE=stadb

LGWR

ASYNC

VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=stadb'; SQL> alter system set LOG_ARCHIVE_DEST_STATE_1=ENABLE; SQL> alter system set FAL_SERVER=stadb; SQL> alter system set FAL_CLIENT=pridb;

SQL> alter system set DB_FILE_NAME_CONVERT='/opt/app/oracle/oradata/study','/opt/app/oracle/oradata/aux' scope=spfile; SQL>

alter

system

set

LOG_FILE_NAME_CONVERT='/opt/app/oracle/oradata/study

','/opt/app/oracle/oradata/aux' scope=spfile;

第二步、网络相关配置(确保 sql*net 连接正常) 1、在备库stadb中的listener.ora中加入stadb的条目:

SID_LIST_LISTENER = (SID_LIST = (SID_DESC =

(GLOBAL_DBNAME = stadb)

(ORACLE_HOME = /opt/app/oracle/product/10.2.0/db_1) (SID_NAME = stadb) ) )

LISTENER = (DESCRIPTION =

(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.7.9)(PORT = 1521)) )

2、在主库上修改service_names参数:

SQL>alter system set service_names='studby,pridb';

3、主库和备库的 TNSNAMES.ORA 应该有两个条目:

STADB =

(DESCRIPTION = (ADDRESS_LIST =

(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.7.9)(PORT = 1521)) )

(CONNECT_DATA = (SERVICE_NAME = stadb) ) ) PRIDB =

(DESCRIPTION = (ADDRESS_LIST =

(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.7.239)(PORT = 1521)) )

(CONNECT_DATA = (SERVICE_NAME = pridb) ) )

4、在主数据库和备用数据库中使用以下命令,检查 SQL*Net 配置:

$tnsping pridb $tnsping stadb