千家信息网

怎么搭建dataguard

发表于:2024-11-24 作者:千家信息网编辑
千家信息网最后更新 2024年11月24日,本篇内容主要讲解"怎么搭建dataguard",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"怎么搭建dataguard"吧!此方案适合于生产运营中的数据库,
千家信息网最后更新 2024年11月24日怎么搭建dataguard

本篇内容主要讲解"怎么搭建dataguard",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"怎么搭建dataguard"吧!

此方案适合于生产运营中的数据库,DB 服务器停机时间非常苛刻,或无法停机维护的情况下,如支付,电商等业务,可通过该方案在线部署Dataguard,对客户系统无任何影响。

一、基础信息

操作系统:windows2008

数据库:11.2.0.3

配置信息:

说明主机名IP地址db_namesidDB_UNIQUE_NAMEService_name
主库dg1192.168.16.14orclorclorclorcl
备库dg2192.168.16.15orclorclorclbakorclbak

二、准备工作

按照要求创建相应的主数据库和备用数据库,并删除备用数据库的数据文件、控制文件,两个数据库的所有路径需要一致;

三、搭建数据库

主库的操作:

1.确认主库参数

SQL> select name,open_mode,database_role,log_mode,force_logging from v$database;NAME      OPEN_MODE            DATABASE_ROLE    LOG_MODE     FOR--------- -------------------- ---------------- ------------ ---ORCL      READ WRITE           PRIMARY          ARCHIVELOG   YESSQL> show parameter nameNAME                                 TYPE        VALUE------------------------------------ ----------- ------------------------------db_file_name_convert                 stringdb_name                              string      orcldb_unique_name                       string      orclglobal_names                         boolean     FALSEinstance_name                        string      orcllock_name_space                      stringlog_file_name_convert                stringprocessor_group_name                 stringservice_names                        string      orcl

2.设置数据库的归档模式

SQL> archive log list;数据库日志模式            存档模式自动存档             启用存档终点            E:\u01\fast_recovery_area\orcl最早的联机日志序列     833下一个存档日志序列   835当前日志序列           835

归档模式的设置:

1、shutdown abort;2、alter database mount;3、alter database archive log;4、alter database open;3.开启force loggingSQL> alter database force logging;SQL> select name,DB_UNIQUE_NAME,database_role,log_mode,force_logging from v$database;NAME      DB_UNIQUE_NAME                 DATABASE_ROLE    LOG_MODE     FOR--------- ------------------------------ ---------------- ------------ ---ORCL      orcl                           PRIMARY          ARCHIVELOG   YES

4.主库配置监听

SID_LIST_LISTENER =  (SID_LIST =    (SID_DESC =      (SID_NAME = CLRExtProc)      (ORACLE_HOME = E:\u01\product\11.2.0\dbhome_1)      (PROGRAM = extproc)      (ENVS = "EXTPROC_DLLS=ONLY:E:\u01\product\11.2.0\dbhome_1\bin\oraclr11.dll")    )  )LISTENER =  (DESCRIPTION_LIST =    (DESCRIPTION =      (ADDRESS = (PROTOCOL = TCP)(HOST = WIN-QS00S09CJ12)(PORT = 1521))      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))    )  )ADR_BASE_LISTENER = E:\u01

5.配置主库的TNSNAMES.ORA并和密码文件一起传到备库

# tnsnames.ora Network Configuration File: E:\u01\product\11.2.0\dbhome_1\NETWORK\ADMIN\tnsnames.ora# Generated by Oracle configuration tools.ORCL=  (DESCRIPTION =    (ADDRESS_LIST =      (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))    )    (CONNECT_DATA =      (SERVER = DEDICATED)      (SID = ORCL)      (UR=A)      )  )ORCLBAK =  (DESCRIPTION =    (ADDRESS_LIST =      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.14.15)(PORT = 1521))    )    (CONNECT_DATA =      (SERVICE_NAME = orclbak)      (UR=A)    --这里记得加这个,否无法连接nomount状态下备库    )  )

传输监听文件到备库:

6.修改主库pfile参数

--前提是采用spfile启动,并且业务不能停,可用下列命令动态设置:

ALTER SYSTEM SET LOG_ARCHIVE_CONFIG='DG_CONFIG=(orcl,orclbak)'   ALTER SYSTEM SET LOG_ARCHIVE_DEST_1= 'LOCATION=E:\u01\fast_recovery_area\orcl VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=orcl' ALTER SYSTEM SET LOG_ARCHIVE_DEST_2='SERVICE=orclbak  LGWR ASYNC affirm VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=orclbak' ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_1='ENABLE';                     ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_2='DEFER';   --这里先设置关闭                                                                                                                                          ALTER SYSTEM SET STANDBY_FILE_MANAGEMENT='AUTO';            ALTER SYSTEM SET FAL_SERVER=orclbak;   ALTER SYSTEM SET FAL_CLIENT=orcl;    下面是可选,如果路相同,忽略下面操作:  ALTER SYSTEM SET DB_FILE_NAME_CONVERT='E:\u01\oradata\orcl','E:\u01\oradata\orcl' scope=spfile;ALTER SYSTEM SET LOG_FILE_NAME_CONVERT='E:\u01\oradata\orcl','E:\u01\oradata\orcl' scope=spfile;

7.全备主库,并传输备份集到备库的相同位置

run{ allocate channel c0 device type disk; allocate channel c1 device type disk; CONFIGURE CONTROLFILE AUTOBACKUP ON; CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO 'e:\orabak\rman/%F'; backup  database format 'e:\orabak\ora11g_full_db_%d_%T_%u.bak'; BACKUP ARCHIVELOG ALL FORMAT 'e:\orabak\ora11g_arc_%s_%p_%t.bak'; }

8.修改备库参数并将备库启动至nomount状态(参考主库进行,主要是service_name要反过来)

DB_UNIQUE_NAME=orclbakLOG_ARCHIVE_CONFIG='DG_CONFIG=(orcl,orclbak)' LOG_ARCHIVE_DEST_1= 'LOCATION=E:\u01\fast_recovery_area\orcl VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=orclbak' LOG_ARCHIVE_DEST_2= 'SERVICE=orcl  LGWR ASYNC affirm VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=orcl' LOG_ARCHIVE_DEST_STATE_1=ENABLE LOG_ARCHIVE_DEST_STATE_2=ENABLE LOG_ARCHIVE_FORMAT=%t_%s_%r.arc FAL_SERVER=orclFAL_CLIENT=orclbakSTANDBY_FILE_MANAGEMENT=AUTO

9.启动备库监听

# listener.ora Network Configuration File: E:\u01\product\11.2.0\dbhome_1\network\admin\listener.ora# Generated by Oracle configuration tools.SID_LIST_LISTENER =  (SID_LIST =    (SID_DESC =      (SID_NAME = CLRExtProc)      (ORACLE_HOME = E:\u01\product\11.2.0\dbhome_1)      (PROGRAM = extproc)      (ENVS = "EXTPROC_DLLS=ONLY:E:\u01\product\11.2.0\dbhome_1\bin\oraclr11.dll")    )  )LISTENER =  (DESCRIPTION_LIST =    (DESCRIPTION =      (ADDRESS = (PROTOCOL = TCP)(HOST = WIN-4GH7UKQEEOC)(PORT = 1521))      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))    )  )SID_LIST_LISTENER = (SID_LIST =   (SID_DESC =     (GLOBAL_DBNAME = orcl)     (ORACLE_HOME = E:\u01\product\11.2.0\dbhome_1)     (SID_NAME = orcl)   ) )ADR_BASE_LISTENER = E:\u01

10.进行备库的恢复

C:\Users\Administrator>rman target /恢复管理器: Release 11.2.0.3.0 - Production on 星期五 2月 26 17:35:52 2016Copyright (c) 1982, 2011, Oracle and/or its affiliates.  All rights reserved.已连接到目标数据库: ORCL (DBID=1389423916)RMAN>  connect  auxiliary sys/*******@orclbak已连接到辅助数据库: ORCL (未装载)

开始复制数据库:

RMAN> duplicate target database for standby nofilenamecheck;启动 Duplicate Db 于 26-2月 -16使用目标数据库控制文件替代恢复目录分配的通道: ORA_AUX_DISK_1通道 ORA_AUX_DISK_1: SID=2091 设备类型=DISK内存脚本的内容:{   restore clone standby controlfile;}正在执行内存脚本启动 restore 于 26-2月 -16使用通道 ORA_AUX_DISK_1通道 ORA_AUX_DISK_1: 正在开始还原数据文件备份集通道 ORA_AUX_DISK_1: 正在还原控制文件通道 ORA_AUX_DISK_1: 正在读取备份片段 D:\ORABAK\C-1389423916-20160226-00通道 ORA_AUX_DISK_1: 段句柄 = D:\ORABAK\C-1389423916-20160226-00 标记 = TAG20160226T140701通道 ORA_AUX_DISK_1: 已还原备份片段 1通道 ORA_AUX_DISK_1: 还原完成, 用时: 00:00:04输出文件名=E:\U01\ORADATA\ORCL\CONTROL01.CTL完成 restore 于 26-2月 -16内存脚本的内容:{   sql clone 'alter database mount standby database';}正在执行内存脚本sql 语句: alter database mount standby database内存脚本的内容:{   set newname for tempfile  1 to "E:\U01\ORADATA\ORCL\TEMP01.DBF";   switch clone tempfile all;   set newname for datafile  1 to "E:\U01\ORADATA\ORCL\SYSTEM01.DBF";   set newname for datafile  2 to "E:\U01\ORADATA\ORCL\SYSAUX01.DBF";   set newname for datafile  3 to "E:\U01\ORADATA\ORCL\UNDOTBS01.DBF";   set newname for datafile  4 to "E:\U01\ORADATA\ORCL\USERS01.DBF";   set newname for datafile  5 to "E:\U01\ORADATA\ORCL\GIS01.DBF";   set newname for datafile  6 to "E:\U01\ORADATA\ORCL\GIS02.DBF";   set newname for datafile  7 to "E:\U01\ORADATA\ORCL\GIS03.DBF";   set newname for datafile  8 to "E:\U01\ORADATA\ORCL\GIS04.DBF";   set newname for datafile  9 to "E:\U01\ORADATA\ORCL\GIS05.DBF";   set newname for datafile  10 to "E:\U01\ORADATA\ORCL\GIS06.DBF";   set newname for datafile  11 to "E:\U01\ORADATA\ORCL\GIS07.DBF";   set newname for datafile  12 to "E:\U01\ORADATA\ORCL\GIS08.DBF";   set newname for datafile  13 to "E:\U01\ORADATA\ORCL\GIS09.DBF";   set newname for datafile  14 to "E:\U01\ORADATA\ORCL\GIS10.DBF";   restore   clone database   ;}正在执行内存脚本正在执行命令: SET NEWNAME临时文件 1 在控制文件中已重命名为 E:\U01\ORADATA\ORCL\TEMP01.DBF正在执行命令: SET NEWNAME正在执行命令: SET NEWNAME正在执行命令: SET NEWNAME正在执行命令: SET NEWNAME正在执行命令: SET NEWNAME正在执行命令: SET NEWNAME正在执行命令: SET NEWNAME正在执行命令: SET NEWNAME正在执行命令: SET NEWNAME正在执行命令: SET NEWNAME正在执行命令: SET NEWNAME正在执行命令: SET NEWNAME正在执行命令: SET NEWNAME正在执行命令: SET NEWNAME启动 restore 于 26-2月 -16使用通道 ORA_AUX_DISK_1通道 ORA_AUX_DISK_1: 正在开始还原数据文件备份集通道 ORA_AUX_DISK_1: 正在指定从备份集还原的数据文件通道 ORA_AUX_DISK_1: 将数据文件 00001 还原到 E:\U01\ORADATA\ORCL\SYSTEM01.DBF通道 ORA_AUX_DISK_1: 将数据文件 00002 还原到 E:\U01\ORADATA\ORCL\SYSAUX01.DBF通道 ORA_AUX_DISK_1: 将数据文件 00006 还原到 E:\U01\ORADATA\ORCL\GIS02.DBF通道 ORA_AUX_DISK_1: 将数据文件 00008 还原到 E:\U01\ORADATA\ORCL\GIS04.DBF通道 ORA_AUX_DISK_1: 将数据文件 00010 还原到 E:\U01\ORADATA\ORCL\GIS06.DBF通道 ORA_AUX_DISK_1: 将数据文件 00012 还原到 E:\U01\ORADATA\ORCL\GIS08.DBF通道 ORA_AUX_DISK_1: 将数据文件 00014 还原到 E:\U01\ORADATA\ORCL\GIS10.DBF通道 ORA_AUX_DISK_1: 正在读取备份片段 D:\ORABAK\ORCL_FULL_DB_ORCL_20160226_39QUSTI8.BAK通道 ORA_AUX_DISK_1: 段句柄 = D:\ORABAK\ORCL_FULL_DB_ORCL_20160226_39QUSTI8.BAK 标记 = TAG20160226T105816通道 ORA_AUX_DISK_1: 已还原备份片段 1通道 ORA_AUX_DISK_1: 还原完成, 用时: 02:08:38通道 ORA_AUX_DISK_1: 正在开始还原数据文件备份集通道 ORA_AUX_DISK_1: 正在指定从备份集还原的数据文件通道 ORA_AUX_DISK_1: 将数据文件 00003 还原到 E:\U01\ORADATA\ORCL\UNDOTBS01.DBF通道 ORA_AUX_DISK_1: 将数据文件 00004 还原到 E:\U01\ORADATA\ORCL\USERS01.DBF通道 ORA_AUX_DISK_1: 将数据文件 00005 还原到 E:\U01\ORADATA\ORCL\GIS01.DBF通道 ORA_AUX_DISK_1: 将数据文件 00007 还原到 E:\U01\ORADATA\ORCL\GIS03.DBF通道 ORA_AUX_DISK_1: 将数据文件 00009 还原到 E:\U01\ORADATA\ORCL\GIS05.DBF通道 ORA_AUX_DISK_1: 将数据文件 00011 还原到 E:\U01\ORADATA\ORCL\GIS07.DBF通道 ORA_AUX_DISK_1: 将数据文件 00013 还原到 E:\U01\ORADATA\ORCL\GIS09.DBF通道 ORA_AUX_DISK_1: 正在读取备份片段 D:\ORABAK\ORCL_FULL_DB_ORCL_20160226_38QUSTI8.BAK通道 ORA_AUX_DISK_1: 段句柄 = D:\ORABAK\ORCL_FULL_DB_ORCL_20160226_38QUSTI8.BAK 标记 = TAG20160226T105816通道 ORA_AUX_DISK_1: 已还原备份片段 1通道 ORA_AUX_DISK_1: 还原完成, 用时: 02:36:38完成 restore 于 26-2月 -16内存脚本的内容:{   switch clone datafile all;}正在执行内存脚本数据文件 1 已转换成数据文件副本输入数据文件副本 RECID=2 STAMP=904861333 文件名=E:\U01\ORADATA\ORCL\SYSTEM01.DBF数据文件 2 已转换成数据文件副本输入数据文件副本 RECID=3 STAMP=904861334 文件名=E:\U01\ORADATA\ORCL\SYSAUX01.DBF数据文件 3 已转换成数据文件副本输入数据文件副本 RECID=4 STAMP=904861334 文件名=E:\U01\ORADATA\ORCL\UNDOTBS01.DBF数据文件 4 已转换成数据文件副本输入数据文件副本 RECID=5 STAMP=904861334 文件名=E:\U01\ORADATA\ORCL\USERS01.DBF数据文件 5 已转换成数据文件副本输入数据文件副本 RECID=6 STAMP=904861334 文件名=E:\U01\ORADATA\ORCL\GIS01.DBF数据文件 6 已转换成数据文件副本输入数据文件副本 RECID=7 STAMP=904861334 文件名=E:\U01\ORADATA\ORCL\GIS02.DBF数据文件 7 已转换成数据文件副本输入数据文件副本 RECID=8 STAMP=904861334 文件名=E:\U01\ORADATA\ORCL\GIS03.DBF数据文件 8 已转换成数据文件副本输入数据文件副本 RECID=9 STAMP=904861334 文件名=E:\U01\ORADATA\ORCL\GIS04.DBF数据文件 9 已转换成数据文件副本输入数据文件副本 RECID=10 STAMP=904861335 文件名=E:\U01\ORADATA\ORCL\GIS05.DBF数据文件 10 已转换成数据文件副本输入数据文件副本 RECID=11 STAMP=904861335 文件名=E:\U01\ORADATA\ORCL\GIS06.DBF数据文件 11 已转换成数据文件副本输入数据文件副本 RECID=12 STAMP=904861335 文件名=E:\U01\ORADATA\ORCL\GIS07.DBF数据文件 12 已转换成数据文件副本输入数据文件副本 RECID=13 STAMP=904861335 文件名=E:\U01\ORADATA\ORCL\GIS08.DBF数据文件 13 已转换成数据文件副本输入数据文件副本 RECID=14 STAMP=904861335 文件名=E:\U01\ORADATA\ORCL\GIS09.DBF数据文件 14 已转换成数据文件副本输入数据文件副本 RECID=15 STAMP=904861335 文件名=E:\U01\ORADATA\ORCL\GIS10.DBF完成 Duplicate Db 于 26-2月 -16

12.将主库的LOG_ARCHIVE_DEST_STATE_2设置为ENABLE

ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_2='ENABLE';

13.添加standby redo log --如本身主库已建立standby redo log,此步骤可省去

SQL> select member from v$logfile;

#主库增加 STANDBY LOGFILE

ALTER DATABASE ADD STANDBY LOGFILE group 4('E:\u01\oradata\standby_log\slog1.rdo') SIZE 200M;ALTER DATABASE ADD STANDBY LOGFILE group 5('E:\u01\oradata\standby_log\slog2.rdo') SIZE 200M;ALTER DATABASE ADD STANDBY LOGFILE group 6('E:\u01\oradata\standby_log\slog3.rdo') SIZE 200M;ALTER DATABASE ADD STANDBY LOGFILE group 7('E:\u01\oradata\standby_log\slog4.rdo') SIZE 200M;

#备库增加STANDBY LOGFILE

SQL> select member from v$logfile;

ALTER DATABASE ADD STANDBY LOGFILE group 4('E:\u01\oradata\standby_log\slog1.rdo') SIZE 200M;ALTER DATABASE ADD STANDBY LOGFILE group 5('E:\u01\oradata\standby_log\slog2.rdo') SIZE 200M;ALTER DATABASE ADD STANDBY LOGFILE group 6('E:\u01\oradata\standby_log\slog3.rdo') SIZE 200M;ALTER DATABASE ADD STANDBY LOGFILE group 7('E:\u01\oradata\standby_log\slog4.rdo') SIZE 200M;

14.最后在备库开启active dataguard

SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE DISCONNECT FROM SESSION;SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;  SQL> ALTER DATABASE OPEN;SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE DISCONNECT FROM SESSION;

到此,相信大家对"怎么搭建dataguard"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

文件 数据 通道 副本 正在 命令 文件名 输入 数据库 备份 内存 脚本 内容 片段 日志 模式 存档 控制 参数 句柄 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 网络安全个人诈骗 绥化定制软件开发 连云港海航软件开发 合肥清风竹软件开发公司 福州瑞讯网络技术有限公司 描述面向对象软件开发思想 王者荣耀里面没有服务器怎么办 电子商务网络技术介绍 磐石市网络安全 平安科技是互联网金融中心 中国产业安全数据库 校园网络安全系统开题报告 了解数据库技术的发展及趋势 怎么从data文件夹导出数据库 易赢网络技术开发有限公司 饥荒服务器名称改变 网络安全基础知识论文100字 东莞桌面点胶软件开发 网络安全范围有哪些 哪里有浪潮存储服务器供应商 纳海网络技术有限公司 描述面向对象软件开发思想 杭州梦醉网络技术有限公司 手机显示链接被重置服务器被断开 网络安全手抄报大全图片 饥荒搜不到服务器 java全局处理数据库异常 银行房贷系统数据库 网络安全常识手册 小橡互联网科技有限公司
0