当前位置: 首页 > 编程日记 > 正文

[置顶] 如何搭建一个 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 会产生大量的归档文件。

 

 

 

 

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

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

相关文章:

技术图文:如何进行代码的重构?以封装 BigOne API 为例

背景 自从把“量化交易”作为自己精进的技术方向之后&#xff0c;我做了一些准备工作。 比如&#xff1a; 1. 爬取交易所的公告&#xff0c;根据公告的信息来研判数字货币的短期走势。 这里面有一个“流动性溢价”的概念&#xff0c;等后面我会结合一些例子跟大家聊聊这块的…

《Java核心技术 卷Ⅱ 高级特性(原书第10版)》一3.7.5 使用StAX写出XML文档

3.7.5 使用StAX写出XML文档 在前一节中&#xff0c;你看到了如何通过写出DOM树的方法来产生XML文件。如果这个DOM树没有其他任何用途&#xff0c;那么这种方式就不是很高效。StAX API使我们可以直接将XML树写出&#xff0c;这需要从某个OutputStream中构建一个XMLStreamWriter…

大数据就业前景怎么样?需要学会哪些技术?

智能时代的来临&#xff0c;我们日常生活中的很多技术都可以用大数据来实现&#xff0c;大数据开发行业做为IT行业中的一类更是前景无限。所以很多人想转行做大数据开发。那么现在大数据就业前景怎么样?需要学会哪些技术? 大数据就业前景怎么样?需要学会哪些技术?大数据行业…

技术图文:如何利用 C# 实现 误差反向传播 学习规则?

背景 我们在 如何利用 C# 对神经网络模型进行抽象&#xff1f; 中完成了神经网络的抽象结构&#xff1a; 三个接口&#xff1a;激活函数、有监督学习、无监督学习 三个抽象类&#xff1a;神经元、网络层、网络拓扑 我们在 如何利用 C# 实现神经网络的感知器模型&#xff1f; …

SQL注入漏洞全接触--入门篇

随着B/S模式应用开发的发展&#xff0c;使用这种模式编写应用程序的程序员也越来越多。但是由于这个行业的入门门槛不高&#xff0c;程序员的水平及经验也参差不齐&#xff0c;相当大一部分程序员在编写代码的时候&#xff0c;没有对用户输入数据的合法性进行判断&#xff0c;使…

WannaCry 不相信眼泪 它需要你的安全防御与响应能力

在过去的几天里&#xff0c;WannaCry恶意软件及其变体影响了全球数百家组织与机构。 尽管每个组织都会因各种各样的原因没能及时对存在漏洞的系统做更新保护&#xff0c;或者担心更新实时系统的风险&#xff0c;两个月对于任何组织来用于采取措施保证系统安全也并不算太短的时间…

小白阶段如何学习Web前端知识

学会了UI设计技术&#xff0c;接下来的计划就是要找工作了&#xff0c;UI设计在面试环节的自我介绍很重要&#xff0c;有时候一分钟的自我介绍已经足够让HR判断出你适不适合他们公司&#xff0c;那做为一名UI设计师面试时如何自我介绍呢?来看看下面的详细介绍。 UI设计师面试时…

康泰瑞影推高性能3D/4D超声可视化方案

本文讲的是康泰瑞影推高性能3D/4D超声可视化方案,康泰瑞影(ContextVision)推出的业界首款超声实时3D立体图像增强产品已经配备全新的影像可视化功能。所推出的产品REALiCE?将提供逼真的3D超声影像&#xff0c;提高了诊断质量。 REALiCE软件将GOPiCE?自适应3D/4D立体图像增强产…

New Video Game Controlled By Kissing

unassimilatible writes "Artist Hye Yeon Nam has put her video game where her mouth is — literally — with the creation of a new bowling game thats controlled only by passionate (and awkward) French kissing. The Kiss Controller, as its called, has two…

资料分享:数学建模资料分享 -- 图论部分

背景 今天上午&#xff0c;在教六第一阶梯教室为数学建模俱乐部的同学们分享了有关图论的基本知识和应用。 课后&#xff0c;为同学们留了一个算法实现的小练习&#xff0c;大家可以先做一下。在本图文的末尾处&#xff0c;我把上课的资料以及代码分享出来&#xff0c;供大家…

免费学习编程的10个好工具

互联网时代的快速发展&#xff0c;很多人都在学习编程技术&#xff0c;小编今天为大家推荐的就是学习编程技术会用到的一些编程工具&#xff0c;免费学习编程的10个好工具!希望能够帮助到正在学习的小伙伴们。 免费学习编程的10个好工具&#xff1a; 1. Code/Racer Code/Racer是…

【ZT】我家宝宝不会哭----分享在美国养孩子的妈妈经(必看)

我在美国生了两个孩子&#xff0c;生育前后都有培训班&#xff0c;家庭医生每次洗脑让我受益匪浅&#xff0c;我的两个宝宝在婴儿时期乖巧得好像家里没有小婴儿&#xff0c;我甚至疑心她们会不会哭&#xff1f;如今外婆常拿这句傻话笑我。回国后看到朋友或邻居们被小祖宗折磨得…

资料分享:数学建模资料分享 -- 神经网络部分

背景 周日的时候&#xff0c;为数学建模俱乐部的同学们进行了一场有关人工神经网络方面的分享。虽然在这个方面有一些积累&#xff0c;但过于零散&#xff0c;所以拿了一堆文件拼凑成整体的内容。 幸亏自己有分享的习惯&#xff0c;学会一些知识就写下来&#xff0c;这次就是…

配置文件的简单使用

常见的配置文件格式:1.properties里面内容的格式 keyvalue2.xml后期详细解释若我们的配置文件为properties,并且放在src目录下.我们可以通过 ResourceBundle工具快速获取里面的配置信息使用步骤:1.获取ResourceBundle 对象:static ResourceBundle getBundle("文件名称不带…

软件测试工程师如何提升自己?

在软件测试行业&#xff0c;尤其是今年疫情的发生&#xff0c;想要在这个行业站稳脚跟&#xff0c;有着扎实的技术是非常重要的&#xff0c;今天小编要为大家介绍的内容就是软件测试工程师如何提升自己?希望能够给大家带来帮助。 软件测试工程师如何提升自己?熟练掌握IT核心技…

一些简单的SQL语句

1.创建数据库&#xff1a;create database database-name 2.删除数据库&#xff1a;delete database database-name 3.选择:select * from table where ... 4.插入&#xff1a;insert into table(field1,field2) values(value1,value2) 5.更新&#xff1a;update table set fie…

技术图文:进一步完善自动化交易系统 - 01

背景 最初&#xff0c;我们介绍了 如何利用网格交易法对数字资产进行交易。只要价格存在波动&#xff0c;通过这种方法就能赚取利润。 接着&#xff0c;我们介绍了 如何通过三角套利来交易数字资产。只要三种数字资产&#xff0c;两两存在交易对&#xff0c;就可以建立套利的…

String、StringBuffer与StringBuilder之间区别 (转载)

最近学习到StringBuffer&#xff0c;心中有好些疑问&#xff0c;搜索了一些关于String&#xff0c;StringBuffer&#xff0c;StringBuilder的东西&#xff0c;现在整理一下。 关于这三个类在字符串处理中的位置不言而喻&#xff0c;那么他们到底有什么优缺点&#xff0c;到底什…

女生可以学习Web前端吗?

随着时代的不断发展&#xff0c;女性独立意识越来越高&#xff0c;在职场这方面&#xff0c;很多岗位都有了女性的存在&#xff0c;尤其是IT互联网行业&#xff0c;广阔的发展前景和优厚的福利待遇吸引了很多女性小伙伴想要学习Web前端开发&#xff0c;那么女生可以学习Web前端…

adobe就不敢把融合做得更好一点?

体验了一把flash bulider4 和 flash cs5的结合。 之前说得挺牛B的协同开发也不过如此。还以为会给开发者更多的便利。。。 其也就是让建立一个有外链类的mc的时候&#xff0c;能自动为你在bulider里面提示新建一个类而已。 在flash bulider(flex bulider)中依然不认识flash中的…

apache开启虚拟主机 并进行配置

sudo vi /etc/apache2/httpd.conf 进入 apache 配置文件 在配置文件中搜索 Virtual hosts 如图 把前面的#删掉 #为注释 sudo vi /etc/apache2/extra/httpd-vhosts.conf 打开虚拟主机配置文件对下面的一下代码进行复制并粘贴在下方并更改里面的一些内容 DocumentRoot …

技术图文:进一步完善自动化交易系统 - 02

背景 自己的自动化交易系统起初只有网格交易法一个版本&#xff1a;如何利用网格交易法对数字资产进行交易。后面&#xff0c;加入了ONE、USDT、EOS的三角套利版本&#xff1a;如何通过三角套利来交易数字资产。接着&#xff0c;发现三角套利的个别订单在未全部成交的情况下被…

女士做软件测试的利弊有哪些?

社会在不断的进步&#xff0c;在如今的智能时代&#xff0c;女性独立意识越来越高&#xff0c;很多女性都把重心放在职场上&#xff0c;IT行业出现了越来越多的女性职业者&#xff0c;尤其是软件测试这一块&#xff0c;那么女士做软件测试的利弊有哪些呢?来看看下面的详细介绍…

刻意练习:Python基础 -- Task01. 变量、运算符与数据类型

背景 我们准备利用17天时间&#xff0c;将 Python 基础的刻意练习分为如下任务&#xff1a; Task01&#xff1a;变量、运算符与数据类型&#xff08;1day&#xff09;Task02&#xff1a;条件与循环&#xff08;1day&#xff09;Task03&#xff1a;列表与元组&#xff08;2day…

linux ramdisk与tmpfs的深入分析

一)ramdisk 1)概念 ramdisk就是指使用一部分内存空间来模拟硬盘分区,也就是说ramdisk是一个块设备,要用mkfs格式化,才能真正使用它. .ramdisk在内核2.0/2.2版本就已经支持. .ramdisk设备是它不允许重新声明它的内存空间,所以ramdisk块通常会一直占用空间的内存直到系统重启. .r…

Unique Paths II

注意一个容易犯的错误&#xff1a;判断obstacleGrid是否为1时&#xff0c;else那部分不能少。因为如果不加&#xff0c;就会默认把那些值设置为0。 class Solution { public:int uniquePathsWithObstacles(vector<vector<int>>& obstacleGrid) {int height ob…

零基础java培训如何规划学习路线

学习java的同学越来越多&#xff0c;很多小伙伴都想知道零基础如何学习java?如何安排学习路线&#xff0c;零基础java培训如何规划学习路线?那么针对以上问题&#xff0c;今天小编特意分享这篇Java学习指南&#xff0c;希望对那些想学Java&#xff0c;想零基础快速入门Java有…

CCIE-MPLS基础篇-实验手册

又一部前期JUSTECH&#xff08;南京捷式泰&#xff09;工程师职业发展系列丛书完整拷贝。 MPLS&#xff08;Multi-Protocol Label Switching&#xff09; 目录 1&#xff1a;MPLS 基础实验.... 3 1.1实验拓扑... 3 1.2实验需求&#xff1a;... 3 1.3实验步骤... 3 1.4校验…

[转载]Oracle 11g新特征之形式料理(2)

不可见的索引 您经常感应利诱&#xff0c;索引能否真的有利于用户的盘考&#xff1f;它也许有利于一个盘考&#xff0c;但会影响 10 个其他盘考。索引肯定会对 INSERT 语句形成负面影响&#xff0c;也会执行潜伏的删除和更新操纵&#xff0c;这取决于 WHERE 条件能否在索引中包…

技术图文:进一步完善自动化交易系统 - 03

背景 在 进一步完善自动化交易系统 - 02 这篇图文中&#xff0c;向大家详细介绍了&#xff0c;满足以下两个条件下&#xff1a; 拥有数字资产&#xff1a;BTC、EOS、USDT、ONEBigOne 提供交易对&#xff1a;ONE-USDT、ONE-EOS、ONE-BTC、EOS-BTC、EOS-USDT、BTC-USDT 我们可…