DATAGUARD实施文档
DATAGUARD实施文档
一、前期准备及备机安装:
通过获取到的主机信息规划备机数据库安装基础信息:(注:在安装备机时需要尽量保障与主机库信息一致,以下表格中的备机信息为根据主机信息规划的安装信息。)
|
类别 |
IP |
数据库名 |
数据库SID |
安装位置 |
版本 |
DATAGUARD安装情况 |
|
主机 |
10.10.60.60 |
PORTALDB |
PORTALDB |
D:\app |
11.2.0.1.0 64位 |
OK |
|
备机 |
10.10.60.61 |
PORTALDB |
PORTALDB1 |
D:\app |
11.2.0.1.0 64位 |
OK |
查询主机ORACLE版本命令:
|
SQL> select banner from sys.v_$version; |
查询DATAGUARD安装情况:
|
SQL> select * from v$option where parameter = 'Oracle Data Guard'; |
安装数据库(备机)
根据以上表格中规划的信息安装备机数据库,具体安装过程略。
二、备份主机数据库:
1.冷备数据库。(先关闭数据库及对应服务,之后将D:\app下的所有文件进行备份。
2.导出数据库。
exp system/密码inctype=complete file=E:\OracleBakup\Full.dmp FULL=Y
三、配置过程
1.修改主机日志为归档模式,并设置强制写日志。
|
C:\>sqlplus /nolog SQL>startup SQL>alter SQL>alter SQL>alter database force logging; |
验证修改后的情况:
|
SQL> archive log list; 数据库日志模式存档模式 自动存档启用 存档终点 最早的联机日志序列 43 下一个存档日志序列 45 当前日志序列 SQL> |
2.修改主机的init文件,由于默认spfile启动,先创建pfile:
|
Sql>create pfile from spfile; |
然后修改D:\app\Administrator\product\11.2.0\dbhome_1\database\INITportaldb.ora
以下文件内容中红色字体是新追加的内容,黑色是默认存在的内容。
|
portaldb.__db_cache_size=5368709120 portaldb.__java_pool_size=67108864 portaldb.__large_pool_size=33554432 portaldb.__oracle_base='D:\app\Administrator'#ORACLE_BASE portaldb.__pga_aggregate_target=5502926848 portaldb.__sga_target=8254390272 portaldb.__shared_io_pool_size=0 portaldb.__shared_pool_size=2617245696 portaldb.__streams_pool_size=67108864 *.audit_file_dest='D:\app\Administrator\admin\PORTALDB\adump' *.audit_trail='db' *.compatible='11.2.0.0.0' *.control_files='D:\app\Administrator\oradata\PORTALDB\control01.ctl','E:\oraclebackup\PORTALDB\control02.ctl' *.db_block_size=8192 *.db_domain='' *.db_name='PORTALDB' *.db_recovery_file_dest='E:\oraclebackup' *.db_recovery_file_dest_size=4102029312 *.diagnostic_dest='D:\app\Administrator' *.dispatchers='(PROTOCOL=TCP) *.job_queue_processes=1000 *.memory_target=13739491328 *.open_cursors=300 *.processes=150 *.remote_login_passwordfile='EXCLUSIVE' *.undo_tablespace='UNDOTBS1' DB_UNIQUE_NAME=PORTALDB LOG_ARCHIVE_CONFIG='DG_CONFIG=(PORTALDB,PORTALDB1)' LOG_ARCHIVE_DEST_1= LOG_ARCHIVE_DEST_2= 'SERVICE=PORTALDB1 LOG_ARCHIVE_DEST_STATE_1=ENABLE LOG_ARCHIVE_DEST_STATE_2=ENABLE LOG_ARCHIVE_FORMAT=%t_%s_%r.arc FAL_SERVER=PORTALDB1 FAL_CLIENT=PORTALDB STANDBY_FILE_MANAGEMENT=AUTO |
删除D:\app\Administrator\product\11.2.0\dbhome_1\database\SPFILEportaldb.ora,让数据库用INITportaldb.ora参数启动,再通过pfile生成spfile.
|
Sql>create spfile from pfile; |
3. 把主机上的database移植到standby中:
把主机上的portaldb的库关闭。
把主机上的portaldb的相关datafile拷贝到standby机器上。文件路径要一致。
3.1. 数据文件: D:\app\Administrator\oradata
3.2. 参数文件:D:\app\Administrator\product\11.2.0\dbhome_1\database\INITportaldb.ora
3.3. 跟踪文件:D:\app\Administrator\admin
3.4. 密码文件:D:\app\Administrator\product\11.2.0\dbhome_1\database\PWDportaldb.ora
3.5. 闪回文件:D:\app\Administrator\flash_recovery_area
4.在主库上建立备库控制文件(控制文件通常需要有多份,手工将文件复制几份)
|
SQL> alter database create standby controlfile |
拷贝如上文件到备机相应目录中。(d:/app/CONTOL.CTL)
5. 修改备机的init文件,以下是备机的init文件。
注意以下红色部分为新添加的内容。
|
portaldb.__db_cache_size=5368709120 portaldb.__java_pool_size=67108864 portaldb.__large_pool_size=33554432 portaldb.__oracle_base='D:\app\Administrator'#ORACLE_BASE portaldb.__pga_aggregate_target=5502926848 portaldb.__sga_target=8254390272 portaldb.__shared_io_pool_size=0 portaldb.__shared_pool_size=2617245696 portaldb.__streams_pool_size=67108864 *.audit_file_dest='D:\app\Administrator\admin\PORTALDB\adump' *.audit_trail='db' *.compatible='11.2.0.0.0' *.control_files='D:\app\control.ctl','E:\oraclebackup\PORTALDB\control.ctl' *.db_block_size=8192 *.db_domain='' *.db_name='PORTALDB' *.db_recovery_file_dest='E:\oraclebackup' *.db_recovery_file_dest_size=4102029312 *.diagnostic_dest='D:\app\Administrator' *.dispatchers='(PROTOCOL=TCP) *.job_queue_processes=1000 *.memory_target=13739491328 *.open_cursors=300 *.processes=150 *.remote_login_passwordfile='EXCLUSIVE' *.undo_tablespace='UNDOTBS1' *.log_file_name_convert = DB_UNIQUE_NAME=PORTALDB1 LOG_ARCHIVE_CONFIG='DG_CONFIG=(PORTALDB,PORTALDB1)' LOG_ARCHIVE_FORMAT=log%t_%s_%r.arc LOG_ARCHIVE_DEST_1= 'LOCATION=D:\app\Administrator\flash_recovery_area VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=PORTALDB1' LOG_ARCHIVE_DEST_2= 'SERVICE=PORTALDB LGWR ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=PORTALDB' LOG_ARCHIVE_DEST_STATE_1=ENABLE LOG_ARCHIVE_DEST_STATE_2=ENABLE FAL_SERVER=PORTALDB FAL_CLIENT=PORTALDB1 STANDBY_FILE_MANAGEMENT=AUTO |
删除D:\app\Administrator\product\11.2.0\dbhome_1\database\SPFILEportaldb.ora,让数据库用INITportaldb.ora参数启动。
6.修改主机监听文件和TNS文件,以下是两个文件所在的目录:
C:\app\Administrator\product\11.2.0\dbhome_1\NETWORK\ADMIN
首先修改监听文件:listener 。修改好的监听文件如下:
|
# listener.ora Network Configuration # Generated by Oracle configuration SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (SID_NAME = (ORACLE_HOME = (PROGRAM = extproc) (ENVS = ) ) LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL (ADDRESS = (PROTOCOL ) ) ADR_BASE_LISTENER = |
再修改tnsnames文件,修改好的文件内容如下:
|
# tnsnames.ora Network Configuration # Generated by Oracle configuration PORTALDB = (DESCRIPTION = (ADDRESS = (PROTOCOL = (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = ) ) PORTALDB1 = (DESCRIPTION = (ADDRESS = (PROTOCOL = (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = ) ) ORACLR_CONNECTION_DATA = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL ) (CONNECT_DATA = (SID = CLRExtProc) (PRESENTATION = RO) ) ) |
7.修改备机监听文件和TNS文件,以下是两个文件所在的目录:
C:\app\Administrator\product\11.2.0\dbhome_1\NETWORK\ADMIN
首先修改监听文件:listener 。修改好的监听文件如下:
|
# listener.ora Network # Generated by Oracle configuration SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (SID_NAME = (ORACLE_HOME = (PROGRAM = extproc) (ENVS = ) ) LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL (ADDRESS = (PROTOCOL ) ) ADR_BASE_LISTENER = |
再修改tnsnames文件,修改好的文件内容如下:
|
# tnsnames.ora Network # Generated by Oracle configuration PORTALDB1 = (DESCRIPTION = (ADDRESS = (PROTOCOL = (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = ) ) PORTALDB = (DESCRIPTION = (ADDRESS = (PROTOCOL = (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = ) ) ORACLR_CONNECTION_DATA = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = ) (CONNECT_DATA = (SID = CLRExtProc) (PRESENTATION = RO) ) ) |
注:以上主机和备机的tnsnames是一致的。
8. 测试主机primary和备机standby是否能互访:
分别在主机和备机上执行如下PING命令查看显示是否正常
|
C:\> tnsping PORTALDB C:\> tnsping PORTALDB1 |
若不能PING通,重启SERVICES.MSC里的ORACLE监听服务再次测试。
9. 启动备机:
|
C:\> sqlplus "/ as sysdba" SQL> alter database recover |
10.优化配置Standby RedoLog(主备机)
添加主机的Standby Redo
Log 文件:
|
ALTER DATABASE ADD STANDBY LOGFILE GROUP ALTER DATABASE ADD STANDBY LOGFILE GROUP ALTER DATABASE ADD STANDBY LOGFILE GROUP ALTER DATABASE ADD STANDBY LOGFILE GROUP |
查看添加后的情况:
|
SQL> select group#,type, member |
修改Online redo:
|
SQL> select GROUP# THREAD# ARC STATUS ---------- ---------- --- 1 2 3 |
先处理inactive,它表示已经完成规定的,可以删除。(因至少要两个redo组,所以删除号时需一个一个删除。如果同时删除两个,会报错。)
|
SQL> alter database drop logfile Database altered. |
找到指定物理目录删除对应的REDO01文件。再创建新的REDO01
|
alter database add logfile |
再次查看REDO使用状况:
|
SQL> select GROUP# THREAD# ---------- ---------- --- 1 2 3 |
此时GROUP1已经创建成功。
按此方法删除GROUP3并创建GROUP3.
切换一下logfile,再删除group2
|
SQL> alter system switch System altered. SQL> select GROUP# THREAD# ---------- ---------- --- 1 2 -- group 正在归档,需要等会再看一下 3 |
当查看归档完成时:
|
SQL> select GROUP# THREAD# ---------- ---------- --- 1 2 3 |
再按上边的方法删除REDO02再建立REDO02的GROUP2组。
建立完查看情况SQL> select
group#,type, member fromv$logfile; 若7个REDO文件都在并且大小也是100M,表示主机的所有REDO已经建立完成。
接下来建立备机的REDO文件:
先看一下备机在使用的REDO文件
|
SQL> select GROUP# THREAD# ---------- ---------- --- 1 3 2 |
停掉redo 的apply:
|
SQL> alter database recover |
不然删除GROUP会报如下错误:
|
SQL> alter database drop alter database drop * ERROR at line 1: ORA-01156: recovery |
添加备机的Standby Redo
Log 文件:
|
ALTER DATABASE ADD STANDBY LOGFILE ALTER DATABASE ADD STANDBY LOGFILE ALTER DATABASE ADD STANDBY LOGFILE ALTER DATABASE ADD STANDBY LOGFILE |
处理online redo:
先将standby_file_management设为手动:
|
SQL> alter system set System altered. |
不然会报如下错误:
|
SQL> alter database drop logfile alter database drop logfile group 2 * ERROR at line 1: ORA-01275: Operation DROP LOGFILE |
关闭数据库,编辑PFILE配置。添加如下路径转换信息,并保存重新启动数据库。
|
SQL> shutdown immediate ORA-01109: database not open Database dismounted. ORACLE instance shut down. |
编辑PFILE(注:该步骤的目的是因为ORACLE11若不添加转换路径是不允许执行删除备机ONLINE REDO)
|
*.log_file_name_convert |
用PFILE启动备库:
|
SQL> startup nomount SQL> alter database mount |
修改备库的STD管理为手动:
|
SQL> ALTER SYSTEM SET |
再按照主库的删除和创建GROUP REDO组的方法分别删除和建立REDO组,当所有REDO组都建立好后。将STANDBY的文件管理再次改为AUTO。
|
SQL> ALTER SYSTEM SET |
开启备库管理模式
|
SQL> alter database recover Database altered. |
11. 检查DATAGUARD文档同步
在主机上变更使用的REDO文件
|
SQL> alter system switch logfile; System altered. |
在主机上查看SEQUENCE
|
SQL> select max(sequence#) from MAX(SEQUENCE#) -------------- 15 |
在备机上查看SEQUENCE:
|
SQL> select sequence#,applied from SEQUENCE# APP ---------- --- 2 YES 3 YES 5 YES 4 YES 7 YES 6 YES 8 YES 9 YES 13 YES 10 YES 11 YES SEQUENCE# APP ---------- --- 12 YES 14 YES 15 YES 14 rows selected. |
主机上检查归档目录可用情况:
|
SQL> DEST_NAME -------------------------------------------------------------------------------- --------- LOG_ARCHIVE_DEST_1 VALID LOG_ARCHIVE_DEST_2 VALID |
查看实时归档目录个数:(主备机查看实时归档LOG是否相同)
|
archive log list; |
经查归档已经完全同步并生效,至此DATAGUARD设置完成。
DATAGUARD实施文档的更多相关文章
- Oracle 11g 单实例到单实例OGG同步实施文档-OGG initial load
Oracle 11g 单实例到单实例OGG同步实施文档-OGG initial load 2018-06-07 00:514730原创GoldenGate 作者: leo 本文链接:https://w ...
- Oracle 11g 单实例到单实例OGG同步实施文档-RMAN 初始化
Oracle 11g 单实例到单实例OGG同步实施文档-RMAN 初始化 2018-06-07 13:455170原创GoldenGate 作者: leo 本文链接:https://www.cndba ...
- Oracle 11g 单实例到单实例OGG同步实施文档-EXPDP初始化
Oracle 11g 单实例到单实例OGG同步实施文档-EXPDP初始化 2018-06-07 00:446470原创GoldenGate 作者: leo 本文链接:https://www.cndba ...
- PROD异机全备份恢复验证实施文档
PROD异机全备份恢复验证实施文档 ******利用10月25日的全量备份.10月26日当天的归档日志及当前redo日志,恢复数据库到故障前数据库状态****** 准备工作:source 源库:PRO ...
- Oracle11g ADG环境实施文档-1204
Oracle11g adg 环境搭建实施手册-1204 2017年8月30日 9:16 11g adg 环境搭建实施手册-0824 2017年8月24日 10:18 ################# ...
- metabase实施文档
安装提前:需要安装JDK1.8以上 软件下载地址: https://metabase.com 还需要下载 ojdbc7.jar,以支持Oracle驱动 下载地址:http://www.oracle.c ...
- keepalived+lvs+usp安装实施文档
操作系统平台:RedHat6.4 x86_64 软件:LVS+keepalived LVS+Keepalived 介绍 LVS LVS是Linux Virtual Server的简写,意即Linux ...
- 装部署VMware vSphere 5.5文档 (6-2) 为IBM x3850 X5服务器安装配置VMware ESXi
部署VMware vSphere 5.5 实施文档 ########################################################################## ...
- 安装部署VMware vSphere 5.5文档 (6-3) 安装配置AD域控制器
部署VMware vSphere 5.5 实施文档 ########################################################################## ...
随机推荐
- ABAP的语法高亮是如何在浏览器里显示的
这篇文章的原文我发表在SAP官方社区上:https://blogs.sap.com/2018/03/09/how-abap-syntax-highlight-is-implemented-in-web ...
- 一个查看UI5控件所有公有方法的小技巧
一个很小的tip:比如我想把UI5表格控件里的每列设置成宽度根据显示的内容自适应,需要知道应该调用控件的哪个方法来实现. 一种办法当然是查SAP帮助文档,得知需要调用控件的公有方法setAutoSiz ...
- HDU 4278 卡特兰,区间DP
题意:每个人有一个DI值,现在有一个小黑屋,这些人的顺序可以利用这个小黑屋调整,调整方式是入栈出栈方式,也就是说,这里的方案是有卡特兰数个方式. 调整后使得 d1*0 + d2*1 + d3*2 + ...
- 六、修改 IntelliJ IDEA 模板注释中的 user 内容
咱们进一步了解了 IntelliJ IDEA 的个性化设置功能,包括主题和字体的常用设置等,修改后,具体的效果,如下图所示: 观察上图,不知道大家有没有注意到:IntelliJ IDEA 自带模板注释 ...
- Feign Form表单POST提交
Form表单的POST提交,调用该类接口最长用的方式就是HttpClient,如果使用Feign,如何实现呢? 首先,看下Http中已Form的形式做Post提交的定义: -------------- ...
- C#实现异步GET的方法
using System; using System.Collections.Generic; using System.Configuration; using System.IO; using S ...
- android imageview使用的时候 引用资源src和background的区别
android imageview使用的时候 引用资源时src和background的区别 src更强调内容并且不行拉伸图片进行适配,而background更注重引用图片,会对图片进行拉伸
- 终于好像懂motan了!!!
我依稀记得,刚到公司的时候,锋哥让我学习Maven,spring,spring MVC,mybatis,RPC:motan,Xdiamond,Jenkins,redis和Kafka.快3个月了,目前只 ...
- 使用 Cordova(PhoneGap)构建Android程序
移动终端开发随着智能手机的普及变得越来越热,什么项目都想移动一把,但反观要去学这些各个终端的控件使用,实属不易,又特别是每个终端的控件及所用语言都各不相同,使得这种学习变得更加困难. 有没有一种简单的 ...
- python 如何在列表list,字典dict,集合set 中根据条件筛选数据
from random import randint """ list 过滤掉负数 """ data = [randint(-10, 10) ...