oracle11gdataguard配置详细说明.docx
- 文档编号:6049203
- 上传时间:2023-01-03
- 格式:DOCX
- 页数:14
- 大小:22.05KB
oracle11gdataguard配置详细说明.docx
《oracle11gdataguard配置详细说明.docx》由会员分享,可在线阅读,更多相关《oracle11gdataguard配置详细说明.docx(14页珍藏版)》请在冰豆网上搜索。
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
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- oracle11gdataguard 配置 详细 说明