在windows server 2016下实现单对单实例的oracle dataguard

 

目录

序言

实验部署环境

一、主库配置

二、备库配置

三、在主库操作,使用rman恢复到备库

四、备库操作,开启实时日志应用

五、测试

六、主备库switchover切换

一些日常管理

创建删除表空间

归档日志过多怎么办?

介绍Dataguard三种保护模式


序言

本文详细描述了oracle数据库其中一项高可用性,叫做dataguard。这个功能实现了一个数据库的远程实时备份,我们当今在使用云平台上建虚拟机,你完全可以通过两台云上的虚拟机做到实时容灾,非常适用于中小型且采用oracle作为数据库的旧信息系统,通过这个技术,可以无需通过以前的软件开发商,自己把系统搬迁到云上的虚拟机,软件代码无需重新编译。

本文在介绍整个配置过程的同时,也引入一些oracle其他方面的小知识,并且会不定期更新,在这里每一条命令或脚本都是经常实际测试的。

实验部署环境

两台安装windows server 2016标准版,

主库(机器名win1,IP地址:192.168.5.210)安装oracle11g软件,并创建数据库,创建的数据库实例名为zzgd。tnsname.ora上连接串为primary,oracle软件安装路径为C:\oracle,zzgd实例安装路径为D:\oracle\oradata\zzgd,默认的快速闪回区路径为:C:\oracle\flash_recovery_area

备库(机器名windg,IP地址:192.168.5.211)安装oracle11g软件,不创建数据库。tnsname.ora上连接串为standby,oracle软件安装路径为C:\oracle。

一、主库配置

(一)设置归档模式

SQL>startup mount;  
SQL>alter database archivelog;  
SQL>alter database force logging;  
SQL>alter database open; 

小知识点:一些查询命令

SQL> Archive log list
数据库日志模式            存档模式
自动存档             启用
存档终点            C:\oracle\flash_recovery_area
最早的联机日志序列     6
下一个存档日志序列   8
当前日志序列           8
SQL> select  log_mode,force_logging from v$database;

LOG_MODE                 FORCE_
------------------------ ------
ARCHIVELOG               YES
#查看归档
SQL> show parameter db_recover

NAME                                 TYPE                   VALUE
------------------------------------ ---------------------- ------------------------------
db_recovery_file_dest                string                 C:\oracle\flash_recovery_area
db_recovery_file_dest_size           big integer            3912M

SQL> show parameter log_archive

NAME                                 TYPE                   VALUE
------------------------------------ ---------------------- ------------------------------
log_archive_config                   string
log_archive_dest                     string
log_archive_dest_1                   string                location=
                                                           C:\oracle\flash_recovery_area

log_archive_dest_state_9             string                 enable
log_archive_duplex_dest              string
log_archive_format                   string                 ARC%S_%R.%T

NAME                                 TYPE                   VALUE
------------------------------------ ---------------------- ------------------------------
log_archive_local_first              boolean                TRUE
log_archive_max_processes            integer                4
log_archive_min_succeed_dest         integer                1
log_archive_start                    boolean                FALSE
log_archive_trace                    integer                0
SQL>

(二)创建备库standby的redo

SQL> select * from v$logfile order by group#;
alter database add standby logfile group 4 'D:\ORACLE\ORADATA\ZZGD\REDO04.LOG' size 50m;
alter database add standby logfile group 5 'D:\ORACLE\ORADATA\ZZGD\REDO05.LOG' size 50m;
alter database add standby logfile group 6 'D:\ORACLE\ORADATA\ZZGD\REDO06.LOG' size 50m;
alter database add standby logfile group 7 'D:\ORACLE\ORADATA\ZZGD\REDO07.LOG' size 50m;

(三)配置pfile参数文件

在sys用户下配置,使用show parameters可以验证,很多参数需要重启数据库

alter system set log_archive_config = 'DG_CONFIG=(primary,standby)' scope=spfile;  
alter system set log_archive_dest_1 = 'LOCATION=C:\oracle\flash_recovery_area VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=primary' scope=spfile;  
alter system set log_archive_dest_2 = 'SERVICE=standby LGWR SYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=standby' scope=spfile;  
alter system set log_archive_dest_state_1 = ENABLE;  
alter system set log_archive_dest_state_2 = ENABLE;  
alter system set fal_server=standby scope=spfile;  
alter system set fal_client=primary scope=spfile;  
alter system set standby_file_management=AUTO scope=spfile;
alter system set log_file_name_convert='D:\ORACLE\ORADATA\ZZGD','D:\ORACLE\ORADATA\ZZGD' scope=spfile;
alter system set db_file_name_convert='D:\ORACLE\ORADATA\ZZGD','D:\ORACLE\ORADATA\ZZGD' scope=spfile;
alter system set db_unique_name=primary;

#停止服务
shutdown immediate;
#启动服务
startup;

(四)导出参数的文件

#把参数文件导出到d盘,随便命名,但是后缀名要.ora
create pfile='d:\initora.ora' from spfile;

此文件详细打开列出下表,红色部分根据你的路径规则和命名方式不同,可以修改,如zzgd,你可以是orcl;primary,你可以是pri;standby,你可以是stdxxx。

zzgd.__db_cache_size=486539264
zzgd.__java_pool_size=16777216
zzgd.__large_pool_size=16777216
zzgd.__oracle_base='C:\oracle'#ORACLE_BASE set from environment
zzgd.__pga_aggregate_target=503316480
zzgd.__sga_target=754974720
zzgd.__shared_io_pool_size=0
zzgd.__shared_pool_size=218103808
zzgd.__streams_pool_size=0
*.audit_file_dest='C:\oracle\admin\zzgd\adump'
*.audit_trail='db'
*.compatible='11.2.0.0.0'
*.control_files='d:\oracle\oradata\zzgd\control01.ctl','C:\oracle\flash_recovery_area\zzgd\control02.ctl'
*.db_block_size=8192
*.db_domain=''
*.db_name='zzgd'
*.db_recovery_file_dest='C:\oracle\flash_recovery_area'
*.db_recovery_file_dest_size=4102029312
*.diagnostic_dest='C:\oracle'
*.dispatchers='(PROTOCOL=TCP) (SERVICE=zzgdXDB)'
*.db_unique_name=primary
*.fal_client='PRIMARY'
*.fal_server='STANDBY'
*.local_listener='LISTENER_ZZGD'
*.log_archive_config='DG_CONFIG=(primary,standby)'
*.log_archive_dest_1='LOCATION=C:\oracle\flash_recovery_area VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=primary'
*.log_archive_dest_2='SERVICE=standby LGWR SYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=standby'
*.log_archive_dest_state_1='ENABLE'
*.log_archive_dest_state_2='ENABLE'
*.log_file_name_convert='D:\ORACLE\ORADATA\ZZGD','D:\ORACLE\ORADATA\ZZGD'
*.memory_target
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值