搭建环境:RedHatLinuxEnterprise5.4Oracle10gR2主机操作系统主要信息为192.168.199.128.搭建准备:已存在主库(生产库)DB_NAME=mustangSID=april开始搭建DataG
搭建环境:
Red Hat Linux Enterprise 5.4
Oracle 10g R2
主机操作系统主要信息为192.168.199.128.
搭建准备:
已存在主库(生产库)DB_NAME=mustang SID=april
开始搭建Data Guard
首先需要准备好参数文件,网站空间,设定一些必要的参数。在主库,先通过spfile生成pfile文件:
SQL>create pfile=’/home/oracle/product/10.2initapril.ora’ from spfile;
然后修改主库新生成的initapril.ora参数文件。在原有的基础上添加如下内容:
修改完参数文件之后,要重新打开主库,然后通过iniapril.ora来创建spfile。如下:
SQL>create spfile=’/home/oracle/product/10.2.0/db_1/dbs/spfileapril.ora’ from pfile=’
/home/oracle/product/10.2.0/db_1/dbs/initapril.ora’;
接下来的工作就是要通过主库的参数文件,创建备库需要的参数文件,在主库上运行:
SQL>create pfile=’ /home/oracle/product/10.2.0/db_1/dbs/initstandby.ora’ from spfile;
编辑initstandby.ora。如下所示:
保存initstandby.ora参数文件。通过initstandby.ora生成动态文件spfilestandby.ora:
在主库上创建我们的密码文件:
[oracle@localhost dbs]$orapwd file=’ /home/oracle/product/10.2.0/db_1/dbs/orapwstandby’ password=oracle entries=10
通过主库的控制文件生成我们备库的控制文件:
SQL>alter database create standby controlfile as ‘/home/oracle/standby.ctl’;
开始创建备库:
首先创建备库的目录结构,这里我们以主库位于同一目录:
主库:/home/oracle/mustang 主库归档文件:/home/oracle/archive
于是我们在/home/oracle下创建我们的备库目录:
下一步就是要配置监听(如果没有监听standby是启动不了的)。在配置监听之前,首先要进行一步就是要生成备库的密码文件:
[oracle@localhost dbs]$orapwd file=’ /home/oracle/product/10.2.0/db_1/dbs/orapwstandby’ password=oracle entries=10
将路径切换到/home/oracle/product/10.2.0/db_1/network/admin下。通过ls命令可以看到:
[oracle@localhost admin]$ ls
listener.ora shrept.lst sqlnet.log tnsnames.ora
再配置监听之前,要先将我们的监听服务停止:lsnrctl stop。
开始配置监听
首先配置tnsnames.ora文件。设定服务名(因为我们这里是单机,所以配置在本机上配置就行了,如果是两台机的话,就要在主备库的tnsnames.ora同时修改):
接下来配置listener.ora文件(建议用途netmgr配置,香港服务器,比较方便,因为手工配置容易出错)。配置如下:
至此我们的监听配置就完成,启动监听器:
[oracle@localhost admin]$ lsnrctl start
出现如下内容说明,已经配置成功:
LSNRCTL for Linux: Version 10.2.0.1.0 - Production on 26-JUL-2012 20:59:37
Copyright (c) 1991, 2005, Oracle. All rights reserved.
Starting /home/oracle/product/10.2.0/db_1/bin/tnslsnr: please wait...
TNSLSNR for Linux: Version 10.2.0.1.0 - Production
System parameter file is /home/oracle/product/10.2.0/db_1/network/admin/listener.ora
Log messages written to /home/oracle/product/10.2.0/db_1/network/log/listener.log
Trace information written to /home/oracle/product/10.2.0/db_1/network/trace/listener.trc
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=localhost.localdomain)(PORT=1521)))
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=localhost.localdomain)(PORT=1522)))
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost.localdomain)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias LISTENER
Version TNSLSNR for Linux: Version 10.2.0.1.0 - Production
Start Date 26-JUL-2012 20:59:37
Uptime 0 days 0 hr. 0 min. 0 sec
Trace Level user
Security ON: Local OS Authentication
SNMP OFF
Listener Parameter File /home/oracle/product/10.2.0/db_1/network/admin/listener.ora
Listener Log File /home/oracle/product/10.2.0/db_1/network/log/listener.log
Listener Trace File /home/oracle/product/10.2.0/db_1/network/trace/listener.trc
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=localhost.localdomain)(PORT=1521)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=localhost.localdomain)(PORT=1522)))
Services Summary...
Service "mustang" has 1 instance(s).
Instance "april", status UNKNOWN, has 1 handler(s) for this service...
Service "standby" has 1 instance(s).
Instance "standby", status UNKNOWN, has 1 handler(s) for this service...
The command completed successfully
我们也可以通过tnsping来检查,是否配置成功: