您的位置:首页 > 数据库 > Oracle

oracle 10g 创建 DATA GUARD

2010-04-21 20:27 381 查看
其实创建dg网络上的文档很多,我是看小布老师是视频学习的

用虚拟机做测试,弄了好几天,下面记录一下曾经做过印象比较深的地方

1.将Primary服务器处于归档模式和Force Logging模式

SQL> SHUTDOWN IMMEDIATE;

SQL> STARTUP MOUNT;

SQL> ALTER DATABASE ARCHIVELOG;

SQL> ALTER DATABASE OPEN;

SQL>archive log list

SQL>alter database force logging

2.修改Primary服务器的参数文件

SQL>create pfile from spfile; #

修复生成的pfile文件添加以下内容(成功的例子)

DB_UNIQUE_NAME=uqn_node1
LOG_ARCHIVE_CONFIG='DG_CONFIG=(uqn_node1,uqn_node2)'
LOG_ARCHIVE_DEST_2='SERVICE=lsnode2 LGWR ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=uqn_node2'
LOG_ARCHIVE_DEST_STATE_1=ENABLE
LOG_ARCHIVE_DEST_STATE_2=ENABLE

FAL_SERVER=lsnode2
FAL_CLIENT=lsnode1
DB_FILE_NAME_CONVERT='172.16.2.200:/u01/app/oracle/oradata/ict','172.16.2.201:/u01/app/oracle/oradata/ict'
LOG_FILE_NAME_CONVERT='172.16.2.200:/u01/app/oracle/oradata/ict','172.16.2.201:/u01/app/oracle/oradata/ict'
STANDBY_FILE_MANAGEMENT=AUTO

然后保存,

3.生成新的Primary服务器参数文件

SQL>stutdown immediate

SQL>create spfile form pfile='/u01/app/oracle/procuct/102/dbs/initict.ora' #执行前删除spfile文件

4.创建standby服务器的控制文件

SQL>startup

SQL>alter database create standby controfile as '/u01/app/oracle/standby.ctl'

5.关闭数据库,复制数据文件 创建的standby服务器的控制文件 Primary的参数文件(用来创建Standby的初始化参数文件) 口令文件(用dbca创建的数据库会自动生成口令文件如:orapwict ,在/u01/app/oracle/product/102/dbs目录下)到对应的目录

6.在Primary服务器和Standby服务器同时配置监听和网络服务名

/u01/app/oracle/product/102/network/admin/listener.ora
# listener.ora Network Configuration File: /u01/app/oracle/product/102/network/admin/listener.ora
# Generated by Oracle configuration tools.

SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = ict)
(ORACLE_HOME = /u01/app/oracle/product/102)
(SID_NAME = ict)
)
)

LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = node1)(PORT = 1521))
)
)

/u01/app/oracle/product/102/network/admin/tnsnames.ora
# tnsnames.ora Network Configuration File: /u01/app/oracle/product/102/network/admin/tnsnames.ora
# Generated by Oracle configuration tools.

LSNODE1 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 172.16.2.200)(PORT = 1521))
)
(CONNECT_DATA =
(SID = ict)
(SERVER = DEDICATED)
)
)

LSNODE2 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 172.16.2.201)(PORT = 1521))
)
(CONNECT_DATA =
(SID = ict)
(SERVER = DEDICATED)
)
)

7.政策startup启动Primary服务器,下面是启动Standby服务器

SQL>startup mount

SQL>ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION #Start Redo Apply

在备用数据库,查询V $ ARCHIVED_LOG视图,以确定在现有的归档重做日志文件。


SQL>SELECT SEQUENCE#, FIRST_TIME, NEXT_TIME FROM V$ARCHIVED_LOG ORDER BY SEQUENCE#;

备用数据库,查询V $ ARCHIVED_LOG视图核实归档重做日志文件的应用


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


参考文档:http://download.oracle.com/docs/cd/B19306_01/server.102/b14239/create_ps.htm#i63561

遇到的问题:

1. 用注意/etc/hosts文件

/etc/hosts
# Do not remove the following line, or various programs
# that require network functionality will fail.
127.0.0.1 localhost.localdomain localhost
172.16.2.200 node1
172.16.2.201 node2

并要用命令

shell>hostname

查看是否正确
2.都要启动监听文件

shell>lsnrctl start

正确启动会如下:

shell>lsnrctl status

LSNRCTL for Linux: Version 10.2.0.1.0 - Production on 21-APR-2010 00:38:18

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

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=node1)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias LISTENER
Version TNSLSNR for Linux: Version 10.2.0.1.0 - Production
Start Date 20-APR-2010 23:56:04
Uptime 0 days 0 hr. 42 min. 13 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Parameter File /u01/app/oracle/product/102/network/admin/listener.ora
Listener Log File /u01/app/oracle/product/102/network/log/listener.log
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=node1)(PORT=1521)))
Services Summary...
Service "ict" has 1 instance(s).
Instance "ict", status UNKNOWN, has 1 handler(s) for this service...
Service "ictXDB" has 1 instance(s).
Instance "ict", status READY, has 1 handler(s) for this service...
Service "uqn_node1" has 1 instance(s).
Instance "ict", status READY, has 1 handler(s) for this service...
Service "uqn_node1_XPT" has 1 instance(s).
Instance "ict", status READY, has 1 handler(s) for this service...
The command completed successfully

用下面的命令测试彼此间的通信

shell>tnsping 172.16.2.201

tnslsnr tnslsnr0 tnsping tnsping0
[oracle@node1 ict]$ tnsping 172.16.2.201

TNS Ping Utility for Linux: Version 10.2.0.1.0 - Production on 21-APR-2010 00:39:09

Copyright (c) 1997, 2005, Oracle. All rights reserved.

Used parameter files:

Used HOSTNAME adapter to resolve the alias
Attempting to contact (DESCRIPTION=(CONNECT_DATA=(SERVICE_NAME=172.16.2.201))(ADDRESS=(PROTOCOL=TCP)(HOST=172.16.2.201)(PORT=1521)))
OK (20 msec)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: