博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ORACLE11G搭建DATA GUARD
阅读量:6310 次
发布时间:2019-06-22

本文共 4350 字,大约阅读时间需要 14 分钟。

一、准备环境
1、两台虚拟机、一台正常运行oracle数据库的,一台装了软件没有启动数据库的(没有进行dbca)
2、主库备库 修改环境变量,修改主机名,将主库备库的主机名都写入hosts文件
二、开始搭建
1.查看主库是否开启归档模式,查看是否开启强制日志(若没开启则开启)
SYS@WWDB1> select log_mode,force_logging from v$database;
SYS@WWDB1> alter database force logging;
SYS@WWDB1> archive log list;
SYS@WWDB1> show parameter db_recovery
SYS@WWDB11> alter system switch logfile;
2.创建STANDBY LOGFILE
SYS@WWDB1>define _editor=vim
SYS@WWDB1>ed1
alter database add standby logfile group 4 ('/u01/app/oracle/oradata/WWDB1/stlog01.log') size 100m;
alter database add standby logfile group 5 ('/u01/app/oracle/oradata/WWDB1/stlog02.log') size 100m;
alter database add standby logfile group 6 ('/u01/app/oracle/oradata/WWDB1/stlog03.log') size 100m;
alter database add standby logfile group 7 ('/u01/app/oracle/oradata/WWDB1/stlog04.log') size 100m;
SYS@WWDB1>@1
3.创建参数文件
SYS@WWDB1>create pfile from spfile;
4.修改参数文件
[oracle@oracle01 ~]$ cd /u01/app/oracle/product/11.2.4/dbhome_1/dbs/
[oracle@oracle01 dbs]$ vi initWWDB1.ora
在原有参数文件上添加
下列参数来自于官方文档
DB_UNIQUE_NAME=WWDB1
LOG_ARCHIVE_CONFIG='DG_CONFIG=(WWDB1,SBDB1)'
LOG_ARCHIVE_DEST_1=
 'LOCATION=use_db_recovery_file_dest
  VALID_FOR=(ALL_LOGFILES,ALL_ROLES)
  DB_UNIQUE_NAME=WWDB1'
LOG_ARCHIVE_DEST_2=
 'SERVICE=SBDB1 ASYNC
  VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE)
  DB_UNIQUE_NAME=SBDB1'
LOG_ARCHIVE_DEST_STATE_1=ENABLE
LOG_ARCHIVE_DEST_STATE_2=ENABLE
REMOTE_LOGIN_PASSWORDFILE=EXCLUSIVE
LOG_ARCHIVE_FORMAT=%t_%s_%r.arc
#下边的在备库上才有用,在主库中先添加上scp到备库 
FAL_SERVER=SBDB1
DB_FILE_NAME_CONVERT='SBDB1','WWDB1'
LOG_FILE_NAME_CONVERT='SBDB1','WWDB1'
STANDBY_FILE_MANAGEMENT=AUTO
 
dg_broker_start=true
5.修改监听文件
[oracle@oracle01 admin]$ vi listener.ora
添加静态监听
SID_LIST_LISTENER=
  (SID_LIST=
    (SID_DESC=
      (GLOBAL_DBNAME=WWDB1)
      (ORACLE_HOME=/u01/app/oracle/product/11.2.4/dbhome_1)
      (SID_NAME=WWDB1))
    (SID_DESC=
      (GLOBAL_DBNAME=WWDB1_DGMGRL)
      (ORACLE_HOME=/u01/app/oracle/product/11.2.4/dbhome_1)
      (SID_NAME=WWDB1))
    (SID_DESC=
      (SID_NAME=plsextproc)
      (ORACLE_HOME=/u01/app/oracle/product/11.2.4/dbhome_1)
      (PROGRAM=extproc)))      
 
[oracle@oracle01 admin]$ vi tnsnames.ora
##添加如下内容
SBDB1 =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = oracle02)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = SBDB1)
    )
  )
6.将监听文件、TNS文件、口令文件、参数文件
##重要的是口令文件跟参数文件文件名要改成备库的名称
scp initWWDB1.ora oracle02:/u01/app/oracle/product/11.2.4/dbhome_1/dbs/initSBDB1.ora
scp orapwWWDB1 oracle02:/u01/app/oracle/product/11.2.4/dbhome_1/dbs/orapwSBDB1
scp ../network/admin/listener.ora ../network/admin/tnsnames.ora oracle02:/u01/app/oracle/product/11.2.4/dbhome_1/network/admin
 
7.重启主库使配置生效
注:重启库之前先重启监听
三、到备库中
1.创建对应路径
[oracle@oracle01~]$ cd /u01/app/oracle/
[oracle@oracle01 oracle]$ mkdir -p admin/SBDB1/adump
[oracle@oracle01 oracle]$ mkdir -p oradata/SBDB1
[oracle@oracle01 dbs]$ mkdir -p /home/oracle/flash
2.修改参数文件
[oracle@oracle01 oracle]$ cd $ORACLE_HOME/dbs
[oracle@oracle01 oracle]$ vi initSBDB1.ora(从主库中scp过来的)
注:用替换SBDB1全部替换成WWDB1然后需要注意的是db_name=主库sid
3.修改网络配置文件(配置监听文件)
LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = oracle02)(PORT = 1521))
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
    )
  )
 
ADR_BASE_LISTENER = /u01/app/oracle
 
SID_LIST_LISTENER=
  (SID_LIST=
    (SID_DESC=
      (GLOBAL_DBNAME=SBDB1)
      (ORACLE_HOME=/u01/app/oracle/product/11.2.4/dbhome_1)
      (SID_NAME=SBDB1))
    (SID_DESC=
      (GLOBAL_DBNAME=SBDB1_DGMGRL)
      (ORACLE_HOME=/u01/app/oracle/product/11.2.4/dbhome_1)
      (SID_NAME=SBDB1))
    (SID_DESC=
      (SID_NAME=plsextproc)
      (ORACLE_HOME=/u01/app/oracle/product/11.2.4/dbhome_1)
      (PROGRAM=extproc)))
4.重启网络设置
##重启监听
[oracle@oracle01 oracle]$ lsnrctl reload
注:启动完看一下有一个动态监听一个静态监听
5.启动备库实例
SQL> create spfile from pfile;
备库启动到nomount状态
SQL> startup nomount
创建快速闪回区的目录
mkdir -p /u01/app/oracle/fast_recovery_area/SBDB1
 
6.搭建备库:
使用复制数据库技术搭建备库
[oracle@oracle01 oracle]$ rman target sys/oracle@WWDB1 auxiliary sys/oracle@sbdb1
RMAN> DUPLICATE TARGET DATABASE
FOR STANDBY
FROM ACTIVE DATABASE
DORECOVER
NOFILENAMECHECK;
运行成功,即备库搭建成功!
四、备库中运行一遍日志文件
SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE DISCONNECT FROM SESSION;
---备库中就会产生与主库一样的数据文件。
--------------------------------------------------------------------------------------------------------------------------------------------------
会报错
1、参数文件里不要出现汉语,注释也不要添加汉字,以及多余符号,连接符。
2、若快速恢复区没开的话,在配置参数文件的时候,需要将LOCATION=(需要改成主库数据库归档日志的本地目录)。
 

转载于:https://www.cnblogs.com/Wardenking/p/9598209.html

你可能感兴趣的文章
elasticsearch-jdbc
查看>>
Linux的#和$区别
查看>>
Linux中ctrl-c, ctrl-z, ctrl-d 区别
查看>>
Hadoop HBase概念学习系列之HLog(二)
查看>>
mysql设置datetime默认值为now
查看>>
R语言获取国内的股票数据
查看>>
Hadoop MapReduce编程 API入门系列之wordcount版本3(七)
查看>>
git命令
查看>>
Scrapy框架实现爬虫
查看>>
sphinx索引分析——文件格式和字典是double array trie 检索树,索引存储 – 多路归并排序,文档id压缩 – Variable Byte Coding...
查看>>
Spring MVC的一些学习笔记-入门配置和HttpMessageConverter
查看>>
RabbitMQ消息队列(二):”Hello, World“
查看>>
Python 图片转字符画
查看>>
USI和USCI的区别
查看>>
Docker Volume 之权限管理(转)
查看>>
NOIP2013积木大赛
查看>>
python基础——错误处理
查看>>
jackson简单使用,对象转json,json转对象,json转list
查看>>
将NuGet配置到环境变量中
查看>>
git pull 和本地文件冲突问题解决
查看>>