前言为了学习DG,我们需要有学习环境来支持,因此搭建DG环境是学习DG的第一步。在搭建GC的文档里,有介绍虚拟机模板的搭建,这里就直接用这个虚拟机模板来搭建DG,搭建之前先下载11201的数据库软件,为了后面的滚动升级实验。下面就来介绍怎么搭建DG学习环境!第一章制作DG虚拟机模板下载11201数据库软件点击接受,下载32bit或者64bit软件本人下载的是64bit的软件把两个压缩包都下载下来还原虚拟机模板把在搭建GC环境时的虚拟机模板还原出来改名为prod装载虚拟机右键rename为prod启动虚拟机先登录进去cd/etc/sysconfig/network-scriptslsviifcfg-eth0.bak把HWADDR删除掉,然后改一下IPADDR保存退出mvifcfg-eth0.bakifcfg-eth0lsservicenetworkrestartifconfigexit用secureCRT创建新连接这个提示用同样的方法解决设置好颜色字体,prod的会话连接创建完毕vi/etc/sysconfig/network把主机名改成prod.localdomain修改好之后保存退出hostnameprod.localdomain退出后再登录修改hostsvi/etc/hosts127.0.0.1localhost.localdomainlocalhost::1localhost6.localdomainlocalhost6192.168.75.61prod.localdomainprod192.168.75.62standby.localdomainstandby保存退出安装oracle软件先安装10201的软件来搭建DG后面有滚动升级成11201的方法把10201的oracle软件传送到/u01目录下传输好之后修改软件属于者为oraclecd/u01ls-lrtchown-Roracle:oinstall*ls-lrt设置oracle环境变量su-oraclevi.bash_profile把下面内容复制到.bash_profile最后exportPATHexportTMP=/tmpexportTMPDIR=$TMPexportORACLE_BASE=/u01exportORACLE_SID=prodexportORACLE_HOME=/u01/oracle/db_1exportORACLE_TERM=xtermexportPATH=$PATH:$ORACLE_HOME/bin:$HOME/binexportLD_LIBRARY_PATH=$ORACLE_HOME/lib:/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin/exportCLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlibexportDISPLAY=192.168.75.1:0.0sttyerase^haliassqlplus='rlwrapsqlplus'aliasrman='rlwraprman'保存后退出执行..bash_profile让环境变量生效解压缩oracle软件cd/u01ls-lrtgzip-dc10201_database_linux_x86_64.cpio.gz|cpio-icvdBum……ls-lrtcddatabase在windows端打开xmanager的passive来接收远程图形双击它就可以了看到右下角有图标且是:0.0端口就行./runInstaller另开一个窗口用root用户执行上面脚本10201软件安装完成!把安装软件删除,节省空间cd..ls-lrtrm-f10201_database_linux_x86_64.cpio.gzrm-fRdatabasels-lrtdf-h备份复制模板至此,完成了虚拟机模板的制作,可以把虚拟机目录拷贝一份保存起来关机,然后复制一份作为备库使用第二章搭建物理备库配置standby服务器把复制好的虚拟机改名为standby装载虚拟机右键rename为standby打开虚拟机先登录进去cd/etc/sysconfig/network-scriptsls因为prod虚拟机没开,所以IP地址没有发生冲突,但是还是要改一下viifcfg-eth0改成192.168.75.62保存退出servicenetworkrestartifconfigexit用secureCRT创建新连接这个提示用同样的方法解决设置好颜色字体,standby的会话连接创建完毕vi/etc/sysconfig/network把主机名改成standby.localdomain修改好之后保存退出hostnamestandby.localdomain退出后再登录查看hostscat/etc/hosts一切正常!修改ORACLE_SIDsu-oraclevi.bash_profile把环境变量ORACLE_SID的值修改成standby修改好之后保存退出..bash_profile让环境变量生效创建主数据库prod启动prod虚拟机然后用netca命令配置监听su-oraclenetca这个就设置成默认监听,用1521端口看一下信息用dbca命令创建prod数据库要和.bash_profile里配置的ORACLE_SID参数一样不安装DBControl的em设置sys用户的密码不使用flashrecoveryarea字符集选ZHS16GBK,当然你选AL32UTF8也可以开始创建数据库解锁几个用户prod数据库创建完毕!设置prod库登陆到sqlplus检查一下归档模式和forceloggingsqlplus/assysdbaselectlog_mode,force_loggingfromv$database;如果是非归档就要关闭数据库修改shutdownimmediatestartupmount干净地关闭数据库再启动到mount状态改成归档模式和强制loggingalterdatabasearchivelog;alterdatabaseforcelogging;selectlog_mode,force_loggingfromv$database;archiveloglist更改归档目录!mkdir/u01/oradata/prod/archivelogls-l/u01/oradata/prodexitaltersystemsetlog_archive_dest_1='location=/u01/oradata/prod/archivelog';archiveloglistalterdatabaseopen;创建pfilecreatepfilefromspfile;alterdatabasecreatestandbycontrolfileas'/u01/oracle/standby.ctl';把pfile文件、口令文件和备控制文件传输到standbyexitcd/u01/oracle/db_1/dbsls-lrtscporapwprod192.168.75.62:/u01/oracle/db_1/dbsscpinitprod.ora192.168.75.62:/u01/oracle/db_1/dbsscp/u01/oracle/standby.ctl192.168.75.62:/u01/oracle需要输入oracle用户密码备控制文件只要复制到与prod库的路径相同就行,两边都是/u01/oracle/standby.ctlprod设置先告一段落设置standby数据库cd/u01/oracle/db_1/dbsls-lrt把口令文件和pfile名字改成standby的mvorapwprodorapwstandbymvinitprod.orainitstandby.oraviinitstandby.ora把最上面几行去掉,然后把上面标注的prod都改成standby注意db_name的prod值不要修改在最后添加以下参数*.db_unique_name='standby'*.db_file_name_convert='/u01/oradata/prod','/u01/oradata/standby'*.log_file_name_convert='/u01/oradata/prod','/u01/oradata/standby'*.log_archive_config='dg_config=(prod,standby)'*.log_archive_dest_1='location=/u01/oradata/standby/archivelogvalid_for=(all_logfiles,all_roles)db_unique_name=standby'*.log_archive_dest_2='service=prodlgwrasyncvalid_for=(online_logfiles,primary_role)db_unique_name=prod'*.log_archive_dest_state_1=enable*.log_archive_dest_state_2=enable*.log_archive_max_processes=10*.fal_server=prod*.fal_client=standby*.standby_file_management=auto保存退出创建一些目录mkdir-p/u01/admin/standby/adumpmkdir-p/u01/admin/standby/bdumpmkdir-p/u01/admin/standby/cdumpmkdir-p/u01/admin/standby/udumpmkdir-p/u01/admin/standby/dpdumpls-l/u01/admin/standbymkdir-p/u01/oradata/standby/archivelogls-l/u01/oradata/standby配置standby库的listener和静态服务名netmgr再添加静态服务名选择savenetworkconfiguration,保存一下关闭lsnrctlstart配置连接到prod的网络服务名netcatnspingprod用pfile启动到nomount状态env|grepORA登陆sqlplus之前先检查一下环境变量sqlplus/assysdbacreatespfilefrompfile='?/dbs/initstandby.ora';startupnomountstandby库的配置告一段落,重新回到prod库的配置配置prod数据库再次回到prod库的设置配置连接到standby的网络服务名netca备库的地址,备库监听用的是1521端口tnspingstandby配置prod库参数sqlplus/assysdbaaltersystemsetlog_archive_config='dg_config=(prod,standby)';altersystemsetlog_archive_dest_1='location=/u01/oradata/prod/archivelogvalid_for=(all_logfiles,all_roles)db_unique_name=prod';altersystemsetlog_archive_dest_2='service=standbylgwrasyncvalid_for=(online_logfiles,primary_role)db_unique_name=standby';altersystemsetlog_arc