Oracle10g物理DG详细配置方法及步骤
--测试环境:
OS:Redhat linux(64)
Primary:
IP:192.168.94.198
SID:dgdb1
Hostname:dg1
DB_UNIQUE_NAME:dgdb1
Database:10.2.0.1(64)
Standby:
IP:192.168.94.199
SID:dgdb1
Hostname:dg2
DB_UNIQUE_NAME:dgdb1_s
Database:10.2.0.1(64)
--实施DG前的准备工作
--开启数据库logging及数据库archivelog
--开启数据库logging
SQL> alter database force logging;
--检查数据库是否开启archivelog
SQL> archive log list;
--如果数据库未开启archivelog,则要开启archivelog
SQL> shutdown immediate;
SQL> startup mount;
SQL> alter database archivelog;
--检查数据库是否开启archivelog
SQL> archive log list;
--创建相应目录(根据具体情况,primary和standby端要一致)
--Standby:
mkdir –p /export/home/oracle/product/10.2.0/oradata/dgdb1
mkdir –p /export/home/oracle/product/10.2.0/admin/dgdb1/adump
mkdir –p /export/home/oracle/product/10.2.0/admin/dgdb1/bdump
mkdir –p /export/home/oracle/product/10.2.0/admin/dgdb1/cdump
mkdir –p /export/home/oracle/product/10.2.0/admin/dgdb1/udump
mkdir –p /export/home/oracle/product/10.2.0/admin/dgdb1/dpdump
mkdir –p /export/home/oracle/product/10.2.0/admin/dgdb1/pfile
mkdir –p /export/home/oracle/archive
mkdir -p /export/home/oracle/bak
--primary:
mkdir –p /export/home/oracle/archive
mkdir -p /export/home/oracle/bak
--修改或新增listener.ora 和tnsnames.ora(或者用GUI工具配置)
--注意:listener.ora 中新增的部分在括号内而非括号外
--primary端:
--listener.ora:
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = /export/home/oracle/product/10.2.0)
(PROGRAM = extproc)
)
(SID_DESC =
(GLOBAL_DBNAME = dgdb1)
(ORACLE_HOME = /export/home/oracle/product/10.2.0)
(SID_NAME = dgdb1)
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = dg1)(PORT = 1521))
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))
)
)
--tnsnames.ora
dgdb1 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.94.198)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = dgdb1)
)
)
dgdb1_s =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.94.199)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = dgdb1)
)
)
--standby端:
--listener.ora:
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = /export/home/oracle/product/10.2.0)
(PROGRAM = extproc)
)
(SID_DESC =
(GLOBAL_DBNAME = dgdb1)
(ORACLE_HOME = /export/home/oracle/product/10.2.0)
(SID_NAME = dgdb1)
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = dg2)(PORT = 1521))
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))
)
)
--tnsnames.ora
dgdb1 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.94.198)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = dgdb1)
)
)
dgdb1_s =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.94.199)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = dgdb1)
)
)
--具体实施DG的步骤:
--在primary上生成pfile,并修改添加相应参数,生成standby需要的pfile
--primary端:
oracle$>sqlplus / as sysdba
SQL> CREATE PFILE='/export/home/oracle/standby.ora' FROM SPFILE;
--编辑生成的pfile文件('/export/home/oracle/standby.ora'),添加如下参数:
*.db_unique_name='dgdb_s'
*.fal_server='dgdb1'
*.fal_client='dgdb_s'
*.LOG_ARCHIVE_CONFIG='DG_CONFIG=(dgdb1,dgdb_s)'
*.log_archive_dest_1='LOCATION=/export/home/oracle/archive VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=dgdb_s'
*.LOG_ARCHIVE_DEST_2='SERVICE=dgdb1 LGWR ASYNC=40960 VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=dgdb1'
*.LOG_ARCHIVE_DEST_STATE_1='ENABLE'
*.LOG_ARCHIVE_DEST_STATE_2='ENABLE'
*.standby_archive_dest='/export/home/oracle/archive'
*.standby_file_management='AUTO'
--修改完后拷贝到standby端
Oracle$Scp /export/home/oracle/standby.ora oracle@192.168.94.199:/export/home/oracle/
--在standby端使用pfile启动实例
--在primary端用命令创建数据库密码文件,并接拷贝至standby端相同路径下(如已存在,可直接拷贝)
--primary端手工创建数据库密码文件
Oracle$orapwd file=... password=...
--primary端拷贝数据库密码文件至standby端
Oracle$Scp /export/home/oracle/product/10.2.0/database/PWDdgdb1.ora oracle@192.168.94.199:/export/home/oracle/product/10.2.0/database
--standby端:
Oracle$set oracle_sid=dgdb1
Oracle$sqlplus / as sysdba
SQL> startup nomount pfile=’/export/home/oracle/standby.ora’
SQL> CREATE SPFILE FROM PFILE='/export/home/oracle/standby.ora';
--在primary端修改相应参数
--primary端:
Oracle$sqlplus / as sysdba
SQL> ALTER SYSTEM SET STANDBY_FILE_MANAGEMENT = AUTO scope=both;
SQL> ALTER SYSTEM SET fal_server='dgdb1_s' scope=both;
SQL> ALTER SYSTEM SET fal_client='dgdb1' scope=both;
SQL> ALTER SYSTEM SET LOG_ARCHIVE_CONFIG='DG_CONFIG=(dgdb1_s,dgdb1)' scope=both;
SQL> ALTER SYSTEM SET log_archive_dest_1='LOCATION=/export/home/oracle/archive VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=dgdb1' scope=both;
SQL> ALTER SYSTEM SET LOG_ARCHIVE_DEST_2='SERVICE=dgdb1_s LGWR ASYNC=40960 VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=dgdb1_s' scope=both;
SQL> ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_1='ENABLE' scope=both;
SQL> ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_2='ENABLE' scope=both;
SQL> ALTER SYSTEM SET standby_archive_dest='/export/home/oracle/archive' scope=both;
--在primary端开始使用rman备份数据库
--primary端:
Oracle$rman target /
RMAN>backup full format='/u01/app/oracle/bak/ora10g_%d_%T_%s' database include current controlfile for standby plus archivelog format='/u01/app/oracle/bak/arch_%d_%T_%s';
--备份完毕后,把相应备份文件拷贝到丛库的相应目录(目录必须一致)
Oracle$Scp /export/home/oracle/bak/* oracle@192.168.94.199:/export/home/oracle/bak/
--使用duplicate 还原standby数据库
--primary端:
Oracle$rman target / auxiliary sys/system@dgdb1_s
RMAN> duplicate target database for standby nofilenamecheck dorecover;
--收尾工作及开启dg
--standby端建立standby log(至少比redo多一组):
Oracle$sqlplus / as sysdba
SQL> ALTER DATABASE ADD STANDBY LOGFILE GROUP 4 ('/export/home/oracle/product/10.2.0/oradata/dgdb1/redo04.log') size 50M;
SQL> ALTER DATABASE ADD STANDBY LOGFILE GROUP 5 ('/export/home/oracle/product/10.2.0/oradata/dgdb1/redo05.log') size 50M;
SQL> ALTER DATABASE ADD STANDBY LOGFILE GROUP 6 ('/export/home/oracle/product/10.2.0/oradata/dgdb1/redo06.log') size 50M;
SQL> ALTER DATABASE ADD STANDBY LOGFILE GROUP 7 ('/export/home/oracle/product/10.2.0/oradata/dgdb1/redo07.log') size 50M;
--开启服务(standby端):
SQL> alter database recover managed standby database disconnect from session;
--测试服务是否正常
--standby端(看归档日志号):
SQL> SELECT SEQUENCE#, FIRST_TIME, NEXT_TIME FROM V$ARCHIVED_LOG ORDER BY SEQUENCE#;
--primary端(强制一个日志切换):
SQL> alter system switch logfile;
--standby端(看归档日志号):
SQL> SELECT SEQUENCE#, FIRST_TIME, NEXT_TIME FROM V$ARCHIVED_LOG ORDER BY SEQUENCE#;
--standby端(看应用归档日志的号):
SQL> SELECT SEQUENCE#,APPLIED FROM V$ARCHIVED_LOG ORDER BY SEQUENCE#;
--实现primary、standby的切换:
--primary端:
SQL> SELECT SWITCHOVER_STATUS FROM V$DATABASE;
--primary端(上一步的结果必须是”TO STANDBY”才可以)
SQL> ALTER DATABASE COMMIT TO SWITCHOVER TO PHYSICAL STANDBY;
--OR(上一步结果为”SESSIONS ACTIVE”,且解决不掉)
SQL>ALTER DATABASE COMMIT TO SWITCHOVER TO PHYSICAL STANDBY WITH SESSION SHUTDOWN;
--Primary端:
SQL> SHUTDOWN IMMEDIATE;
SQL> STARTUP MOUNT;
--standby端:
SQL> SELECT SWITCHOVER_STATUS FROM V$DATABASE;
--standby端(上一步的结果必须是”TO STANDBY”才可以):
SQL> ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY;
--OR(上一步结果为”SESSIONS ACTIVE”,且解决不掉)
SQL>ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY WITH SESSION SHUTDOWN;
--打开新的primary:
SQL>ALTER DATABASE OPEN;
--OR(最后一次启动后以read only模式打开过)
SQL> SHUTDOWN IMMEDIATE;
SQL> STARTUP;
--在新standby上重新启动log apply services(如果必要):
SQL>ALTER DATABASE RECOVER MANAGED STANDBY DATABASE;
--OR(后台模式 )
SQL>ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT;
--OR(实时应用redo)
SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE;
--新primary端(开始发送redo 数据到新standby端):
SQL> ALTER SYSTEM SWITCH LOGFILE;
Oracle10g物理DG详细配置方法及步骤的更多相关文章
- PL/SQL Developer 连接Oracle数据库详细配置方法
PL/SQL Developer 连接Oracle数据库详细配置方法 近段时间很多网友提出监听配置相关问题,客户终端(Client)无法连接服务器端(Server).本文现对监听配置作一简单介绍,给出 ...
- 关于Apache的配置方法和步骤
一.下载.安装和卸载 网址:https://httpd.apache.org/docs/current/platform/windows.html#down 点击ApacheHaus,在里面下载任何版 ...
- 二级缓存EhCache在几种应用技术的配置方法和步骤总结
一:Spring和Ehcache缓存集成 业务问题:如果仓库不经常变动,大量进出库,总是需要查询仓库列表 (列表重复) ,使用缓存优化 ! 阅读spring规范29章节 第一步: 导入ehcache的 ...
- PHP环境(apache,PHP,Mysql)详细配置方法
1.安装Apache ,直接运行安装即可,我们将其安装到D:\PHP\Apache/目录下 2.将PHP压缩包解压内容放到指定目录(例如:D:\PHP\Php5,将目录中的PHP.iniDevelop ...
- 在SRAM、FLASH中调试代码的配置方法(附详细步骤)
因为STM32的FLASH擦写次数有限(大概为1万次),所以为了延长FLASH的使用时间,我们平时调试时可以选择在SRAM中进行硬件调试.除此之外,SRAM 存储器的写入速度比在内部 FLASH 中要 ...
- Cotex-M3内核STM32F10XX系列时钟及其配置方法
一.背景 最近做个项目,需要使用STM32,还是以前一样的观点,时钟就是MCU心脏,供血即时钟频率输出,想要弄明白一个MCU,时钟是一个非常好的切入点.言归正传,网上已经有太多大神详述过STM32的详 ...
- STM32串口——中断方式的一般配置方法
#include "stm32f10x.h" /************************************************ 该程序讲解串口程序的一般配置方法: ...
- STM32串口程序的一般配置方法
#include "stm32f10x.h" /************************************************ 该程序讲解串口程序的一般配置方法: ...
- centos ftp服务器搭建 vsftpd 匿名访问配置方法 ftp 550 Failed to open file 错误处理
vsftpd是linux下常用的ftp服务软件,配置起来其实不复杂,只是网上很多文章,配置后都无法成功.我使用它是用于局域网内部分享文件的,所以使用匿名的方式. ftp本身密码是明文传输的,如果需要安 ...
随机推荐
- docker 使用案例:部署nginx
首先安装docker.可以参考这篇教程: http://www.runoob.com/docker/windows-docker-install.html 本教程以windows10+ubuntu:1 ...
- springboot+springmvc+mybatis项目整合
介绍: 上篇给大家介绍了ssm多模块项目的搭建,在搭建过程中spring整合springmvc和mybatis时会有很多的东西需要我们进行配置,这样不仅浪费了时间,也比较容易出错,由于这样问题的产生, ...
- Angular开发实践(二):HRM运行机制
引言 在angular-start项目中启用了模块热替换(HMR - Hot Module Replacement)功能,关于如何在angular-cli启用HRM,请查看HRM配置 那HMR是个什么 ...
- Linux 新手应该知道的一些求助命令
Linux 真正的强大所在是他的[命令行].每一个 Linux 命令其实就是一个程序,借助这些命令,我们可以办到非常多的事情.遇到困难时应该用什么命令去解决呢?下面兄弟连教育Linux小编将会为大家介 ...
- 用js写的时钟Demo
css代码: <style type="text/css"> .a { width: 200px; height: 100px; position: absolute; ...
- Maven-02: 依赖
其实一个依赖声明可以包含如下的一些元素: groupId,artifactId,version:依赖的基本坐标. type:依赖的类型,对应于项目坐标定义的packaging.大多数情况下,该元素不必 ...
- Redis数据过期策略
1.Redis中key的的过期时间 通过EXPIRE key seconds命令来设置数据的过期时间.返回1表明设置成功,返回0表明key不存在或者不能成功设置过期时间.在key上设置了过期时间后ke ...
- 手写ButterKnife
开发中使用注解框架可以极大地提高编码效率,注解框架用到的技术可以分为两种,运行时注解跟编译时注解.运行时注解一般配合反射机制使用,编译时注解则是用来生成模板代码.这里我们分别使用这两种方法实现Butt ...
- 基于jquery的插件开发
最近在公司做一个项目,由于后台数据太多需要分页显示,在网上找了很多插件都没有找到合适的分页插件,所有的分页插件始终达不到自己想要的效果.由于这个项目也不是很赶,就在网上查找各种资料,自己写一个基于jq ...
- 爬取博主所有文章并保存到本地(.txt版)--python3.6
闲话: 一位前辈告诉我大学期间要好好维护自己的博客,在博客园发布很好,但是自己最好也保留一个备份. 正好最近在学习python,刚刚从py2转到py3,还有点不是很习惯,正想着多练习,于是萌生了这个想 ...