5.1 DG主库配置(主库操作)

5.1.1 配置Oracle Data Guard

# 登录数据库

sqlplus / as sysdba

# 查看数据库归档模式,确认Archivelog已启用

select name,log_mode from v$database;

# 查看数据库是否已启用Oracle Data Guard

select * from v$option where parameter = 'Oracle Data Guard';

# 检查数据库是否启用强制日志(为了保障日志安全和数据完整性,强烈建议启用,默认False)

select name,force_logging from v$database;

# 启用强制日志

alter database force logging;

# 再次确认数据库是否启用强制日志

select name,force_logging from v$database;

# 查看Redo Log文件大小

select group#,bytes/1024/1024 as Mb from v$log;

# 创建与Redo Log文件大小完全相同的Standby Redo Log文件(注意:大小必须一致)

alter database add standby logfile group 11 'D:/Oracle/oradata/PMS/standby11.log' size 50M;
alter database add standby logfile group 12 'D:/Oracle/oradata/PMS/standby12.log' size 50M;
alter database add standby logfile group 13 'D:/Oracle/oradata/PMS/standby13.log' size 50M;
alter database add standby logfile group 14 'D:/Oracle/oradata/PMS/standby14.log' size 50M;

注:Standby Redo Logs(SRL)即备份的重做日志,创建SRL后,主库上写入每个Online Redo Log时都会被传输到备库,同时也会写入到SRL中。

SRL是额外的Redo Log,但SRL的创建有以下几个原则:
1)Standby Redo Log File要与Online Redo Log File一样大
查询方法:SELECT GROUP#, BYTES/1024/1024 M FROM V$LOG;

2)Standby Redo Log Group的数量至少要比Online Redo Log Group的数量多1组
查询方法:SELECT GROUP#, BYTES/1024/1024 M FROM V$LOG;

3)当主库添加了Redo Log Group,备库也必须添加相应的Redo Log Group,否则会导致备库在主库switch log后不同步。
SRL创建方法:alter database add standby logfile group 14 'D:/Oracle/oradata/PMS/standby14.log' size 50M;(创建一个节点)
SRL删除方法:alter database drop standby logfile group 14;
SRL查看方法:select group#,bytes/1024/1024 as Mb from v$standby_log;

4)归档位置原则
    a)如果配置了STANDBY_ARCHIVE_DEST,则归档将使用该目录位置
    b)如果LOG_ARCHIVE_DEST_n参数明确定义了VALID_FOR=(STANDBY_LOGFILE,*)选项,则归档将使用LOG_ARCHIVE_DEST_n目录位置
    c)如果STANDBY_ARCHIVE_DEST和LOG_ARCHIVE_DEST_n都没有配置,则使用STANDBY_ARCHIVE_DEST的缺省位置%ORACLE_HOME%\database\archive(Linux位于%ORACLE_HOME%\dbs\arc)
    d)如果需要将Standby Redo Log归档到FRA(Fast Recovery Area):
        Ⅰ)设置LOG_ARCHIVE_DEST_n的LOCATION参数为USE_DB_RECOVERY_FILE_DEST
        Ⅱ)设置LOG_ARCHIVE_DEST_n的VALID_FOR参数为“允许归档”。即VALID_FOR=(ALL_LOGFILES,ALL_ROLES)

    e)如果需要将Standby Redo Log归档到本地指定位置:
        Ⅰ)设置LOG_ARCHIVE_DEST_n的LOCATION参数为USE_DB_RECOVERY_FILE_DEST。
                即LOG_ARCHIVE_DEST_1='LOCATION=D:/Oracle/oradata/PMS VALID_FOR=(STANDBY_LOGFILE,STANDBY_ROLE)'
        Ⅱ)设置LOG_ARCHIVE_DEST_n的VALID_FOR参数为“允许归档”。
                即VALID_FOR=(STANDBY_LOGFILE,STANDBY_ROLE)

5.1.2 确认主库密码文件

一般情况下密码文件在:%ORACLE_HOME%/database/PWDPMS.ora,linux系统密码文件在:%ORACLE_HOME%/dbs/orapwpms.ora
如果密码文件丢失,可通过orapwd命令恢复出来

orapwd file=%ORACLE_HOME%/database/PWDPMS.ora password=000000;

将密码文件拷贝到备库服务器

拷贝过程略(Ctrl + C、Ctrl + V)

5.1.3 修改主库监听

5.1.3.1 修改监听文件

修改D:\Oracle\product\11.2.0\dbhome_1\NETWORK\ADMIN\listener.ora文件

SID_LIST_LISTENER =(SID_LIST =(SID_DESC =(GLOBAL_DBNAME = PMS)       ### 增加该行,增加数据库全局名称(SID_NAME = PMS)            ### 增加该行,修改数据库实例SID
#      (SID_NAME = CLRExtProc)    ### 取消该行(ORACLE_HOME = D:\Oracle\product\11.2.0\dbhome_1)
#      (PROGRAM = extproc)        ### 取消该行
#      (ENVS = "EXTPROC_DLLS=ONLY:D:\Oracle\product\11.2.0\dbhome_1\bin\oraclr11.dll")  ### 取消该行))LISTENER =(DESCRIPTION_LIST =(DESCRIPTION =(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.245)(PORT = 1521))    ### 修改HOST为主库IP地址))ADR_BASE_LISTENER = D:\Oracle

5.1.3.2 修改TNS文件

修改D:\Oracle\product\11.2.0\dbhome_1\NETWORK\ADMIN\tnsnames.ora文件

# tnsnames.ora Network Configuration File: D:\Oracle\product\11.2.0\dbhome_1\network\admin\tnsnames.ora
# Generated by Oracle configuration tools.# 修改主库连接名称
PMS_PRIMARY =(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.245)(PORT = 1521))(CONNECT_DATA =
#      (SERVER = DEDICATED)        ### 取消该行(SERVICE_NAME = PMS)))# 增加备库连接信息
PMS_STANDBY =(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.55)(PORT = 1521))(CONNECT_DATA =(SERVICE_NAME = PMS)))ORACLR_CONNECTION_DATA =(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521)))(CONNECT_DATA =(SID = CLRExtProc)(PRESENTATION = RO)))

将监听文件listener.ora和tnsnames.ora两个文件拷贝到备库服务器

拷贝过程略(Ctrl + C、Ctrl + V)

5.1.4 测试主库监听

lsnrctl stop            # 关闭监听
lsnrctl start           # 启动监听(重启监听)
lsnrctl status          # 查看监听状态
tnsping pms             # 测试PMS监听,通过
tnsping pms_standby     # 测试PMS_STANDBY监听,测试不通过(备库还未配置)

5.1.5 修改主库参数文件(spfile)

我们可以像配置数据库归档一样,用alter system set命令的方式修改直接参数文件(spfile),但是此处修改内容较多,为了方便,建议先创建并修改pfile,然后通过pfile再重建spfile。

sqlplus / as sysdba
create pfile='d:/pfile.ora' from spfile;

修改pfile.ora文件

pms.__db_cache_size=35567697920
pms.__java_pool_size=805306368
pms.__large_pool_size=939524096
pms.__oracle_base='D:\Oracle'#ORACLE_BASE set from environment
pms.__pga_aggregate_target=13824425984
pms.__sga_target=41339060224
pms.__shared_io_pool_size=0
pms.__shared_pool_size=3623878656
pms.__streams_pool_size=134217728
*.audit_file_dest='D:\Oracle\admin\PMS\adump'
*.audit_trail='db'
*.compatible='11.2.0.4.0'
*.control_files='D:\Oracle\oradata\PMS\control01.ctl','D:\Oracle\fast_recovery_area\PMS\control02.ctl'
*.db_block_size=8192
*.db_domain=''
*.db_name='PMS'                    # 注意,主备必须一致
*.db_unique_name='PMS_PRIMARY'     # 注意,主备全局名称不能一样
*.fal_server='PMS_PRIMARY'         # 设定主库名称
*.fal_client='PMS_STANDBY'         # 设定备库名称
*.db_file_name_convert='D:\Oracle\oraback','D:\Oracle\oraback'    # 设置数据库备份文件恢复路径(主备库路径不一致时可通过此处进行转换)
*.log_file_name_convert='D:\Oracle\oralog','D:\Oracle\oralog'     # 设置日志备份文件恢复路径(主备库路径不一致时可通过此处进行转换)
*.standby_file_management='AUTO'        # 启动热备功能
*.db_recovery_file_dest_size=4385144832
*.db_recovery_file_dest=''
*.deferred_segment_creation=FALSE
*.diagnostic_dest='D:\Oracle'
*.dispatchers='(PROTOCOL=TCP) (SERVICE=PMSXDB)'
*.log_archive_config='dg_config=(PMS_PRIMARY,PMS_STANDBY)'        # 设置日志配置
*.log_archive_dest_1='location=D:/Oracle/oralog valid_for=(all_logfiles,all_roles) db_unique_name=PMS_PRIMARY'            # 设置日志推送通道1,主库通道设定
*.log_archive_dest_2='service=PMS_STANDBY lgwr sync valid_for=(online_logfile,primary_role) db_unique_name=PMS_STANDBY'         # 设置日志推送通道2,备库通道设定
*.log_archive_dest_state_1='enable'    # 启用日志推送通道1
*.log_archive_dest_state_2='enable'    # 启用日志推送通道2
*.log_archive_dest=''            # 关闭默认归档通道
*.log_archive_format='%t_%s_%r.arch'   # 格式化归档日志文件格式
*.open_cursors=300
*.pga_aggregate_target=13742637056
*.processes=2000            # 设置数据库最大连接数
*.remote_login_passwordfile='EXCLUSIVE'
*.sec_case_sensitive_logon=FALSE
*.sga_target=41227911168
*.undo_tablespace='UNDOTBS1'

注意:以上配置中参数名称、单引号内、等号两侧均不能有空格(强烈不建议直接拷贝我的配置,请自行使用自己的配置进行修改,配置文件中的注释请自行删除)
修改完成以上配置后,关闭数据库,将本次配置通过重建spfile方式导入到数据库中

shutdown immediate
create spfile from pfile='d:/pfile.ora';

数据库spfile信息已更新(先不要正常启动数据库)。
现在顺便生成供备库使用的控制文件:

startup mount;
alter database create standby controlfile as 'D:/standby/CONTROL01.CTL';

注意:
1)控制文件一般需要多分,我们将生成的CONTROL01.CTL手动复制出CONTROL02.CTL;或者用上面命令生成CONTROL02.CTL文件。
2)在控制文件生成之后到备库应用控制文件之前,要保证主库数据库在此期间不发生结构性变化(如增加表空间等操作),否则同步会出问题。

将控制文件复制到备库服务器进行应用。拷贝过程略(Ctrl + C、Ctrl + V)

5.1.6 主数据库验证

启动数据库,测试数据库是否正常

startup

查看归档信息

archive log list

查看Redo Log信息

select group#,bytes/1024/1024 as Mb from v$log;

查看Standby Redo Log信息

select group#,bytes/1024/1024 as Mb from v$standby_log;

主库配置基本完成,可以将该pfile文件拷贝到备库,开始配置备库服务器。

拷贝过程略(Ctrl + C、Ctrl + V)

5.2 DG备库配置(备库操作)

5.2.1 检查备库载入文件

1)从主库服务器拷贝密码文件PWDPMS.ora至备库服务器D:\Oracle\product\11.2.0\dbhome_1/database/PWDPMS.ora路径下,确保主备两个库的密码相同。
2)从主库服务器拷贝listener.ora和tnsnames.ora至备库服务器D:\Oracle\product\11.2.0\dbhome_1\NETWORK\ADMIN路径下,并修改相关配置。
    修改listener.ora文件中HOST地址为备库服务器地址。
3)从主库服务器生成的“适用于备库使用的控制文件”CONTROL01.CTL和CONTROL02.CTL拷贝至备库服务器(我的存放路径:D:/standby/)。
    注意:该控制文件必须生成,不能直接拷贝主库控制文件
4)从主库服务器拷贝pfile文件至备库服务器,并对文件内容进行修改

pms.__db_cache_size=35567697920
pms.__java_pool_size=805306368
pms.__large_pool_size=939524096
pms.__oracle_base='D:\Oracle'#ORACLE_BASE set from environment
pms.__pga_aggregate_target=13824425984
pms.__sga_target=41339060224
pms.__shared_io_pool_size=0
pms.__shared_pool_size=3623878656
pms.__streams_pool_size=134217728
*.audit_file_dest='D:\Oracle\admin\PMS\adump'
*.audit_trail='db'
*.compatible='11.2.0.4.0'
*.control_files='D:/standby/CONTROL01.CTL','D:/standby/CONTROL02.CTL'     # 指定初始化数据库的控制文件
*.db_block_size=8192
*.db_domain=''
*.db_name='PMS'
*.db_unique_name='PMS_STANDBY'                # 此处全局名称配置已修改
*.fal_server='PMS_PRIMARY'
*.fal_client='PMS_STANDBY'
*.db_file_name_convert='D:\Oracle\oraback','D:\Oracle\oraback'
*.log_file_name_convert='D:\Oracle\oralog','D:\Oracle\oralog'
*.standby_file_management='AUTO'
*.db_recovery_file_dest_size=4385144832
*.db_recovery_file_dest=''
*.deferred_segment_creation=FALSE
*.diagnostic_dest='D:\Oracle'
*.dispatchers='(PROTOCOL=TCP) (SERVICE=PMSXDB)'
*.log_archive_config='dg_config=(PMS_PRIMARY,PMS_STANDBY)'
*.log_archive_dest_1='location=D:/Oracle/oralog valid_for=(all_logfiles,all_roles) db_unique_name=PMS_STANDBY'                  # 设置日志推送通道1,备库通道设定
*.log_archive_dest_2='service=PMS_PRIMARY lgwr sync valid_for=(online_logfile,primary_role) db_unique_name=PMS_PRIMARY'                # 设置日志推送通道2,主库通道设定
*.log_archive_dest_state_1='enable'
*.log_archive_dest_state_2='enable'
*.log_archive_dest=''
*.log_archive_format='%t_%s_%r.arch'
*.open_cursors=300
*.pga_aggregate_target=13742637056
*.processes=2000
*.remote_login_passwordfile='EXCLUSIVE'
*.sec_case_sensitive_logon=FALSE
*.sga_target=41227911168
*.undo_tablespace='UNDOTBS1'

注:一般强烈建议主备服务器配置相同,如果不同,需要手动修改sga_target、__pga_aggregate_target、__db_cache_size等参数大小,如果该参数超过服务器承载,会导致数据库无法启动,甚至服务器自身崩溃(本人血泪史,就不讲了)。

5.2.2 创建备库实例

5)给备库创建PMS实例服务
使用管理员权限的命令窗执行命令:

oradim -NEW -SID PMS -STARTMODE manual

其中PMS为您希望指定的实例名(与主库保持一致)。
服务创建完成后会自动启动,可在系统services.msc中查看。

6)重启监听并测试

lsnrctl stop
lsnrctl start
lsnrctl status
tnsping pms_primary(测试通过)
tnsping pms_standby(测试通过)

注:若测试不通过,请关闭主备服务器防火墙进行测试。

7)通过pfile文件创建spfile参数文件

a)建议手动重启一下数据库服务(先启动监听,后启动数据库)
b)首次使用sqlplus / as sysdba时提示无法连接(ORA-12560),这是因为备库是我们手动创建,因此操作系统(windows)未记录我们创建的PMS实例,因此需要先设置环境变量
        在命令提示框中先执行:set oracle_sid=PMS

再尝试登陆即可成功

c)通过pfile文件创建spfile参数文件

create spfile from pfile='D:/pfile.ora';

5.3 主备库联合配置

5.3.1 验证监听配置

重启备库监听(先启)(备库操作)

lsnrctl stop
lsnrctl start
sqlplus / as sysdba
shutdown immediate
startup nomount        # 此时备库先不挂载,接下来要恢复数据文件,数据库必须处于不挂载状态

重启主库监听(后启)(主库操作)

lsnrctl stop
lsnrctl start
shutdown immediate
startup

5.3.2 恢复主库数据文件

5.3.2.1 方式一:通过RMAN复制数据文件

以主库辅助备库的方式,在备库连接RMAN(备库操作)

rman target sys/000000@pms_primary auxiliary sys/000000@pms_standby

通过命令复制主库数据文件到备库(该过程会影响主库资源,主库可能会在复制期间卡顿,若在线上操作,请注意)(备库操作)

duplicate target database for standby from active database nofilenamecheck;

执行完成后,备库的数据文件已复制过来了。

5.3.2.2 方式二:手动拷贝方式复制数据文件

还有另一种方法:
直接将主库oracle目录下的admin、cfgtollogs、diag、flash_recover_area、oradata目录拷贝到备库相同路径,备库已有的文件和文件夹直接覆盖即可。

不过在条件允许的情况下,还是建议第一种方案,通过命令由oracle自行执行复制及配置。

5.3.3 启动日志同步(备库操作)

启动日志传送服务

alter database recover managed standby database disconnect from session;
recover managed standby database cancel;

完成介质恢复后,重启数据库,以只读备库挂载模式启动

shutdown immediate;
startup nomount;
database mount standby database;
database open read only;

启动备库日志实时应用

alter database recover managed standby database using current logfile disconnect from session;

注:若数据文件未创建就启用备库日志实时应用,备库会同步,但数据库无法打开,将提示““ORA-01219:数据库未打开:仅允许在固定表/视图中查询”的警告窗口!”
此时可以使用命令停止同步
alter system set standby_file_management=manual;
创建对应文件后再开启自动同步(详见上面通过rman恢复数据文件或拷贝文件恢复数据文件)

5.4 DG同步验证

查看同步状态
连接到主库,查看归档情况(主库操作)

SELECT SEQUENCE#, FIRST_TIME, NEXT_TIME FROM V$ARCHIVED_LOG ORDER BY SEQUENCE#;

连接到备库,查看归档情况(备库操作)

SELECT SEQUENCE#, FIRST_TIME, NEXT_TIME FROM V$ARCHIVED_LOG ORDER BY SEQUENCE#;

在主库切换归档日志(强制归档)(主库操作)

ALTER SYSTEM SWITCH LOGFILE;
SELECT SEQUENCE#, FIRST_TIME, NEXT_TIME FROM V$ARCHIVED_LOG ORDER BY SEQUENCE#;

在备库查看最新归档是否已经同步过来(备库操作)

SELECT SEQUENCE#,APPLIED FROM V$ARCHIVED_LOG ORDER BY SEQUENCE#;

在主库建表、插入数据,查看备库是否一致。

至此,主备同步(DG)已设置完成。

全篇回顾:万字长文,希望对您有所帮助。

Oracle11g DG实战配置(Windows版)(一)基础说明

Oracle11g DG实战配置(Windows版)(二)主库安装与基础配置

Oracle11g DG实战配置(Windows版)(三)主库数据库归档配置

Oracle11g DG实战配置(Windows版)(四)备库数据库安装

Oracle11g DG实战配置(Windows版)(五)主备库DG配置

Oracle11g DG实战配置(Windows版)(五)主备库DG配置相关推荐

  1. esp8266驱动_ESP8266配置windows版

    ESP8266配置windows版 esp8266上搭载了cp210x芯片.负责开发板和电脑进行通信, https://cn.silabs.com/developers/usb-to-uart-bri ...

  2. linux下oracle11G DG搭建(三):围绕备库搭建操作

    linux下oracle11G DG搭建(三):围绕备库搭建操作 环境 名称 主库 备库 主机名 bjsrv shsrv 软件版本 RedHat Enterprise5.5.Oracle 11g 11 ...

  3. dg建立linux分区,linux下oracle11G DG搭建(三):环绕备库搭建操作

    linux下oracle11G DG搭建(三):环绕备库搭建操作 环境 名称 主库 备库 主机名 bjsrv shsrv 软件版本号 RedHat Enterprise5.5.Oracle 11g 1 ...

  4. 物理DG主备库切换时遇到ORA-16139: media recovery required错误

    物理DG主备库切换时遇到ORA-16139: media recovery required错误 在物理DG主备库切换时遇到ORA-16139: media recovery required错误 S ...

  5. DataGuard常用命令及DG主备库开关顺序

    DataGuard常用命令及DG主备库开关顺序 常用命令 1.查询命令 select name,db_unique_name from v$database; select max(sequence# ...

  6. linux vip切换后不通,keepalived主备节点都配置vipvip切换异常案例分析

    keepalived主备节点都配置vipvip切换异常案例分析 keepalived主备节点都配置vip,vip切换异常案例分析 故障现象:主机名director-Adirector-B IP192. ...

  7. oracle如何往dg加盘_学习笔记:Oracle DG系统 主备库中表空间和数据文件增加删除等管...

    天萃荷净 Oracle Data Guard表空间和数据文件管理汇总 汇总日常工作中操作,在Oracle DG结构系统中,如何删除备库表空间和数据文件,如何管理主库与备库之间的文件系统,详见文章内容. ...

  8. (四)FusionAccess搭建 —— 配置FA,vAG/vLB主备HA

    1.安装ITA 1.1登入WEB界面 设置密码 在FC中添加接口对接用户 使用创建的用户对接FC 添加vAG/vLB(有bug,第一次进去不能确定) 开始安装 另外一台无需配置vAG/vLB,之后数据 ...

  9. oracle主备库sync模式,Oracle 探索DG备库undo工作模式

    模拟备库出现 ORA-01555 分析备库 undo 工作模式 一: 修改主库 备库 undo 表空间 1.在主库创建undo表空间(会自动同步到备库) SYS@prod>create undo ...

最新文章

  1. 计算机和网络历史地位,所谓“运营商的文字游戏”,其实是计算机和网络发展的客观历史导致的...
  2. 模糊测试(fuzz testing)介绍(一)
  3. 手机zip模拟器_车祸现场模拟器简体中文免安装版 6.4G
  4. 你在中国有去过那些地区?
  5. QT一次性连接多个按钮槽函数
  6. 企业:怎样的渗透测试频率是合适的?
  7. 自定义常用input表单元素二:纯css实现自定义radio单选按钮
  8. linux命令 su和sudo,Linux中sudo和su的区别
  9. com.mysql.cj.exceptions.InvalidConnectionAttributeException
  10. pd17虚拟机 mac 无限使用
  11. 林斌减持小米股份三天套现3.4亿引关注 小米官方、林斌齐回应...
  12. 反射在微信公众平台开发的应用
  13. 对话惠普亚太区高管:绿色智慧的中国战略
  14. PHP虚拟素材资源站源码带支付,素材火源码二开版带码支付源码可以做虚拟资源或源码下载网...
  15. 算法题打卡-超人进化(剑指offer第一天)
  16. 原生JS实现记忆翻牌小游戏
  17. 有赞 html模板,有赞的微商城可视化编辑是如何做到的?
  18. 一款轻量级、可快速上手的开源后台系统
  19. 安装 Windows 7 VM虚拟机
  20. 解决火狐浏览器提示连接不安全或证书错误的问题

热门文章

  1. 使用 lean-cli 连接云端的 LeanDB
  2. create函数用法
  3. js 密码正则表达式(至少8位且必有数字+特殊字符+字母)
  4. EXCEL中公式如何保护,防止别人误删或者修改
  5. matlab望远镜系统,基于MatLab的天文望远镜电机调速系统的仿真与分析
  6. 关于@Test单元测试
  7. JS当前时分秒 格式 xx:xx:xx
  8. springboot项目编写单元测试_SpringBoot项目单元测试(示例代码)
  9. 高颜值、低油耗——2019款别克君越评测
  10. 弹窗提示插件(全局提示弹窗)