ITPub博客

首页 > 数据库 > Oracle > Oracle 11gR2 Active DataGuard配置Step By Step(二)

Oracle 11gR2 Active DataGuard配置Step By Step(二)

Oracle 作者:xulongxc 时间:2015-06-15 17:59:32 0 删除 编辑

 

上篇我们进行了Oracle Dataguard基础配置部分。同RAC相同,Oracle DG很大一部分工作都是真正执行前的准备过程。本篇继续讨论配置项目。

 

3Oracle NET配置

 

Oracle DG是建立在两个核心技术Redo TransferRedo Apply的基础上。Redo Transfer是将日志在PrimaryStandby传输的技术,其基础就是Oracle Net配置。

Oracle Net三大配置文件:sqlnet.oralistener.oratnsnames.ora分别起到不同的作用。Tnsnames.ora负责记录本地连接名,从primarystandby,从standbyprimary,连接都是从tnsnames.ora进行配置。

所以在PrimaryStandby端,都要进行互联配置。

 

[oracle@SimpleLinux admin]$ ls -l

total 24

-rw-r--r--. 1 oracle oinstall  345 Apr 13 12:59 listener14041312PM5921.bak

-rw-r--r--. 1 oracle oinstall  345 Apr  1 13:19 listener.ora

-rw-r--r--. 1 oracle oinstall  345 Apr  1 13:10 listener.ora.bk

drwxr-xr-x. 2 oracle oinstall 4096 Apr  1 12:27 samples

-rw-r--r--. 1 oracle oinstall  381 Dec 17  2012 shrept.lst

-rw-r--r--. 1 oracle oinstall  502 Apr 13 13:00 tnsnames.ora

[oracle@SimpleLinux admin]$ cat tnsnames.ora

# tnsnames.ora Network Configuration File: /u01/app/oracle/network/admin/tnsnames.ora

# Generated by Oracle configuration tools.

 

ORA11GSY =

  (DESCRIPTION =

    (ADDRESS_LIST =

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

    )

    (CONNECT_DATA =

      (SERVICE_NAME = ora11gsy)

    )

  )

 

ORA11G =

  (DESCRIPTION =

    (ADDRESS_LIST =

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

    )

    (CONNECT_DATA =

      (SERVICE_NAME = ora11g)

    )

  )

 

之后,listener.ora是负责监听器行为的。监听器动作分为动态注册和静态注册两种方式,理论上只要实例启动(Pmon出现),动态注册动作就会出现。我们就可以在监听器状态中查看到注册信息。

但是,有一个问题需要注意,我们进行duplicateRedo Transfer的时候,连接都是需要无条件的。当实例在nomount状态时,动态监听状态是restricted限制态,连接是有限制的。所以,就存在一个矛盾。解决这个问题方法,就是放弃动态注册,对PrimaryStandby都采用静态注册。

 

 

[oracle@SimpleLinux admin]$ cat listener.ora

# listener.ora Network Configuration File: /u01/app/oracle/network/admin/listener.ora

# Generated by Oracle configuration tools.

 

LISTENER =

  (DESCRIPTION_LIST =

    (DESCRIPTION =

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

      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))

    )

  )

 

SID_LIST_LISTENER =

  (SID_LIST =

    (SID_DESC =

      (SID_NAME = ora11g)

      (ORACLE_HOME = /u01/app/oracle)

      (PROGRAM = extproc)

      (GLOBAL_DBNAME = ora11g)

    )

 

    (SID_DESC =

      (SID_NAME = ora11gsy)

      (ORACLE_HOME = /u01/app/oracle)

      (GLOBAL_DBNAME = ora11gsy)

    )

  )

 

ADR_BASE_LISTENER = /u01/app

 

监听器启动之后,状态unknown注册信息。

 

[oracle@SimpleLinux admin]$ lsnrctl start

 

LSNRCTL for Linux: Version 11.2.0.4.0 - Production on 13-APR-2014 13:03:52

 

Copyright (c) 1991, 2013, Oracle.  All rights reserved.

(篇幅原因,有省略……

  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=SimpleLinux)(PORT=1521)))

  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))

Services Summary...

Service "ora11g" has 1 instance(s).

  Instance "ora11g", status UNKNOWN, has 1 handler(s) for this service...

Service "ora11gsy" has 1 instance(s).

  Instance "ora11gsy", status UNKNOWN, has 1 handler(s) for this service...

The command completed successfully

 

4、密码文件设置

 

Oracle DG设置有一个要求,就是管理密码(如sys)一致性。在PrimaryStandby端,管理密码一定要求是一样的。这个密码的作用在于传递Redo Log过程中进行验证。

在安装DG的时候,比较好一种方法是拷贝Primary库到Standby

 

 

[oracle@SimpleLinux dbs]$ ls -l

total 20

-rw-rw----. 1 oracle oinstall 1544 Apr 13 12:40 hc_ora11g.dat

-rw-r--r--. 1 oracle oinstall 2851 May 15  2009 init.ora

-rw-r-----. 1 oracle oinstall   24 Apr  1 12:39 lkORA11G

-rw-r-----. 1 oracle oinstall 1536 Apr  1 12:45 orapwora11g

-rw-r-----. 1 oracle oinstall 3584 Apr 13 13:00 spfileora11g.ora

[oracle@SimpleLinux dbs]$ cp orapwora11g orapwora11gsy

 

[oracle@SimpleLinux dbs]$ ls -l | grep orapw

-rw-r-----. 1 oracle oinstall 1536 Apr  1 12:45 orapwora11g

-rw-r-----. 1 oracle oinstall 1536 Apr 13 13:10 orapwora11gsy

 

5、目录创建

 

standby端,我们需要创建一些基本目录。这个时候,可以参考Primary库的参数文件项目,略加修改就可以确定完整的目录列表。

 

[oracle@SimpleLinux dbs]$ sqlplus /nolog

 

SQL*Plus: Release 11.2.0.4.0 Production on Sun Apr 13 13:11:29 2014

 

Copyright (c) 1982, 2013, Oracle.  All rights reserved.

 

SQL> conn / as sysdba

Connected.

SQL> create pfile from spfile;

File created.

 

文本格式的参数文件。

 

 

[oracle@SimpleLinux dbs]$ cat initora11g.ora

*.audit_file_dest='/u01/app/admin/ora11g/adump'

*.audit_trail='db'

*.compatible='11.2.0.4.0'

*.control_files='/u01/app/oradata/ORA11G/controlfile/o1_mf_9mnjwpko_.ctl','/u01/app/fast_recovery_area/ORA11G/controlfile/o1_mf_9mnjwpw2_.ctl'

*.db_block_size=8192

*.db_create_file_dest='/u01/app/oradata'

*.db_domain=''

*.db_file_name_convert='ORA11G','ORA11GSY'

*.db_name='ora11g'

*.db_recovery_file_dest='/u01/app/fast_recovery_area'

*.db_recovery_file_dest_size=10485760000

*.diagnostic_dest='/u01/app'

*.dispatchers='(PROTOCOL=TCP) (SERVICE=ora11gXDB)'

*.log_archive_config='DG_CONFIG=(ora11g,ora11gsy)'

*.log_archive_dest_2='SERVICE=ora11gsy valid_for=(online_logfiles,primary_role) db_unique_name=ora11gsy'

*.log_archive_dest_state_2='ENABLE'

*.log_file_name_convert='ORA11G','ORA11GSY'

*.memory_target=373293056

*.open_cursors=300

*.processes=150

*.remote_login_passwordfile='EXCLUSIVE'

*.standby_file_management='AUTO'

*.undo_tablespace='UNDOTBS1'

 

创建目录:

 

[oracle@SimpleLinux dbs]$ mkdir -p /u01/app/admin/ora11gsy/adump

[oracle@SimpleLinux dbs]$ mkdir -p /u01/app/oradata/ORA11GSY/controlfile/

[oracle@SimpleLinux dbs]$ mkdir -p /u01/app/fast_recovery_area/ORA11GSY/controlfile/

[oracle@SimpleLinux dbs]$ mkdir -p /u01/app/oradata/ORA11GSY/onlinelog/

[oracle@SimpleLinux dbs]$ mkdir -p /u01/app/fast_recovery_area/ORA11GSY/onlinelog/

[oracle@SimpleLinux dbs]$ mkdir -p /u01/app/oradata/ORA11GSY/datafile/

 

6、启动standby实例

 

理论上,有参数文件就可以将数据库实例启动到nomount上。我们创建一个简单的参数文件即可。

注意:启动实例名称是通过环境变量ORACLE_SID来定位。

 

[oracle@SimpleLinux dbs]$ cat initora11gsy.ora

db_name=ora11gsy

 

[oracle@SimpleLinux dbs]$ export ORACLE_SID=ora11gsy

 

指定pfile启动standby实例到nomount

 

[oracle@SimpleLinux dbs]$ sqlplus /nolog

 

SQL*Plus: Release 11.2.0.4.0 Production on Sun Apr 13 13:22:33 2014

 

Copyright (c) 1982, 2013, Oracle.  All rights reserved.

 

SQL> conn / as sysdba

Connected to an idle instance.

SQL> startup nomount pfile=initora11gsy.ora

ORACLE instance started.

 

Total System Global Area  150654976 bytes

Fixed Size                  1363216 bytes

Variable Size              96469744 bytes

Database Buffers           50331648 bytes

Redo Buffers                2490368 bytes

 

确定实例进程pmon启动。

 

[oracle@SimpleLinux dbs]$ ps -ef | grep pmon

oracle    1692     1  0 12:38 ?        00:00:01 ora_pmon_ora11g

oracle    2567     1  0 13:26 ?        00:00:00 ora_pmon_ora11gsy

oracle    2614  2404  0 13:27 pts/0    00:00:00 grep pmon

 

下面,就可以通过RMAN开始duplicate standby过程了。


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

全部评论

注册时间:2014-01-13

  • 博文量
    58
  • 访问量
    213941