[置顶] 如何搭建一个 Data Guard 环境
在Blog里零零散散的讲了一些DB 维护的东西,比较杂,也比较散。 这里就Oracle Data Guard 这块做一个小结。 主要是流程上的东西。 做个参考,以后装DG,照这个流程走就ok了。
一. 服务器设置
1.1 硬盘的规划
根据自己的业务量来规划硬盘。 我上周搭建的DG,用了4块SAS 硬盘。 单盘300G,1.5w转/s。 这个IOPS 大概在150M/s。 是个估算值。 做了RAID1.
不同的RAID 对IOPS 是有影响的。
1.2 将硬盘挂载到服务器上
这块参考我的Blog:
Linux 下挂载硬盘的 方法
http://blog.csdn.net/tianlesoftware/archive/2010/06/02/5642883.aspx
二. 安装DB
这部分包括2块,安装DB 软件和升级。 如果是10g的话,可以先将DB升级到10.2.0.5。 升级的原因是为了避免某些bug。
先安装软件,升级,升级完在用DBCA 创建实例。 这样比安装DB 和创建实例之后升级要简单点。
2.1 安装DB 软件
具体步骤参考BLog:
32 位系统,参考: linux平台下oracle数据库安装
http://blog.csdn.net/tianlesoftware/archive/2009/10/23/4718218.aspx
64 位系统参考:64位 linux 平台下Oracle 安装文档
http://blog.csdn.net/tianlesoftware/archive/2010/12/08/6062816.aspx
2.2 升级DB 软件
具体步骤参考Blog:
linux平台下oracle从10.2.0.1升级到10.2.0.4
http://blog.csdn.net/tianlesoftware/archive/2009/10/27/4733475.aspx
其实,升级的步骤,在升级包的readme.html 里有详细的说明,可以照那个步骤来。
2.3 在主库DBCA创建实例
在我的Blog有说明:
如何搭建一个数据库服务器平台
http://blog.csdn.net/tianlesoftware/archive/2010/05/17/5602291.aspx
在这里简单的说一下:
(1)redo 文件默认是50M,改成100M
(2)每个redo group里改成2个 redo logfile。 大小100M
(3)检查一下字符集:ZHS16GBK
(4)设置SGA,PGA 大小。
OLTP 系统一般的规则是:
SGA=内存*80%*80%
PGA=内存*80%*20%
三. 搭建DG 环境
这块内容参考BLog:
Oracle Data Guard 理论知识
http://blog.csdn.net/tianlesoftware/archive/2010/04/22/5514082.aspx
Oracle Data Guard Linux 平台 Physical Standby 搭建实例
http://blog.csdn.net/tianlesoftware/archive/2010/04/30/5547565.aspx
在这里补充一点, 在我装的2套DG上都遇到一个问题。 就是主库的sys 用户密码会改变。 怀疑和安装过程中copy 密码文件的过程有关。因为找不到其他原因了。 所以安装之后,用原来的sys密码连接一下。 如果不能使用,赶紧重新设置一下。然后在copy到备库。 不然在客户端就不能用sys用户登陆了。
如果是现在有DG,不知道sys用户密码。 我在测试环境下测试过,在不停DG的情况下,直接修改sys用户密码,然后copy到备库。这样是可以使用的。 生产库上没有做过。
四. 后续的调整
在这部分,主要是修改一些参数和数据文件的变动。
4.1 修改数据文件
用SQL 命令,或者用Toad 都可以。
(1)将SYSTEM,SYSAUX 这2个系统表空间增加到1G,并设置为自动增长,每次10M
(2)UNDO 表空间,设成32G(4*8G) 或者16G(2*8G)。关闭自动扩展。
(3)TEMP 表空间,设成32G(4*8G) 或者16G(2*8G)。关闭自动扩展。
4.2 参数修改
(1) 修改undo_retention
undo_retention 只是指定undo 数据的过期时间,默认是900s,15分钟。建议改成10800s,即3个小时。
SQL> alter system set undo_retention=10800 scope=both;
系统已更改。
(2)修改sessions 和 processes 参数
SQL> alter system set sessions=2000 scope=spfile;
系统已更改。
SQL> alter system set processes=1000 scope=spfile;
系统已更改。
(3)修改CONTROL_FILE_RECORD_KEEP_TIME 参数
该参数设置控制文件中存储备份记录的时间,在用RMAN的时候会涉及到这个参数。 备份记录包括完全的数据库备份记录,以及指定的数据文件,控制文件,参数文件和归档目录的备份记录。数据库参数CONTROL_FILE_RECORD_KEEP_TIME以天为单位(默认值为7天),因此在默认情况下,Oracle 会将RMAN备份和恢复记录保存7天。 可以将该参数设置为0到365之间的任意值。
SQL> alter system set control_file_record_keep_time=14;
系统已更改。
(4)设置open_links_per_instance 和 open_links 参数
关于这2个参数的说明,参考Blog:
open_links_per_instance 和 open_links 参数说明
http://blog.csdn.net/tianlesoftware/archive/2010/12/22/6090729.aspx
这2个参数修改之后,需要重启才能生效,所以,在安装DB的时候,就把这个参数修改了。 默认值是4,如果用到话就太小了。 所以在安装的时候,就给修改了。 修改建议值:100。
SQL> alter system set open_links=100 scope=spfile;
系统已更改。
五. 部署RMAN 备份
在部署脚本之前,记得修改2个参数:
RMAN> CONFIGURE CONTROLFILE AUTOBACKUP ON;
RMAN> CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 7 DAYS;
配置DG主库RMAN 归档文件的删除策略:
RMAN> configure archivelog deletion policy to applied on standby;
参考:
Nocatalog 下的RMAN 增量备份 shell脚本
http://blog.csdn.net/tianlesoftware/archive/2011/01/26/6164931.aspx
Linux 平台下 RMAN 全备 和 增量备份 shell 脚本
http://blog.csdn.net/tianlesoftware/archive/2010/07/16/5740630.aspx
如何 搭建 RMAN 备份平台
http://blog.csdn.net/tianlesoftware/archive/2010/07/16/5740896.aspx
六. 在备库部署删除归档文件脚本
DG 备库的归档文件不能自动删除。 需要使用脚本来删除。
参考:
Oracle Data Guard 备库 归档文件 删除脚本
http://blog.csdn.net/tianlesoftware/archive/2011/02/19/6194498.aspx
七. 部署其他的监控脚本
这部分监控如CPU,磁盘空间,表空间使用率。 alert log 日志等。 以前有个shell 的脚本,可以监控这些。 最近在整理一个Python的监控脚本。
7.1 alert log 按天存放
这样做主要还是方便查看alert log。 参考:
Oracle alert log 按天 存放 脚本
http://blog.csdn.net/tianlesoftware/archive/2011/02/20/6195742.aspx
7.2 以前弄的一个监控DG的批处理脚本
每天早上上班运行下,DG 的情况就能清楚的显示出来了。 省事很多。 后来懒的运行批处理命令,改成每天定时发到邮箱了。
Check.sql
conn sys/PWD@SID as sysdba
host title 数据库日常检查
column dest_name format a30
column destination format a20
column MEMBER format a45
column 归档地 format a20
column TABLESPACE_NAME format a10
column FREE_RATE format a10
host cls
prompt **************************** 实 例 状 态 ************************************;
select instance_name 实例名,version 版本,status 状态,database_status 数据库状态 from v$instance;
prompt **************************** 数据库状态 *************************************;
select name,log_mode 归档模式,open_mode 打开模式 from v$database;
prompt **************************** 控制文件状态 ***********************************;
column name format a40
select status,name from v$controlfile;
prompt **************************** 日志文件状态 ***********************************;
select GROUP#,status,type,member from v$logfile;
prompt***************************** 归档目的地状态 *********************************;
select dest_name ,status 状态,database_mode 数据库模式,destination 归档地 from v$archive_dest_status where dest_id in ('1','2');
set heading off;
select '************数据库已连续运行 '|| round(a.atime-b.startup_time)||' 天 '||'*******************************************' from(select sysdate atime from dual) a,v$instance b;
set heading on;
prompt***************************** 会 话 数 *************************************;
select sessions_current 当前会话数,sessions_highwater 实例最高值 from v$license;
prompt********************** 表空间监控(FREE_RATE小于10%为异常) ********************;
select a.tablespace_name, round(a.total_size) "total_size(MB)",
round(a.total_size)-round(b.free_size,3) "used_size(MB)",
round(b.free_size,3) "free_size(MB)", round(b.free_size/total_size*100,2)||'%' free_rate
from ( select tablespace_name, sum(bytes)/1024/1024 total_size
from dba_data_files
group by tablespace_name ) a,
( select tablespace_name, sum(bytes)/1024/1024 free_size
from dba_free_space
group by tablespace_name ) b
where a.tablespace_name = b.tablespace_name(+);
prompt **************************** 表空间OFFLINE(显示为空正常) ********************;
select tablespace_name 表空间名,status 状态 from dba_tablespaces where status='OFFLINE';
prompt **************************** SEQUENCE同步数 *********************************;
select max(sequence#)from v$log_history;
CONN sys/PWD@SID_ST as sysdba;
prompt **************************** 备库SEQUENCE同步数 *****************************;
select max(sequence#)from v$log_history;
prompt **************************** 备库日志未应用(显示为空正常) *******************;
select sequence#,applied from v$archived_log where applied='NO' and sequence#>2453;
prompt **************************** 备库日志应用(显示最近十个日志) *****************;
select * from(select sequence#,applied from v$archived_log order by sequence# desc) where rownum<=10;
set time on
disconnect
Check.bat
sqlplus /nolog @check.sql
7.3 其他监控脚本
参考:
8个DBA最常用的监控Oracle数据库的常用shell脚本
http://blog.csdn.net/tianlesoftware/archive/2009/11/10/4792798.aspx
八. 导入数据
用逻辑导出导入就可以了。 在导入之前建好表空间,注意:数据和索引分别存放在不同的表空间。 在建用户。最后导入数据。
对于某些系统(如移动的BOSS计费系统),在建sequence的时候,注意下sequence 的cache 大小。默认值是20. 一般是够用的。
Oracle Sequence Cache 参数说明
http://blog.csdn.net/tianlesoftware/archive/2010/11/08/5995051.aspx
导入的过程也会产生归档文件,只需要在主库导入即可。 备库会自动同步。 如果数据量大的话,这个同步过程会比较慢。 因为imp 会产生大量的归档文件。
DG 的东西就这么多了。 最后3句话:
(1)备份重于一切
(2)责任重于一切
(3)DBA要胆大心细,遇事不慌
------------------------------------------------------------------------------
Blog: http://blog.csdn.net/tianlesoftware
网上资源: http://tianlesoftware.download.csdn.net
相关视频:http://blog.csdn.net/tianlesoftware/archive/2009/11/27/4886500.aspx
DBA1 群:62697716(满); DBA2 群:62697977(满)
DBA3 群:62697850 DBA 超级群:63306533;
聊天 群:40132017
--加群需要在备注说明Oracle表空间和数据文件的关系,否则拒绝申请
Oracle Data Guard 主库 归档文件 删除策略
http://blog.csdn.net/tianlesoftware/archive/2011/03/07/6227965.aspx
转载于:https://www.cnblogs.com/spring3mvc/archive/2011/02/20/2414687.html
[置顶] 如何搭建一个 Data Guard 环境相关推荐
- 如何搭建一个 Data Guard 环境
在Blog里零零散散的讲了一些DB 维护的东西,比较杂,也比较散. 这里就Oracle Data Guard 这块做一个小结. 主要是流程上的东西. 做个参考,以后装DG,照这个流程走就ok了. 一. ...
- 主备库内存不一致的Data Guard环境搭建全过程
墨墨导读:一个单节点RAC,要做一套Data Guard,但是备库能给数据库的内存只有主库的一半左右,可以实现吗?答案是可以的,本文详述整个过程. 一.概况 1. 涉及的技术点 1)RAC作为prim ...
- 如何使用RMAN duplicate搭建12C的Data Guard环境?
墨墨导读:本文来自墨天轮用户投稿,介绍使用RMAN duplicate搭建12C的Data Guard环境的全过程. 1. 实验环境 2. 主端的数据库环境 [oracle@dg1 ~]$ sqlpl ...
- Oracle 11g Data Guard环境中的归档管理
在11g里面,随着ASM.RAC.Data Guard(包括Active Data Guard)的成熟,使用RAC+ASM+Data Guard越来越成为一种可靠的.维护简单.稳定的高可用性和容灾保护 ...
- 在Linux如何搭建Oracle11g Data Guard
RHEL6/CentOS6搭建Oracle Data Guard 一.工作原理 Oracle Data Guard是甲骨文推出的一种高可用性数据库方案,Data Guard确保企业数据的高可用性,数据 ...
- 在Data Guard环境中重做传输压缩 文档 ID 729551.1
Redo Transport Compression in a Data Guard Environment (文档 ID 729551.1) APPLIES TO: Oracle Database ...
- 【腾讯云 Finops Crane 集训营】 如何在Windows上快速搭建一个Kubernetes+Crane 环境及应用
一.前言 个人主页: ζ小菜鸡 大家好我是ζ小菜鸡,让我们一起学习在 Windows 如何快速搭建一个Kubernetes+Crane 环境及应用. 如果文章对你有帮助.欢迎关注.点赞.收藏(一键三连 ...
- 使用 kind 快速搭建一个 Kubernetes 测试环境
使用 kind 快速搭建一个 Kubernetes 测试环境 Intro kind(Kubernetes IN Docker) 是一个基于 docker 构建 Kubernetes 集群的工具,非常适 ...
- 【华为云技术分享】从零搭建一个灰度发布环境
DevUI是一支兼具设计视角和工程视角的团队,服务于华为云DevCloud平台和华为内部数个中后台系统,服务于设计师和前端工程师. 官方网站:devui.design Ng组件库:ng-devui(欢 ...
最新文章
- Apache Pulsar中的地域复制,第1篇:概念和功能
- WPF Interaction框架简介(一)——Behavior
- MySQL datetime类型字段的毫秒四舍五入
- python中object转str_python的id()函数介绍 python怎么将objectid转为str
- 图:BFS(深度优先搜索)图解分析代码实现
- 为什么C语言exe能直接打开,怎么让c语言生成的exe双击就能运行呢?
- Android 异常问题分析
- bootstrap table 分页_Java入门007~springboot+freemarker+bootstrap快速实现分页功能
- springboot 启动器和监听器的加载
- eslint 设置目录_Nuxt项目添加自定义ESLint规则
- 去掉 iOS 导航栏返回按钮文本三种方案
- 中文HanLp分词入门
- JAVA中文件下载和文件批量下载方法
- oracle 建表id自增长_oracle建表设置主键自增
- Mac下Appium环境搭建
- python-matplotlib绘图 -应用subplots_adjust()方法解决图表与画布的间距问题
- VirtualBox导入虚拟机错误e_invalidarg (0x80070057) 使用管理员权限打开VirtualBox
- OSChina 周四乱弹 —— 八字欠备,五行缺胎
- Gungho重点工作事项督办督查跟踪管理方案
- OpenCV+百度云人脸识别项目及源码
热门文章
- python如何创建一个类_python (知识点:类)简单的创建一个类
- mysql乐观锁处理超卖_通过乐观锁解决库存超卖的问题
- oracle分页的使用,oracle中分页的实现方式.rownum的使用
- php-cgi.sock 权限,php-fpm sock文件权限设置
- c oracle long raw,初次用Oracle,不会用Long Raw类型,请大家帮忙看看
- 用法与区别_指示代词this, that, these, those的区别和用法
- asp.net webform 复制窗体代码_逆向分析流氓软件自我复制以及防御思路
- 【点云重采样Resampling】Python-pcl 基于多项式平滑点云及法线估计的曲面重建
- 【camera】1. 相机硬件组成
- 机器学习(8)朴素贝叶斯算法(20条新闻分类)