搭建前环境准备

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. MyBatis史上最全文章

    老规矩,本篇文章 不做 MyBatis 的 编码讲解 ,只介绍 文章学习的一些优秀文章 重点在于不要循规蹈矩,教程 这样走,你不一定要按他这样走,按自己的方式来,学习效率会更高,网上的教程有很多,今天 ...

  2. 【Go语言绘图】图片添加文字(二)

    这一篇将继续介绍gg库中绘制文字相关的方法,主要包括:DrawStringAnchored().DrawStringWrapped().MeasureMultilineString().WordWra ...

  3. java中远程调用接口springboot

    package com.kakarote.crm.utils; import cn.hutool.core.util.ObjectUtil; import org.apache.http.client ...

  4. 【代码周边】MongoDB与Mysql对比以及插入稳定性分析(指定主键的影响)

    在数据库存放的数据中,有一种特殊的键值叫做主键,它用于惟一地标识表中的某一条记录.也就是说,一个表不能有多个主键,并且主键不能为空值. 无论是MongoDB还是MySQL,都存在着主键的定义. 对于M ...

  5. vue 导入.md文件(markdown转HTML)

    前言 刚接到这个需求的时候,觉得很简单(的确很简单)但是这玩意的坑真的也让人无奈. 网上找了很多的资料,都没有写出痛点(这就很难过了).通过实践并且在我们项目中平稳运行,想分享给后面的人 我的博客上也 ...

  6. FSMC全称“静态存储器控制器”。

    FSMC全称"静态存储器控制器". 使用FSMC控制器后,可以把FSMC提供的FSMC_A[25:0]作为地址线,而把FSMC提供的FSMC_D[15:0]作为数据总线. (1)当 ...

  7. HTTP 常用状态码200 301 302 403 500

    200(OK):成功处理了请求. 301 redirect: 301 代表永久性转移(Permanently Moved) //助记 1 永恒,如果你记住了这一条就算这篇博客没白写.302 redir ...

  8. Linux下nginx反向代理负载均衡几种方式以及配置

    下面以ip地址192.168.1.1 和192.168.1.2举例 1.轮询   (1).轮询:每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除.  upstream ...

  9. Redis学习之路(三)常用命令总结

    一.集群 查看Redis集群有多少个库 192.168.200.100:7001> config get databases 1) "databases" 2) " ...

  10. 风炫安全WEB安全学习第二十五节课 利用XSS键盘记录

    风炫安全WEB安全学习第二十五节课 利用XSS键盘记录 XSS键盘记录 同源策略是浏览器的一个安全功能,不同源的客户端脚本在没有明确授权的情况下,不能读写对方资源.所以xyz.com下的js脚本采用a ...