搭建前环境准备

1.查看主库的oracle的uid和gid并在备库创建用户

# 主库查看oracle
$ id oracle
uid=54321(oracle) gid=54321(oinstall) groups=54321(oinstall),54322(dba)
# 备库创建oracle用户,注意uid和gid
# groupadd -g 54322 dba
# groupadd -g 54321 oinstall
# useradd -u 54321 oracle -g oinstall -G dba

2.备库oracle软体安装

配置yum,设置内核参数,设置oracle环境变量,修改oracle_home、oracle_base目录的权限,安装oracle软体

3.主库生成pfile并传至备库

$ sqlplus / as sysdba
create pfile from spfile;
$ scp /oracle/11204/dbs/initdg01.ora xxx.xxx.xxx.xxx:/oracle/11204/dbs/

4.备库创建参数文件中的目录

*.audit_file_dest='/oracle/admin/dg01/adump'
*.control_files='/oradata01/dg01/control01.ctl','/oradata01/dg01/control02.ctl'
*.db_recovery_file_dest='/oracle/fast_recovery_area'

5.全备主库

$ rman target /
backup database to destination '/oradata01/backup';
$ scp -r /oradata01/backup xxx.xxx.xxx.xxx:/oradata01/

6.备库恢复控制文件

$ cd /oradata01/backup
$ rman target /
startup
restore standby controlfile from '/oradata01/backup/DG01/backupset/2019_08_13/o1_mf_ncsnf_TAG20190813T115827_go4fc84x_.bkp';

如果是10g,从主库copy过来一个controlfile,之后用命令穿件

$ scp /oradata01/dg01/control01.ctl xxx.xxx.xxx.xxx:/tmp
rman target /
restore standby controlfile from '/tmpcontrol01.ctl';

7.恢复数据库

查看主库的所有数据文件目录并在备库创建

select distinct substr(file_name,1, instr(file_name,'/',1, length(file_name)-length(replace(file_name,'/','')))) from DBA_DATA_FILES
$ rman target /
alter database mount;
restore database;
recover database until sequence 7;
# 这里的7是主库产生的最新一个归档,执行之后,会报出恢复需要的归档,把这些归档scp过来,继续执行上面的命令即

8.主库新建配置tnsnames.ora并scp至备库

可以使用netmgr图形化来配置

scp tnsnames.ora xxx.xxx.xxx.xxx:/oracle/11204/network/admin/

9.将主库的listener.ora传至备库并修改

$ scp listener.ora xxx.xxx.xxx.xxx:/oracle/11204/network/admin

10.将主库的密码文件传至备库

$ scp orapwdg01 xxx.xxx.xxx.xxx:/oracle/11204/dbs/

11.修改主备库的参数文件

主庫:
alter database force logging;
alter system set db_unique_name='dg01' scope=spfile;
alter system set log_archive_config='dg_config=(dg01,standby_dg01)' scope=both;
alter system set log_archive_dest_1='LOCATION=/archlog/dg01 valid_for=(all_logfiles,all_roles) db_unique_name=dg01';
alter system set log_archive_dest_2='service=standby_dg01 async valid_for=(online_logfiles, primary_role) db_unique_name=standby_dg01';
alter system set log_archive_dest_state_1=enable scope=both;
alter system set log_archive_dest_state_2=enable scope=both;
alter system set fal_client=dg01 scope=both;
alter system set fal_server=standby_dg01 scope=both;
alter system set log_archive_max_processes=30;
alter system set standby_file_management=auto scope=both; --主備庫都要更改,防止切換
備庫:
    alter database force logging;
    alter system set db_unique_name='standby_dg01' scope=spfile;
    alter system set log_archive_config='dg_config=(dg01,standby_dg01)' scope=both;
    alter system set log_archive_dest_1='LOCATION=/archlog/dg01  valid_for=(all_logfiles,all_roles) db_unique_name=standby_dg01';
   # 这里报错
# ERROR at line 1:
# ORA-02097: parameter cannot be modified because specified value is invalid
# ORA-16053: DB_UNIQUE_NAME standby_dg01 is not in the Data Guard Configuration
# 原因是db_unique_name没有生效,重启数据库后就可以了
    alter system set log_archive_dest_2='service=dg01 async valid_for=(online_logfiles, primary_role) db_unique_name=dg01';
    alter system set log_archive_dest_state_1=enable scope=both;
    alter system set log_archive_dest_state_2=enable scope=both;
    alter system set fal_client=standby_dg01 scope=both;
    alter system set fal_server=dg01 scope=both;
    alter system set log_archive_max_processes=30;
    alter system set standby_file_management=auto scope=both

12.重启备库

shutdown immediate;
startup nomount;
alter database mount standby database;
alter database open read only;
alter database recover managed standby database disconnect;

13.测试

--主库
create table test01(id number);
alter system switch logfile;
--备库查看是否有test01表

14.备库redo没有创建处理方法

修改参数

alter system set log_file_name_convert = '/oradata01/dg01','/oradata01/dg01' scope=spfile;
shutdown immediate;
startup;
ALTER SYSTEM SET STANDBY_FILE_MANAGEMENT='MANUAL';
alter database clear logfile group 1;
alter database drop logfile group 1;
$ rm -f redo01.log
alter database add logfile group 1 ('/oradata01/dg01/redo01.log') SIZE 50M;
--如果redo是current状态,主库切换日志即可

创建完redo后修改回参数

create pfile from spfile;

修改参数文件,删除log_file_name_convert 参数并修改STANDBY_FILE_MANAGEMENT为auto

create spfile from pfile;

startup nomount;

alter database mount standby database;

alter database open read only;

alter databse recover managed standby database disconnect;

oracle dataguard搭建的更多相关文章

  1. Oracle DataGuard搭建(一)

    第一次搭建oracle dataguard.学oracle很长时间,却没有完整的搭过dg,说起来让人笑.总得有第一次,而且第一次总是很痛苦的. 数据库版本: Oracle Database 11g E ...

  2. Oracle DataGuard搭建(二)

    三.配置备库 创建catalog数据库 用dbca创建数据库,用oracle自带模板,不用em,启用归档,同一管理密码oracle,global name:dbcat1.node249.gewara, ...

  3. 9. Oracle DataGuard的介绍

    一. Oracle DataGuard简介 Oracle DataGuard:简称DG.是由一个Primary Database(主库)和一个或者多个Standby Database(备库)组成.对O ...

  4. Oracle DataGuard 物理Standby 搭建(上)

    物理standby database 环境搭建 Arch asysnc Oracle Dataguard host IP Oracle_sid DB_unique_name FAL_server FA ...

  5. Oracle 10gR2 Dataguard搭建(非duplicate方式)

    Oracle 10gR2 Dataguard搭建(非duplicate方式) 我的实验环境: 源生产库(主库): IP地址:192.168.1.30 Oracle 10.2.0.5 单实例 新DG库( ...

  6. 【Oracle】搭建DG(DataGuard)

    操作系统:OEL 5.6 Oracle 版本:11.2.0.4.0 DataGuard规划说明 DATABASE_ROLE DB_NAME IPADDR Primary lgr 192.168.10. ...

  7. Oracle dataguard 正常切换和应急切换

    oracle dataguard提供异地容灾方案,能有效的防止单点故障和提供高可用技术,这里介绍dataguard正常主备切换和应急切换(应急切换模拟主库出现问题无法还原,备库脱离dataguard接 ...

  8. 某控股公司OA系统ORACLE DG搭建

    *此处安装ORACLE DATAGUARD是利用ORACLE RMAN DUPLICATE方式安装.*可以搭建好ORACLE DG再来impdp生产数据,也可以先导入主库数据再来做DG*注意看下面的配 ...

  9. oracle dataguard主从切换

    前言: 众所周知DataGuard一般的切换分成两种,一种是系统正常的情况下的切换这种方式为:switchover是无损切换,不会丢失数据:另外一种方式属于灾难情况下的切换,这种情况下一般主库已经启动 ...

随机推荐

  1. 精尽Spring MVC源码分析 - HandlerMapping 组件(二)之 HandlerInterceptor 拦截器

    该系列文档是本人在学习 Spring MVC 的源码过程中总结下来的,可能对读者不太友好,请结合我的源码注释 Spring MVC 源码分析 GitHub 地址 进行阅读 Spring 版本:5.2. ...

  2. remmina 软件rdp协议链接windows失败

    remmina 1.42  链接 win10 提示失败......其他版本win还没有测试过. 忘记了在那个论坛有是说加密问题,照着改确实可以.具体原因是默认设置加密方式这一项不知道为什么不起作用,手 ...

  3. ES6中的Promise和Generator详解

    目录 简介 Promise 什么是Promise Promise的特点 Promise的优点 Promise的缺点 Promise的用法 Promise的执行顺序 Promise.prototype. ...

  4. VMware虚拟机安装Win7填坑

    今天本想赶紧安装Win7虚拟机做个实验,结果鼓捣了一天,写个文章填下坑. 一.Win7镜像文件下载 下载ISO镜像地址:http://msdn.itellyou.cn/ 二.安装tools VMwar ...

  5. Mysql技术内幕之InnoDB锁探究

    自7月份换工作以来,期间一直在学习MySQL的相关知识,听了一些视频课,但是一直好奇那些讲师的知识是从哪里学习的.于是想着从书籍中找答案.毕竟一直 看视频也不是办法,不能形成自己的知识.于是想着看书汲 ...

  6. Python Cvxopt安装及LP求解

    Python 2.7 Pycharm 1.直接File>Settings>Project>InterPreter ,点击右侧'+' 弹出Available packages窗口,搜索 ...

  7. Python朗读excel中的英文单词

    安装win32com的时候出现了诸多问题,直接贴代码: 1 ''' 2 #利用python朗读excel里面的单词 3 ''' 4 5 #开始导入所需库 6 import xlrd 7 from bs ...

  8. iOS label 添加删除线(删划线)遇到的坑

    1.添加删划线方法遇到的问题 -(void)lastLabelDeal:(NSString *)str1 string:(NSString *)str2 label:(UILabel *)label{ ...

  9. 处理xls文件

    package com.cn.peitest.excel; import java.io.File; import java.io.FileInputStream; import java.io.Fi ...

  10. java io 源码研究记录(一)

    Java IO 源码研究: 一.输入流 1  基类 InputStream 简介: 这是Java中所有输入流的基类,它是一个抽象类,下面我们简单来了解一下它的基本方法和抽象方法. 基本方法: publ ...