Data Guard学习之物理standby创建步骤Word文件下载.docx
- 文档编号:18497849
- 上传时间:2022-12-17
- 格式:DOCX
- 页数:16
- 大小:26.08KB
Data Guard学习之物理standby创建步骤Word文件下载.docx
《Data Guard学习之物理standby创建步骤Word文件下载.docx》由会员分享,可在线阅读,更多相关《Data Guard学习之物理standby创建步骤Word文件下载.docx(16页珍藏版)》请在冰豆网上搜索。
一般而言,standbyredo日志文件组数要比primary数据库的onlineredo日志文件组数至少多一个。
推荐standbyredo日志组数量基于primary数据库的线程数(这里的线程数可以理解为rac结构中的rac节点数)。
有一个推荐的公式可以做参考:
(每线程的日志组数+1)*最大线程数
例如primary数据库有两个线程,每个线程分配两组日志,则standby日志组数建议为6组,使用这个公式可以降低primary数据库实例LGWR进程锁住的可能性。
逻辑standby数据库有可能需要视工作量增加更多的standbyredolog文件(或增加归档进程),因为逻辑standby需要同时写onlineredolog文件。
Standbyredolog的操作方式与onlineredolog几乎一模一样,只不过在创建或删除时需要多指定一个standby关键字,例如添加:
alterdatabaseaddstandbylogfilegroup4('
e:
\ora10g\oradata\jsspdg\STANDBYRD01.LOG'
)size20M;
删除也同样简单:
alterdatabasedropstandbylogfilegroup4;
另外,从可靠性方面考虑,建议在primary数据库也创建standbyredologs,这样一旦发生切换,不会影响primary做为standby的正常运行。
验证standbyredolog文件组是否成功创建
例如:
SELECTGROUP#,THREAD#,SEQUENCE#,ARCHIVED,STATUSFROMV$STANDBY_LOG;
4、设置初始化参数
对于primary数据库,需要定义几个primary角色的初始化参数控制redo传输服务,还有几个附加的standby角色的参数需要添加以控制接收redo数据库并应用(switchover/failover后primary/standby角色可能互换,所以建议对于两类角色相关的初始化参数都进行配置)。
下列参数为primary角色相关的初始化参数:
DB_NAME
注意保持同一个DataGuard中所有数据库DB_NAME相同。
DB_NAME=jssweb
DB_UNIQUE_NAME
为每一个数据库指定一个唯一的名称,该参数一经指定不会再发生变化,除非你主动修改它。
DB_UNIQUE_NAME=jssweb
LOG_ARCHIVE_CONFIG
该参数通过DG_CONFIG属性罗列同一个DataGuard中所有DB_UNIQUE_NAME(含primarydb及standbydb),以逗号分隔
LOG_ARCHIVE_CONFIG='
DB_CONFIG=(jssweb,jsspdg)'
CONTROL_FILES
没啥说的,控制文件所在路径。
LOG_ARCHIVE_DEST_n
归档文件的生成路径。
该参数非常重要,并且属性和子参数也特别多(这里不一一列举,后面用到时单独讲解如果你黑好奇,建议直接查询oracle官方文档。
Dataguard白皮书第14章专门介绍了该参数各属性及子参数的功能和设置)。
LOG_ARCHIVE_DEST_1=
'
LOCATION=E:
\ora10g\oradata\jsswebVALID_FOR=(ALL_LOGFILES,ALL_ROLES)DB_UNIQUE_NAME=jssweb'
LOG_ARCHIVE_DEST_STATE_n
指定参数值为ENABLE,允许redo传输服务传输redo数据到指定的路径。
该参数共拥有4个属性值,功能各不相同。
REMOTE_LOGIN_PASSWORDFILE
推荐设置参数值为EXCLUSIVE或者SHARED,注意保证相同DataGuard配置中所有db服务器sys密码相同。
LOG_ARCHIVE_FORMAT
指定归档文件格式。
LOG_ARCHIVE_MAX_PRODUCESSES
指定归档进程的数量(1-30),默认值通常是4。
以下参数为standby角色相关的参数,建议在Primary数据库的初始化参数中也进行设置,这样在roletransition后(Primary转为Standby)也能正常运行:
FAL_SERVER
指定一个数据库SID,通常该库为primary角色。
FAL_SERVER=jssweb
FAL_CLIENT
指定一个数据库SID,通常该库为standby角色。
FAL_CLIENT=jsspdg
FAL是FetchArchivedLog的缩写
DB_FILE_NAME_CONVERT
在做duplicate复制和传输表空间的时候这类参数讲过很多遍,该参数及上述内容中同名参数功能,格式等完全相同。
LOG_FILE_NAME_CONVERT
同上
STANDBY_FILE_MANAGEMENT
如果primary数据库数据文件发生修改(如新建,重命名等)则按照本参数的设置在standby中做相应修改。
设为AUTO表示自动管理。
设为MANUAL表示需要手工管理。
STANDBY_FILE_MANAGEMENT=AUTO
注意:
上面列举的这些参数仅只是对于primary/standby两角色可能会相关的参数,还有一些基础性参数比如*_dest,*_size等数据库相关的参数在具体配置时也需要根据实际情况做出适当修改。
5、确保数据库处于归档模式
archiveloglist;
数据库日志模式存档模式
自动存档启用
.......
如果当前primary数据库并未处于归档模式,可通过下列命令将数据库置为归档模式:
STARTUPMOUNT;
ALTERDATABASEARCHIVELOG;
ALTERDATABASEOPEN;
二、手把手的创建物理standby
1、创建备份(手工复制数据文件或通过RMAN)---primary库操作
2、创建控制文件--primary库操作
通过下列语句为standby数据库创建控制文件
alterdatabasecreatestandbycontrolfileas'
d:
\backup\jsspdg01.ctl'
;
注意哟,控制文件通常需要有多份,你要么手工将上述文件复制几份,要么用命令多创建几个出来。
另外,创建完控制文件之后到standby数据库创建完成这段时间内,要保证primary数据库不再有结构性的变化(比如增加表空间等等),不然primary和standby同步时会有问题。
3、创建初始化参数文件
创建客户端初始化参数文件
createpfile='
\backup\initjsspdg.ora'
fromspfile;
修改初始化参数文件中的参数
根据实际情况修改吧,注意primary和standby不同角色的属性配置,注意文件路径。
4、复制文件到standby服务器
至少三部分:
数据文件,控制文件,修改过的初始化参数文件,注意路径。
5、配置standby数据库
如果你看过三思之前"
一步一步学rman"
系列,看过"
duplicate复制数据库"
,或看过"
传输表空间复制数据"
系列,那么对于创建一个新的数据库应该非常熟悉了,下面再简单描述一下步骤:
1).创建新的OracleService(windows环境下需要)。
2).创建密码文件,注意保持密码与primary数据库一致。
3).配置监听并启动
4).修改primary和standby的tnsnames.ora,各自增加对应的NetServiceName。
5).创建服务器端的初始化文件
6、启动standby
注意哟,咱们前面说过的,物理standby极少情况下可以以read-write模式打开,某些情况下可以以read-only模式打开,所以默认情况下,加载到mount状态即可。
启动redo应用
ALTERDATABASERECOVERMANAGEDSTANDBYDATABASEDISCONNECTFROMSESSION;
启动实时应用
ALTERDATABASERECOVERMANAGEDSTANDBYDATABASEUSINGCURRENTLOGFILEDISCONNECTFROMSESSION;
disconnectfromsession子句并非必须,该子句用于指定启动完应用后自动退出到命令操作符前,如果不指定的话,当前session就会一直停留处理redo应用,如果想做其它操作,就只能新建一个连接。
7、停止standby
正常情况下,我们停止也应该是先停止redo应用,可以通过下列语句:
ALTERDATABASERECOVERMANAGEDSTANDBYDATABASECALCEL;
然后再停止standby数据库
SHUTDOWNIMMEDIATE;
当然你非要直接shutdown也没问题,dg本来就是用于容灾的,别说你生停standby,就是直接拔电源也不怕。
物理standby创建示例
为了最大的降低硬件需求,此处创建的dataguard处于同一台机器,但其创建过程与多机并无区别。
做为演示用的示例足够了,我们分两阶段配置,分别是配置primary数据库和配置standby数据库,如下:
一、Primary数据库配置及相关操作
1、确认主库处于归档模式
存档终点E:
\ora10g\oradata\jssweb
最早的联机日志序列148
下一个存档日志序列150
当前日志序列150
2、将primary数据库置为FORCELOGGING模式。
数据库已更改。
3、创建standby数据库控制文件
4、创建primary数据库客户端初始化参数文件
注:
主要此处修改项较多,为了方便,我们首先创建并修改pfile,然后再通过pfile重建spfile,你当然也可以通过altersystemset命令直接修改spfile内容。
createpfilefromspfile;
文件已创建。
将该初始化参数文件复制一份,做为standby数据库的客户端初始化参数文件
hostcopye:
\ora10g\product\10.2.0\db_1\database\initjssweb.orad:
\backup\initjsspdg.ora
已复制1个文件。
修改客户端初始化参数文件,增加下列内容
DB_UNIQUE_NAME=jssweb
DG_CONFIG=(jssweb,jsspdg)'
LOG_ARCHIVE_DEST_1='
\ora10g\oradata\jssweb\VALID_FOR=(ALL_LOGFILES,ALL_ROLES)DB_UNIQUE_NAME=jssweb'
LOG_ARCHIVE_DEST_2='
SERVICE=jsspdgLGWRASYNCVALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE)DB_UNIQUE_NAME=jsspdg'
LOG_ARCHIVE_DEST_STATE_1=ENABLE
LOG_ARCHIVE_DEST_STATE_2=ENABLE
REMOTE_LOGIN_PASSWORDFILE=EXCLUSIVE
#--------配置standby角色的参数用于角色转换
FAL_SERVER=jsspdg
FAL_CLIENT=jssweb
DB_FILE_NAME_CONVERT='
oradata\jsspdg'
'
oradata\jssweb'
LOG_FILE_NAME_CONVERT='
STANDBY_FILE_MANAGEMENT=AUTO
通过pfile重建spfile
shutdownimmediate
...
createspfilefrompfile='
initjssweb.ora'
5、复制数据文件到standby服务器(方式多样,不详述)
注意需要复制所有数据文件,备份的控制文件及客户端初始化参数文件
6、配置listener及netservicenames(方式多样,不详述)。
完之后重启listener:
E:
\ora10g>
lsnrctlstop
lsnrctlstart
通过tnsping测试tnsnames是否正确有效:
tnspingjssweb
Attemptingtocontact(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=jss)(PORT=1521))(CONNECT_
DATA=(SERVER=DEDICATED)(SERVICE_NAME=jssweb)))
OK(30毫秒)
tnspingjsspdg
DATA=(SERVER=DEDICATED)(SERVICE_NAME=jsspdg)))
OK(10毫秒)
二、Standby数据库配置及相关操作
1、通过ORADIM创建新的OracleService
2、创建密码文件,注意保护sys密码与primary数据库一致。
orapwdfile=e:
\ora10g\product\10.2.0\db_1\database\PWDjsspdg
.orapassword=verysafeentries=30
3、创建目录
\ora10g\product\10.2.0\admin\jsspdg>
mkdiradump
4、复制文件,不做过多描述
5、修改初始化参数文件
增加下列参数
db_unique_name=jsspdg
LOG_ARCHIVE_FORMAT=log%t_%s_%r.arc
\ora10g\oradata\jsspdg\VALID_FOR=(ALL_LOGFILES,ALL_ROLES)DB_UNIQUE_NAME=jsspdg'
#---下列参数用于角色切换
SERVICE=jsswebLGWRASYNCVALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE)B_UNIQUE_NAME=jssweb'
FAL_SERVER=jssweb
FAL_CLIENT=jsspdg
注意同时修改*_dest的路径。
通过该pfile创建spfile
D:
6、启动standby到mount
startupmount;
ORACLE例程已经启动。
TotalSystemGlobalArea167772160bytes
FixedSize1289484bytes
VariableSize62915316bytes
DatabaseBuffers96468992bytes
RedoBuffers7098368bytes
数据库装载完毕。
7、启动redo应用
alterdatabaserecovermanagedstandbydatabasedisconnectfromsession;
8、查看同步情况
首先连接到primary数据库
showparameterinstance_name;
NAMETYPEVALUE
-----------------------------------------------------------------------------
instance_namestringjssweb
altersystemswitchlogfile;
系统已更改。
selectmax(sequence#)fromv$archived_log;
MAX(SEQUENCE#)
--------------
51
连接到standby数据库
instance_namestringjsspdg
9、暂停应用
通过下列语句暂停redo应用。
ALTERDATABASERECOVERMANAGEDSTANDBYDATABASECANCEL;
注意,此时只是暂时redo应用,并不是停止Standby数据库,standby仍会保持接收只不过不会再应用接收到的归档,直到你再次启动redo应用为止。
哈哈,成功了!
现在你是不是想知道怎么把standby变成primary呢?
接着往下看~~~~~~~~~
物理standby角色转换
第1节的时候我们就提到了角色切换,我们也听说了其操作简单但用途广泛,同时我们也猜测其属于primary与standby之间的互动,那么在primary和standby数据库(之一)上都需要有操作,并且切换又分了:
switchover和failover,前者是无损切换,不会丢失数据,而后者则有可能会丢失数据,并且切换后原primary数据库也不再是该dataguard配置的一部分了.针对不同standby(逻辑或物理)的处理方式也不尽相同。
en,内容也挺多地。
我们还
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Data Guard学习之物理standby创建步骤 Guard 学习 物理 standby 创建 步骤