如何搭建一个 Data Guard 环境

 

       Blog里零零散散的讲了一些DB 维护的东西,比较杂,也比较散。 这里就Oracle Data Guard 这块做一个小结。 主要是流程上的东西。 做个参考,以后装DG,照这个流程走就ok了。  

 

 

.  服务器设置

1.1 硬盘的规划

       根据自己的业务量来规划硬盘。 我上周搭建的DG,用了4SAS 硬盘。 单盘300G1.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平台下oracle10.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

 

在这里简单的说一下:

1redo 文件默认是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

 

       在这里补充一点, 在我装的2DG上都遇到一个问题。 就是主库的sys 用户密码会改变。 怀疑和安装过程中copy 密码文件的过程有关。因为找不到其他原因了。 所以安装之后,用原来的sys密码连接一下。 如果不能使用,赶紧重新设置一下。然后在copy到备库。 不然在客户端就不能用sys用户登陆了。  

 

       如果是现在有DG,不知道sys用户密码。 我在测试环境下测试过,在不停DG的情况下,直接修改sys用户密码,然后copy到备库。这样是可以使用的。 生产库上没有做过。

 

 

. 后续的调整

       在这部分,主要是修改一些参数和数据文件的变动。

 

4.1 修改数据文件

       SQL 命令,或者用Toad 都可以。

1)将SYSTEM,SYSAUX 2个系统表空间增加到1G,并设置为自动增长,每次10M

2UNDO 表空间,设成32G4*8G 或者16G2*8G)。关闭自动扩展。

3TEMP 表空间,设成32G4*8G 或者16G2*8G)。关闭自动扩展。

 

4.2 参数修改

1 修改undo_retention

       undo_retention 只是指定undo 数据的过期时间,默认是900s15分钟。建议改成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天。 可以将该参数设置为0365之间的任意值。

 

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 其他监控脚本

参考:

8DBA最常用的监控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 会产生大量的归档文件。

 

 

Oracle Data Guard 主库 归档文件 删除策略

http://blog.csdn.net/tianlesoftware/archive/2011/03/07/6227965.aspx


 

 

       DG 的东西就这么多了。 最后3句话:

       1)备份重于一切

       2)责任重于一切

       3DBA要胆大心细,遇事不慌

 

 

 

 

 

------------------------------------------------------------------------------

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表空间和数据文件的关系,否则拒绝申请


转载于:https://www.cnblogs.com/tianlesoftware/archive/2011/02/20/3609796.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/495603.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

一文尽揽2018 Google I/O:谷歌让你感受到AI科技的魅力

来源&#xff1a;智者无疆摘要&#xff1a;今年的主角依然是AI人工智能&#xff0c;它已经融入谷歌产品与软件系统中&#xff0c;但这次&#xff0c;谷歌在讲解AI或产品功能时候从理解人类和人性的角度举例&#xff0c;把AI带到了科技与人文的十字路口上。5月9日凌晨消息&#…

小甲鱼 OllyDbg 教程系列 (六) :PJ 软件功能限制(不修改jnz的非爆破方法)

小甲鱼视频地址&#xff1a;https://www.bilibili.com/video/av6889190?p13 小甲鱼OD学习第9讲&#xff1a;https://www.bbsmax.com/A/x9J23xEM56/ 程序下载地址&#xff1a;https://pan.baidu.com/s/1JTQ32xIBV6XiPtuXsOIgiw 提取码: r5t4 这次我们的任务是 pj 去掉注册软…

HTTP 和 HTTPS 协议

HTTP协议是什么&#xff1f; 简单来说&#xff0c;就是一个基于应用层的通信规范&#xff1a;双方要进行通信&#xff0c;大家都要遵守一个规范&#xff0c;这个规范就是HTTP协议。 HTTP协议能做什么&#xff1f; 很多人首先一定会想到&#xff1a;浏览网页。没错&#xff0c;浏…

卡耐基梅隆大学提出新型「自适应」技术,可提高「个性化神经机器翻译」质量...

原文来源&#xff1a;arXiv作者&#xff1a;Paul Michel、Graham Neubig「雷克世界」编译&#xff1a;嗯~是阿童木呀导语&#xff1a;现如今&#xff0c;随着人工智能的发展&#xff0c;机器翻译在一定程度上取得了很大的进展&#xff0c;但是大家都知道&#xff0c;语言的产生…

小甲鱼 OllyDbg 教程系列 (九) :Delphi 程序逆向特点

小甲鱼 OllyDBG 使用教程&#xff1a;https://www.bilibili.com/video/av30969642?p16 OD 实验(十二) - 对一个 Delphi 程序的逆向&#xff1a;https://www.cnblogs.com/sch01ar/p/9678256.html 程序下载地址&#xff1a;https://pan.baidu.com/s/1Gb97C6HBNlmph7MbGrN_SQ …

Guava入门~AsyncFunction

与Function接口类型&#xff0c;接收一个参数&#xff0c;返回一个对象。不同的是&#xff0c;其返回的是ListenableFuture public class AsyncFuntionSample implements AsyncFunction<Long,String> {private ConcurrentMap<Long,String> map Maps.newConcurren…

基于系统科学理论的认知科学研究进展

来源&#xff1a;人机与认知实验室摘要&#xff1a; 系统科学的一个未曾言明的假设是&#xff0c;一切事物都是以系统方式存在和运行的&#xff0c;都可以用系统观点来认识&#xff0c;一切问题都需要用系统方式来处理。关于认知的一系列问题也不例外。一、研究背景及方法2000年…

小甲鱼 OllyDbg 教程系列 (十) : Windows 逆向常用 api 以及 XOFTSPY 逆向

小甲鱼 OllyDbg 视频教程 尝试 1 &#xff1a; https://www.bilibili.com/video/av6889190?p17 尝试 2 &#xff1a; https://www.bilibili.com/video/av6889190?p18 小甲鱼OD学习第13-14讲&#xff1a;https://www.bbsmax.com/A/QV5ZL1gZzy/ 逆向常用 api &am…

使用BAT批处理执行sql

有时候需要执行一些Sql语句时&#xff0c;不想开企业管理器&#xff0c;或者是发给客户执行但那边又不懂代码&#xff0c;这时就可以用下面方法&#xff1a; 1、把待执行Sql保存在一个文件&#xff0c;这里为20110224.sql。 2、新建一个扩展名.bat的批处理文件&#xff0c;输入…

Guava入门~FutureFallback

FutureFallback接口用作Future失败时的备份或默认值。 public class FutureFallbackImpl implements FutureFallback<String> {Overridepublic ListenableFuture<String> create(Throwable t) throws Exception {if (t instanceof FileNotFoundException) {Settab…

vbs创建目录,可循环创建父级目录

On error resume Next 删除字符串最右边的字符chsFunction MyRTrim(src, chs) 删除字符串最右边的字符chs(可多个) Dim pos, sLeft src Trim(src) pos InStrRev(src, chs) 查找最后一个字符chs if(pos > 0 and Len(Mid(src, …

小甲鱼 OllyDbg 教程系列 (十一) : inline patch ( 内嵌补丁 )

小甲鱼 OllyDbg 视频教程&#xff1a;https://www.bilibili.com/video/av6889190?p19 程序下载地址&#xff1a;https://pan.baidu.com/s/1u6SWgx83VWDwitNzxT2OXg 提取码&#xff1a;if41 PEiD 查壳工具&#xff1a;https://pan.baidu.com/s/1iNS4UlBvmXCxaj5a-AFupw …

5 年提速 500 倍,英伟达 GPU 创纪录突破与技术有哪些?

作者&#xff1a;诗颖摘要&#xff1a;日前&#xff0c;英伟达 Developer Blog 上一篇博文详细陈述了英伟达 Volta Tensor Core GPU 在深度学习社群取得的巨大突破&#xff0c;以及种种突破背后的技术细节。2017 年 5 月&#xff0c;在 GTC 2017 上&#xff0c;英伟达 CEO 黄仁…

Guava入门~RateLimiter

约束每秒几个线程操作 RateLimiter limiter RateLimiter.create(4.0); 示例 阻塞方式 limiter.acquire(); executor.submit(runnable); 条件方式 if(limiter.tryAcquire()){doSomething(); }else{//Boo cant get indoSomethingElse(); } 完整示例 import com.google.c…

【译】Lesson 1: 一个三角形和一个方块

【声明】&#xff1a;本系列文章译自&#xff1a;http://learningwebgl.com/blog/?page_id1217&#xff0c; 感谢Giles Thomas&#xff1b;限于我的英文水平&#xff0c;本文翻译并不一定严格遵从原文&#xff0c;但也不会严重背离原文&#xff08;如果有&#xff0c;请务必知…

小甲鱼 OllyDbg 教程系列 (三) :PJ 软件功能限制

小甲鱼OllyDbg教程&#xff1a;https://www.bilibili.com/video/av6889190?p8 https://www.freebuf.com/articles/system/87723.html 程序下载地址&#xff1a;https://pan.baidu.com/s/1OprawMSCXPZw1wuY5vxMmA 提取码: tp9e 无壳的实例 目标&#xff1a;去除软件功能限制…

特朗普即将主持AI会议 中美竞争成焦点

来源&#xff1a;华尔街见闻摘要&#xff1a;特朗普将用一整天在白宫主持他当选以来的第三次科技大会&#xff0c;这次的主题是人工智能&#xff08;AI&#xff09;。特朗普都将和硅谷巨头们探讨AI相关话题。其中&#xff0c;对AI技术的监管以及中美之间的AI竞争将会是会议的焦…

Guava入门~MapMaker

ConcurrentMap<String,Book> books new MapMaker().concurrencyLevel(2).softValues().makeMap(); concurrencyLevel()&#xff1a;设置允许并发修改map的线程数&#xff1b; softValues()&#xff1a;map的值用SoftReference封装&#xff0c;允许内存低时候垃圾回收&…

Fedora 10初体验

一、前奏 Fedora 10 - 熄灭吧 Fedora 是基于 Linux 的操作细碎&#xff0c;包罗了从容和开源软件最新的效果。Fedora 准许通通人从容操纵、修正和重新宣布。它由普及举世的贡献者协作开发&#xff0c;他们组成了 Fedora 项目社区。Fedora 项目对通通人都是开放的。 Fedora 项目…

DeepMind重大突破:AI进化出大脑级导航能力,像动物一样会“抄小路”

作者&#xff1a;刘伟摘要&#xff1a;DeepMind团队称&#xff0c;其最新研发出的一个人工智能程序具有类似哺乳动物一样的寻路能力。美国东部时间 5 月 9 日&#xff0c;一手打造 AlphaGo的DeepMind 团队又在世界顶级学术杂志《自然》上发表了一项重磅成果。在一篇题为 Vector…