logo资料库

ORACLE 12c DG实测-搭建.docx

第1页 / 共6页
第2页 / 共6页
第3页 / 共6页
第4页 / 共6页
第5页 / 共6页
第6页 / 共6页
资料共6页,全文预览结束
Oracle 12C Dataguard 环境:centOS 6.4 64bit 主库:10.168.9.52 备库:10.168.9.53 oracle 12C 12.1.0.1.0 - 64bit sid=bbc db_unique_name=bbc sid=bbc db_unique_name=abc 主库配置: 1. 数据库修改为归档模式 查看:archive log list; 2. 参数 log_archive_start 已经过时,不需要设置,设置后启动数据库会报 ORA-32004: obsolete or deprecated parameter(s) specified for RDBMS instance(有过时或废弃的参数被使用指定) 但是不影响使用 alter system reset log_archive_start 取消该参数设置 3. 数据库开启强制日志功能,即所有操作都产生日志,以便将主库所有的操作全部传给备库使用 : alter database force logging; select name,force_logging from v$database; 4. 确认当主库添加或删除数据文件时,备库也做同样的的操作: Alter system set standby_file_management=’AUTO’; 5. 确认参数 remote_login_passwordfile 为 exclusive 或 shared 使用密码文件做验证 此参数默 认为 exclusive,如果不是,请修改 Alter system set remote_login_passwordfile =exclusive scope=spfile; 6. 设置 db_unique_name 通常主库该值和 SID 一直,如没有该值,请设置: Alter system set db_unique_name=bbc scope=spfile; 7. 开启闪回功能:可以使数据库闪回到以前的某一点,可以使主库闪回到故障前,然后将其转换为 备库。如果没有闪回,就必须重建库。 Alter system set db_recovey_file_dest=’快速回复区目录’ 闪回区位置 Alter system set db_recovey_file_dest_size=’300G’; 闪回区大小 Alter database flashback on ; Select flashback_on from v$database ; 8. 配置主备库的监听,使两台服务器可以相互通信: 主库修改 listener.ora 文件 动态静态监听都要配置 (备库启动后是在 mount 状态下,不能自动 注册监听,需要静态监听 修改后监听需要重启) SID_LIST_LISTENER= (SID_LIST= (SID_DESC= (GLOBAL_DBNAME=bbc) (SID_NAME=bbc) (ORACLE_HOME=/18_app/12c/db_base/db_home/) )
) LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 10.168.9.52)(PORT = 1521)) (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521)) ) ) 主库 tnsnames.ora 文件: 52_bbc = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 10.168.9.52)(PORT = 1521)) ) (CONNECT_DATA = (SERVICE_NAME = bbc) ) ) 53_abc = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 10.168.9.53)(PORT = 1521)) ) (CONNECT_DATA = (SERVICE_NAME = abc) ) ) 备库修改 listener.ora 动态静态监听都要配置 修改后监听需要重启 SID_LIST_LISTENER= (SID_LIST= (SID_DESC=
(GLOBAL_DBNAME=abc) (SID_NAME=abc) (ORACLE_HOME=/19_app/12c/db_base/db_home/) ) ) LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 10.168.9.53)(PORT = 1521)) (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521)) ) ) 备库 tnsnames.ora 文件: 53_abc = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 10.168.9.53)(PORT = 1521)) ) (CONNECT_DATA = (SERVICE_NAME = abc) ) ) 52_bbc = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 10.168.9.52)(PORT = 1521)) ) (CONNECT_DATA = (SERVICE_NAME = bbc) ) )
~ 9. 修改归档位置: Alter system set log_archive_dest_1=’location=/u01/app/archive/archive_bbc_loc/ val id_for=(all_logfiles,all_roles) db_unique_name=bbc ’ 指定归档位置用于所有角色所有数据库的日志文件且 db_unique_name=bbc 包括将来主转为备后 的备用日志文件(注意不是在线日志文件,是主库用日志写进程直接传过来并保存到 standby_lo g 中的日志文件),并且如果想在备库进行备份同时备归档日志的话,必须使用 all_logfiles Alter system set log_archive_dest_10=’service=abc arch valid_for=(online_logfiles, primary_role) db_unique_name=abc’; 语句意思是:如果这是主库,就使用服务名为 abc 传输在线归档日志到目标库 abc (这里使用的 是归档进程同步传输的,还有其他的模式 ) 不要配置 standby_archive_dest 参数,官方已经弃用,会报错 部分参数说明:online_logfiles(在线日志) satandby_logfiles(备用日志) all_logfiles(所有 日志) primary_role(主库角色) standby_role(备库角色) all_roles(所有角色) 10. 设置参数 fal_server 是指传输出现问题后,备库到哪里去找缺少的归档日志 参数 fal_cli ent 在 11G 已经弃用,不用设置了 Alter system set fal_server = ‘abc’; 11. 打开主库的 dataguard 开关: Alter system set log_archive_config = ‘dg_config=(bbc,abc)’ ; 备库设置 1. 创建备库必要的目录,最少要建立主库所有数据文件的目录,$db_base/fast_recovery_area/bb c/所有目录, $db_base/oradata/bbc/所有目录,$db_base/admin/bbc/adump 2. 停主库:在 mount 下生成 pfile create pfile from spfile 生成备库控制文件 alter database create standby controlfile as ‘/路径/文件名’; 并且将新生成的参数文件,控制文件,密码文件,所有数据文件,日志文件全部拷贝到备库的响 应目录下(我也不想停库啊之前也用 rman 恢复过,备库不能 open read only,报有数据文件需要 恢复,搞不定啊—问题解决,后面有笔记) 给参数文件和密码文件改名 3. 修改参数文件:将部分 bbc 修为 abc,其中 db_name=‘bbc’和 dispatchers='(PROTOCOL=TCP) (S ERVICE=bbcXDB)不用修改, 修改所有路径为备库的路径
如果数据文件路径有修改需要添加参数 db_file_name_convert=‘原路径 1’,‘新路径 1’,‘原 路径 2’,‘新路径 2’,‘原路径 3’,‘新路径 3’ 所有不一样的数据文件路径都要添加, 要成对出现 log_file_name_convert=‘原路径 1’,‘新路径 1’,‘原路径 2’,‘新路径 2’,‘原路径 3’,‘新路径 3’ 所有不一样的日志文件路径都要添加,要成对出现 添加 db_unique_name='abc' 4. 生成 spfile 重新启动备库监听,启动备库到 mount, 重新启动主库监听,启动主库(并确保都 是使用的 spfile) 备库启动恢复模式:alter database recover managed standby database disconnect from se ssion 备库关闭恢复模式: alter database recover managed standby database cancel; 备库只读模式打开数据库:alter database open read only; 备库启动恢复模式:alter database recover managed standby database disconnect from se ssion; SQL> select log_mode,open_mode ,protection_mode, database_role from v$database; LOG_MODE OPEN_MODE PROTECTION_MODE DATABASE_ROLE ------------ -------------------- -------------------- ---------------- ARCHIVELOG READ ONLY WITH APPLY MAXIMUM PERFORMANCE PHYSICAL STANDBY 至此,初步的 dataguard 创建完成,测试以及模式转换待续 备库用主库 rman 备份恢复: 1. 创建备库必要的目录,最少要建立主库所有数据文件的目录,$db_base/fast_recovery_area/bb c/所有目录, $db_base/oradata/bbc/所有目录,$db_base/admin/bbc/adump (/19_app/12c/db_base/fast_recovery_area/bbc) (/19_app/12c/db_base/fast_recovery_area/bbc/四个文件夹 archivelog,autobackup,flashback, onlinelog) (/19_app/12c/db_base/oradata/bbc/两个文件夹 orcl_pdb1,pdbseed) (/19_app/12c/db_base/admin/bbc/adump) 2. configure channel device type disk format '/home/oracle/rmanbk/%d_%I_%s_%p_%T.bkp'; 修改备份路径和名字 3. 在主库用 rman 备份:backup as compressed backupset database include current controlfi le for standby plus archivelog; 在主库生成 pfile ,并将主库的备份,pfile,口令文件 一起 拷贝到备库相同的文件夹下。 4. 将 pfile,口令文件改名并拷贝到 dbs 下,修改参数文件
注意参数文件中的参数: MEMORY_TARGET(将其注释掉, 会报 ORA-00845 错误,主库的内存设置不 一定适合从库) 启动备库到 nomount 5. 在主库登陆 rman:rman target / auxiliary sys/bbcBBC2014@ccb (在备库做:rman target sys/bbcBBC2014@bbc auxiliary sys/bbcBBC2014@ccb) duplicate target database for standby 6. 起动备库到 mount 并 open read only 7. 开启恢复模式:alter database recover managed standby database disconnect from sess ion; 8. 查看模式及级别:SQL> select log_mode,open_mode ,protection_mode, database_role from v$database; LOG_MODE OPEN_MODE PROTECTION_MODE DATABASE_ROLE ------------ -------------------- -------------------- ---------------- ARCHIVELOG READ ONLY WITH APPLY MAXIMUM PERFORMANCE PHYSICAL STANDBY 测试数据,正常! 添加另一个新想 DG: 主库添加修改:Alter system set log_archive_config ='dg_config=(orcl65,orcl66,orcl67)'; alter system set log_archive_dest_9='service=orcl67 lgwr sync affirm valid_for=(online_ logfiles,primary_role) db_unique_name=orcl67'; 从库按之前操作 从库可以是新库,也可以没有库,没有库也要添加两个监听文件!!!
分享到:
收藏