设为首页 收藏本站
查看: 603|回复: 0

[经验分享] oracle dataguard 简易配置文档

[复制链接]

尚未签到

发表于 2018-9-8 10:22:00 | 显示全部楼层 |阅读模式
  一、主库端的准备
  1、查看主库中数据库目录结构
  查看数据库文件路径
  select t1.name,t2.name from v$tablespace t1,v$datafile t2 where t1.ts#=t2.ts#;
  查看日志文件路径
  select * from v$logfile;
  查看控制文件路径
  select * from v$controlfile;
  2.开启数据库归档并激活force logging 模式
  查看归档模式
  archive log list
  开启归档模式

  >
  >  修改归档位置和归档命名规则

  >
  >  开启force logging

  >
  >  3.修改初始化参数文件
  create pfile from spfile;(备份初始化参数文件)

  >
  >
  >
  >
  >
  >
  >
  >
  >
  >  4.重启数据库使的上述修改生效  保留在open状态
  二、备库端的准备
  1.创建相关目录
  mkdir /oracle/admin/beiku/adump  bdump  cdump  dpdump  udump
  mkdir /oracle/oradata/beiku
  和主库一致的备份目录以及归档日志目录  并修改权限
  2.拷贝主库密钥文件
  scp
  3.备库初始化参数设置
  备库的初始化文件可以从主库初始化参数文件修改而来
  添加如下内容
  *.DB_NAME='zhuku'
  *.remote_login_passwordfile='EXCLUSIVE
  *.DB_UNIQUE_NAME='beiku'
  *.log_archive_config= 'dg_config=(beiku,zhuku)'
  *.LOG_ARCHIVE_DEST_1= 'LOCATION=/arch VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=beiku'
  *.LOG_ARCHIVE_DEST_2= 'SERVICE=zhuku  LGWR SYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=zhuku'
  *.LOG_ARCHIVE_DEST_STATE_1='ENABLE'
  *.LOG_ARCHIVE_DEST_STATE_2='ENABLE'
  *.LOG_ARCHIVE_FORMAT='%t_%s_%r.arc'
  *.LOG_ARCHIVE_MAX_PROCESSES=30
  *.FAL_SERVER='zhuku'
  *.FAL_CLIENT='beiku'
  *.DB_FILE_NAME_CONVERT='/oracle/oradata/zhuku/','/oracle/oradata/beiku/'
  *.LOG_FILE_NAME_CONVERT='/oracle/oradata/zhuku/','/oracle/oradata/beiku/'
  *.STANDBY_FILE_MANAGEMENT='AUTO'
  4.创建spfile
  create spfile from pfile='$ORACLE_HOME/dbs/initracdb.ora'
  5.启动数据库到mount状态
  SQL> startup nomount;
  三、配置监听和tns
  可以通过图形化界面netca  netmgr 进行配置  主库和备库都要配置两边的tns
  SID_LIST_LISTENER =
  (SID_LIST =
  (SID_DESC =
  (SID_NAME = PLSExtProc)
  (ORACLE_HOME = /oracle/db10g)
  (PROGRAM = extproc)
  )
  (SID_DESC =
  (GLOBAL_DBNAME = beiku)
  (ORACLE_HOME =  /oracle/db10g)
  (SID_NAME = beiku)
  )
  )
  验证监听
  sqlplus sys/oracle@zhuku as sysdba
  sqlplus sys/oracle@beiku as sysdba
  四、Rman下duplicate数据库,恢复备库
  方法1
  主库进行全库的备份,将备份集拷贝到备库相同的目录下
  RUN {
  allocate channel c1 type disk;
  allocate channel c2 type disk;
  sql 'alter system archive log current';
  backup current controlfile for standby format='/backup/dgbackup_control_%U';
  BACKUP FORMAT '/backup/dgbackup_%U_%T' skip inaccessible filesperset 5 DATABASE ;
  sql 'alter system archive log current';
  BACKUP FORMAT '/backup/dgbackup_arch_%U_%T' skip inaccessible filesperset 5 ARCHIVELOG ALL ;
  release channel c2;
  release channel c1;
  }
  rman target / auxiliary sys/oracle@beiku
  duplicate target database for standby nofilenamecheck dorecover;
  方法2  11g之后版本适用
  利用RMAN在备库上恢复主库(备库端做)
  rman target sys/oracle@zhuku auxiliary sys/oracle@beiku
  RMAN> duplicate target database for standby from active database nofilenamecheck;
  这条命令可以直接恢复数据文件,standby控制文件,standby日志组,非常霸道
  五、开启DG
  在备库上执行
  SQL> select instance_name,status from v$instance;
  INSTANCE_NAME STATUS
  ---------------- ------------
  racdb MOUNTED
  该模式会从主数据库中复制并应用日志文件
  alter system set log_archive_dest_state_2=enable;
  alter database recover managed standby database disconnect from session;
  取消日志应用
  alter database recover managed standby database cancel
  在Oracle 11g以前版本中的的Data Guard物理备用数据库,可以以只读的方式打开数据库,但此时Media Recovery利用日志进行数据同步的过程就停止了,如果物理备用数据库处于恢复的过程中数据库就不能打开查询,也就是说日志应用和只读打开两个状态是互斥的,而Oracle 11g Active Data Guard功能解决了这个矛盾,在利用日志恢复数据的同时可以用只读的方式打开数据库,用户可以在备用数据库上进行查询、报表等操作,这类似逻辑Data Guard备用数据库的功能(查询功能方面),但是,数据同步的效率更高、对硬件的资源要求更低。这样可以更大程度地发挥物理备用数据库的硬件资源的效能
  取消备库的自动恢复

  sys@ora11gdg@>>
  Database>  监控备库警告日志
  监控主库警告日志
  18.13. 查看日志同步情况
  主库上
  SQL> select sequence#, first_time, next_time from v$archived_log order by sequence#;
  查看已经应用的日志
  SQL> select sequence#,applied from v$archived_log order by sequence#;
  备库上
  SQL> select sequence#, first_time, next_time from v$archived_log order by sequence#;
  SQL> select sequence#,applied from v$archived_log order by sequence#;
  18.14. 配置主库standby redo log
  查看日志文件大小,备用redolog一定要大于在线日志log容量 ,主要用于主备库的切换
  select group#,bytes from v$log;

  alter database add standby logfile group 5('/oracle/oradata/zhuku/redolog1.log')>
  alter database add standby logfile group 6('/oracle/oradata/zhuku/redolog2.log')>
  alter database add standby logfile group 7('/oracle/oradata/zhuku/redolog3.log')>
  alter database add standby logfile group 8('/oracle/oradata/zhuku/redolog4.log')>  查看结果
  select group#,thread#,sequence#,archived,status from v$standby_log;
  18.15. 配置备库standby redo log

  sql>>  sql> shutdown immediate;
  sql> startup mount;

  alter database add standby logfile group 5('/u01/app/oracle/oradata/racdb/redolog1.log')>
  alter database add standby logfile group 6('/u01/app/oracle/oradata/racdb/redolog2.log')>
  alter database add standby logfile group 7('/u01/app/oracle/oradata/racdb/redolog3.log')>
  alter database add standby logfile group 8('/u01/app/oracle/oradata/racdb/redolog4.log')>  查看结果
  select group#,thread#,sequence#,archived,status from v$standby_log;
  启用接收日志
  alter database recover managed standby database disconnect from session;
  备库验证数据
  切换备用数据库只读模式
  alter database recover managed standby database cancel;
  alter database open read only;
  查看已经应用的日志
  select sequence#,applied from v$archived_log order by sequence#;
  主备库角色切换

  •   在主库中要做数据库全备
  2.确保节点1的日志已经全部传送到了备库
  SQL> SELECT THREAD#, LOW_SEQUENCE#, HIGH_SEQUENCE# FROM V$ARCHIVE_GAP;
  3.在节点1,确认为TO_STANDBY
  SQL> select SWITCHOVER_STATUS from v$database;
  SWITCHOVER_STATUS
  -------------------------
  TO STANDBY
  4.将节点一切换成备库

  SQL>>  5.关闭并重新启动之前的主库实例
  sql> shutdown immediate;
  sql> startup mount
  6.在备库的v$database视图中查看备库的切换状态
  select switchover_status from v$database;
  to primary 或者sessions active
  7.切换备库到主库角色
  alter database commit to switchover to primary; (to primary 状态使用该命令)
  alter database commit to switchover to primary with session shutdown; (sessions active 状态使用该命令)
  8.完成备库到主库的切换
  alter database open;
  9.如果备库以只读模式打开,先关闭数据,然后再重新启动。
  sql> shutdown immediate;
  sql> startup ;
  10.重新启动一下新的备库上的重做日志应用服务

  sql>>
  或者sql>>  11.开始发送重做数据到备库上

  sql>>  模式切换:
  maximize protection ---> maximize availability ----> maximize performance
  当在把dataguard的保护级别按这上面的顺序减低的时候,不需要primary库在mount状态,primary在open状态就可以直接执行保护模式更改命令
  maximize protection
  SQL>>
  SQL>>  以上都是在主库操作,备库会随之改变。


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.iyunv.com/thread-567754-1-1.html 上篇帖子: Oracle Study之--Oracle 11gR2构建RAC之hosts文件故障 下篇帖子: oracle安装前所有做的的工作之YUM
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表