
Oracle 在 2011 年 7 月份收购了 Ksplice。使用了 Ksplice 的 Linux 系统,为 Kernel 打补丁无需重启动,做系统维护的朋友应该明白这是一个杀手级特性。现在该产品已经合并到 Oracle Linux 中。
对于企业级 Linux,Oracle 只对 Oracle Linux Premier Support 客户提供 Ksplice 服务。毫无疑问,这个产品从一定程度上大大提升生产环境(尤其是数据库服务器)的安全性、可靠性和可用性,对购买了 Oracle 相关服务的用户来说,无疑这是个好产品,但对于 Linux 生态来说可能是灾难,尤其是 Red Hat,市场或许将进一步被 Oracle 蚕食,短时间内不太可能找到替代性的产品。Oracle 已经成为 Linux 操作系统市场上举足轻重的玩家,但是不交钱,用户没办法和 Oracle 玩儿。因为我未来的工作的一部分是为做 Oracle Linux Support Sales 的同事提供技术支持,所以了解 Oracle Ksplice 的原理十分有必要。
由于前段时间一直在准备 OCP 的认证考试,所以领导十分 nice 的一直没有给我分配复杂的工作。原先安排的搭建 Oracle HA 环境的实验任务也允许我考完试后再做,国庆假日回来我终于有时间把这部分任务完成了。由于之前在相同的机器上做过 Oracle RAC 的实验,所以卸载的过程中对 CRS 组件没有彻底删除,所以导致我走了不少的弯路,还把机器弄挂一次,为此我还特意跑去 IDC 重装了一次系统。嘿嘿,不抱怨了,至少 HA 环境成功的搭建了起来,结果还是令人满意的。(#^_^#)
下面我来详细介绍一下具体的配置过程:
1. 网络配置
具体的网络配置过程我就不在这里罗嗦了,基本跟 Oracle RAC 相同,每个节点两个网卡其中一个做心跳线。两个节点的 /etc/hosts 配置文件内容一致,内容如下:
# Do not remove the following line, or various programs
# that require network functionality will fail.
127.0.0.1 localhost.localdomain localhost
10.10.6.203 testrac1
192.168.122.101 testrac1-priv10.10.6.207 testrac2
192.168.122.102 testrac2-priv10.10.6.208 testHA
… …
[bash toolbar="false"]#!/bin/bash
#
# /etc/init.d/dbora
# chkconfig: 2345 02 98
# description: Oracle is meant to run under Linux Oracle Server
#
# Source function library.
. /etc/rc.d/init.d/functions
ORACLE_HOME=/oracle/product/10.2.0/db_1
ORACLE_SID=hatest
ORACLE_NAME=oracle
LOCKFILE=”$ORACLE_HOME/.oracle.lock”
RESTART_RETRIES=3
DB_PROCNAMES=”pmon”
LSNR_PROCNAME=”tnslsnr”
# RETVAL=0
# Start the oracle Server
#
# The following command assumes that the oracle login
# will not prompt the password
#
start() {
echo “Starting Oracle10g Server… ”
tmpfile=/home/oracle/`basename $0`-start.$$
logfile=/home/oracle/`basename $0`-start.log
… …
[/bash]
最近的工作是在 RHEL 5.5 下实现 Oracle HA(双机热备),由于之前在这两台试验机上进行了 Oracle RAC 的配置演练,所以在进行 Oracle HA 实验前只能先把已经安装的 Oracle 数据库软件完全卸载。我 Google 了一番,最后在 Oracle 的官方论坛找了一篇文章,按照里面的方法一步一步的操作,成功在试验机上卸载了 Oracle 10g,具体操作流程如下:
- 关闭数据库:
[oracle@rac1 ~]$ sqlplus /nolog
SQL> connect / as sysdba
SQL> shutdown immediate
SQL> exit - 停止 Listener:
[oracle@rac1 ~]$ lsnrctl stop
- 依次在 Shell 下运行如下命令:
- $ORACLE_HOME/bin/localconfig delete
- rm -rf $ORACLE_HOME
- rm -rf $ORACLE_BASE
- rm -rf /etc/oraInst.loc /etc/oratab
- rm -rf /etc/oracle
- rm -rf /etc/inittab.cssd
- rm -rf /usr/local/bin/coraenv
- rm -rf /usr/local/bin/dbhome
- rm -rf /usr/local/bin/oraenv
- rm -rf /tmp/.oracle
- rm -rf /var/tmp/.oracle
- 删除相关用户和用户组:
[root@rac1 ~]# userdel oracle
[root@rac1 ~]# groupdel dba
[root@rac1 ~]# groupdel oinstall
1. 创建用户和用户组
分别在 rac1 和 rac2 两个节点上执行以下命令:
# groupadd -g 500 oinstall
# groupadd -g 501 dba
# useradd -u 504 -g oinstall -G dba -d /home/oracle -m oracle
# passwd oracle
2. 配置 Secure Shell 的等效性
在 rac1节点上执行:
[oracle@rac1 ~]$ mkdir ~/.ssh
[oracle@rac1 ~]$ chmod 700 ~/.ssh
[oracle@rac1 ~]$ ssh-keygen -t rsa
[oracle@rac1 ~]$ ssh-keygen -t dsa
在 rac2 节点上执行:
[oracle@rac2 ~]$ mkdir ~/.ssh
[oracle@rac2 ~]$ chmod 700 ~/.ssh
[oracle@rac2 ~]$ ssh-keygen -t rsa
[oracle@rac2 ~]$ ssh-keygen -t dsa
在 rac1 节点上执行:
[oracle@rac1 ~]$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
[oracle@rac1 ~]$ cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
提示:下列命令会提示你输入 rac2 的 oracle 密码,按照提示输入即可,如果失败可重新尝试执行命令。
在 rac1 节点上执行:
[oracle@rac1 ~]$ scp ~/.ssh/authorized_keys rac2:~/.ssh/authorized_keys
在 rac2 节点上执行:
[oracle@rac2 ~]$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
[oracle@rac2 ~]$ cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
[oracle@rac2 ~]$ scp ~/.ssh/authorized_keys rac1:~/.ssh/authorized_keys
在 rac1 节点上执行:
[oracle@rac1 ~]$ ssh rac1 date
[oracle@rac1 ~]$ ssh rac2 date
[oracle@rac1 ~]$ ssh rac1-priv date
[oracle@rac1 ~]$ ssh rac2-priv date
在 rac2 节点上执行:
[oracle@rac2 ~]$ ssh rac1 date
[oracle@rac2 ~]$ ssh rac2 date
[oracle@rac2 ~]$ ssh rac1-priv date
[oracle@rac2 ~]$ ssh rac2-priv date

今天在试验机进行了一次 RMAN 备份恢复演练,本次演练假定的情况比较简单,备份数据库没有彻底崩溃,我可以查找到备份数据中控制文件,数据文件,重做日志文件等文件的保存路径,并知晓备份数据库的 RMAN 整库备份文件的保存路径。具体的演练过程如下:
- 将备份的 RMAN 文件放到 /home/oracle/tpsdbbk/ 下 (服务器备份时候的路径)
- 记录备份数据库的 SID, DBID 以及控制文件,数据文件,重做日志文件,归档文件的保存路径。
- 根据上一步查询的信息,在恢复的主机上创建相应文件夹和设置 SID 和 DBID。
- 从 RMAN 备份中恢复 pfile
- 查看 pfile 文件创建对应缺失文件夹
- 根据生成的 pfile 创建 spfile
- 从 RMAN 备份中恢复控制文件
- 从 RMAN 备份中恢复数据文件
- 通过已经恢复的控制文件和数据文件来演算出重做日志文件
- 大功告成!(#^_^#)

公司的 Oracle 数据库的备份工具使用的是 IBM 公司的 Tivoli Storage Manager(TSM),它主要的功能是自动将 Oracle RMAN 备份数据写入磁带库。网上有很多配置 Tivoli 和 RMAN 实现自动写入磁带库的方案,不过写的都不太具体,这几天我一直在看 Tivoli 的教程,过些天我会写一篇详细的配置博文,感兴趣的朋友可以关注一下。闲话少说,让我们进入今天的主题吧。因为 TSM 也是利用 RMAN 实现备份并写入磁带库的,所以恢复数据库的过程基本是个 RMAN 备份过程的逆过程。找到 TSM 的 RMAN 备份脚本文件 rman_FULL_tape.rcv,其内容如下:

1.概述
在 Oracle 安装目录$HOME/network/admin下,,经常看到 sqlnet.ora tnsnames.ora listener.ora 这三个文件,除了 tnsnames.ora,其他两个文件详细的用途很多人都不太了解。
sqlnet.ora 用在 Oracle client端,用于配置连接服务端 Oracle 的相关参数。
tnsnames.ora 用在 Oracle client 端,用户配置连接数据库的别名参数,就像系统中的hosts文件一样。
listener.ora 用在 Oracle server 端,配置 Oracle 服务端程序的监听办法,比如限制某些 ip 等参数。
在安装目录 $HOME/network/admin/samples 下,会看到这三个文件的示例文件,里面会有相关参数的说明和用法,如果遇到什么问题,大家可以对照这些示例文件中相关参数的说明进行解决。
如果连接数据库出了什么问题,在保证网络正常,没有防火墙干扰的情况下,查找问题的步骤是:
- 在客户端顺序检查 sqlnet.ora,tnsnames.ora 是否有问题。
- 在服务器端检查 listener.ora 配置,并且保证监听程序启动,数据库服务加载。
Categories
- 信息世界 | IT (95)
- Certification (1)
- Cloud Computing (1)
- Database (16)
- Google (10)
- Hardware (2)
- J2EE (4)
- Network (19)
- OS (18)
- Programming (11)
- Virtualization (1)
- Webmaster (11)
- 数码先锋 | Digital (17)
- 时事评论 | Event (5)
- 时光飞驰 | News (2)
- 杂七杂八 | Mix (2)
- 流金岁月 | Life (8)
- 游戏志 | Game (13)
- 看电影 | Movie (10)
- 红魔拥趸 | ManUtd (5)
- 读书频道 | Reading (1)
- 音乐无限 | Music (4)
- 信息世界 | IT (95)
Twitter
- I'm at 大连国美电器胜利新活馆 (大连市, 辽宁省) http://t.co/f7pxcNfg 18 小时前
- I'm at Xinghai Square | 星海广场 (Dalian, China) http://t.co/gKNqq2qV 24 小时前
- I'm at 壹品星海 (Dalian, China) http://t.co/o7SCCIrG 24 小时前
- 晚上和以前的同事喝了点酒,准备睡觉了,希望明天能把公司的电脑修好,没有电脑办公还真不方便,不知道明天印度那边有没有培训的消息。 2012-05-16
- 非常值得读的一本书! http://t.co/lV8ulDnV 2012-05-16
- I'm at 大连软件园15号楼 (大连市, 辽宁省) http://t.co/03DYYUKY 2012-05-16
- @yamiugly 好奇你做的是什么工作? 2012-05-16
- I'm at 壹品星海 (Dalian, China) http://t.co/frkQvlIn 2012-05-15
- I just ousted @fndhrt as the mayor of 大连软件园15号楼 on @foursquare! http://t.co/yn7fSLY6 2012-05-15
- I'm at 大连软件园15号楼 (大连市, 辽宁省) http://t.co/KH2m2Z4R 2012-05-15
- @terrysosi_chan 小日子过的太充实了! 2012-05-15
- RT @GossipSama: 玩diablo 2的时候我23岁,玩diablo 3的时候我34岁。暴雪是要等我不再2了才出3是么?那是不是要45岁才玩到4? 2012-05-15
- I'm at 中山广场 Zhongshan Circus (大连, 中国) http://t.co/fiD6vqHS 2012-05-14
- 英超还真他妈的好看。昨晚90分钟的比赛,跟坐过山车一样,如果不看直播,是体会不到这种刺激的,呵呵,英超第20年,今年的冠军真的很有戏剧性,恭喜曼城,明年的曼联面对的局势更难,曼城还会加大投入的,看看曼城现在的阵容,明年再买几个强援,大耳朵杯指日可待! 2012-05-14
- @Fatal1tyV 怎么弄? 2012-05-14
Latest Comments
Foursquare Checkins
标签
