1、 最大性能模式(maximum performance) 6
2、 最高可用模式(maximum availability) 6
3、 最大保护模式(maximum protection) 7
一、配置DG时的常规参数
- 配置静态监听为了能远程登录数据库,在DG中是为了RMAN能连接。
- 配置网络连接名是为了给主备库取别名并且方便登录
*.db_name='orcl' | 数据库的实例名 |
*.db_unique_name='orcl_p' | Primary端数据库的唯一名字 |
*.log_archive_config='dg_config=(orcl_p,orcl_s)' | 该参数用来控制从远端数据库接收或发送REDO数据,通过DG_CONFIG属性罗列同一个Data Guard中所有DB_UNIQUE_NAME(含Primary数据库和Standby数据库),以逗号分隔,SEND/NOSEND属性控制是否可以发送,RECEIVE/NORECEIVE属性控制是否能够接收 |
*.log_archive_dest_1='location=/u01/arch valid_for=(all_logfiles,all_roles) db_unique_name=orcl_p' | 在主库起作用,本地归档日志存放路径,所有角色,所有日志
|
*.log_archive_dest_2='service=orcl_s valid_for=(online_logfiles,primary_role) lgwr affirm sync db_unique_name=orcl_s' | 远程用户是orcl_s,目的地可用的当前数据库是主库,当前在线日志正在归档
|
*.log_archive_dest_state_1=enable | 对log_archive_dest_1声明:允许发送 |
*.log_archive_dest_state_2=enable
| 对log_archive_dest_2声明:允许发送
|
*.standby_file_management='auto' | 如果Primary数据库数据文件发生修改(如新建、重命名等)则按照本参数的设置在Standby数据库中作相应修改。设为AUTO表示自动管理。设为MANUAL表示需要手工管理 |
*.fal_server='orcl_s'
| 当日志没有同步是,从orcl_s抓取文件 |
*.log_file_name_convert='/u01/app/oracle/oradata/orcl','/u01/app/oracle/oradata/orcl' | 主备库日志文件存放路径
|
*.db_file_name_convert='/u01/app/oracle/oradata/orcl','/u01/app/oracle/oradata/orcl' | Standby数据库的数据文件路径与Primary数据库数据文件路径不一致时,可以通过设置DB_FILE_NAME_CONVERT参数的方式让其自动转换。该参数值应该成对出现,前面的值表示转换前的形式,后面的值表示转换后的形式 |
*.db_name='orcl' | 数据库的实例名 |
*.db_unique_name='orcl_s' | standby端的唯一名字 |
*.log_archive_config='dg_config=(orcl_p,orcl_s)'
| 该参数用来控制从远端数据库接收或发送REDO数据,通过DG_CONFIG属性罗列同一个Data Guard中所有DB_UNIQUE_NAME(含Primary数据库和Standby数据库),以逗号分隔,SEND/NOSEND属性控制是否可以发送,RECEIVE/NORECEIVE属性控制是否能够接收 |
*.log_archive_dest_1='location=/u01/arch valid_for= (all_logfiles,all_roles) db_unique_name=orcl_s' | 在主库起作用,本地归档日志存放路径,所有角色,所有日志
|
*.log_archive_dest_2='service=orcl_p valid_for=(online_logfiles,primary_role) lgwr affirm sync db_unique_name=orcl_p' | 远程用户是orcl_p,目的地可用的当前数据库是主库,当前在线日志正在归档
|
*.log_archive_dest_state_1=enable | 对log_archive_dest_1声明:允许发送 |
*.log_archive_dest_state_2=enable | 对log_archive_dest_2声明:允许发送 |
*.standby_file_management='auto'
| 如果Primary数据库数据文件发生修改(如新建、重命名等)则按照本参数的设置在Standby数据库中作相应修改。设为AUTO表示自动管理。设为MANUAL表示需要手工管理 |
*.fal_server='orcl_p' | 当日志没有同步是,从orcl_p抓取文件 |
*.log_file_name_convert='/u01/app/oracle/oradata/orcl','/u01/app/oracle/oradata/orcl' | 主备库日志文件存放路径
|
* .db_file_name_convert='/u01/app/oracle/oradata/orcl','/u01/app/oracle/oradata/orcl' | Standby数据库的数据文件路径与Primary数据库数据文件路径不一致时,可以通过设置DB_FILE_NAME_CONVERT参数的方式让其自动转换。该参数值应该成对出现,前面的值表示转换前的形式,后面的值表示转换后的形式 |
备注:主库和备库不同的参数用红字标记出
主要讲一下log_archive_dest_2参数的配置
该参数仅当数据库角色为primary时生效,指定primary归档redo log到该参数定义的standby database上
该参数是dataguard上最重要的参数之一,它定义了redo log的传输方式(sync or async)以及传输目标,直接决定了dataguard的数据保护级别
它的格式如下:*.log_archive_dest_2='service=orcl_p valid_for=(online_logfiles,primary_role) lgwr affirm sync db_unique_name=orcl_p'
- service/location 远程/本地
- Valid_for
其中:redo_log_type有三种
Online_logfile 目的地可用当前在线日志正在归档
Standby_logfile 目的地可用当前备库在线日志正在归档
All_logfile
其中:database_role有三种:
Primary_role 目的地可用的当前数据库是主库
Standby_role 目的地可用的当前数据库是备库
All_role
- sync/async 同步/异步
- Net_timeout LGWR进程等待远程传输日志成功到确认的时间,数值1-1200,默认30秒,oracle建议配置
- AFFIRM/NOAFFIRM AFFIRM:指定直到接收从原库传来的日志并写到备库日志中才确定。 NOAFFIRM:指定不用等待接收到从原库传来的日志并写到备库日志才确定
- Reopen:try to reopen a failed destination的秒数2,默认300秒
- 这种模式是默认模式,可以保证数据库的最大性能
- 保证主库不受备库影响,主库事务正常提交
- 优点:避免了备库对主库的性能和可用性影响
- 缺点:如果主库提交的事务没有发送到备库,则这些事务会丢失
- 这种模式下,只有在备库收到重做日志以后,主库的事务才能够提交
- 主库找不到合适的备库写入时,主库不会关闭,临时到最大性能模式,直到问题解决
- 优点:该模式下载没有问题出现的情况下,保证数据不会丢失
- 缺点:主库的性能会受到诸多因素的影响
- 这种模式提供了最高级别的数据保护能力
- 只有在备库收到重做日志以后,主库的事务才能够提交
- 主库找不到合适的备库写入时,主库会自动关闭
- 优点:该模式可以确保数据不丢失
- 缺点:主库会自动关闭,对主库的性能有很大的影响