oracle11gdataguard配置详细说明.docx

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

oracle11gdataguard配置详细说明.docx

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

oracle11gdataguard配置详细说明.docx

oracle11gdataguard配置详细说明

Oracle11gDataGuard配置详细说明

1.判断DataGuard是否安装

select*fromv$optionwhereparameter='OracleDataGuard';

2.数据库环境说明

主库配置:

IP:

,数据库名:

dbl,监听服务名:

dblpri,网络服务名:

pri

从库配置:

IP:

,数据库名:

db1,监听服务名:

dbldg,网络服务名:

dg数据库程序安装路径:

/oracleapp/oinstall/oracle/product/数据库存放路径:

/oracledata/db1

3.监听配置

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

主库配置如下:

[oracle@Oracle11g1admin]$pwd

/oracleapp/oinstall/oracle/product/

[oracle@Oracle11g1admin]$cat

#NetworkConfigurationFile:

/oracleapp/oinstall/oracle/product/GeneratedbyOracleconfigurationtools.

WU=

(DESCRIPTION_LIST=

(DESCRIPTION=

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

SID_LIST_WU=

(SID_LIST=

(SID_DESC=

(GLOBAL_DBNAMEd=b1pri)

(ORACLE_HOME=/oracleapp/oinstall/oracle/product/(SID_NAME=db1)

ADR_BASE_WU=/oracleapp/oinstall/oracle

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

db1

[oracle@Oracle11g1admin]$cat

#NetworkConfigurationFile:

/oracleapp/oinstall/oracle/product/GeneratedbyOracleconfigurationtools.

pri=

(DESCRIPTION=

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

(CONNECT_DATA=

(SERVER=DEDICATED)

(SERVICE_NAMEd=b1pri)

dg=

(DESCRIPTION=

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

(CONNECT_DATA=

(SERVER=DEDICATED)

(SERVICE_NAMEd=b1dg)

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

此处的pri,dg为数据库参数文件中(的DB_UNIQUE_NAME的名字,即对外提供的服务名。

从库配置如下:

[oracle@Oracle11g2admin]$cat

#NetworkConfigurationFile:

/oracleapp/oinstall/oracle/product/GeneratedbyOracleconfigurationtools.

WU=

(DESCRIPTION_LIST=

(DESCRIPTION=

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

SID_LIST_WU=

(SID_LIST=

(SID_DESC=

(GLOBAL_DBNAME=db1dg)

(ORACLE_HOME=/oracleapp/oinstall/oracle/product/(SID_NAME=db1))

ADR_BASE_WU=/oracleapp/oinstall/oracle

[oracle@Oracle11g2admin]$cat

#NetworkConfigurationFile:

/oracleapp/oinstall/oracle/product/GeneratedbyOracleconfigurationtools.

pri=

(DESCRIPTION=

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

(CONNECT_DATA=

(SERVER=DEDICATED)

(SERVICE_NAMEd=b1pri)

dg=

(DESCRIPTION=

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

(CONNECT_DATA=

(SERVER=DEDICATED)

(SERVICE_NAMEd=b1dg)

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

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

TNS协议适配器错误)

[oracle@Oracle11g2dbs]$tnspingdg

TNSPingUtilityforLinux:

Version-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=db1dg)))

OK(10msec)

[oracle@Oracle11g2dbs]$tnspingpri

TNSPingUtilityforLinux:

Version-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=db1pri)))

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/目录下创建orapwdb1密码文件,也可以通过如下命令创建

[oracle@Oracle11g1admin]$orapwdfile=/oracleapp/oinstall/oracle/product/password=oracleentries=5

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

6.修改主库初始化参数

在文件下增加如下参数:

[oracle@Oracle11g2dbs]$vim

*.db_name='db1'#注意保持同一个DataGuard中所有数据库DB_NAME相同(物理standbydataguard)。

*.DB_UNIQUE_NAME=pri#为每一个数据库指定一个唯一的名称,该参数一经指定不会再发生变化,除非你主动修改它。

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

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

*.LOG_ARCHIVE_DEST_2='SERVICdEg=LGWRASYNCVALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE)DB_UNIQUE_NAME#(当该库充当主库角色时,设置物理备库redodata的传输目的地,两种归档方式LGWRARCn,ARC只

支持最高性能的保护模式;ASYNC异步传输,SYNC同步传输)

#*.LOG_ARCHIVE_MAX_PROCESSES=(5指定归档进程的数量(1-30),默认值通常是4使用ARCn归档redo时配置参数)

*LOG_ARCHIVE_DEST_STATE_仁ENABLE允许redo传输服务传输数据到目的地

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

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

*.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/';sql>createspfilefrompfile;

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

sql>SHUTDOWNIMMEDIATE;

sql>STARTUPMOUNT;

sql>ALTERDATABASEARCHIVELOG;

sql>ALTERDATABASEOPEN;

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

创建控制文件

sql>Shutdownimmediate

sql>STARTUPMOUNT;

sql>ALTERDATABASECREATESTANDBYCONTROLFILEAS'/tmp/';sql>ALTERDATABASEOPEN;

sql>shutdownimmediate;

sql>startup注意哟,控制文件通常需要有多份,你要么手工将上述文件复制几份,要么用命令多创建几个出来。

另外,创建完控制文件之后到standby数据库创建完成这段时间内,要保证primary数据库不再有结构性的变化(比如增加表空间等等),不然primary和

standby同步时会有问题。

9.备份生产数据库

这里以复制数据库文件的方式将主库数据库文件拷贝到备份机器上Oracle11g2,先将

数据库关闭。

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

/oracledata/

[oracle@Oracle11g1dbs]scp-rp/oracleapp/oinstall/oracle/admin/dblOracle11g2:

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

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

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

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

[oracle@Oracle11g1dbs]scp-rp/tmp/Oracle11g2:

/oracledata/db1/

在Oracle11g2上操作

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

[oracle@Oracle11g2db1]cp

[oracle@Oracle11g2db1]cp

将复制到/oracleapp/oinstall/oracle/flash_recovery_area/db1下

先建立db1文件夹

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

[oracle@Oracle11g2dbs]cp/oracleapp/oinstall/oracle/flash_recovery_area/db1/

10.修改备库pfile

将主库的orapwdb1,文件拷贝到从库/oracleapp/oinstall/oracle/product/下面

[oracle@Oracle11g1dbs]scp-rporapwdb1Oracle11g2:

/oracleapp/oinstall/oracle/product/dbs]scp-rpOracle11g2:

/oracleapp/oinstall/oracle/product/在从库机器上修改文件参数

[oracle@Oracle11g2dbs]vim

*.db_name='db1'#注意保持同一个DataGuard中所有数据库DB_NAME相同

*.DB_UNIQUE_NAME=dg#为每一个数据库指定一个唯一的名称,该参数一经指定不会再发生变化,除非你主动修改它。

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

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

*.LOG_ARCHIVE_DEST_2='SERVICpEri=LGWRASYNCVALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE)DB_UNIQUE_NAME#(当该库充当主库角色时,设置物理备库redodata的传输目的地,两种归档方式LGWRARCn,ARC只

支持最高性能的保护模式;ASYNC异步传输,SYNC同步传输)

#*LOG_ARCHIVE_MAX_PROCESSES=(最大ARCn进程数)

*LOG_ARCHIVE_DEST_STATE_仁ENABLE允许redo传输服务传输数据到目的地

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

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

*.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/';

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>ALTERDATABASEADDSTANDBYLOGFILEgrouSpta4rt('RedoApply

启动redo应用

SQL>ALTERDATABASERECOVERMANAGEDSTANDBYDATABASEDISCONNECTFROMSESSION;

启动实时应用

SQL>alterdatabaserecovermanagedstandbydatabasedisconnectfromsession;

提示:

disconnectfromsession子句并非必须,该子句用于指定启动完应用后自动退出到命令操作符前,如果不指定的话,当前session就会一直停留处理redo应用,如果想做其它操作,就只能新建一个连接。

停止standby

正常情况下,我们停止也应该是先停止redo应用,可以通过下列语句:

SQL>ALTERDATABASERECOVERMANAGEDSTANDBYDATABASECANCEL;然后再停止standby数据库

SQL>SHUTDOWNIMMEDIATE;

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

sql>SELECTSEQUENCE#,APPLIEDFROMV$ARCHIVED_LOGORDERBYSEQUENCE#;在主库强制日志切换到当前的onlineredologfile.

sql>ALTERSYSTEMARCHIVELOGCURRENT;

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

sql>SELECTSEQUENCE#,FIRST_TIME,NEXT_TIMEFROMV$ARCHIVED_LOGORDERBYSEQUENCE#;

在备库查看接收到的被应用的redo

SQL>SELECTSEQUENCE#,APPLIEDFROMV$ARCHIVED_LOGORDERBYSEQUENCE#;查看数据库的角色

主库上:

SQL>selectdatabase_role,protection_mode,protection_levelfromv$database;

DATABASE_ROLEPROTECTION_MODEPROTECTION_LEVEL

PRIMARYMAXIMUMPERFORMANCEMAXIMUMPERFORMANCE

备库上

SQL>selectdatabase_role,protection_mode,protection_levelfromv$database;

DATABASE_ROLEPROTECTION_MODEPROTECTION_LEVEL

PHYSICALSTANDBYMAXIMUMPERFORMANC

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

当前位置:首页 > 自然科学

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

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