Oracle11gR2 Aactive DataGuard(手动)安装部署及维护文档(一)之安装配置

 

l          第一部分:准备工作

一、  安装环境

Primary:

OS:linux5.5  DB:oracle11.2

Standby:

OS:linux5.5  DB:oracle11.2

Primary、Standby数据库安装目录结构相同。

 

l          第二部分:物理standby创建

一、Primary数据库配置及相关操作

1、确认主库处于归档模式

SQL> archive log list

数据库日志模式            存档模式

自动存档             启用

存档终点            USE_DB_RECOVERY_FILE_DEST

最早的联机日志序列     333

下一个存档日志序列   0

当前日志序列           334

 

注:如果没有归档,执行下面的步骤:

SQL> startup mount;
SQL> alter database archivelog;
SQL> archive log list;
SQL> alter database open;

 

2、将primary 数据库置为FORCE LOGGING 模式。通过下列语句:

SQL> alter database force logging;

 

3、创建角色转换后接收日志的redo log

此步是可选项,主要是用于主库角色转换后做为standby log日志接收主库的日志

SQL> ALTER DATABASE ADD STANDBY LOGFILE ('/oracle/dbs/slog1.rdo') SIZE 500M;

SQL> ALTER DATABASE ADD STANDBY LOGFILE ('/oracle/dbs/slog2.rdo') SIZE 500M;

SQL> ALTER DATABASE ADD STANDBY LOGFILE ('/oracle/dbs/slog3.rdo') SIZE 500M;

SQL> ALTER DATABASE ADD STANDBY LOGFILE ('/oracle/dbs/slog4.rdo') SIZE 500M;

 

4、创建primary数据库客户端初始化参数文件

注:主要此处修改项较多,为了方便,我们首先创建并修改pfile,然后再通过pfile 重建spfile,你当然也可以通过alter system set 命令直接修改spfile 内容。

SQL> create pfile from spfile;

稍后后复制到standby$ORACLE_HOME/dbs

 

修改客户端初始化参数文件(primaryr的initorcl.ora),增加下列内容

*.db_name=orcl

*.DB_UNIQUE_NAME=primary

*.LOG_ARCHIVE_CONFIG='DG_CONFIG=(primary,standby)'

*.LOG_ARCHIVE_DEST_1='LOCATION=/oradata/orcl/ VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=primary'

*.LOG_ARCHIVE_DEST_2='SERVICE=standby LGWR ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=standby'

*.LOG_ARCHIVE_DEST_STATE_1=ENABLE

*.LOG_ARCHIVE_DEST_STATE_2=ENABLE

*.REMOTE_LOGIN_PASSWORDFILE=EXCLUSIVE

LOG_ARCHIVE_FORMAT=%t_%s_%r.arc

LOG_ARCHIVE_MAX_PROCESSES=30

 

--下面是角色转换用到的参数

*.FAL_SERVER=standby

*.DB_FILE_NAME_CONVERT='/oradata/orcl','/oradata/orcl'

*.LOG_FILE_NAME_CONVERT='/oradata/orcl','/oradata/orcl'

*.STANDBY_FILE_MANAGEMENT=AUTO

 

通过pfile 重建spfile

SQL> shutdown immediate

SQL> create spfile from pfile='initorcl.ora';

SQL> startup

 

5、创建一份主库的备份

用rman或其它方法备份主库的数据文件,建议用rman。

 

6、创建standby 数据库控制文件

SQL> alter database create standby controlfile as '/oradata/orcl/stdcotrl.ctl';

 

7、复制数据文件到standby 服务器(方式多样,不详述)

把主库的备份文件、init参数文件、上面备份的控制文件、密码文件copy到standby服务器的相应目录下。

 

8、配置主备的listener 及net service names如下:

 

(1)Primary的tnsnames.ora内容

primary =

  (DESCRIPTION =

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

    (CONNECT_DATA =

      (SERVER = DEDICATED)

      (SERVICE_NAME = orcl)

    )

  )

standby=

  (DESCRIPTION =

    (ADDRESS_LIST =

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

    )

    (CONNECT_DATA =

      (sid = orcl)

    )

)

 

(2)standby的tnsnames.ora内容

standby=

  (DESCRIPTION =

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

    (CONNECT_DATA =

      (SERVER = DEDICATED)

      (SERVICE_NAME = orcl)

    )

  )

primary =

  (DESCRIPTION =

    (ADDRESS_LIST =

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

    )

    (CONNECT_DATA =

      (sid = orcl)

    )

)

注:listener.ora装数据库一般都已经配好,不用动就行。

配完之后重启主备listener:

[oracle@DB1 ~]$ lsnrctl stop

[oracle@DB1 ~]$ snrctl start

 

在主备分别通过tnsping 测试tnsnames 是否正确有效

通过下面的测试oracle net的连接

--[oracle@DB1 ~]$ sqlplus system/oracle@standby

[oracle@DB2 ~]$ sqlplus system/oracle@primary

 

 

二、Standby数据库配置及相关操作

1、   如果服务器是windows通过ORADIM 创建新的OracleService,如果linux\unix可以略去这一步。

2、   如果上面没有拷贝密码文件,也可以手工创建密码文件。注意保持sys 密码与primary 数据库一致。

 [oracle@DB2 ~]$orapwd file=$ORACLE_HOME/dbs/orapworcl password=oracle entries=30

--密码最好自己重建一下,否则可能会出现ORA-01031: insufficient privileges

 

3、创建目录

[oracle@DB2 ~]$cd /oracle/admin/orcl

[oracle@DB2 ~]$mkdir adump bdump cdump dpdump udump

 

4、复制文件,上面第7步已经做过,把复制过来的文件拷到相应目录下即可。

 

5、修改初始化参数文件($ORACLE_HOME/dbs/initorcl.ora)

修改和增加下列参数

 

*.control_files='/oradata/orcl/stdcotrl1.ctl', '/oradata/orcl/stdcotrl2.ctl'

*.db_name=orcl

*.db_unique_name=standby

*.LOG_ARCHIVE_CONFIG='DG_CONFIG=(primary,standby)'

*.DB_FILE_NAME_CONVERT='/oradata/orcl','/oradata/orcl'

*.LOG_FILE_NAME_CONVERT='/oradata/orcl','/oradata/orcl'

*.LOG_ARCHIVE_FORMAT=log%t_%s_%r.arc

*.LOG_ARCHIVE_DEST_1='LOCATION=/oradata/orcl VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=standby'

*.LOG_ARCHIVE_DEST_STATE_1=ENABLE

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

*.LOG_ARCHIVE_DEST_2='SERVICE=primary LGWR ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=primary'

*.LOG_ARCHIVE_DEST_STATE_2=ENABLE

*.REMOTE_LOGIN_PASSWORDFILE=EXCLUSIVE

*.FAL_SERVER=primary

*.STANDBY_FILE_MANAGEMENT=AUTO

 

注意同时修改*_dest 的路径。

 

通过该pfile 创建spfile

SQL> create spfile from pfile;

 

6、启动standby 到mount

SQL> startup mount;

 

7、启动redo 应用

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

SQL> select name,open_mode,PROTECTION_MODE,DATABASE_ROLE from v$database;

NAME OPEN_MODE PROTECTION_MODE DATABASE_ROLE
--------- ---------- -------------------- ----------------
PRIMARY MOUNTED MAXIMUM PERFORMANCE PHYSICAL STANDBY

 

8、查看同步情况

首先连接到primary 数据库

SQL> show parameter instance_name;

NAME         TYPE  VALUE

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

instance_name  string  orcl

 

SQL> alter system switch logfile;

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

 

然后连接到standby 数据库

SQL> show parameter instance_name;

NAME         TYPE  VALUE

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

instance_name  string  orcl

 

SQL> SELECT SEQUENCE#,APPLIED FROM V$ARCHIVED_LOG;

SEQUENCE# APP

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

         1 YES

         2 YES

9、暂停应用

通过下列语句暂停redo 应用。

SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;

 

注意,此时只是暂时redo 应用,并不是停止Standby 数据库,standby 仍会保持接收只不过不会再应用接收到的归档,直到你再次启动redo 应用为止

 

10、使用standby的实时查询功能

COMPATIBLE数据库参数必需设为11.0以上时才能使用Oracle Active Data Guard新特性

 

SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;

SQL> ALTER DATABASE OPEN;

SQL> select open_mode from v$database;

 

OPEN_MODE

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

READ ONLY

SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE DISCONNECT;

SQL> select open_mode from v$database;

 

OPEN_MODE

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

READ ONLY WITH APPLY

 

 

注:也可以用

ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE DISCONNECT FROM SESSION;

提 示:

DISCONNECT FROM SESSION子句并非必需,该子句的作用呢,是指定启动完应用后自动退出到命令操作符前。如果不指定该子句的话,当前SESSION就会一直停留处理REDO应用,如果想做其他操作,就只能新建一个连接。

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值