您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > 数据库 > oracle数据库DG融灾配置方案
Oracle数据库dataguard容灾配置方案方案设计者:巩利民2009年4月15日一、dataguard简单介绍DataGuard是一个集合,由一个primary数据库(生产数据库)及一个或多个standby数据库(最多9个)组成。组成DataGuard的数据库通过OracleNet连接,并且有可能分布于不同地域。DataGuard与操作系统没有任何关系(但操作系统的类型必须是一样的,版本可以不同),只要oracle数据库能够连通就可以了。Standby又可以分为物理Standby和逻辑Standby,二者是有区别的,区别主要体现在对数据的真实性的写照上。物理Standby就像我们照镜子一样的,完全真实的呈现,逻辑Standby就像一位画家给我们素描。根据两种standby的不同特点,我们这里采用物理Standby来实现容灾。DataGuard的要求是数据库版本必须是企业版的数据库,标准版数据库不支持DG操作。二、DataGuard的配置方法1、准备工作不管物理standby还是逻辑standby,其初始创建都是要依赖primary数据库,因此这个准备工作中最重要的一部分,就是对primary数据库的配置。1)打开ForcedLogging模式将primary数据库置为FORCELOGGING模式。通过下列语句:SQLalterdatabaseforcelogging;注:这个操作在后期的standby数据库创建完成后也要执行这个操作此命令是设置切换后日志能够正常传送2)创建备份shutdown冷备(主要是数据库的数据文件、日志文件、控制文件等).3)将primary置为archivelog状态:(现在的数据库已经在归档模式下了,所以这一步就可以省略了)C:sqlplus/nologSqlconnsys/ennoracleassysdba再执行以下命令SqlshutdownimmediateSqlStartupmount(只能在mount格式下,不能再open下)Sqlalterdatabasearchivelog;Sqlaltersystemarchivelogstart修改primary库的配置文件。2、创建步骤1)创建备份(手工复制数据文件或通过RMAN)---primary库操作2)创建控制文件--primary库操作通过下列语句为standby数据库创建控制文件SQLalterdatabasecreatestandbycontrolfileas'd:\backup\jsspdg01.ctl';注:控制文件通常需要有多份,要么手工将上述文件复制几份,要么用命令多创建几个出来。另外,创建完控制文件之后到standby数据库创建完成这段时间内,要保证primary数据库不再有结构性的变化(比如增加表空间等等),不然primary和standby同步时会有问题。3)创建初始化参数文件创建客户端初始化参数文件SQLcreatepfile='d:\backup\inite3suite.ora'fromspfile;4)修改初始化参数文件中的参数根据实际情况修改,注意primary和standby不同角色的属性配置,注意文件路径。然后要重建spfile文件通过pfile重建spfileSQLshutdownimmediateSQLstartuppfile=‘’;SQLcreatespfilefrompfile='inite3suite.ora';SQLshutdownimmediateSQLstartup5)配置standby数据库拷贝文件到standby服务器a.创建服务器端的初始化文件b.创建新的OracleService(windows环境下需要)。c.创建密码文件,注意保持密码与primary数据库一致。d.配置监听并启动e.修改primary和standby的tnsnames.ora,各自增加对应的NetServiceName。6)启动standby注意,物理standby极少情况下可以以read-write模式打开,某些情况下可以以readonly模式打开,所以默认情况下,加载到mount状态即可。SQLSTARTUPMOUNT;启动redo应用SQLALTERDATABASERECOVERMANAGEDSTANDBYDATABASEDISCONNECTFROMSESSION;启动实时应用SQLALTERDATABASERECOVERMANAGEDSTANDBYDATABASEUSINGCURRENTLOGFILEDISCONNECTFROMSESSION;提示:disconnectfromsession子句并非必须,该子句用于指定启动完应用后自动退出到命令操作符前,如果不指定的话,当前session就会一直停留处理redo应用,如果想做其它操作,就只能新建一个连接。7)停止standby正常情况下,我们停止也应该是先停止redo应用,可以通过下列语句:SQLALTERDATABASERECOVERMANAGEDSTANDBYDATABASECALCEL;然后再停止standby数据库SQLSHUTDOWNIMMEDIATE;当然你非要直接shutdown也没问题,dg本来就是用于容灾的,别说你生停standby,就是直接拔电源也不怕。三、创建实例1、配置primary的pfile即init.ora############################################CacheandI/O###########################################初始化参数文件增加如下内容:DB_UNIQUE_NAME=e3suiteLOG_ARCHIVE_CONFIG='DG_CONFIG=(e3suite,e3suiteb)’LOG_ARCHIVE_DEST_1='LOCATION=R:\ORADATA\admin\E3SUITE\ArchiveLogs\VALID_FOR=(ALL_LOGFILES,ALL_ROLES)DB_UNIQUE_NAME=e3suite’LOG_ARCHIVE_DEST_2='SERVICE=E3SUITEBLGWRASYNCVALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE)DB_UNIQUE_NAME=E3SUITEb'LOG_ARCHIVE_DEST_STATE_1=ENABLELOG_ARCHIVE_DEST_STATE_2=ENABLEREMOTE_LOGIN_PASSWORDFILE=EXCLUSIVElog_archive_min_succeed_dest=1log_archive_format=ARC%S_%R.%T#--------配置standby角色的参数用于角色转换FAL_SERVER=e3suiteFAL_CLIENT=e3suitebDB_FILE_NAME_CONVERT='oradata\e3suite','oradata\e3suiteb'LOG_FILE_NAME_CONVERT='oradata\e3suite','oradata\e3suiteb'STANDBY_FILE_MANAGEMENT=AUTO2、同步primary的spfile文件SQLshutdownimmediateSQLstartuppfile=‘’;SQLcreatespfilefrompfile='initjssweb.ora';SQLshutdownimmediateSQLstartup3、创建standby控制文件SQLalterdatabasecreatestandbycontrolfileas'd:\backup\jsspdg01.ctl';4、拷贝所有数据文件到standby将primary上的datafile下所有数据文件,覆盖掉standby库中的datafile。还有下面文件,也覆盖到从库相应的位置D:\oracle\product\10.2.0\db_1\database\PWDsdses.oraR:\ORADATA\admin\E3SUITE\pfile\SPFILEsdses.ORA5、配置standby的pfile文件init.ora与primary有所不同:最好的配置方式是从primary上copy过来,然后做相对修改:我这里直接修改############################################CacheandI/O###########################################增加内容db_unique_name=e3suitebLOG_ARCHIVE_CONFIG='DG_CONFIG=(e3suite,e3suiteb)'log_archive_format=ARC%S_%R.%TLOG_ARCHIVE_DEST_1='LOCATION=R:\ORADATA\admin\E3SUITEB\ArchiveLogs\VALID_FOR=(ALL_LOGFILES,ALL_ROLES)DB_UNIQUE_NAME=e3suiteb’LOG_ARCHIVE_DEST_STATE_1=ENABLE#---下列参数用于角色切换LOG_ARCHIVE_DEST_2='SERVICE=E3SUITELGWRASYNCVALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE)DB_UNIQUE_NAME=E3SUITEb'LOG_ARCHIVE_DEST_STATE_2=ENABLEREMOTE_LOGIN_PASSWORDFILE=EXCLUSIVEFAL_SERVER=E3SUITEFAL_CLIENT=E3SUITEbDB_FILE_NAME_CONVERT='oradata\e3suiteb','oradata\e3suite'LOG_FILE_NAME_CONVERT='oradata\e3suiteb','oradata\e3suite'STANDBY_FILE_MANAGEMENT=AUTO同步spfileStartupnomountpfile=’D:\oracle\product\10.2.0\admin\E3SUITE\pfile\init.ora.2282007171340’;createspfilefrompfile='D:\oracle\product\10.2.0\admin\E3SUITE\pfile\init.ora.2282007171340';6、创建standby数据库(简单方法,安装standby最方便)创建服务E:\ora10goradim–new–sidjsspdg–initpwdennoracle–startmodeauto创建密码文件(直接拷贝primary的也可以),注意保持sys密码与primary数据库一致。E:\ora10gorapwdfile=e:\ora10g\product\10.2.0\db_1\database\PWDjsspdg.orapassword=verysafeentries=30进入sqlplus环境,以超级用户连接实例,同步spfile文件,将实例启动到nomount状态下执行数据库创建语句,最后运行数据字典角本。7、然后停掉primary和standby数据库,同时建立归档目录R:\ORADATA\admin\E3SUITE\ArchiveLogs修改standby注册表里ORA_实例名_AUTOSTART,置为FALSE否则standby机器重启后就自己启动到open状态,使scn不一样,standby无法正常启动,这种情况就只能重装standby了。8、配置相应的监听文件配置priamrylistener.ora#LISTENER.ORANetworkConfigurationFi
本文标题:oracle数据库DG融灾配置方案
链接地址:https://www.777doc.com/doc-2884861 .html