济南软件外包,邢台seo服务公司,电商设计和平面设计的区别,北京wap网站建设在Blog里零零散散的讲了一些DB 维护的东西#xff0c;比较杂#xff0c;也比较散。 这里就Oracle Data Guard 这块做一个小结。 主要是流程上的东西。 做个参考#xff0c;以后装DG#xff0c;照这个流程走就ok了。 一. 服务器设置1.1 硬盘的规划根据自己的业务量来规划硬… 在Blog里零零散散的讲了一些DB 维护的东西比较杂也比较散。 这里就Oracle Data Guard 这块做一个小结。 主要是流程上的东西。 做个参考以后装DG照这个流程走就ok了。 一. 服务器设置1.1 硬盘的规划 根据自己的业务量来规划硬盘。 我上周搭建的DG,用了4块SAS 硬盘。 单盘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平台下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 在这里简单的说一下 1redo 文件默认是50M改成100M2每个redo group里改成2个 redo logfile。 大小100M3检查一下字符集ZHS16GBK4设置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并设置为自动增长每次10M2UNDO 表空间设成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_retention10800 scopeboth;系统已更改。 2修改sessions 和 processes 参数SQL alter system set sessions2000 scopespfile;系统已更改。SQL alter system set processes1000 scopespfile;系统已更改。 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_time14;系统已更改。 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_links100 scopespfile; 系统已更改。 五. 部署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.sqlconn sys/PWDSID as sysdbahost title 数据库日常检查column dest_name format a30column destination format a20column MEMBER format a45column 归档地 format a20column TABLESPACE_NAME format a10column FREE_RATE format a10host clsprompt **************************** 实 例 状 态 ************************************;select instance_name 实例名,version 版本,status 状态,database_status 数据库状态 from v$instance;prompt **************************** 数据库状态 *************************************;select name,log_mode 归档模式,open_mode 打开模式 from v$database;prompt **************************** 控制文件状态 ***********************************;column name format a40select 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 statusOFFLINE;prompt **************************** SEQUENCE同步数 *********************************;select max(sequence#)from v$log_history;CONN sys/PWDSID_ST as sysdba;prompt **************************** 备库SEQUENCE同步数 *****************************;select max(sequence#)from v$log_history;prompt **************************** 备库日志未应用(显示为空正常) *******************;select sequence#,applied from v$archived_log where appliedNO and sequence#2453;prompt **************************** 备库日志应用(显示最近十个日志) *****************;select * from(select sequence#,applied from v$archived_log order by sequence# desc) where rownum10;set time ondisconnect Check.batsqlplus /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 会产生大量的归档文件。 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