Oracle_dataguard__11G_配置与维护手册

合集下载

ORACLEG搭建DATAGUARD步骤

ORACLEG搭建DATAGUARD步骤

ORACLEG搭建DATAGUARD步骤搭建Oracle11g Data Guard需要以下步骤:1. 确保主/备数据库的版本和配置要求:首先,主数据库和备数据库的Oracle版本必须匹配,且需要安装和配置相同的操作系统。

同时,还需要确保主/备数据库的参数设置和硬件要求是一致的。

2. 创建主数据库:使用Oracle Database ConfigurationAssistant(DBCA)创建主数据库。

在创建数据库过程中,确保将主数据库配置为运行在归档日志模式下,以便能够启用数据保护模式并实现归档日志传送到备库。

3. 备份主数据库:在搭建Data Guard之前,需要对主数据库进行备份。

这样可以确保在搭建过程中出现任何问题时,能够快速还原主数据库。

4. 安装备数据库:在备数据库所在的服务器上安装Oracle软件,并确保配置与主数据库相同的操作系统和Oracle版本。

5. 配置备数据库参数:在备数据库上修改参数文件,以确保与主数据库保持一致。

将数据库配置为运行在归档日志模式下,并启用自动归档和数据保护模式。

还需要配置Log Archive Destination(LAD)和Fast Recovery Area(FRA)。

6. 启动备库模式:在备库上启动数据库,并将数据库模式设置为mount。

执行以下命令启动数据库:```startup mount;```7.创建备数据库控制文件:在备库上创建控制文件的物理副本,以便能够使用这些文件启动和恢复备库。

执行以下命令创建备数据库控制文件副本:```ALTER DATABASE CREATE STANDBY CONTROLFILE AS'path_to_control_file_copy';```8.将备库注册到主数据库:在主数据库上执行以下命令,将备库注册到主数据库:```ALTER SYSTEM SETLOG_ARCHIVE_CONFIG='DG_CONFIG=(primary_database,standby_datbase)';ALTER SYSTEM SETLOG_ARCHIVE_DEST_2='SERVICE=standby_database LGWR ASYNCVALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE)DB_UNIQUE_NAME=standby_database';```9.复制主数据库备份到备数据库服务器上:将主数据库备份传输到备数据库所在的服务器。

Oracle-11g日常维护手册

Oracle-11g日常维护手册

Oracle 11g 日常维护手册目录第1章文档说明 (4)第2章 CRS的管理 (4)2.1 RAC状态检查 (4)2.1.1 检查守护进程状态 (4)2.1.2 检查资源状态 (4)2.2 手工启动与关闭RAC (5)2.3 OCR的管理 (5)2.4 VOTING DISK的管理 (7)2.5 CSS管理 (8)2.6 管理工具SRVCTL (8)2.6.1 管理实例 (8)2.6.2 管理监听程序 (9)2.6.3 管理ASM (9)2.6.4 管理service (10)2.7 修改RAC的IP及VIP (10)2.7.1 修改外网IP及心跳IP (10)2.7.2 修改VIP (11)2.7.3 查看与删除IP (11)第3章 ASM的管理 (12)3.1 管理DG (12)3.1.1 建立与扩充disk group (12)3.1.2 mount与unmount的命令 (13)3.1.3 删除disk group (13)3.1.4 增加DISK的total_mb (13)3.1.5 DG的属性-AU大小 (13)3.1.6 DG的属性-离线删除时间 (14)3.1.7 DG的属性-兼容版本 (14)3.1.8 向ASM中添加disk的完整步骤 (15)3.2 ASMCMD (16)3.2.1 ASMCMD常用命令 (16)3.2.2 复制ASM文件 (17)3.2.3 命令lsdg (17)3.2.4 元数据备份与恢复 (18)3.3 ASM磁盘头信息备份与恢复 (18)3.4 ASM常用视图 (19)3.4.1 视图V$ASM_DISKGROUP (19)3.4.2 视图V$ASM_DISK (20)3.5 常用方法 (21)3.5.1 如何确定ASM实例的编号 (21)3.5.2 查询DG-RAW-磁盘的对应关系 (21)第4章数据库管理 (23)4.1 参数文件管理 (23)4.2 表空间管理 (24)4.2.1 表空间自动扩张 (25)4.2.2 表空间更名 (25)4.2.3 表空间的数据文件更名 (25)4.2.4 缺省表空间 (25)4.2.5 表空间删除 (26)4.2.6 UNDO表空间 (26)4.2.7 TEMP表空间 (26)4.3 重做日志文件管理 (27)4.3.1 增加REDO日志组 (27)4.3.2 删除日志组 (27)4.3.3 日志切换 (27)4.3.4 日志清理 (27)4.3.5 重做日志切换次数查询 (28)4.4 归档模式 (28)4.4.1 单实例数据库修改为归档模式的方法 (28)4.4.2 RAC数据库修改为归档模式的方法 (29)4.4.3 归档路径 (29)4.5 重建控制文件 (30)4.6 内存参数管理 (31)4.6.1 Oracle内存管理发展阶段 (31)4.6.2 自动内存管理AMM (32)4.6.3 自动共享内存管理ASMM (32)4.6.4 自动PGA管理 (32)4.7 其他管理内容 (33)4.7.1 数据库版本查看 (33)4.7.2 字符集 (33)4.7.3 创建密码文件 (33)4.7.4 关闭审计功能 (34)4.7.5 帐号管理 (34)4.7.6 profile管理 (34)第1章文档说明本文档描述了Oracle11g中常见的维护和管理方法,包括CRS、ASM、数据库等。

Oracle 11g Data Guard 物理备库快速配置指南

Oracle 11g Data Guard 物理备库快速配置指南

Oracle 11g Data Guard 物理备库快速配置指南(上)June 26, 2012缘起最近做了10g和11g的物理备库配置实验,发现Data Guard 其实很容易,但是缺少好文档。

我是参考官方文档做的实验,觉得它写的不是很清楚的。

Google 出来两个pdf文档,读了觉得比官方文档强很多。

翻译下,也许会对某些朋友有用。

翻译的同时我也好更熟悉下这两个文档。

好久没翻译过英文了,可以顺便练练手。

原文档下载地址(墙外):Data Guard 是Oracle 数据库的一个功能,能够提供数据库的冗余。

冗余是通过创建一个备用(物理复制)数据库实现,备库最好是在不同的地理位置或者在不同的磁盘上。

备库通过应用主库上的变化来保持数据同步。

备库可以使用重做日志应用(物理备库)或SQL应用同步(逻辑备库)。

本文旨在说明Data Guard 的配置并不复杂,不需要特殊的技能或者培训才能学会搭建。

它将快速展示给读者搭建一个物理备库的过程。

我的目标是,即使你第一次接触Data Guard,刚考虑要使用它或担心它会不会很难配置,本文将帮助你快速搭建起一个正常运行起来的物理备库。

每种Oracle 高可用性工具都有其目的。

使用Data Guard 的理由有:∙整个数据库的冗余∙故障时的快速恢复∙故障后客户端能自动重连∙在备库运行备份∙较好的故障平均修复时间∙并不复杂有一些任何生产库都应该有的基本的设置。

其中一个就是归档模式。

对于生产库,这应该是一个明显的必须配置。

如果你的生产库没有适用归档模式,你要么需要马上开始读点书,要么你得有一个非常非常好的理由。

我不大确定谁真能找出一个理由,但任何准则都有例外。

如何修改你的数据库为归档模式:SQL> shutdown immediateSQL> startup mountSQL> alter database archivelog;SQL> alter database open;SQL> archive log list;))主库的TNS 名字文件配置:JED2 =(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = dev-db2)(PORT = 1521)) (CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = JED2)))备库的TNS 名字文件配置:JED =(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = dev-db1)(PORT = 1521)) (CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = JED)))然后在备库服务器上创建所需目录结构和修改相关文件。

最新Oracle 11g DataGuard 配置详细说明

最新Oracle 11g DataGuard  配置详细说明

Oracle 11g DataGuard 配置详细说明121.判断DataGuard是否安装3select * from v$option where parameter = 'Oracle Data Guard';42. 数据库环境说明5主库配置:IP:192.168.228.133(Oracle11g1),数据库名:db1,监听服6务名:db1pri,网络服务名:pri从库配置:IP:192.168.229.134(Oracle11g2),数据库名:db1,监听服78务名:db1dg ,网络服务名:dg9数据库程序安装路径:/oracleapp/oinstall/oracle/product/11.2.0/dbhome_1/dbs1011数据库存放路径:/oracledata/db1123.监听配置13在做oracle dataguard主从库配置时候,一定要配置静态监听,否则可14能出现监听服务解析错误,不能连接的问题,监听配置如下:15主库配置如下:16[oracle@Oracle11g1 admin]$ pwd17/oracleapp/oinstall/oracle/product/11.2.0/dbhome_1/network/admin 18[oracle@Oracle11g1 admin]$ cat listener.ora19# listener.ora Network Configuration File:/oracleapp/oinstall/oracle/product/1.2.0/dbhome_1/network/admin/list2021ener.ora# Generated by Oracle configuration tools.2223WU =24(DESCRIPTION_LIST =25(DESCRIPTION =26(ADDRESS = (PROTOCOL = TCP)(HOST = Oracle11g2)(PORT = 271521))28)29)30SID_LIST_WU =31(SID_LIST =32(SID_DESC =33(GLOBAL_DBNAME =db1pri)34(ORACLE_HOME =35/oracleapp/oinstall/oracle/product/11.2.0/dbhome_1)36(SID_NAME = db1)37)38)39ADR_BASE_WU = /oracleapp/oinstall/oracle40#注意这里的global_dbname=db1pri,SID_NAME=db1,这个SID_NAME 应与41你对外提供服务的 $ORACLE_SID 一致,即数据库:db142[oracle@Oracle11g1 admin]$ cat tnsnames.ora43# tnsnames.ora Network Configuration File:44/oracleapp/oinstall/oracle/product/11.2.0/dbhome_1/network/admin/tns 45names.ora46# Generated by Oracle configuration tools.47pri =48(DESCRIPTION =49(ADDRESS = (PROTOCOL = TCP)(HOST = Oracle11g1)(PORT = 1521)) (CONNECT_DATA =5051(SERVER = DEDICATED)52(SERVICE_NAME = db1pri))5354)55dg =56(DESCRIPTION =57(ADDRESS = (PROTOCOL = TCP)(HOST = Oracle11g2)(PORT = 1521)) 58(CONNECT_DATA =59(SERVER = DEDICATED)60(SERVICE_NAME = db1dg)61)62)63#tnsname pri 中的 SERVICE_NAME=db1pri ,这里的服务名为db1pri而64不是通常的 db1,因为在 listener.ora 中已经注册了db1pri,lsnrctl 启动65时会监听db1pri ,并对应到SID_NAME=db1上。

配置Oracle 11g Active Dataguard

配置Oracle 11g Active Dataguard

配置Oracle 11g Active Dataguard一直以来都没有正儿八经的记录oracle 11g dataguard物理备库的创建步骤,11g 的logical standby还没有去测试,不过个人认为随着11g adg特性的推出,logical standby其实已经没有什么吸引力了!本文介绍了11g active dataguard的详细配置步骤和数据保护模式的修改!一:环境介绍主库IP地址:192.168.1.61/24操作系统版本:rhel5.4 64bit数据库版本:11.2.0.3 64bit数据库sid名:dg数据库名:dg数据库db_unique_name:dg1备库1 物理备库(只安装oracle数据库软件,无需建库)IP地址:192.168.1.62/24操作系统版本:rhel5.4 64bit数据库版本:11.2.0.3 64bit数据库sid名:dg数据库名:dg数据库db_unique_name:dg2二:修改主备库listener.ora,tnsnames.ora文件如下,备库根据自身情况修改1.[oracle@dg1 ~]$ cat $TNS_ADMIN/listener.ora2.SID_LIST_LISTENER =3. (SID_LIST =4. (SID_DESC =5. (GLOBAL_DBNAME = )6. (ORACLE_HOME = /u01/app/oracle/product/11.2.0/db1)7. (SID_NAME = dg)8. )9. )10.11.LISTENER =12. (DESCRIPTION_LIST =13. (DESCRIPTION =14. (ADDRESS_LIST =15. (ADDRESS = (PROTOCOL = TCP)(HOST = )(PORT = 1521))16. )17. )18. )19.20.[oracle@dg1 ~]$ cat $TNS_ADMIN/tnsnames.ora21.dg1 =22. (DESCRIPTION =23. (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.61)(PORT = 1521))24. (CONNECT_DATA =25. (SERVER = DEDICATED)26. (SERVICE_NAME = )27. )28. )29.30.dg2 =31. (DESCRIPTION =32. (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.62)(PORT = 1521))33. (CONNECT_DATA =34. (SERVER = DEDICATED)35. (SERVICE_NAME = )36. )37. )38.39.for_db =40. (DESCRIPTION =41. (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.61)(PORT = 1521))42. )三:在主库上修改dataguard配置相关的各个参数,各参数的具体含义可以参考oracle 在线文档1.SQL> alter database force logging;2.Database altered.3.4.SQL> alter system set db_unique_name='dg1'scope=spfile;5.System altered.6.7.SQL> alter system set log_archive_config='DG_CONFIG=(dg1,dg2)';8.System altered.9.10.SQL> alter system set log_archive_dest_1='LOCATION=/u01/app/oracle/archivelog valid_for=11.12.(all_logfiles,primary_role) db_unique_name=dg1' scope=spfile;13.System altered.14.15.SQL> alter system set log_archive_dest_2='SERVICE=dg2 lgwr sync valid_for=(online_logfile,primary_role)16.17.db_unique_name=dg2';18.System altered.19.20.SQL> alter system set log_archive_dest_3='LOCATION=/u01/app/oracle/standbylog valid_for=21.22.(standby_logfile,standby_role) db_unique_name=dg1' scope=spfile;23.System altered.24.25.SQL> alter system set fal_client='dg1';26.System altered.27.28.SQL> alter system set fal_server='dg2';29.System altered.30.31.SQL> alter system set standby_file_management=auto;32.System altered.33.34.SQL> alter database add standby logfile group 4 '/u01/app/oracle/oradata/dg/standby04.log' size 50M;35.Database altered.36.37.SQL> alter database add standby logfile group 5 '/u01/app/oracle/oradata/dg/standby05.log' size 50M;38.Database altered.39.40.SQL> alter database add standby logfile group 6 '/u01/app/oracle/oradata/dg/standby06.log' size 50M;41.Database altered.42.43.SQL> alter database add standby logfile group 7 '/u01/app/oracle/oradata/dg/standby07.log' size 50M;44.Database altered.45.46.SQL> shutdown immediate47.Database closed.48.Database dismounted.49.ORACLE instance shut down.50.51.SQL> startup52.ORACLE instance started.53.54.Total System Global Area 417546240 bytes55.Fixed Size 2228944 bytes56.Variable Size 285216048 bytes57.Database Buffers 121634816 bytes58.Redo Buffers 8466432 bytes59.Database mounted.60.Database opened.61.62.SQL> alter system set local_listener='for_db';63.System altered.64.65.SQL> create pfile='/home/oracle/initdg.ora' from spfile;66.File created.三:将生成的pfile文件修改后传递到备库,注意红色字体部分[oracle@dg1 ~]$ cat /home/oracle/initdg.oradg.__db_cache_size=121634816dg.__java_pool_size=4194304dg.__large_pool_size=4194304dg.__oracle_base='/u01/app/oracle'#ORACLE_BASE set from environmentdg.__pga_aggregate_target=167772160dg.__sga_target=251658240dg.__shared_io_pool_size=0dg.__shared_pool_size=109051904dg.__streams_pool_size=0*.audit_file_dest='/u01/app/oracle/admin/dg/adump'*.audit_trail='db'*.compatible='11.2.0.0.0'*.control_files='/u01/app/oracle/oradata/dg/control01.ctl','/u01/app/oracle/fast_recovery_area/dg/control02.ctl' *.db_block_size=8192*.db_domain=''*.db_name='dg'*.db_recovery_file_dest='/u01/app/oracle/fast_recovery_area'*.db_recovery_file_dest_size=4322230272*.db_unique_name='dg2'*.diagnostic_dest='/u01/app/oracle'*.dispatchers='(PROTOCOL=TCP) (SERVICE=dgXDB)'*.fal_client='dg2'*.fal_server='dg1'*.local_listener='for_db'*.log_archive_config='DG_CONFIG=(dg1,dg2)'*.log_archive_dest_1='LOCATION=/u01/app/oracle/archivelogvalid_for=(all_logfiles,primary_role)db_unique_name=dg2'*.log_archive_dest_2='SERVICE=dg1 lgwr sync valid_for=(online_logfile,primary_role)db_unique_name=dg1'*.log_archive_dest_3='LOCATION=/u01/app/oracle/standbylogvalid_for=(standby_logfile,standby_role)db_unique_name=dg2'*.log_archive_format='%t_%s_%r.dbf'*.memory_target=419430400*.open_cursors=300*.processes=150*.remote_login_passwordfile='EXCLUSIVE'*.standby_file_management='AUTO'*.undo_tablespace='UNDOTBS1'[oracle@dg1 ~]$ scp initdg.ora 192.168.1.62:/home/oracle/四:将备库启动到nomount状态,然后连接主库进行duplicate操作1.[oracle@dg2 ~]$ lsnrctl start2.[oracle@dg2 ~]$ orapwd file=$ORACLE_HOME/dbs/orapwdg password=123456entries=53.[oracle@dg2 ~]$ sqlplus /nolog4.SQL*Plus: Release 11.2.0.3.0 Production on Sun Apr 22 13:36:53 20125.Copyright (c) 1982, 2011, Oracle. All rights reserved.6.7.SQL> conn /as sysdba8.Connected to an idle instance.9.SQL> create spfile from pfile='/home/oracle/initdg.ora';10.File created.11.12.SQL> startup nomount13.ORACLE instance started.14.15.Total System Global Area 417546240 bytes16.Fixed Size 2228944 bytes17.Variable Size 285216048 bytes18.Database Buffers 121634816 bytes19.Redo Buffers 8466432 bytes[oracle@dg2 ~]$ rman target sys/123456@dg1 auxiliary sys/123456@dg2Recovery Manager: Release 11.2.0.3.0 - Production on Sun Apr 22 13:38:33 2012Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved.connected to target database: DG (DBID=1694605607)connected to auxiliary database: DG (not mounted)RMAN> duplicate target database for standby nofilenamecheck from active database;Starting Duplicate Db at 2012-04-22-13:39:25using target database control file instead of recovery catalogallocated channel: ORA_AUX_DISK_1channel ORA_AUX_DISK_1: SID=134 device type=DISKcontents of Memory Script:{backup as copy reusetargetfile '/u01/app/oracle/product/11.2.0/db1/dbs/orapwdg' auxiliary format'/u01/app/oracle/product/11.2.0/db1/dbs/orapwdg' ;}executing Memory ScriptStarting backup at 2012-04-22-13:39:26allocated channel: ORA_DISK_1channel ORA_DISK_1: SID=19 device type=DISKFinished backup at 2012-04-22-13:39:28contents of Memory Script:{backup as copy current controlfile for standby auxiliary format'/u01/app/oracle/oradata/dg/control01.ctl';restore clone controlfile to '/u01/app/oracle/fast_recovery_area/dg/control02.ctl' from'/u01/app/oracle/oradata/dg/control01.ctl';}executing Memory ScriptStarting backup at 2012-04-22-13:39:29using channel ORA_DISK_1channel ORA_DISK_1: starting datafile copycopying standby control fileoutput file name=/u01/app/oracle/product/11.2.0/db1/dbs/snapcf_dg.f tag=TAG20120422T133929 RECID=1STAMP=781277970channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:03Finished backup at 2012-04-22-13:39:32Starting restore at 2012-04-22-13:39:32using channel ORA_AUX_DISK_1channel ORA_AUX_DISK_1: copied control file copyFinished restore at 2012-04-22-13:39:34contents of Memory Script:{sql clone 'alter database mount standby database';}executing Memory Scriptsql statement: alter database mount standby databasecontents of Memory Script:{set newname for tempfile 1 to"/u01/app/oracle/oradata/dg/temp01.dbf";switch clone tempfile all;set newname for datafile 1 to"/u01/app/oracle/oradata/dg/system01.dbf";set newname for datafile 2 to"/u01/app/oracle/oradata/dg/sysaux01.dbf";set newname for datafile 3 to"/u01/app/oracle/oradata/dg/undotbs01.dbf";set newname for datafile 4 to"/u01/app/oracle/oradata/dg/users01.dbf";backup as copy reusedatafile 1 auxiliary format"/u01/app/oracle/oradata/dg/system01.dbf" datafile2 auxiliary format"/u01/app/oracle/oradata/dg/sysaux01.dbf" datafile3 auxiliary format"/u01/app/oracle/oradata/dg/undotbs01.dbf" datafile4 auxiliary format"/u01/app/oracle/oradata/dg/users01.dbf" ;sql 'alter system archive log current';}executing Memory Scriptexecuting command: SET NEWNAMErenamed tempfile 1 to /u01/app/oracle/oradata/dg/temp01.dbf in control fileexecuting command: SET NEWNAMEexecuting command: SET NEWNAMEexecuting command: SET NEWNAMEexecuting command: SET NEWNAMEStarting backup at 2012-04-22-13:39:42using channel ORA_DISK_1channel ORA_DISK_1: starting datafile copyinput datafile file number=00001 name=/u01/app/oracle/oradata/dg/system01.dbf output file name=/u01/app/oracle/oradata/dg/system01.dbf tag=TAG20120422T133943 channel ORA_DISK_1: datafile copy complete, elapsed time: 00:03:06channel ORA_DISK_1: starting datafile copyinput datafile file number=00002 name=/u01/app/oracle/oradata/dg/sysaux01.dbf output file name=/u01/app/oracle/oradata/dg/sysaux01.dbf tag=TAG20120422T133943 channel ORA_DISK_1: datafile copy complete, elapsed time: 00:01:55channel ORA_DISK_1: starting datafile copyinput datafile file number=00003 name=/u01/app/oracle/oradata/dg/undotbs01.dbf output file name=/u01/app/oracle/oradata/dg/undotbs01.dbf tag=TAG20120422T133943 channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:15channel ORA_DISK_1: starting datafile copyinput datafile file number=00004 name=/u01/app/oracle/oradata/dg/users01.dbfoutput file name=/u01/app/oracle/oradata/dg/users01.dbf tag=TAG20120422T133943channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:03Finished backup at 2012-04-22-13:45:05sql statement: alter system archive log currentcontents of Memory Script:{switch clone datafile all;}executing Memory Scriptdatafile 1 switched to datafile copyinput datafile copy RECID=1 STAMP=781278308 file name=/u01/app/oracle/oradata/dg/system01.dbf datafile 2 switched to datafile copyinput datafile copy RECID=2 STAMP=781278308 file name=/u01/app/oracle/oradata/dg/sysaux01.dbf datafile 3 switched to datafile copyinput datafile copy RECID=3 STAMP=781278308 file name=/u01/app/oracle/oradata/dg/undotbs01.dbf datafile 4 switched to datafile copyinput datafile copy RECID=4 STAMP=781278308 file name=/u01/app/oracle/oradata/dg/users01.dbf Finished Duplicate Db at 2012-04-22-13:45:29RMAN> exitRecovery Manager complete.五:将备库置于active dataguard模式下1.[oracle@dg2 ~]$ sqlplus /nolog2.SQL*Plus: Release 11.2.0.3.0 Production on Sun Apr 22 13:47:17 20123.Copyright (c) 1982, 2011, Oracle. All rights reserved.4.5.SQL> conn /as sysdba6.Connected.7.SQL> select open_mode,database_role,db_unique_name from v$database; 8.9.OPEN_MODE DATABASE_ROLE DB_UNIQUE_NAME10.-------------------- ---------------- ------------------------------11.MOUNTED PHYSICAL STANDBY dg212.13.SQL> alter database open;14.Database altered.15.16.SQL> alter database recover managed standby database using current logfile disconnect from session;17.Database altered.18.19.SQL> select open_mode,database_role,db_unique_name from v$database;20.21.OPEN_MODE DATABASE_ROLE DB_UNIQUE_NAME22.-------------------- ---------------- ------------------------------23.READ ONLY WITH APPLY PHYSICAL STANDBY dg224.25.SQL> select status from v$standby_log;26.27.STATUS28.----------29.ACTIVE30.UNASSIGNED31.UNASSIGNED32.UNASSIGNED33.34.SQL> select member from v$logfile;35.36.MEMBER37.--------------------------------------------------------------------------------38./u01/app/oracle/fast_recovery_area/DG2/onlinelog/o1_mf_3_7s76qbhq_.log39./u01/app/oracle/fast_recovery_area/DG2/onlinelog/o1_mf_2_7s76q94s_.log40./u01/app/oracle/fast_recovery_area/DG2/onlinelog/o1_mf_1_7s76q5w1_.log41./u01/app/oracle/fast_recovery_area/DG2/onlinelog/o1_mf_4_7s76qdpk_.log42./u01/app/oracle/fast_recovery_area/DG2/onlinelog/o1_mf_5_7s76qhmy_.log43./u01/app/oracle/fast_recovery_area/DG2/onlinelog/o1_mf_6_7s76qlhz_.log44./u01/app/oracle/fast_recovery_area/DG2/onlinelog/o1_mf_7_7s76qp99_.log45.7 rows selected.六:修改dataguard的数据保护模式为最高可用性模式,根据oracle文档的解释,最高可用性数据保护模式需要先满足以下几个条件1.SQL> select db_unique_name,protection_mode,protection_level from v$database;2.3.DB_UNIQUE_NAME PROTECTION_MODE PROTECTION_LEVEL4.------------------------------ -------------------- --------------------5.dg2 MAXIMUM PERFORMANCE MAXIMUM PERFORMANCE6.7.8.9.SQL> select db_unique_name,protection_mode,protection_level from v$database;10.11.DB_UNIQUE_NAME PROTECTION_MODE PROTECTION_LEVEL12.------------------------------ -------------------- --------------------13.dg1 MAXIMUM PERFORMANCE MAXIMUM PERFORMANCE14.15.16.SQL> alter database set standby database to maximize availability;17.Database altered.18.19.SQL> select db_unique_name,protection_mode,protection_level from v$database;20.21.DB_UNIQUE_NAME PROTECTION_MODE PROTECTION_LEVEL22.------------------------------ -------------------- --------------------23.dg1 MAXIMUM AVAILABILITY MAXIMUM AVAILABILITY24.25.26.SQL> select db_unique_name,protection_mode,protection_level from v$database;27.28.DB_UNIQUE_NAME PROTECTION_MODE PROTECTION_LEVEL29.------------------------------ -------------------- --------------------30.dg2 MAXIMUM AVAILABILITY MAXIMUM AVAILABILITY31.32.33.将备库shutdown后,主库的PROTECTION_LEVEL将变为RESYNCHRONIZATION34.SQL> select db_unique_name,protection_mode,protection_level from v$database;35.36.DB_UNIQUE_NAME PROTECTION_MODE PROTECTION_LEVEL37.------------------------------ -------------------- --------------------38.dg2 MAXIMUM AVAILABILITY MAXIMUM AVAILABILITY39.40.SQL> alter database recover managed standby database cancel;41.Database altered.42.43.SQL> shutdown immediate44.Database closed.45.Database dismounted.46.ORACLE instance shut down.47.48.SQL> select db_unique_name,protection_mode,protection_level from v$database;49.50.DB_UNIQUE_NAME PROTECTION_MODE PROTECTION_LEVEL51.------------------------------ -------------------- --------------------52.dg1 MAXIMUM AVAILABILITY RESYNCHRONIZATION。

(完整word版)OracleDataguard操作手册20160912

(完整word版)OracleDataguard操作手册20160912

Oracale dataguard操作手册第一。

dataguard的好处:它是在主节点与备用节点间通过日志同步来保证数据的同步,可以实现数据库的快速切换与灾难性恢复,提供了灾难保护并防止数据丢失.Data Guard只是在软件上对数据库进行设置,并不需要额外购买任何组件。

用户能够在对主数据库影响很小的情况下,实现主备数据库的同第二。

选用什么DG模式?DG有三种模式,最大保护(Maximum protection),最大性能(Maximum performance),最大可用性(Maximum availability),默认的就是最大性能模式。

再实际的应用种使用最大性能模式比较多。

三种保护模式:可以在V$DATABASE中查看到DataGuard的保护模式SELECT PROTECTION_MODE, PROTECTION_LEVEL FROM V$DATABASE;第三.物理standby还是逻辑standby?1,物理stand by直接从primary接受archived log,然后直接做恢复,效率较高,因为是使用最底层的块级别上的复制。

逻辑stand by是把primary接收过来的archived log解析为sql语句,然后做同步,效率较低,因为是执行SQL语句.2,Physical standby的APPLY节点为MOUNT状态,Logical standby节点为OPEN状态,可分担primary上部分的查询和报表服务。

3,Physical standby可以实现与Primary来回switchover;logical standby切为Primary ,不能再切回来。

4,Physical standby可以切换为Logical standby ,但是logical 不能转换为Physical。

综合以上采取:物理standby模式,效率高,数据完整性好。

第四。

如何创建物理standby?见附件一:ORACLE 11G 搭建DATAGUARD步骤大概步骤如下:首先:配置主库1.1设置数据库强制归档1.2添加STANDBY日志文件1.3修改参数文件1.4修改监听配置文件1.5修改TNS配置文件1.6重启监听服务1.7启动数据库,配置DG模式:最大可用性模式或者最大性能模式1.8备份数据库其次:配置备库。

Oracle11gDataGuard配置EM

Oracle11gDataGuard配置EM

Oracle11gDataGuard配置EM
主库执行如下操作
1、在数据库主机hosts文件添加主机地址映射,解决EM监听程序状态显示为关闭的问题。

2、配置系统环境变量如下
ORACLE_HOSTNAME=PC-NAME
ORACLE_SID=orcl
ORACLE_UNQNAME=orcl
CMD窗口执行
set ORACLE_HOSTNAME=PC-NAME
set ORACLE_SID=orcl
set ORACLE_UNQNAME=orcl
3、连接数据库,使用如下命令解锁sysman用户。

4、alter user sysman account unlock;
5、使用emca -deconfig dbcontrol db命令删除配置
6、使用emca -repos drop删除repository
7、使用emca -config dbcontrol db -repos create 创建Database Control。

8、根据提示,输入数据库信息,待创建完毕,稍等片刻,等待EM启动完毕,根据提示的路径访问EM。

访问地址参考:https://主库IP:5500/em
注:①如果需要访问备库的EM,需要将备库切换成主库,再进行配置,配置后即可进行访问。

②进行主备切换后,需要对EM重新配置。

常用命令参考
重新配置语句emca -config dbcontrol db
重新配置端口命令
emca -reconfig ports -dbcontrol_http_port 1159
emca -reconfig ports -agent_port 3939。

Oracle11G日常维护手册

Oracle11G日常维护手册

日常维护手册目录1.登陆到数据库1.1.服务器端配置=( =( =( = ( = )( 1))( = ( = )( = 192.168.137.10)( = 1521)) ))= 01(((1)(1)(0111.2.01)(20)((()(2)(1)))))1名称,在客户端一定配置和他相同1实例名称,这个要和相同可以不等于客户端根据中的和地址( = ( = )( 1)( = 1521)),到这个地址去访问监听器。

然后监听器根据文件文件中的来判断是否有一个 和 相等。

如果相等,则建立客户端到标识的服务端实例的连接,在客户端上我们可以使用 命令来测试1.2. 客户端1 =( =说明( =( = ( = )( = 192.168.137.10)( = 1521)))( =( 1)()))这里的 1 就是在服务器端的1[1 ~]$ 1: 11.2.0.1.0 - 212015 14:51:49(c) 1997, 2009, . .03502: . : <> [<>][1 ~]$ 1: 11.2.0.1.0 - 212015 14:51:55(c) 1997, 2009, . .:( = ( = ( = ( = )( = 1)( = 1521))) ( = (= 1)()))(0 )1.3. 检查说明1.4.登陆数据库的方式修改登陆 认证模式默认情况下我们 安装好后是使用操作系统用户的验证,所以这里如果我们使用用户不用密码就可以登录,如果我们想使用 密码文件验证的话我们就要进入下列文件夹0111.2.01修改增加下列命令=配置了登录数据库方式[1 ~]$ 1111111使用登陆到指定数据库11111111 ;察看登陆到了哪个数据库实例v$使用用户登陆说明说明用登陆使用用户登录;/ 连接数据库111111 使用进行连接1.5.数据库的启动数据库启动方式启动实例、装载数据库、打开数据库1启动数据库实例, 该步骤只是启动了一个数据库实例. 在此状态下我们可以访问下列结构文件* v$;* v$;* v$;利用以前读取的参数文件查找控制文件,这些控制文件包含数据文件名和重做日志名,然后将数据库装载.一旦这一步完成我们就可以看到下列状态* v$;* v$;* v$;实例验证数据文件及日志文件并启动数据库;打开数据库启动过程中限制访问数据库上述命令是只有用户拥有权限才可以连接启动数据库后起的进程, v$ <>'00';1.6.关闭数据库等待用户完成工作然后关闭等待用户完成工作但是强制关闭连接立即关闭 ,当前所有做工作回滚到一致状态,断开其连接强制关闭,非干净关闭,下次重起后要回滚日志2.用户管理2.1.检察用户2.2.查看用户参数3.检查数据库基本状况3.1.检查数据库创建日期3.2.检查数据库版本信息3.3.检查实例状态其中“”表示当前的实例状态,必须为“”;“”表示当前数据库的状态,必须为“”。

oracle11g_dataguard配置案例

oracle11g_dataguard配置案例

配置Oracle 11g Active Dataguard一.环境介绍主库为生产库,备库只安装数据库软件,不创建数据库。

主库和备库的DB_NAME必须一致,DB_UNIQUE_NAME必须不同。

二.主数据库操作步骤1.检查数据库是否有DATAGUARD功能SQL>select * from v$option where parameter = 'Oracle Data Guard';如果结果是true表示已经安装可以配置,否则需要安装相应组件。

2.检查主库是否开启了归档SQL>select LOG_MODE from v$database;如果没有开启需要切换数据库到归档模式SQL>shutdown immediate;SQL>startup mount;SQL>alter database archivelog;SQL>alter database open;3.检查主库是否开始强制日志SQL>select FORCE_LOGGING from v$database;如果没有开启需要执行命令SQL>alter database force logging;4.检查主库db_name,db_unique_name参数注意在DG中主库和备库的db_name是需要一致的,db_unique_name是不能一致的,需要区分开。

SQL>show parameter db_name;这里主库db_name是dg,备库db_name也是dg,保持一致SQL>show parameter db_unique_name;这里主库db_unique_name是dg,备库db_unique_name是dg1,需要区分开。

5.修改主库tnsnames.ora,listener.ora文件(1).找到主库的tns文件和监听文件并修改tns文件和监听文件默认路径都在$ORACLE_HOME/network/admin/[oracle@h2 ~]$ cd $ORACLE_HOME/network/admin/tnsnames.ora添加备库网络名dg1 =(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.33)(PORT = 1521)))(CONNECT_DATA =(SERVICE_NAME = dg1)))dg =(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.2)(PORT = 1521))(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = dg)))listener.ora增加以下静态监听配置SID_LIST_LISTENER =(SID_LIST =(SID_DESC =(SID_NAME = PLSExtProc)(ORACLE_HOME = /u01/oracle)(PROGRAM = extproc))(SID_DESC =(GLOBAL DBNAME = dg)(ORACLE_HOME = /u01/oracle)(SID_NAME = dg)))(2).复制主库tnsnames.ora,listener.ora到备库相应目录下[oracle@h2 admin]$ scptnsnames.oraoracle@192.168.1.33:/u01/oracle/network/admin[oracle@h2 admin]$ scplistener.oraoracle@192.168.1.33:/u01/oracle/network/admin重启监听6. 修改主库参数文件(1).备份参数文件SQL>create pfile='/home/oracle/pfile0923.ora' from spfile;如果出现错误可以使用备份的参数重新配置数据库(2).修改数据库DB_UNIQUE_NAME(主库可不修改)SQL>alter system set db_unique_name='dg' scope=spfile;这里的DB_UNIQUE_NAME要与tnsnames.ora中的名一致。

oracle11gr2dataguard日常维护及故障处理

oracle11gr2dataguard日常维护及故障处理

Oracle 11G R2 DataGuard日常维护及故障处理1.关于Forced Logging模式有一些DDL语句可以通过指定NOLOGGING子句的方式避免写redo log(目的是提高速度,某些时候确实有效),指定数据库为FORCE LOGGING模式后,数据库将会记录除临时表空间或临时回滚段外所有的操作而忽略类似NOLOGGING之类的指定参数。

如果在执行force loggi ng时有nologging之类的语句在执行,则force logging会等待直到这类语句全部执行。

F ORCE LOGGING是做为固定参数保存在控制文件中,因此其不受重启之类操作的影响(只执行一次即可)打开force loggingSQL > alter database force logging;关闭force loggingSQL > alter database no force logging;查看force logging的状态:SQL > select FORCE_LOGGING from v$database;2.关于主备库的密码密码文件位置$Oracle_HOME/dbs/orapwSID,主备库的密码必须要一致,否则可能出现日志无法传输故障,最好是使用scp传过去较为方便3.关于listener.ora和tnsnames.oralistener.ora为数据库的监听配置文件,tnsnames.ora为网络服务名配置文件修改listener.ora是需要重启监听程序,而tnsnames.ora是不需要重启的,我们可以使用默认的listener.oraLISTENER =(DESCRIPTION_LIST =(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = localhost.localdomain)(PORT = 1521)) ))ADR_BASE_LISTENER = /opt/oracle以上是动态注册,如果是静态注册的话,则是SID_LIST_LISTENER =(SID_LIST =(SID_DESC =(SID_NAME = PLSExtProc)(ORACLE_HOME = /opt/oracle/product/11.2.0/db_1)(PROGRAM = extproc))(SID_DESC =(GLOBAL_DBNAME =db1)(ORACLE_HOME = /opt/oracle/product/11.2.0/db_1)(SID_NAME = db1)))tnsnames.ora则只需要添加服务名db1 =(DEST_NAME(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = db1)(PORT = 1521)) )(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = db1)))db2=(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = db2)(PORT = 1521)) )(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = db2)))以上按照自己的实际情况进行修改以上配置好了,就可以相互的tnsping db1或tnsping db2进行测试4.参数文件说明参数文件说明:增加以下参数,如果在初始化参数已经有配置,则看需要做相应的修改。

ORACLE-11G-搭建DATAGUARD步骤

ORACLE-11G-搭建DATAGUARD步骤

ORACLE-11G-搭建DATAGUARD步骤ORACLE 11G 搭建DATAGUARD步骤1安装环境在主机1上安装数据库软件,并建监听和实例,在主机2上安装数据库软件,并建监听,但不建实例。

2主数据库配置2.1设置数据库强制归档sqlplus / as sysdbaSQL> ALTER DATABASE FORCE LOGGING;SQL> select force_logging from v$database;FOR---YES2.2添加STANDBY日志文件SQL>alter database add standby logfile group 4 ('/oradata/dbtest/redo04.log') size 50m;SQL>alter database add standby logfile group 5 ('/oradata/dbtest/redo05.log') size 50m;SQL>alter database add standby logfile group 6 ('/oradata/dbtest/redo06.log') size 50m;SQL>alter database add standby logfile group 7 ('/oradata/dbtest/redo07.log') size 50m;SQL> select * from v$logfile order by 1;2.3修改参数文件2.3.1生成pfileSQL>create pfile from spfile;SQL>shutdown immediate;2.3.2修改pfilevi $ORACLE_HOME/dbs/initdbtest.ora在最后添加如下容:*.db_unique_name=dbtest1*.fal_server='dbtest2'*.fal_client='dbtest1'*.standby_file_management=auto*.db_file_name_convert='/oradata/dbtest/','/oradata/dbtest /'*.log_file_name_convert='/oradata/dbtest/','/oradata/dbtest /'*.log_archive_config='dg_config=(dbtest1,dbtest2)'*.log_archive_dest_2='service=dbtest2 LGWR SYNC AFFIRM valid_for=(online_logfiles,primary_role)db_unique_name=dbtest2'*.log_archive_dest_state_2='ENABLE'2.3.3生成spfileSQL> shutdown immediate[oracledbserver01 ~]$ cd $ORACLE_HOME/dbs[oracledbserver01 dbs]$ mv spfilejkfwdb.ora spfilejkfwdb.ora.bakSQL> startup nomountSQL> create spfile from pfile;File created.SQL> show parameter uniqSQL> shutdown immediate;SQL> startupSQL> show parameter spfile2.4修改监听配置文件2.5修改TNS配置文件[oracledg1 admin]$ cat tnsnames.ora# tnsnames.ora Network Configuration File: /oracle/app/oracle/product/11.2.0/db_1/network/admin/tnsna mes.ora # Generated by Oracle configuration tools.DBTEST =(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.132.3)(PORT = 1521)) (CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = dbtest1)))DBTEST1 =(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.132.3)(PORT = 1521)) (CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = dbtest1)))DBTEST2 =(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.132.4)(PORT = 1521)) (CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = dbtest2)))EXTPROC_CONNECTION_DATA =(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC2)))(CONNECT_DATA =(SID = PLSExtProc)(PRESENTATION = RO)))2.6重启监听服务lsnrctl stoplsnrctl start2.7配置最大可用模式SQL> alter database set standby database to maximizeavailability;Database altered.SQL> exit2.8备份数据库[oracledg1 admin]$ rman target /RMAN> backup database plus archivelog;RMAN> backup current controlfile for standby;RMAN> exit备份完成后会在闪回区生产备份文件3备数据库配置3.1建立相应的文件目录包括dump文件目录,闪回区,数据文件目录,可以通过show parameter dest 命令查看mkdir -p /oracle/app/oracle/admin/dbtest/adumpmkdir -p /oracle/app/oracle/admin/dbtest/dpdumpmkdir -p /oracle/app/oracle/diag/rdbms/dbtest1/dbtest/trace mkdir -p /oracle/app/oracle/diag/rdbms/dbtest1/dbtest/cdump mkdir -p /oracle/app/oracle/flash_recovery_areamkdir -p /oradata/dbtest3.2从主数据库服务器上拷贝文件注意:下面命令在主数据库上执行3.2.1拷贝闪回区容[oracledg1 admin]$ cd /oracle/app/oracle/flash_recovery_areascp -r ./* 192.168.132.4:/oracle/app/oracle/flash_recovery_area/ 3.2.2拷贝参数文件[oracledg1 flash_recovery_area]$ cd $ORACLE_HOME/dbsscp ./* 192.168.132.4:/oracle/app/oracle/product/11.2.0/db_1/dbs/ 3.2.3拷贝密码文件3.2.4拷贝监听文件和tns文件[oracledg1 dbs]$ cd ../network/admin/scp *.ora192.168.132.4:/oracle/app/oracle/product/11.2.0/db_1/netw ork/admin/ 3.3修改监听配置文件修改ip地址3.4修改TNS配置文件修改ip地址3.5重启监听服务lsnrctl stoplsnrctl start3.6修改参数文件并启动数据库到nomountCd $ORACLE_HOME/dbsCp initdbtest.ora initdbtest.ora.bakvi $ORACLE_HOME/dbs/initdbtest.ora去掉上面添加的部分即:*.db_unique_name=dbtest1*.fal_server='dbtest2'*.fal_client='dbtest1'……3.7恢复数据库[oracledg2 admin]$ rman target sys/funo1234dbtest1 auxiliary / RMAN> duplicate target database for standby nofilenamecheck;RMAN> exit3.8修改参数文件[oracledg2 admin]$ sqlplus / as sysdbaSQL> shutdown immediate;vi $ORACLE_HOME/dbs/initdbtest.ora添加如下容*.db_unique_name=dbtest2SQL> create spfile from pfile;3.9启动数据库SQL> startup nomount;SQL> alter database mount standby database;SQL> alter database recover managed standby database using current logfile disconnect from session;3.10验证主库备库均执行如下命令:SQL> archive log list;主库备库如果最后一行数字相同,说明配置成功3.11切换到只读模式SQL> alter database recover managed standby database cancel;SQL> alter database open read only;3.12切换到同步模式(不需要停库)SQL> alter database recover managed standby database using current logfiledisconnect from session;。

Oracle11g_DataGuard配置方案

Oracle11g_DataGuard配置方案

Oracle Data Guard 实施与维护方案1.项目背景介绍在2台RedHat5.4上使用ORACLE 的DataGuard组件实现容灾。

设备配置(VMWare虚拟机环境)清单如下:2.Oracle DataGuard 介绍备用数据库(standby database)是ORACLE 推出的一种高可用性(HIGH AVAILABLE)数据库方案,在主节点与备用节点间通过日志同步来保证数据的同步,备用节点作为主节点的备份,可以实现快速切换与灾难性恢复。

●STANDBY DATABASE的类型:有两种类型的STANDBY:物理STANDBY和逻辑STANDBY两种类型的工作原理可通过如下图来说明:physical standby提供与主数据库完全一样的拷贝(块到块),数据库SCHEMA,包括索引都是一样的。

它是可以直接应用REDO实现同步的。

l ogical standby则不是这样,在logical standby中,逻辑信息是相同的,但物理组织和数据结构可以不同,它和主库保持同步的方法是将接收的REDO转换成SQL语句,然后在STANDBY上执行SQL语句。

逻辑STANDBY除灾难恢复外还有其它用途,比如用于用户进行查询和报表,但其数据库用户相关对象均需要有主键。

✧本次实施将选择物理STANDBY(physical standby)方式●对主库的保护模式可以有以下三种模式:–Maximum protection (最高保护)–Maximum availability (最高可用性)–Maximum performance (最高性能)✧基于项目应用的特征及需求,本项目比较适合采用Maximum availability (最高可用性)模式实施。

3.Dataguard 实施前提条件和注意事项:●灾备环境中的所有节点必须安装相同的操作系统,尽可能令详细补丁也保持相同。

●灾备环境中的所有节点必须安装完全相同版本的Oracle数据库软件,包括版本号和发布号,比如必须都是Oracle 11.2.0.1●主库必须处于归档(ARCHIVELOG)模式。

dataguard配置

dataguard配置

Oracle dataguard配置文档一、Dataguard简介 (3)二、dataguard原理 (3)三、dataguard配置要求 (4)1. 环境要求 (4)2. 环境规划 (4)3. dataguard配置要求 (4)4. 配置dataguard所需工具 (4)四、操作系统及oracle11g环境配置 (4)1.操作系统磁盘分区 (4)2.oracle11g环境能数配置 (4)1.向/etc/security/limits增加以下记录 (4)2.向/etc/sysctl.conf增加以下记录 (4)3.以oracle用户执行以下命令 (5)4.向/etc/pam.d/login增加以下记录 (5)5.向oracle参数文件bash.profile里增加以下记录 (5)五、安装oralce11g数据库 (5)1.要求在两台服务器上仅安装数据库软件。

(5)2.配置监听程序 (5)3.在主服务器上建库 (5)六、Dataguard配置 (6)1.数据库要处于完全归档状态 (6)2.对主数据库进行rman备份 (6)3.在主库上运行netmgr命令,进行如下配置 (6)4.生成数据库pfile, (7)5.修改主数据库pfile文件 (7)6.备库参数文件置 (8)7.在主库和备库上用netca建立本地服务名 (8)8. 在备库上以oracle用户建立与主库相对应的目录文件 (9)19. 将主库产生的rman备份文件,参数文件,密码文件,日志文件拷贝到备库 (9)10. 在备库上执行以下操作 (9)11. 备用数据库建立完毕。

(9)七、dataguard数据库故障排查 (10)1. 检查备用数据库和主用数据库的状态 (10)2. 测试dataguard日志是否传输 (10)3.测试dml,ddl语句是否传输 (10)八、dataguard主备库切换 (11)1. 将备库转换成主库模式 (11)2. 将主库转换成备库模式 (11)2一、Dataguard简介Dataguard是oracle集成化灾难恢复解决方案,该技术可以维护生产数据库一个或多个同步备份,由一个生产数据库和苦干备用数据库组成,并形成珍上独立的,易于管理的数据保护方案,支持异地远程容灾。

Oracle_11G_DataGuard配置

Oracle_11G_DataGuard配置

目录1.判断DataGuard是否安装 (2)2. 网络配置 (2)3.监听配置 (2)4.主库前期准备 (3)5. 创建口令文件 (3)6.修改主库初始化参数 (4)7.修改数据库运行在归档模式下 (4)8. 创建备份库需要的控制文件 (4)9. 备份生产数据库 (5)10.修改备库pfile (5)11.将控制文件 (5)12.在备库上创建口令文件 (5)13.在备库上创建spfile (5)14.启动物理备用数据库 (6)15.配置Standby Redo Log (6)16. Start Redo Apply (6)1.判断DataGuard是否安装select * from v$option where parameter = 'Oracle Data Guard';2. 网络配置192.168.1.10(orcl)------------------------------------192.168.1.20(dg)3.监听配置主库[oracle@node1 ~]$ cd /u01/app/product/11.2.0/db_1/network/admin [oracle@node1 admin]$ cat listener.oraLISTENER =(DESCRIPTION_LIST =(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = node1)(PORT = 1521))))[oracle@node1 admin]$ cat tnsnames.oraORCL =(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = node1)(PORT = 1521)))(CONNECT_DATA =(SERVICE_NAME = orcl)))DG =(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = node2)(PORT = 1521)))(CONNECT_DATA =(SERVICE_NAME = dg)))备库[oracle@node1 admin]$ cat listener.oraLISTENER =(DESCRIPTION_LIST =(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = node2)(PORT = 1521))))[oracle@node1 admin]$ cat tnsnames.oraORCL =(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = node1)(PORT = 1521)))(CONNECT_DATA =(SERVICE_NAME = orcl)))DG =(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = node2)(PORT = 1521)))(CONNECT_DATA =(SERVICE_NAME = dg)))4.主库前期准备设置强制写日志SQL> select FORCE_LOGGING from v$database;NOSQL> alter database force logging;SQL> select FORCE_LOGGING from v$database;YES5. 创建口令文件orapwd file=$ORACLE_HOME/dbs/orapwdb1 password=oracle entries=56.修改主库初始化参数创建主库pfilesql > create pfile from spfile;修改pfileDB_UNIQUE_NAME=orclLOG_ARCHIVE_CONFIG='DG_CONFIG=(orcl,dg)'LOG_ARCHIVE_DEST_1= 'LOCATION=/u01/app/archiveVALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=orcl'LOG_ARCHIVE_DEST_2= 'SERVICE=dg LGWR ASYNCVALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE)DB_UNIQUE_NAME=dg'LOG_ARCHIVE_DEST_STATE_1=ENABLELOG_ARCHIVE_DEST_STATE_2=ENABLELOG_ARCHIVE_FORMAT=%t_%s_%r.arcFAL_SERVER=dgFAL_CLIENT=orclSTANDBY_FILE_MANAGEMENT=AUTOPfile 拷贝到备库上scp –rp /u01/app/product/11.2.0/db_1/dbs/initorcl.ora node2:/u01/app/product/11.2.0/db_1/dbs/7.修改数据库运行在归档模式下SHUTDOWN IMMEDIATE;STARTUP MOUNT;ALTER DATABASE ARCHIVELOG;ALTER DATABASE OPEN;8. 创建备份库需要的控制文件创建控制文件Shutdown immediateSTARTUP MOUNT;ALTER DATABASE CREATE STANDBY CONTROLFILE AS '/tmp/orcl.ctl';ALTER DATABASE OPEN;创建主库pfileShutdown immediatestartup pfile='//u01/app/oracle/product/11.2.0/dbhome_1/dbs/20011.ora'sql> create spfile from pfile='//u01/app/oracle/product/11.2.0/dbhome_1/dbs/20011.ora';(先把原来的干掉)shutdown immediate;startup9. 备份生产数据库scp -rp /u01/oradata/ORCL node2:/u01/oradata/scp –rp /u01/app/admin/orcl node2:/u01/app/admin(记得在备库创建admin) 10.修改备库pfileDB_UNIQUE_NAME=orclLOG_ARCHIVE_CONFIG='DG_CONFIG=(orcl,dg)'LOG_ARCHIVE_FORMAT=log%t_%s_%r.arcLOG_ARCHIVE_DEST_1='LOCATION=/u01/app/archiveVALID_FOR=(ALL_LOGFILES,ALL_ROLES)DB_UNIQUE_NAME=dg'LOG_ARCHIVE_DEST_2='SERVICE=orcl ASYNCVALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE)DB_UNIQUE_NAME=orcl'LOG_ARCHIVE_DEST_STATE_1=ENABLELOG_ARCHIVE_DEST_STATE_2=ENABLEFAL_SERVER=orclFAL_CLIENT=dgSTANDBY_FILE_MANAGEMENT=AUTO11.将控制文件scp -rp /tmp/dg.ctl node2:/u01/oradata/ORCL/controlfile/scp -rp /tmp/dg.ctl node2:/u01/flash_recovery_area/orcl/controlfile/ 12.在备库上创建口令文件orapwd file=$ORACLE_HOME/dbs/orapwdb1 password=oracle entries=5 13.在备库上创建spfileShutdown immediatestartup pfile='//u01/app/oracle/product/11.2.0/dbhome_1/dbs/20011.ora'CREATE SPFILE FROM PFILE;14.启动物理备用数据库STARTUP MOUNT;15.配置Standby Redo Log在两边都配置standby redo log在主库查看日志组的数量和每个日志文件的大小SQL> SELECT GROUP#, BYTES FROM V$LOG;在备库库查看日志组的数量和每个日志文件的大小SQL> SELECT GROUP#, BYTES FROM V$STANDBY_LOG;创建日志组和redo log文件SQL> ALTER DATABASE ADD STANDBY LOGFILE group 4('/oracle/dbs/slog1.rdo') SIZE 50M; SQL> ALTER DATABASE ADD STANDBY LOGFILE group 5 ('/oracle/dbs/slog2.rdo') SIZE 50M; SQL>ALTER DATABASE ADD STANDBY LOGFILE group 6 ('/oracle/dbs/slog3.rdo') SIZE 50M; SQL> ALTER DATABASE ADD STANDBY LOGFILE group 7('/oracle/dbs/slog4.rdo') SIZE 50M;16. Start Redo ApplyALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE DISCONNECT FROM SESSION;查看哪些归档日志被APPLY了在备库SELECT SEQUENCE#,APPLIED FROM V$ARCHIVED_LOG ORDER BY SEQUENCE#;在主库强制日志切换到当前的online redo log file.ALTER SYSTEM ARCHIVE LOG CURRENT;在备库查看新的被归档的redo dataSELECT SEQUENCE#, FIRST_TIME, NEXT_TIME FROM V$ARCHIVED_LOG ORDER BY SEQUENCE#; 在备库查看接收到的被应用的redoSQL> SELECT SEQUENCE#,APPLIED FROM V$ARCHIVED_LOG ORDER BY SEQUENCE#;查看数据库的角色select database_role,protection_mode,protection_level from v$database;主备库切换1.查看主库的状态SQL> SELECT SWITCHOVER_STATUS FROM V$DATABASE;2.将主库切换至备用模式SQL> ALTER DATABASE COMMIT TO SWITCHOVER TO PHYSICAL STANDBY WITH -> SESSION SHUTDOWN;3.关闭、装载主数据库SQL> SHUTDOWN ABORT;SQL> STARTUP MOUNT;4.查看备库准备向主库模式切换SQL> SELECT SWITCHOVER_STATUS FROM V$DATABASE;SWITCHOVER_STATUS-----------------TO_PRIMARY1 row selected5.切换备库至主库模式SQL> ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY WITH SESSION SHUTDOWN;6.打开新的主数据库SQL> ALTER DATABASE OPEN;7. 在新的备库服务器上启动 REDO apply。

oracle11g dataguard 完全手册

oracle11g dataguard 完全手册

oracle11g dataguard 完全手册一、前言:网络上关于dataguard的配置文章很多,但是很多打着oracle11g的文章实际都是只能在9 10 上运行,比如FAL_CLIENT在11g中已经废弃,但是现在网络上的文章都是没有标注这一点。

而且对于具体含义语焉不详对于新手只能知其然而不知其所以然。

这篇文章我就想让像我这样的人对于dataguard配置不仅仅知道怎么配置,还要知道为什么需要这样配置,这样的效果才是最好的。

这篇文章不仅仅是记录如何配置,还介绍了为什么是这样,以及注意要点,我希望这个文章可以作为进行dataguard配置的一个参考手册。

二、前提1.主库是归档模式:如果我们不清楚为什么是归档模式,那我们就应该也不会清楚dataguard是用来做什么的。

透过很多修饰的官方语言,我们需要明确DG(dataguard简称,后同)实际上的作用就是用来高可用。

而实现原理就是从主库获取数据到从库,在主库发生异常的时候,从库接管主库,完成身份的变化。

可以一个主库,最多9个从库。

同时分为逻辑standby和物理standby这里我们讨论的是物理standby.一旦创建并配置成standby 后,dg 负责传输primary数据库redo data 到standby 数据库,standby 数据库通过应用接收到的redo data 保持与primary 数据库的事务一致。

这下清楚了吧,需要保证主从库一致,需要传输archive log和redo log到从库,如果不是归档模式无法保证主从库的数据一致。

2.从库只需要安装数据库软件,数据从主库传输后完成。

3.很多人说11g有了active dataguard(ADG),逻辑standby 实际上已经没什么用处了。

4.主从库硬件最好一致。

oracle数据库版本需要一致。

(1)内存检查项:# grep MemTotal /proc/meminfo交换分区检查项:如果内存在1-2G,swap是1.5倍;2-16G,1倍;超过16G,设置为16G即可。

11gdataguard最大性能模式部署

11gdataguard最大性能模式部署

11gdataguard最大性能模式部署记录下在一台主机上实现部署Oracle11g物理Active Data Guard的全过程,部署完毕后备库处于默认的最大性能模式。

同时使用了一下11g的Active Data Guard实时查询(Real-time query)特性。

1.Oracle 11g Data Guard主库配置过程:确保主库处于FORCE LOGGING模式确认方法如下:1查看当前数据库是否处于FORCE LOGGING模式sys@ora11g> col force_logging for a15sys@ora11g> select force_logging from v$database;FORCE_LOGGING---------------NO如果不是,打开force_logging:此处表明数据库运行在非FORCE LOGGING模式。

(2)调整数据库为FORCE LOGGING模式sys@ora11g> alter database force logging;Database altered.2.配置Redo传输认证Data Guard使用Oracle Net会话在主库和备库之间传输redo数据和控制信息,因此需要基于SSL(Secure Sockets Layer )或者密码文件进行认证。

当SSL认证无法满足时使用密码文件进行认证,因此需要确保所有备库的密码文件与主库保持一致。

当然在生产环境中,我们都是通过拷贝主库的密码文件进行的,所以此步骤省略3.配置主库用于接收Redo数据此步骤是可选步骤,Oracle建议在配置主库的时候就预见到总有一天它会成为备库(例如进行主备库之间的switchover切换),要求当主库成为备库之后不需要做其他配置就可以顺畅地接收主库传过来的Redo数据。

这也是Oracle最佳实践的一种体现。

1)查看日志组日志成员大小创建的Standby Redo Log大小要与主库的Redo大小保持一致sys@ora11g> select group#, bytes from v$log;GROUP# BYTES---------- ----------1 524288002 524288003 52428800此时主库每组日志的日志成员大小都是50M。

11G_RAC_DG环境配置以及维护文档

11G_RAC_DG环境配置以及维护文档

Oracle_rac_11g下的DG搭建与维护一.DG基础知识介绍1.Data Guard结构Data Guard是一个集合,由一个Primary数据库(生产数据库)及一个或多个Standby数据库(最多9个Standby)组成。

组成Data Guard的各个Oracle数据库之间,通过Oracle的网络服务名(Net Service Name)连接,并且有可能分布于不同地域,实际上只要各库之间能够相互通信,它们的物理位置并没有什么限制,至于操作系统就更无所谓了(某些情况下),只要支持安装Oracle数据库软件就行了。

1.Primary 数据库Primary数据库在某些资料中也被称为主数据库,相同Data Guard环境中至少要包含一个并且仅能有一个Primary数据库,实际上就是产生修改操作,并负责将这些操作传输到其他服务器的主数据库,该库既可以是单实例主数据库,也可以是RAC结构。

2.Standby 数据库Standby数据库在某些资料中也被称为从数据库,或者备数据库。

Standby数据库可以视作Primary数据库在某个时间点时的备份(事务上一致)。

在同一套Data Guard配置中最多可以创建9个Standby数据库。

一旦创建完成,Data Guard通过在Standby数据库端,应用Primary数据库生成的重做记录(REDO数据)的方式,自动维护每一个Standby数据库。

Standby数据库同样既可以是单实例数据库,也可以是RAC结构。

Standby数据库通常分两类:逻辑Standby和物理Standby,如何区分?两类各有什么特点?如何搭建?这方面内容在后续章节会主要介绍,在这里呢三思先简单白活一下。

逻辑Standby。

就像请人帮你素描画像,基本器官是都会有的,这点你放心,但是各器官位置啦,大小啦,肤色啦,就不一定跟你本人一致了。

具体到数据库,就是说内容可能相同,但结构可能有差异。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1.判断DataGuard是否安装select * from v$option where parameter = 'Oracle Data Guard';2.网络配置192.168.1.10(orcl)------------------------------------192.168.1.20(dg)3.监听配置主库[oracle@node1 ~]$cd/u01/app/product/11.2.0/db_1/network/admin [oracle@node1 admin]$cat listener.oraLISTENER =(DESCRIPTION_LIST =(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = node1)(PORT = 1521)) ))[oracle@node1 admin]$cat tnsnames.oraORCL=(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = node1)(PORT = 1521)) )(CONNECT_DATA =(SERVICE_NAME = orcl)))DG =(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = node2)(PORT = 1521)) )(CONNECT_DATA =(SERVICE_NAME = dg)))备库[oracle@node1 admin]$cat listener.oraLISTENER =(DESCRIPTION_LIST =(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = node2)(PORT = 1521)) ))[oracle@node1 admin]$cat tnsnames.oraORCL=(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = node1)(PORT = 1521)) )(CONNECT_DATA =(SERVICE_NAME = orcl)))DG =(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = node2)(PORT = 1521)) )(CONNECT_DATA =(SERVICE_NAME = dg)))4.主库前期准备设置强制写日志SQL> select FORCE_LOGGING fromv$database;NOSQL>alter databaseforce logging;SQL>select FORCE_LOGGING from v$database;YES5.创建口令文件orapwdfile=$ORACLE_HOME/dbs/orapwdb1 password=oracle entries=56.修改主库初始化参数创建主库pfilesql> create pfile from spfile;修改pfileDB_UNIQUE_NAME=orclLOG_ARCHIVE_CONFIG='DG_CONFIG=(orcl,dg)'LOG_ARCHIVE_DEST_1= 'LOCATION=/u01/app/archiveVALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=orcl'LOG_ARCHIVE_DEST_2= 'SERVICE=dg LGWRASYNCVALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE)DB_UNIQUE_NAME=dg'LOG_ARCHIVE_DEST_STATE_1=ENABLELOG_ARCHIVE_DEST_STATE_2=ENABLELOG_ARCHIVE_FORMAT=%t_%s_%r.arcFAL_SERVER=dgFAL_CLIENT=orclSTANDBY_FILE_MANAGEMENT=AUTOPfile 拷贝到备库上scp–rp/u01/app/product/11.2.0/db_1/dbs/initorcl.oranode2:/u01/app/product/11.2 .0/db_1/dbs/7.修改数据库运行在归档模式下SHUTDOWN IMMEDIATE;STARTUP MOUNT;ALTER DATABASE ARCHIVELOG;ALTER DATABASE OPEN;8.创建备份库需要的控制文件创建控制文件Shutdown immediateSTARTUP MOUNT;ALTER DATABASE CREATE STANDBY CONTROLFILE AS '/tmp/orcl.ctl';ALTER DATABASE OPEN;创建主库pfileShutdown immediatestartuppfile='//u01/app/oracle/product/11.2.0/dbhome_1/dbs/20011.ora'sql> create spfile from pfile='//u01/app/oracle/product/11.2.0/dbhome_1/dbs/20011.ora';(先把原来的干掉)shutdown immediate;startup9.备份生产数据库scp -rp /u01/oradata/ORCLnode2:/u01/oradata/scp–rp /u01/app/admin/orcl node2:/u01/app/admin(记得在备库创建admin)10.修改备库pfileDB_UNIQUE_NAME=orclLOG_ARCHIVE_CONFIG='DG_CONFIG=(orcl,dg)'LOG_ARCHIVE_FORMAT=log%t_%s_%r.arcLOG_ARCHIVE_DEST_1='LOCATION=/u01/app/archiveVALID_FOR=(ALL_LOGFILES,ALL_ROLES)DB_UNIQUE_NAME=dg'LOG_ARCHIVE_DEST_2='SERVICE=orclASYNCVALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE)DB_UNIQUE_NAME=orcl'LOG_ARCHIVE_DEST_STATE_1=ENABLELOG_ARCHIVE_DEST_STATE_2=ENABLEFAL_SERVER=orclFAL_CLIENT=dgSTANDBY_FILE_MANAGEMENT=AUTO11.将控制文件scp-rp/tmp/dg.ctl node2:/u01/oradata/ORCL/controlfile/scp-rp/tmp/dg.ctl node2:/u01/flash_recovery_area/orcl/controlfile/12.在备库上创建口令文件orapwdfile=$ORACLE_HOME/dbs/orapwdb1 password=oracle entries=513.在备库上创建spfileShutdown immediatestartuppfile='//u01/app/oracle/product/11.2.0/dbhome_1/dbs/20011.ora'CREATE SPFILE FROM PFILE;14.启动物理备用数据库STARTUP MOUNT;15.配置Standby Redo Log在两边都配置standby redo log在主库查看日志组的数量和每个日志文件的大小SQL> SELECT GROUP#, BYTES FROM V$LOG;在备库库查看日志组的数量和每个日志文件的大小SQL> SELECT GROUP#, BYTES FROM V$STANDBY_LOG;创建日志组和redo log文件SQL> ALTER DATABASE ADD STANDBY LOGFILEgroup 4('/oracle/dbs/slog1.rdo') SIZE 50M; SQL> ALTER DATABASE ADD STANDBY LOGFILE group 5 ('/oracle/dbs/slog2.rdo') SIZE 50M; SQL>ALTER DATABASE ADD STANDBY LOGFILE group6 ('/oracle/dbs/slog3.rdo') SIZE 50M; SQL> ALTER DATABASE ADD STANDBY LOGFILE group7('/oracle/dbs/slog4.rdo') SIZE 50M;16. Start Redo Apply---备机启动实时同步重启备机机器后,oracle 在备机执行实时同步:startupALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE DISCONNECT FROM SESSION;在备机执行取消实时同步:alter database recover managed standby database cancel;查看哪些归档日志被APPLY了,在主、备库都可以查,判断主、备库是否数据同步的一致性:SELECT SEQUENCE#,APPLIED FROM V$ARCHIVED_LOG ORDER BY SEQUENCE#;SELECTmax(SEQUENCE#) FROM V$ARCHIVED_LOG ORDER BY SEQUENCE#;查看是否使用Real-Time apply:Select recovery_mode from v$archive_dest_status;主库:SQL> Select recovery_mode from v$archive_dest_status;RECOVERY_MODE-----------------------IDLEMANAGED REAL TIME APPLYIDLE备库:SQL> Select recovery_mode from v$archive_dest_status;RECOVERY_MODE-----------------------MANAGED REAL TIME APPLYIDLE在主库强制日志切换到当前的online redo log file.ALTER SYSTEMARCHIVE LOG CURRENT;在备库查看新的被归档的redo dataSELECT SEQUENCE#, FIRST_TIME, NEXT_TIME FROM V$ARCHIVED_LOG ORDER BY SEQUENCE#;在备库查看接收到的被应用的redoSQL> SELECT SEQUENCE#,APPLIED FROM V$ARCHIVED_LOG ORDER BY SEQUENCE#;查看数据库的角色selectdatabase_role,protection_mode,protection_level from v$database;主备库切换,先把所有应用都关掉,所有连接数据库的都关掉。

相关文档
最新文档