『转』DBA五个最佳实践


在我看来,最佳实践之所以成为最佳实践,必须具备以下两点:

1)可以判断为什么有优势;

2)可以灵活应对多种情况。

下面5个最佳实践是我多年从事大大小小的Oracle系统工作总结出来的精华。

 #1:使用多个Oracle主目录

 我最喜欢的最佳实践是关于使用多个Oracle主目录的经验。下面就是使用多个Oracle主目录的具体做法。在安装一个或多个Oracle补丁包时,我不推荐直接更新到当前工作的Oracle主目录。相反,我建议创建新的Oracle主目录,然后把补丁安装到新的主目录。 比如:我创建的第一个Oracle主目录在“/app/oracle/db_1”。当有新的Oracle补丁需要安装时,我就在目录“/app/oracle/db_2”重新安装整个Oracle软件,然后在新安装的Oracle主目录中更新补丁。在安装Oracle软件和补丁的过程中,原数据库一直处于已启动的状态,因为当前安装和更新都跟“db_1”目录没关系。当更新停止的窗口出现(更新完成)时,我需要做的全部内容就是:停止当前运行的Oracle服务;把Oracle主目录改为“db_2”,然后再启动数据库。如果在此过程中出现了问题,我可以把Oracle主目录再改回原来的目录“db_1”。 下面是传统方式更新补丁的方法:
 关闭当前数据库
 给当前Oracle主目录安装补丁
 启动数据库
 如果出现问题,执行以下步骤:
 关闭数据库
 回滚刚刚安装的补丁
 启动数据库


第二步到第六步可能需要长达三小时的时间(取决于补丁的数量和大小)。在此期间,数据库一直处于停止状态。 下面是采用最佳实践更新补丁的新方法:
 在新的Oracle主目录安装Oracle软件
 给新安装的Oracle主目录安装补丁
 关闭原有数据库
 把Oracle主目录修改为新安装的路径
 启动数据库
 如果出现问题,执行以下步骤:
 关闭新安装的数据库
 把Oracle主目录修改为原来的旧路径
 启动原有数据库
采用新方法,数据库只需要在第四步到第八步之间停止,最多需要停止几分钟,而不是几小时。 新方法的优势有:
 极大地减少了数据库停止状态的时间,大概是旧方法所需时间的六十分之一。
 极大地降低了更新风险。出现问题时,新方法不需要回滚补丁,只需要通过设置主目录切换回安装前的版本即可。
 你可以对两个主目录执行“diff”功能查看它们直接的变化和区别,也可以查看多个(两个以上)主目录之间的区别。
 你可以在同一台服务器上安装多个数据库,然后选择任意一个运行。
 你可以看到多个Oracle主目录,这些主目录显示了你每次应用补丁的详细清单。
采用新方法唯一的副作用是需要多占用一些磁盘空间——你需要满足两个Oracle主目录的存储空间。但是考虑到一般的Oracle主目录占用空间不超过4GB,所以对存储空间这方面的影响问题不大。

#2: 设置audit trail(审计跟踪)= DB

 

在数据库创建过程中,给Oracle初始化参数文件中添加参数“AUDIT_TRAIL = DB”,可以设置数据库开启审计功能。设置这个参数并不意味着审计功能已经开始执行了,必须对对象明确调用AUDIT命令才行。但是要使AUDIT命令有效,该参数必须被设置为某个值,因为默认值是FALSE。对于非动态参数,数据库必须快速改变AUDIT_TRAIL的值。即便你从来没打算审计什么,但是要保存问题内容,避免不明原因的停机,就把这个值设置为DB。它并不会破坏什么,但在出问题时,你可以随时执行审计。

 #3:文件名不要使用“.log”后缀

不要给redo log文件名使用“.log”后缀。有人可能会想当然地认为所有“.log”后缀都是多余的日志文件,就运行脚本删除所有log后缀文件。这会导致数据库联机redo log文件丢失,强迫执行数据库恢复。你可以用后缀“redo”或“rdo”来代替“.log”。

 #4:预操作RMAN恢复

 

通过RMAN恢复的预操作功能,我们不需要执行真正的恢复操作,就可以检查将来在正式恢复操作时需要使用的所有备份文件是否有效。这可以排除在真正执行恢复时由于丢失文件发生的异常事件。

#5:给运行在同一台数据库服务器上的客户端创建新的Oracle用户

 

 Oracle数据库服务器软件也包含有客户端的功能,你可以在同一台服务器上用客户端连接数据库。但是按照最佳实践,我们不对Oracle软件使用同一个用户,而使用另外新创建的用户。例如:如果你安装Oracle软件时使用的用户是“Oracle”,那就创建一个叫“oraapp”的用户,并用这个用户安装只含客户端的软件。用户“oraapp”不应该拥有dba权限或者属于oinstall权限组,所以该用户不能以sysdba的权限登录数据库。创建一个新的权限组叫“appgrp”,把用户“oraapp”分配到这个组。所有应用程序使用的用户都应该属于“appgrp”组。这样,这些用户可以在sqlplus,sqlldr或其他在server上可以执行的工具中使用,但是不能以sysdba权限登录连接。 一般的做法是让客户端软件使用与数据库软件owner相同的用户,但是在Oracle 10.2以上的版本,Oracle已经修改了安全策略,从Oracle主目录去掉了全局执行权限。唯一的选择是允许应用用户作为dba组的一部分,或者修改在Oracle主目录的权限——这两种做法都会使数据库变得脆弱,易于受到攻击。

转载于:https://www.cnblogs.com/zhangningawp/archive/2009/11/18/1605309.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值