1、dataguard实施文档创建data guard数据库 RAC-单机该文档将分步介绍如何创建data guard数据库,主要包括以下几项内容: 为从数据库的创建准备主数据库 创建物理备份数据库 验证物理备份数据库安装配置约定: 操作系统选用red hat as 3.0 数据库选用oracle 9i 9206 主数据库为2节点RAC,主机名为node1和node2,集群sid为wwwdb 从数据库只安装软件,主机名、dbname和sid都为standby 所有操作已经注明在主、从服务器上进行1 为从数据库的创建准备主数据库在创建从数据库之前,必须确认主数据库进行了正确的配置。 1) Enabl
2、e forced logging在主数据库创建完成后,需要把数据库改到force logging模式下,使用下面的命令:sqlalter database force logging;在生产过程中,该命令可能要等待一定的时间才能完成,因为执行之前要等待没有写入日志的操作完成,一个节点上执行就可以了。2) Enable Archiving (我们实施的一般都是归档模式,所以不用修改)先验证主数据库是否在归档模式下,执行下面的命令:SQL archive log list Database log mode No Archive ModeAutomatic archival DisabledArc
3、hive destination /opt/oracle/product/920/dbs/archOldest online log sequence 0Current log sequence 1显示非归档模式和自动归档关闭,则需要执行下面的命令修改:sql alter system set cluster_database=false scope=spfileshutdown both instances Startup mount one instance sqlalter database archivelog;sqlalter system set log_archve_start=
4、true scope=spfile;Shutdown that instance restart both instancessql alter system set cluster_database=true scope=spfile再次验证主数据库是否在归档模式下,执行下面的命令:SQL archive log list;Database log mode Archive ModeAutomatic archival EnabledArchive destination /opt/oracle/product/920/dbs/archOldest online log sequence 0
5、Next log sequence to archive 1Current log sequence 1显示归档模式和自动归档打开,可以进入下一步。3) 创建本地归档路径(如果原系统已经设定好,则不需要修改)主服务器上的本地归档路径用来放置归档日志,并传送到从服务器。首先要创建相应的目录,然后使用下面的命令创建,节点1和2都要创建:节点1:SQL alter system set log_archive_dest_1=LOCATION=/home/oracle/admin/wwwdb/archive/node1 scope=both;System altered.节点2:SQL alter s
6、ystem set log_archive_dest_1=LOCATION=/home/oracle/admin/wwwdb/archive/node2 scope=both;System altered.2 创建物理备份数据库这一段介绍如何创建物理的备份数据库,这项工作是最繁琐的,也是最关键的。1) 使用rman备份脚本备份数据库执行backup.sh(参考rac环境搭建文档)runallocate channel ch1 type disk format /home/oracle/backup/standby_controlfile_%t_%s_%p;allocate channel ch
7、2 type disk format /home/oracle/backup/archivelog_%t_%s_%p;BACKUP CURRENT CONTROLFILE FOR STANDBY tag = standby db controlfile channel ch1;SQL ALTER SYSTEM ARCHIVE LOG CURRENT; BACKUP ARCHIVELOG FROM TIME SYSDATE-1 tag = archived log backup channel ch2;2) 为从数据库创建控制文件用rman脚本备份control file,3) 为从数据库创建初
8、始化文件pfile在主服务器上执行下面的语句:SQL create pfile=/home/oracle/initstandby.ora from spfile;File created.4) 把相关文件拷贝到从数据库把1,2,3步中的文件拷贝到从数据库,放在相关的目录下。5) 在从数据库上更改初始化参数初始化文件pfile的一些参数需要修改才能被从数据库使用,同时需要创建相关的目录,与集群相关的参数删除或用#屏蔽,主要修改了以下内容:*.background_dump_dest=/home/oracle/admin/standby/bdump*.core_dump_dest=/home/or
9、acle/admin/standby/cdump*.user_dump_dest=/home/oracle/admin/standby/udump*.standby_archive_dest=/home/oracle/admin/standby/archive/*.standby_file_management=AUTO*.remote_archive_enable=TRUE*.FAL_SERVER=wwwdb1,wwwdb2*.FAL_CLIENT=standby6) 配置主、从数据库的listener在从库启动netca创建listener(主库已创建完成),然后修改listener.or
10、a,主库配置文件不需要修改:从库配置文件如下(添加黑体字内容):# LISTENER.ORA Network Configuration File: /opt/oracle/product/920/network/admin/listener.ora# Generated by Oracle configuration tools.LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 10.151.11.235)(PORT = 1521) ) (ADDRE
11、SS_LIST = (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC) ) ) )SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (SID_NAME = PLSExtProc) (ORACLE_HOME = /home/oracle) (PROGRAM = extproc) ) (SID_DESC = (GLOBAL_DBNAME = standby) (ORACLE_HOME = /home/oracle/) (SID_NAME = standby) ) )然后启动主、从库的listener,以oracle身份执行:o
12、racleprimary admin$ lsnrctl start7) 创建net service name,并修改主、从数据库的tnsname.ora文件在从库运行netca创建tns(主库以自动创建完成),然后修改tnsname.ora文件,主库配置文件添加如下内容:STANDBY = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = standby)(PORT = 1521) ) (CONNECT_DATA = (SERVICE_NAME = standby) ) )从库配置文件添加如下内容:wwwdb =
13、 (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = node1)(PORT = 1521) (ADDRESS = (PROTOCOL = TCP)(HOST = node2)(PORT = 1521) (failover = on) (LOAD_BALANCE = yes) ) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = wwwdb) (failover_mode = (type = select)(method = basic) ) )wwwdb2
14、= (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = node2)(PORT = 1521) (CONNECT_DATA = (SERVICE_NAME = wwwdb) (INSTANCE_NAME = wwwdb2) ) )wwwdb1 = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = node1)(PORT = 1521) (CONNECT_DATA = (SERVICE_NAME = wwwdb) (INSTANCE_NAME = wwwdb1) ) )然后,以oracle用户运行t
15、nsping standby 和tnsping wwwdb验证是否连通?结果应该是连通的。8) 启动从数据库先在从数据库创建口令文件orapwstandby,然后启动数据库SQL startup nomount;Restore database,执行restore.sh脚本Recover database,执行Recover automatic standby database;Restart database,执行startup nomount pfile=/home/oracle/initstandby.ora; 执行alter database mount standby databas
16、e;9) 启动log apply服务在从数据库运行下面的命令,启动相关服务:SQL alter database recover managed standby database disconnect from session;Database altered.10) 打开到从数据库的归档在主库顺序执行下面的命令:SQL alter system set log_archive_dest_2=service=standby scope=both;SQL alter system set log_archive_dest_state_2=enable scope=both;添加数据库运行需要的临
17、时表空间。alter tablespace temp add tempfile /dev/raw/clustdb/raw_R0_L1_c9_1000 size 1000m;至此,整个配置过程结束,系统可以正常运行。3 验证物理备份数据库以上操作完成后,需要进行验证,看对主数据库的操作是否可以在从数据库看到结果?验证包括以下四步,下面分别介绍:1) 在从数据库验证已经存在的归档日志:在从数据库执行下面的语句:SQL select sequence#,first_time from v$archived_log order by sequence#; SEQUENCE# FIRST_TIM- -
18、1 09-MAR-04 2 10-MAR-04 3 10-MAR-04可以看到有3个归档日志。2) 在主数据库强制归档:在主数据库上执行下面的语句:SQL alter system archive log current;System altered.3) 在从数据库再次验证归档日志:重复1)的内容,可以看到:SQL select sequence#,first_time from v$archived_log order by sequence#; SEQUENCE# FIRST_TIM- - 1 09-MAR-04 2 10-MAR-04 3 10-MAR-04 4 10-MAR-04可以
19、看到,比1)中多了一个归档日志4,也就是2)中归档之后从主数据库传送到从数据库的归档日志。4) 验证最新的归档日志是否被应用:归档日志传送到从数据库之后,还要被应用,从而使主从数据库数据一致,达到备份的目的。下面的查询可以验证:SQL select sequence#,applied from v$archived_log order by sequence#; SEQUENCE# APP- - 1 YES 2 YES 3 YES 4 YES第二列的值为“yes”,则说明相应的归档日志已经被应用,在主数据库的操作已经在从数据库完成同步。另:执行下面的命令可以把从数据库转换成只读模式,进行查询:SQLalter database recover managed standby database cancel;SQLalter database open read only; 2006-10-16
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1