论文部分内容阅读
[摘要]数据保护是企业最为关心的问题,当数据出现问题的时候,怎么才能使生产系统最快 的恢复也是许多企业关心的问题。Oracle有许多的容灾解决方案,其中很重要的一种为Standby/Data guard 技术,也叫是备用数据库技术。
[关键词]数据保护 备用数据库 容灾
中图分类号:TP3 文献标识码:A 文章编号:1671-7597(2008)1120042-01
备用数据库分为物理备用数据库和逻辑备用数据库,底层技术是Data Guard重做应用(物理备用数据库)和Data Guard SQL应用(逻辑备用数据库)。物理备用数据库在磁盘上拥有和主数据库逐块相同的数据库结构,并且使用Oracle介质恢复进行更新。逻辑备用数据库是一个独立数据库,它使用 SQL 语句进行更新。
因为逻辑备用数据库比较复杂,尤其在oracle 10gR2之前的版本不太稳定,一般在实际应用中也比较少用,所以我们物理备用数据库作为安装实例。
步骤1:利用dbca在主库创建一个实例与数据库,SID=orcl, 数据库=orcl。
步骤2:创建在备用数据库上的目录,创建的和主数据库一致 (位置也可不同)。
步骤3:创建例程服务。
在UNIX/Linux平台上建立备用数据库时,需要使用ORAPWD工具为例程建立口令文件;当在 Windows平台上建立备用数据库时,必须为备用数据库建立例程服务。创建备库的密码文件如下:C:>orapwd file=E:\oracle\produ
ct\10.2.0\db_1\database\PWDauxdb.ora password=nicoleentries=5;创建实例如下:C:\>oradim new sid standby intpwd Nicole-STARTMODE manual。
其实在创建实例的时候会默认去创建密码文件到database目录下,所以要是上面创建了密码文件的话,这里会抱错的,所以可以只创建实例,上面一步可以不做的。
步骤4:配置监听和网络服务名。
主备通过Oracle Net来完成交互。为了监听主库orcl,须在主库主机上配置监听程序;为了监听备库standby,必须在备库主机上配置监听。
步骤5:确保数据库处于归档模式。
步骤6:将主库运行在强制记录日志模式。
6.1 SQL>alter database force logging (必须)
步骤7:修改参数文件。
首先在主数据库上建立文本参数文件 ,然后编辑主数据库参数文件init.ora。需要注意的是db_unique_name我自己认为也是全局数据库名,既和service_names一致,只是在db_domain 一样的环境下,又要区别不同的实例(如在做dataguard下,主备数据库的db_unique_name不同来区别不同的实例,实例可以相同或者不同),所以适用db_unique_name来表示全局数据库名,一种和db_domain无关的全局数据库名。至于oracle_sid,也就是instance_name是在创建实例的时候订的,这个可以和主数据库的一致,也可以不一致。log_archive_config 的dg_config属性用于列出主库与所有备库的唯一数据库名。standby_file_management 指定备用数据库文件的管理方式,AUTO时,如果在主数据库上增加或删除数据文件,那么备用数据库会自动应用相应改变。
LOG_ARCHIVE_DEST_1 归档由主数据库生成的重做数据,从本地联机重做日志文件到在本地归档重做日志文件。LOG_ARCHIVE_DEST_2 只对于主角色有效。这个目的地传送重做数据到远程物理备目的地boston。接下来建立服务器参数文件。关闭主数据库建立SPFILE再startupSQL> CREATESPFILEFROMPFILE='% Oracle_Home%\admin\orcl\pfile\init.ora';接着还需修改备用数据库参数文件根据主数据库建立文本参数文件,编辑后手工编辑初始化参数,再放到备库的相应位置。注意:oracle_sid,instance_name,service_name在Data Guard环境下全部是一模一样,本次做的实验的主库的oracle_sid,instance_name(每个数据库的oracle_sid和instance_name应该是一样的)和备库的是不同的,主库为orcl,备库为standby,其实可以是一样的。
步骤8:备份数据库 (RMAN备份)。
注意include current controlfile for standb紧跟在备完数据库之后,否则在还原控制文件的时候总是找不到备用控制文件。
步骤9:恢复备用数据库。
必须把主数据库备份的备份集复制到备用数据库主机同名目录下。接着,在那个数据库上也行,我是在备用数据库上执行以下命令:
C:\>rman target sys/Nicole@orcl auxiliary sys/Nicole@standby
Rman>duplicate target database for standby dorecover;
步骤10:配置备重做日志(最好使用,否则许多功能不能应用)。
最大保护和最大可用性模式和实时应用是需要备重做日志的,并且对于所有数据库推荐LGWR ASYNC传送模式。Data Guard从备重做日志比单独从归档重做日志文件能恢复和应用更多重做数据。须注意:确保主和备数据库上的日志文件尺寸是相同的;确定备重做日志文件组的适当数目。最少地,配置应该比主数据库上的联机重做日志文件组的数目多一个备重做日志文件组;创建备重做日志文件组;检验备重做日志文件组已创建要检验备重做日志文件组已创建并正确地运行,在主数据库上调用一个日志切换,然后查询备数据库上的V$STANDBY_LOG视图或V$LOGFILE视图。
步骤11:应用备用数据库。
实时应用:ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USIN
GCURRENTLOGFILE disconnect;Disconnect的作用就是使这个语句发出以后从这个session中解脱出来,可以接着在这个session中做别的事情,否则它就停在那里不动了,你也不能再那个窗口做别的事情,只有关闭或者ctrl+c跳出这个session.在执行此命令的时候要在同一个窗口,这样的话他活默认的把数据库加载的mount状态并且实时应用,如果不在一个窗口,则standby redo log是写进去了,但是在别的窗口alter database open后,数据仍然没有写到数据文件里,你还必须alter database recover managed standby database finish;来应用以下standby redo log。应用完后ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL只有发布上面这条命令才能去打开备用数据库。
参考文献:
[1]陈吉平,oracle高可用环境 电子工业出版社.2008-1-1.
[2]刘永健等,Oracle Database 10g 高可用性实现方案.清华大学出版社.2005-5-1.
[关键词]数据保护 备用数据库 容灾
中图分类号:TP3 文献标识码:A 文章编号:1671-7597(2008)1120042-01
备用数据库分为物理备用数据库和逻辑备用数据库,底层技术是Data Guard重做应用(物理备用数据库)和Data Guard SQL应用(逻辑备用数据库)。物理备用数据库在磁盘上拥有和主数据库逐块相同的数据库结构,并且使用Oracle介质恢复进行更新。逻辑备用数据库是一个独立数据库,它使用 SQL 语句进行更新。
因为逻辑备用数据库比较复杂,尤其在oracle 10gR2之前的版本不太稳定,一般在实际应用中也比较少用,所以我们物理备用数据库作为安装实例。
步骤1:利用dbca在主库创建一个实例与数据库,SID=orcl, 数据库=orcl。
步骤2:创建在备用数据库上的目录,创建的和主数据库一致 (位置也可不同)。
步骤3:创建例程服务。
在UNIX/Linux平台上建立备用数据库时,需要使用ORAPWD工具为例程建立口令文件;当在 Windows平台上建立备用数据库时,必须为备用数据库建立例程服务。创建备库的密码文件如下:C:>orapwd file=E:\oracle\produ
ct\10.2.0\db_1\database\PWDauxdb.ora password=nicoleentries=5;创建实例如下:C:\>oradim new sid standby intpwd Nicole-STARTMODE manual。
其实在创建实例的时候会默认去创建密码文件到database目录下,所以要是上面创建了密码文件的话,这里会抱错的,所以可以只创建实例,上面一步可以不做的。
步骤4:配置监听和网络服务名。
主备通过Oracle Net来完成交互。为了监听主库orcl,须在主库主机上配置监听程序;为了监听备库standby,必须在备库主机上配置监听。
步骤5:确保数据库处于归档模式。
步骤6:将主库运行在强制记录日志模式。
6.1 SQL>alter database force logging (必须)
步骤7:修改参数文件。
首先在主数据库上建立文本参数文件 ,然后编辑主数据库参数文件init.ora。需要注意的是db_unique_name我自己认为也是全局数据库名,既和service_names一致,只是在db_domain 一样的环境下,又要区别不同的实例(如在做dataguard下,主备数据库的db_unique_name不同来区别不同的实例,实例可以相同或者不同),所以适用db_unique_name来表示全局数据库名,一种和db_domain无关的全局数据库名。至于oracle_sid,也就是instance_name是在创建实例的时候订的,这个可以和主数据库的一致,也可以不一致。log_archive_config 的dg_config属性用于列出主库与所有备库的唯一数据库名。standby_file_management 指定备用数据库文件的管理方式,AUTO时,如果在主数据库上增加或删除数据文件,那么备用数据库会自动应用相应改变。
LOG_ARCHIVE_DEST_1 归档由主数据库生成的重做数据,从本地联机重做日志文件到在本地归档重做日志文件。LOG_ARCHIVE_DEST_2 只对于主角色有效。这个目的地传送重做数据到远程物理备目的地boston。接下来建立服务器参数文件。关闭主数据库建立SPFILE再startupSQL> CREATESPFILEFROMPFILE='% Oracle_Home%\admin\orcl\pfile\init.ora';接着还需修改备用数据库参数文件根据主数据库建立文本参数文件,编辑后手工编辑初始化参数,再放到备库的相应位置。注意:oracle_sid,instance_name,service_name在Data Guard环境下全部是一模一样,本次做的实验的主库的oracle_sid,instance_name(每个数据库的oracle_sid和instance_name应该是一样的)和备库的是不同的,主库为orcl,备库为standby,其实可以是一样的。
步骤8:备份数据库 (RMAN备份)。
注意include current controlfile for standb紧跟在备完数据库之后,否则在还原控制文件的时候总是找不到备用控制文件。
步骤9:恢复备用数据库。
必须把主数据库备份的备份集复制到备用数据库主机同名目录下。接着,在那个数据库上也行,我是在备用数据库上执行以下命令:
C:\>rman target sys/Nicole@orcl auxiliary sys/Nicole@standby
Rman>duplicate target database for standby dorecover;
步骤10:配置备重做日志(最好使用,否则许多功能不能应用)。
最大保护和最大可用性模式和实时应用是需要备重做日志的,并且对于所有数据库推荐LGWR ASYNC传送模式。Data Guard从备重做日志比单独从归档重做日志文件能恢复和应用更多重做数据。须注意:确保主和备数据库上的日志文件尺寸是相同的;确定备重做日志文件组的适当数目。最少地,配置应该比主数据库上的联机重做日志文件组的数目多一个备重做日志文件组;创建备重做日志文件组;检验备重做日志文件组已创建要检验备重做日志文件组已创建并正确地运行,在主数据库上调用一个日志切换,然后查询备数据库上的V$STANDBY_LOG视图或V$LOGFILE视图。
步骤11:应用备用数据库。
实时应用:ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USIN
GCURRENTLOGFILE disconnect;Disconnect的作用就是使这个语句发出以后从这个session中解脱出来,可以接着在这个session中做别的事情,否则它就停在那里不动了,你也不能再那个窗口做别的事情,只有关闭或者ctrl+c跳出这个session.在执行此命令的时候要在同一个窗口,这样的话他活默认的把数据库加载的mount状态并且实时应用,如果不在一个窗口,则standby redo log是写进去了,但是在别的窗口alter database open后,数据仍然没有写到数据文件里,你还必须alter database recover managed standby database finish;来应用以下standby redo log。应用完后ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL只有发布上面这条命令才能去打开备用数据库。
参考文献:
[1]陈吉平,oracle高可用环境 电子工业出版社.2008-1-1.
[2]刘永健等,Oracle Database 10g 高可用性实现方案.清华大学出版社.2005-5-1.