ITPub博客

首页 > 数据库 > Oracle > DataGuard创建实验

DataGuard创建实验

原创 Oracle 作者:huming0927 时间:2011-07-21 23:01:39 0 删除 编辑

DataGuard创建实验

Primary数据库的配置工作

1、 验证主数据库是否处于归档模式

SQL> archive log list

Database log mode Archive Mode

Automatic archival Enabled

Archive destination USE_DB_RECOVERY_FILE_DEST

Oldest online log sequence 36

Next log sequence to archive 38

Current log sequence 38

2、 将primary 数据库置为FORCE LOGGING 模式

SQL> alter database force logging;

Database altered.

3、 创建Standby数据库控制文件

SQL> alter database create standby controlfile as '/oracle/app/oracle/oradata/db/controlbk01.ctl';

Database altered.

SQL> alter database create standby controlfile as '/oracle/app/oracle/oradata/db/controlbk02.ctl';

Database altered.

SQL> alter database create standby controlfile as '/oracle/app/oracle/oradata/db/controlbk03.ctl';

Database altered.

4、 准备Primary数据库的初始化参数文件

SQL> create pfile='$ORACLE_HOME/dbs/initdb.ora' from spfile;

File created.

在initdb.ora中添加如下内容

DB_UNIQUE_NAME=db

LOG_ARCHIVE_CONFIG='DG_CONFIG=(db,dbdg)'

LOG_ARCHIVE_DEST_1='LOCATION=/oracle/app/oracle/flash_recovery_area/DB/archivelog/

VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=db'

LOG_ARCHIVE_DEST_2='SERVICE=dbdg LGWR ASYNC

VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=dbdg'

LOG_ARCHIVE_DEST_STATE_1=ENABLE

LOG_ARCHIVE_DEST_STATE_2=ENABLE

REMOTE_LOGIN_PASSWORDFILE=EXCLUSIVE

#--------for standby role switch

FAL_SERVER=db

FAL_CLIENT=dbdg

DB_FILE_NAME_CONVERT='/oracle/app/oracle/oradata/dbdg','/oracle/app/oracle/oradata/db'

LOG_FILE_NAME_CONVERT='/oracle/app/oracle/oradata/dbdg','/oracle/app/oracle/oradata/db'

STANDBY_FILE_MANAGEMENT=AUTO

SQL> shutdown immediate

Database closed.

Database dismounted.

ORACLE instance shut down.

SQL> create spfile from pfile='$ORACLE_HOME/dbs/initdb.ora';

File created.

5、 注意需要复制所有数据文件,备份的控制文件及客户端初始化参数文件

6、

Standby数据库的配置工作

1、 创建相关目录

[root@OraLinuxAux admin]# mkdir /oracle/app/oracle/admin/dbdg

[root@OraLinuxAux admin]# mkdir /oracle/app/oracle/admin/dbdg/adump

[root@OraLinuxAux admin]# mkdir /oracle/app/oracle/admin/dbdg/bdump

[root@OraLinuxAux admin]# mkdir /oracle/app/oracle/admin/dbdg/cdump

[root@OraLinuxAux admin]# mkdir /oracle/app/oracle/admin/dbdg/dpdump

[root@OraLinuxAux admin]# mkdir /oracle/app/oracle/admin/dbdg/pfile

[root@OraLinuxAux admin]# mkdir /oracle/app/oracle/admin/dbdg/udump

[root@OraLinuxAux oradata]# mkdir /oracle/app/oracle/oradata/dbdg

2、 创建Standby数据库实例

[oracle@OraLinuxAux ~]$ orapwd file='$ORACLE_HOME/dbs/orapwdbdg' password=sys entries=30 force=y

3、 准备Standby数据库的初始化参数文件

在initdbdg.ora中添加如下内容

db_unique_name=dbdg

LOG_ARCHIVE_CONFIG='DG_CONFIG=(db,dbdg)'

DB_FILE_NAME_CONVERT='/oracle/app/oracle/oradata/db','/oracle/app/oracle/oradata/dbdg'

LOG_FILE_NAME_CONVERT='/oracle/app/oracle/oradata/db','/oracle/app/oracle/oradata/dbdg'

LOG_ARCHIVE_FORMAT=log%t_%s_%r.arc

LOG_ARCHIVE_DEST_1='LOCATION=/oracle/app/oracle/flash_recovery_area/DBDG/archivelog/

VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=dbdg'

LOG_ARCHIVE_DEST_STATE_1=ENABLE

#---下列参数用于角色切换

LOG_ARCHIVE_DEST_2='SERVICE=db LGWR ASYNC

VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=db'

LOG_ARCHIVE_DEST_STATE_2=ENABLE

REMOTE_LOGIN_PASSWORDFILE=EXCLUSIVE

FAL_SERVER=db

FAL_CLIENT=dbdg

STANDBY_FILE_MANAGEMENT=AUTO

//注意,其中的DB_NAME应和Primary数据库的相同

SQL> create spfile from pfile='$ORACLE_HOME/dbs/initdbdg.ora';

File created.

4、 启动Standby数据库到mount状态

SQL> alter database mount;

Database altered.

5、 启动redo应用

SQL> alter database recover managed standby database disconnect from session;

Database altered.

6、 查看同步情况

连接到Primary数据库

SQL> show parameter instance_name;

NAME TYPE VALUE

------------------------------------ ----------- ------------------------------

instance_name string db

SQL> select max(sequence#) from v$archived_log;

MAX(SEQUENCE#)

--------------

44

连接到Standby数据库

SQL> show parameter instance_name;

NAME TYPE VALUE

------------------------------------ ----------- ------------------------------

instance_name string dbdg

SQL> select max(sequence#) from v$archived_log;

MAX(SEQUENCE#)

--------------

结束!

实验倒是完成了,但是不知最后一步的两个select结果不一样呢?希望能尽快找到原因。

[@more@]

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/14338195/viewspace-1052848/ ,如需转载,请注明出处,否则将追究法律责任。

下一篇: OFA学习小结
请登录后发表评论 登录
全部评论
  • 博文量
    24
  • 访问量
    28966