Oracle 11g DataGuard配置详细说明.docx

上传人:b****5 文档编号:5852209 上传时间:2023-01-01 格式:DOCX 页数:15 大小:21.72KB
下载 相关 举报
Oracle 11g DataGuard配置详细说明.docx_第1页
第1页 / 共15页
Oracle 11g DataGuard配置详细说明.docx_第2页
第2页 / 共15页
Oracle 11g DataGuard配置详细说明.docx_第3页
第3页 / 共15页
Oracle 11g DataGuard配置详细说明.docx_第4页
第4页 / 共15页
Oracle 11g DataGuard配置详细说明.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

Oracle 11g DataGuard配置详细说明.docx

《Oracle 11g DataGuard配置详细说明.docx》由会员分享,可在线阅读,更多相关《Oracle 11g DataGuard配置详细说明.docx(15页珍藏版)》请在冰豆网上搜索。

Oracle 11g DataGuard配置详细说明.docx

Oracle11gDataGuard配置详细说明

Oracle11gDataGuard配置详细说明

1.判断DataGuard是否安装

select*fromv$optionwhereparameter='OracleDataGuard';

2.数据库环境说明

主库配置:

IP:

192.168.228.133(Oracle11g1),数据库名:

db1,监听服务名:

pri

从库配置:

IP:

192.168.229.134(Oracle11g2),数据库名:

db1,监听服务名:

dg

数据库程序安装路径:

/oracleapp/oinstall/oracle/product/11.2.0/dbhome_1/dbs

数据库存放路径:

/oracledata/db1

3.监听配置

在做oracledataguard主从库配置时候,一定要配置静态监听,否则可能出现监听服务解析错误,不能连接的问题,监听配置如下:

主库配置如下:

[oracle@Oracle11g1admin]$pwd

/oracleapp/oinstall/oracle/product/11.2.0/dbhome_1/network/admin

[oracle@Oracle11g1admin]$catlistener.ora

#listener.oraNetworkConfigurationFile:

/oracleapp/oinstall/oracle/product/1.2.0/dbhome_1/network/admin/listener.ora

#GeneratedbyOracleconfigurationtools.

WU=

(DESCRIPTION_LIST=

(DESCRIPTION=

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

SID_LIST_WU=

(SID_LIST=

(SID_DESC=

(GLOBAL_DBNAME=pri)

(ORACLE_HOME=/oracleapp/oinstall/oracle/product/11.2.0/dbhome_1)

(SID_NAME=db1)

ADR_BASE_WU=/oracleapp/oinstall/oracle

#注意这里的global_dbname=pri,SID_NAME=db1,这个SID_NAME应与你对外提供服务的$ORACLE_SID一致,即数据库:

db1

[oracle@Oracle11g1admin]$cattnsnames.ora

#tnsnames.oraNetworkConfigurationFile:

/oracleapp/oinstall/oracle/product/11.2.0/dbhome_1/network/admin/tnsnames.ora

#GeneratedbyOracleconfigurationtools.

pri=

(DESCRIPTION=

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

(CONNECT_DATA=

(SERVER=DEDICATED)

(SERVICE_NAME=pri)

dg=

(DESCRIPTION=

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

(CONNECT_DATA=

(SERVER=DEDICATED)

(SERVICE_NAME=dg)

#tnsnamepri中的SERVICE_NAME=pri,这里的服务名为pri而不是通常的db1,因为在listener.ora中已经注册了pri,lsnrctl启动时会监听pri,并对应到SID_NAME=db1上。

从库配置如下:

[oracle@Oracle11g2admin]$catlistener.ora

#listener.oraNetworkConfigurationFile:

/oracleapp/oinstall/oracle/product/11.2.0/dbhome_1/network/admin/listener.ora

#GeneratedbyOracleconfigurationtools.

WU=

(DESCRIPTION_LIST=

(DESCRIPTION=

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

SID_LIST_WU=

(SID_LIST=

(SID_DESC=

(GLOBAL_DBNAME=dg)

(ORACLE_HOME=/oracleapp/oinstall/oracle/product/11.2.0/dbhome_1)

(SID_NAME=db1)

ADR_BASE_WU=/oracleapp/oinstall/oracle

[oracle@Oracle11g2admin]$cattnsnames.ora

#tnsnames.oraNetworkConfigurationFile:

/oracleapp/oinstall/oracle/product/11.2.0/dbhome_1/network/admin/tnsnames.ora

#GeneratedbyOracleconfigurationtools.

pri=

(DESCRIPTION=

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

(CONNECT_DATA=

(SERVER=DEDICATED)

(SERVICE_NAME=pri)

dg=

(DESCRIPTION=

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

(CONNECT_DATA=

(SERVER=DEDICATED)

(SERVICE_NAME=dg)

分别用tnsping命令测试监听服务是否可用,正常显示信息如下:

(tnsping对方的时候,有可能linux防火墙限制了,会提示TNS-12560:

TNS:

协议适配器错误)

[oracle@Oracle11g2dbs]$tnspingdg

TNSPingUtilityforLinux:

Version11.2.0.1.0-Productionon27-MAY-201415:

39:

34

Copyright(c)1997,2009,Oracle.Allrightsreserved.

Usedparameterfiles:

UsedTNSNAMESadaptertoresolvethealias

Attemptingtocontact(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=Oracle11g2)(PORT=1521))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=dg)))

OK(10msec)

[oracle@Oracle11g2dbs]$tnspingpri

TNSPingUtilityforLinux:

Version11.2.0.1.0-Productionon27-MAY-201415:

40:

16

Copyright(c)1997,2009,Oracle.Allrightsreserved.

Usedparameterfiles:

UsedTNSNAMESadaptertoresolvethealias

Attemptingtocontact(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=Oracle11g1)(PORT=1521))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=pri)))

OK(10msec)

[oracle@Oracle11g2dbs]$

4.主库前期准备

设置强制写日志

[oracle@Oracle11g2admin]$sqlplus/assysdba

SQL>selectFORCE_LOGGINGfromv$database;

NO

SQL>alterdatabaseforcelogging;

SQL>selectFORCE_LOGGINGfromv$database;

YES

5.创建口令文件

通过dbca命令创建的数据库会自动在/oracleapp/oinstall/oracle/product/11.2.0/dbhome_1/dbs目录下创建orapwdb1密码文件,也可以通过如下命令创建

[oracle@Oracle11g1admin]$orapwdfile=/oracleapp/oinstall/oracle/product/11.2.0/dbhome_1/dbs/orapwdb1password=oracleentries=5

密码文件为orapw(数据库ID),这里为orapwdb1.

6.修改主库初始化参数

在initdb1.ora文件下增加如下参数:

[oracle@Oracle11g2dbs]$viminitdb1.ora

*.DB_UNIQUE_NAME=pri

*.LOG_ARCHIVE_CONFIG='DG_CONFIG=(pri,dg)'#(启动db接受或发送redodata,包括所有库的db_unique_name)

*.LOG_ARCHIVE_DEST_1='LOCATION=/oracleapp/oinstall/oracle/archiveVALID_FOR=(ALL_LOGFILES,ALL_ROLES)DB_UNIQUE_NAME=pri'#(主库归档目的地)

*.LOG_ARCHIVE_DEST_2='SERVICE=dgLGWRASYNCVALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE)DB_UNIQUE_NAME=dg'#(当该库充当主库角色时,设置物理备库redodata的传输目的地)

*.LOG_ARCHIVE_MAX_PROCESSES=5(最大ARCn进程数)

*.LOG_ARCHIVE_DEST_STATE_1=ENABLE#允许redo传输服务传输数据到目的地

*.LOG_ARCHIVE_DEST_STATE_2=ENABLE#允许redo传输服务传输数据到目的地

*.LOG_ARCHIVE_FORMAT=%t_%s_%r.arc#配置日志格式

*.FAL_SERVER=dg#(配置网络服务名,假如转换为备库角色时,从这里获取丢失的归档文件)

*.FAL_CLIENT=pri#(配置网络服务名,fal_server拷贝丢失的归档文件到这里)

#*.DB_FILE_NAME_CONVERT='/路径','路径'(前为切换后的主库路径,后为切换后的备库路径,这里主备库目录结构完全一样,则无需设定)

#*.LOG_FILE_NAME_CONVERT='/路径','/路径'(同上,这两个名字转换参数是主备库的路径映射关系,可能会是路径全名,看情况而定)

*.STANDBY_FILE_MANAGEMENT=AUTO(auto后当主库的datafiles增删时备库也同样自动操作,且会把日志传送到备库standby_archive_dest参数指定的目录下,确保该目录存在,如果你的存储采用文件系统没有问题,但是如果采用了裸设备,你就必须将该参数设置为manual)

*.remote_login_passwordfile='EXCLUSIVE'#(exclusiveorshared,所有库sys密码要一致,默认是exclusive)

[oracle@Oracle11g1dbs]$sqlplus/assysdba

创建主库spfile

sql>startuppfile='/oracleapp/oinstall/oracle/product/11.2.0/dbhome_1/dbs/initdb1.ora';

sql>createspfilefrompfile;

7.修改数据库运行在归档模式下

sql>SHUTDOWNIMMEDIATE;

sql>STARTUPMOUNT;

sql>ALTERDATABASEARCHIVELOG;

sql>ALTERDATABASEOPEN;

8.创建备份库需要的控制文件

创建控制文件

sql>Shutdownimmediate

sql>STARTUPMOUNT;

sql>ALTERDATABASECREATESTANDBYCONTROLFILEAS'/tmp/standby.ctl';sql>ALTERDATABASEOPEN;

sql>shutdownimmediate;

sql>startup

9.备份生产数据库

将主库数据库文件拷贝到备份机器上Oracle11g2

[oracle@Oracle11g1dbs]scp-rp/oracledata/db1Oracle11g2:

/oracledata/

[oracle@Oracle11g1dbs]scp–rp/oracleapp/oinstall/oracle/admin/db1Oracle11g2:

/oracleapp/oinstall/oracle/admin(记得在备库创建admin)

在Oracle11g2上删掉数据库的控制文件control01.ctl

[oracle@Oracle11g2~]rm-rf/oracledata/db1/control01.ctl

将备份的控制文件拷贝到备份机器上,并复制两个备份control02.ctl,control03.ctl

[oracle@Oracle11g1dbs]scp-rp/tmp/standby.ctlOracle11g2:

/oracledata/db1/control01.ctl

在Oracle11g2上操作

[oracle@Oracle11g2db1]$cd/oracledata/db1/

[oracle@Oracle11g2db1]cpcontrol01.ctlcontrol02.ctl

[oracle@Oracle11g2db1]cpcontrol01.ctlcontrol03.ctl

将control02.ctl复制到/oracleapp/oinstall/oracle/flash_recovery_area/db1下

先建立db1文件夹

[oracle@Oracle11g2db1]mkdir/oracleapp/oinstall/oracle/flash_recovery_area/db1

[oracle@Oracle11g2dbs]cpcontrol02.ctl/oracleapp/oinstall/oracle/flash_recovery_area/db1/control02.ctl

10.修改备库pfile

将主库的orapwdb1,initdb1.ora文件拷贝到从库/oracleapp/oinstall/oracle/product/11.2.0/dbhome_1/dbs下面

[oracle@Oracle11g1dbs]scp-rporapwdb1Oracle11g2:

/oracleapp/oinstall/oracle/product/11.2.0/dbhome_1/dbs/orapwdb1

[oracle@Oracle11g1dbs]scp-rpinitdb1.oraOracle11g2:

/oracleapp/oinstall/oracle/product/11.2.0/dbhome_1/dbs/initdb1.ora

在从库机器上修改initdb1.ora文件参数

[oracle@Oracle11g2dbs]viminitdb1.ora

*.DB_UNIQUE_NAME=dg

*.LOG_ARCHIVE_CONFIG='DG_CONFIG=(pri,dg)'#(启动db接受或发送redodata,包括所有库的db_unique_name)

*.LOG_ARCHIVE_DEST_1='LOCATION=/oracleapp/oinstall/oracle/archiveVALID_FOR=(ALL_LOGFILES,ALL_ROLES)DB_UNIQUE_NAME=dg'#(主库归档目的地)

*.LOG_ARCHIVE_DEST_2='SERVICE=priLGWRASYNCVALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE)DB_UNIQUE_NAME=pri'#(当该库充当主库角色时,设置物理备库redodata的传输目的地)

*.LOG_ARCHIVE_MAX_PROCESSES=5(最大ARCn进程数)

*.LOG_ARCHIVE_DEST_STATE_1=ENABLE#允许redo传输服务传输数据到目的地

*.LOG_ARCHIVE_DEST_STATE_2=ENABLE#允许redo传输服务传输数据到目的地

*.LOG_ARCHIVE_FORMAT=%t_%s_%r.arc#配置日志格式

*.FAL_SERVER=pri#(配置网络服务名,假如转换为备库角色时,从这里获取丢失的归档文件)

*.FAL_CLIENT=dg#(配置网络服务名,fal_server拷贝丢失的归档文件到这里)

#*.DB_FILE_NAME_CONVERT='/路径','路径'(前为切换后的主库路径,后为切换后的备库路径,这里主备库目录结构完全一样,则无需设定)

#*.LOG_FILE_NAME_CONVERT='/路径','/路径'(同上,这两个名字转换参数是主备库的路径映射关系,可能会是路径全名,看情况而定)

*.STANDBY_FILE_MANAGEMENT=AUTO(auto后当主库的datafiles增删时备库也同样自动操作,且会把日志传送到备库standby_archive_dest参数指定的目录下,确保该目录存在,如果你的存储采用文件系统没有问题,但是如果采用了裸设备,你就必须将该参数设置为manual)

*.remote_login_passwordfile='EXCLUSIVE'#(exclusiveorshared,所有库sys密码要一致,默认是exclusive)

11.在备库上创建spfile

[oracle@Oracle11g2dbs]$sqlplus/assysdba

创建备库spfile

sql>Shutdownimmediate

sql>startuppfile='/oracleapp/oinstall/oracle/product/11.2.0/dbhome_1/dbs/initdb1.ora';

sql>createspfilefrompfile;

12.启动物理备用数据库

sql>Shutdownimmediate

sql>STARTUPMOUNT;

13.配置standbyredolog

(最佳性能模式可以忽略,如果要转为其它两种模式则要建立)

分部在Oracle11g1和Oracle11g2上建立standby文件夹,用于standbyRedolog

[oracle@Oracle11g2dbs]mkdir/oracledata/db1/standby

[oracle@Oracle11g1dbs]mkdir/oracledata/db1/standby

在主库、从库上都配置standbyredolog

在主库查看日志组的数量和每个日志文件的大小

SQL>SELECTGROUP#,BYTESFROMV$LOG;

在备库库查看日志组的数量和每个日志文件的大小

SQL>SELECTGROUP#,BYTESFROMV$STANDBY_LOG;

创建日志组和redolog文件

SQL>ALTERDATABASEADDSTANDBYLOGFILEgroup4('//oracledata/db1/standby/slog1.rdo')SIZE50M;

SQL>ALTERDATABASEADDSTANDBYLOGFILEgroup5('/oracledata/db1/standby/slog2.rdo')SIZE50M;

SQL>ALTERDATABASEADDSTANDBYLOGFILEgroup6('/oracledata/db1/standby/slog3.rdo')SIZE50M;

SQL>ALTERDATABASEADDSTANDBYLOGFILEgroup7('/oracledata/db1/standby/slog4.rdo')SIZE50M;

standbyredolog的组数参考公式:

(onlineredolog组数+1)*数据库线程数;单机线程数为1,RAC一般为2。

standbyredolog的组成员数和大小也尽量和onlineredolog一样。

14.StartRedoApply

sql>ALTERDATABASERECOVERMANAGEDSTANDBYDATABASEUSINGCURRENTLOGFILEDISCONNECTFROMSESSION;

查看哪些归档日志被APPLY了在备库

sql>SELECTSEQUENCE#,APPLIEDFROMV$ARCHIVED_LOGORDERBYSEQUENCE#;

在主库强制日志切换到当前的onlineredologfile.

sql>ALTERSYSTEMARCHIVELOGCURRENT;

在备库查看新的被归档的redodata

sql>SELECTSEQUENCE#,FIRST_TIME,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1