在虚拟机下安装配置Linux和Oracle

第1阶段:安装VMware。

第 2a 阶段:安装 Linux (RHEL3 U2)

在开始安装之前,请下载并解压缩框架 zip 文件。
然后运行 .vmx 文件,这将打开空的 VM。

1. 将 RHEL3-U2 Disc 1 CD 插入 CD-ROM 驱动器或映射 ISO 镜像文件。

a. 要为 VMware 设置 CD 安装介质,请在 VMware 窗口的 "Devices" 面板中双击 "CD-ROM 1 (IDE 1:0)" 图标。
 
	  
i. 选择 "Use physical drive:",如果您的软件在物理介质上,那么请转至第 iv 步。
 
ii.选择 "Use ISO image:"
iii.单击 "Browse..." 按钮,转至您下载的 iso 镜像文件:
 "rhel-3-U2-i386-as-disc1.iso"
iv.单击 "OK"。
	 
	 您现在映射了 CD,因此客户操作系统可以访问该软件。

2. 在 VMware 窗口中,单击绿色箭头,启动 VM。

注意:这里您不需要重启计算机。您仅需在 Windows(或 Linux 主机)桌面上的 VMware 窗口内部启动 VM。
 
 

3. 一旦 VM 开始启动,请单击 VMware 工具栏上的 "Enters Full Screen Mode" 图标(右起第二个图标)。
 

注意:选择这一选项后,所有后续的鼠标和键盘输入将发送至 VM,而不是母操作系统。
 要“释放”鼠标和键盘(允许输入返回至主机操作系统),请按 CTRL-ALT 键。
 

注意:如果您在之前的安装中中途失败,VM 没有到达下面的第 4 步(RedHat 启动提示符),
那么您需要在刚启动虚拟机时按下 F2 键,并将虚拟机的启动顺序修改为“从 CD-ROM 启动”:
 
 
按 F2,选择 "Boot",找到 CD-ROM 并按 "+" 直到它位于顶部为止。
按 F10,保存修改,现在 VM 将从 CD-ROM 启动。

4. 在进入全屏模式之后,等待 "Red Hat Enterprise Linux" 启动提示符出现。
 

a. 在 "boot:" 提示符下按 ENTER 键。 

注意:如果您在 60 秒之内没有按 ENTER 键,那么安装程序将自动转至下一步。
 这是可以的!
注意:如果您将 ISO 镜像设置在 NFS 或 FTP 上,那么您可以执行网络安装(推荐 100Mbps 或更高带宽),
不按 ENTER 键,按 F2,并输入:
 linux askmethod,按提示进行操作。

5. 屏幕:"CD Found"
a. 按 TAB 直到 "Skip" 高亮显示。
b. 按 ENTER 键。

注意:如果您希望测试安装介质,请选择 "OK" 而不是 "Skip"。
 

将启动一个图形化屏幕以执行剩下的安装。
   
6. 屏幕:"Welcome to Red Hat Enterprise Linux"
a. 单击 "Next"。

7. 屏幕:"Language Selection"
a. 选择您偏好的语言来运行安装程序。
b. 单击 "Next"。

8. 屏幕:"Keyboard Configuration"

a. 根据以下准则来选择布局:
在美国:您一般应选择 "U.S. English"
其他地方:选择最适合您的国家的布局。

b. 单击 "Next"。

9. 屏幕:"Mouse Configuration"
a. 模式:选择 "3 Button Mouse (PS/2)"。

注意:因为我们在使用 VMware,因此您必须选择 PS/2 风格的鼠标,
 — 即使您的计算机实际安装了一个 USB 鼠标。
不过,如果我们在实际的计算机上进行安装,那么我们将选择合适的鼠标类型。
 

b. 设备:这个框将变灰,因此无需任何选择。
c. 保持 "Emulate 3 buttons" 复选框为未选中状态。
d. 单击 "Next"。

10. 屏幕:"Disk Partitioning Setup"
a. 选择 "Manually partition with Disk Druid"。
b. 单击 "Next"。
c. 对话框:"The partition table on device was unreadable...
Would you like to initialize this drive?"

i. 单击 "Yes"。

注意:该对话框将出现 5 次:分别在 "sda"、"sdb"、"sdc"、"sdd" 和 "sde" 的情况下。
 请每一次都单击 "Yes"。

11. 屏幕:"Disk Setup"

a. 在屏幕的右下部分,在 "/dev/sda" 下双击 "Free space"。
 

i. 挂载点:从下拉菜单中选择 "/"。
ii.文件系统类型:选择默认的 "ext3"。
iii.其它所有的选项保持不变。
iv.单击 "OK"。

b. 在屏幕的右下部分,在 "/dev/sdb" 下双击 "Free space"。
 

i. 挂载点:该域保持为空白。
ii.文件系统类型:从下拉菜单中选择 "swap"。
iii.所有其他选项保持不变。
iv.单击 "OK"。

c. 在屏幕的右下部分,在 "/dev/sdc" 下双击 "Free space"。
 

i. 挂载点:输入 "/opt/oracle"。
ii.	文件系统类型:	选择默认的 "ext3"。
iii.	所有其他选项保持不变。
iv.单击 "OK"。

d. "/dev/sdd" 和 "/dev/sde" 保持为未分区状态。我们将稍后处理它们
sdd 将用于 OCFS 数据
sde 将用于原始设备应用

e. 单击 "Next"。

12. 屏幕:"Boot Loader Configuration"
a. 默认将选择 GRUB 启动加载程序。
b. "Use a boot loader password" 复选框保持为未选中状态。
c. "Configure advanced boot loader options" 复选框保持为未选中状态。
d. 单击 "Next"。

13. 屏幕:"Network Configuration"

a. 网络设备

i. 选择 "eth0" 并单击 "Edit"。
1. 取消选择 "Configure using DHCP"。
2. "Activate on boot" 保持为选中状态。
3. IP 地址:输入 "192.168.203.11"。
4. 网络掩码:输入 "255.255.255.0"。
5. 单击“Ok”。

ii.选择 "eth1" 并单击 "Edit"。
1. 取消选择 "Configure using DHCP"。
2. 选择 "Activate on boot"。
3. IP 地址:输入 "10.10.10.11"。
4. 网络掩码:输入 "255.255.255.0"。
5. 单击“Ok”。

b. 主机名

i. 选择 "manually"
ii.输入 "raclinux1.us.oracle.com" 

注意:服务器主机名中输入的必须是完全限定域名,否则某些 Oracle 产品将不能正常工作。
 
 

c. 杂项设置

i. 网关:输入 "192.168.203.2"。
ii.主 DNS:输入 "192.168.203.2"。
    
注意:如果在安装完成之后您需要修改 DNS 服务器,那么您可以在 /etc/resolv.conf 中编辑列表。
	          

d. 单击 "Next"。

14. 屏幕:"Firewall Configuration"
a. 选择 "No firewall"。

注意:这里我们选择 "No firewall" 来简化配置。
在实际的 Oracle 安装中,请选择最适合于服务器部署至的安全策略的防火墙配置。
 
 

b. 单击 "Next"。

15. 屏幕:"Additional Language Support"
a. 选择您可能想在该服务器上使用的任何额外的语言。
b. 单击 "Next"。

16. 屏幕:"Time Zone Selection"
a. 从底部的列表或顶部的地图中选择最合适的时区。
 
b. 保持 "System clock uses UTC" 复选框为未选中状态。
c. 单击 "Next"。

17. 屏幕:"Set Root Password"
a. 根用户口令/确认:输入 "oracle"。
b. 单击 "Next"。

18. 屏幕:"Package Installation Defaults"
a. 选择 "Customize the set of packages to be installed"
b. 单击 "Next"。

19. 屏幕:"Package Group Selection"
a. 在 "Applications" 标题下:
i. 选择 "Editors"。
ii.单击 "Editors" 条目右边的 "Details"。
1. 取消选择 "Emacs" 复选框(为了节省空间)。
2. 单击 "OK"。

b. (可选)在 "Servers" 标题下:
i. 选择 "FTP Server"
ii.选择 "Legacy Network Server"
iii.单击右边的 "Details"
iv.选择 "telnet-server" 和 "rsh-server" 
对 10g 而言不需要,但有些人喜欢安装这些。
v. 单击 "Close"
       

c. 在 "Development" 标题下:
i. 选择 "Development Tools"。
ii.选择 "Legacy Software Development"。

注意:在这里您必须为将安装 Oracle 软件的任何服务器选择这些软件开发程序包选项。
 
没有安装 "Software Development" 选项,Oracle 软件的安装将失败。
 

d. 在 "System" 标题下:
i. 选择 "System Tools"。
ii.单击 "System Tools" 条目右边的 "Details"。
1. 在 "Optional Packages" 下向下滚动,并选中 "sysstat" 复选框。
 
2. 单击 "OK"。

e. 单击 "Next"。
   
注意:如果您在上面的步骤中遗忘了任何程序包,您可以通过点击 Fedora(Red Hat 图标) -> System Settings -> Add Remove Applications 或运行 redhat-config-packages 或使用 rpm -Uhv * 来将它们添加到运行系统中。
 
 
 

20. 屏幕:"About to Install"
a. 单击 "Next"。
   
21. 屏幕:"Installing Packages"

a. 在格式化文件系统之后(几分钟),将结束使用该 CD。
b. 对话框:"Please insert disc 2 to continue"。
i. 按 CTRL-ALT,退出全屏模式。
ii.弹出当前 CD 并插入 RHEL3-U2 Disc 2 CD 或映射 ISO 镜像。
iii.从 VMware 菜单中选择 "VM" --> "Settings..."(或按 CTRL-D)来打开 "Virtual Machine Settings"。
 
1. 单击 "CD-ROM 1 (IDE 1:0)" 图标。
2. 选择 "Use physical drive:",如果您的软件在物理介质上,
那么请转至第 4 步。否则,请选择 "Use ISO image:"
3. 单击 "Browse..." 按钮并转至您下载的 ISO 镜像:     
rhel-3-U2-i386-as-disc2.iso。 
4. 单击 "OK"。
iv.单击 VMware 工具栏上的 "Enters Full Screen Mode" 图标。
v. 单击 "OK"。

c. 在大约 30 分钟之后,将结束使用该 CD。
d. 对话框:"Please insert disc 3 to continue."
i. 使用 "rhel-3-U2-i386-as-disc3.iso" 文件重复上面的步骤 '21.b.'。
 

e. 在大约 10 分钟之后,将结束使用该 CD。
f. 对话框:"Please insert disc 4 to continue."
i. 使用 "rhel-3-U2-i386-as-disc4.iso" 文件重复上面的步骤 '21.b.'。
   

g. 在大约 1 分钟之后,将结束使用该 CD。
h. 对话框:"Please insert disc 1 to continue."
i. 使用 "rhel-3-U2-i386-as-disc1.iso" 文件重复上面的步骤 '21.b.'。
  

i. 文件将继续拷贝大约 1 分钟。

22. 屏幕:"Graphical Interface (X) Configuration"
a. 保持 "VMWare" 为选中状态。
b. "Video Card RAM" 保持为默认状态。
c. "Skip X configuration" 复选框保持为未选中状态。
d. 单击 "Next"。

23. 屏幕:"Monitor Configuration"
a. 对于笔记本显示器,请展开 "Generic LCD Display" 类别。
b. 选择 "LCD Panel 1024x768"(或最适合您的显示器的大小)。
 
c. 单击 "Next"。

24. 屏幕:"Customize Graphics Configuration"
a. 颜色深度:选择 "High Color (16 Bit)"。
b. 屏幕分辨率:选择您偏好的屏幕分辨率。
c. 单击 "Next"。

25. 屏幕:"Congratulations"
a. 单击 "Exit"。
b. CD 将自动弹出,Linux 将重启。

26. (在重启之后)屏幕:"Welcome"
a. 单击 "Next"。

27. 屏幕:"License Agreement"
a. 选择 "Yes, I agree to the License Agreement"。
b. 单击 "Next"。

28. 屏幕:"Date and Time"
a. 如果需要的话,调整当前的日期和时间。
b."Enable Network Time Protocol" 复选框保持为未选中状态。
c. 单击 "Next"。

29. 屏幕:"User Account"
a. 所有域保持为空白。我们将在稍后创建 oracle 用户。
b. 单击 "Next"。
c. 对话框:"Warning..."
i. 单击 "Continue"。

30. 屏幕:"Sound Card"
a. 单击 "Next"。

31. 屏幕:"Red Hat Network"
a. 选择 "No, I do not want to register my system."
b. 单击 "Next"。

32. 屏幕:"Additional CDs"
a. 单击 "Next"。

33. 屏幕:"Finish Setup"
a. 单击 "Next"。

Linux 将继续启动并显示一个图形化的登录提示。

34. 以 root/oracle 身份登录。

a. 启动一个终端窗口(主菜单 --> System Tools --> Terminal)。
b. 要创建 oracle 用户和用户组:

i. 以 root 身份创建 Oracle 用户:

groupadd -g 500 dba
groupadd -g 501 oinstall
useradd -u 500 -g dba -G oinstall -m -s /bin/bash oracle

ii.设置口令 "passwd oracle"。
1. 在 "New password:" 提示符下,输入 "oracle"。 
2. 忽略 "BAD PASSWORD: it is based on a dictionary word" 警告。 
 
3. 在 "Retype new password:" 提示符下,再次输入 "oracle"。 

c. 要确认 IP 地址是否正确设置:
i. 公共接口 (eth0)
1. 运行 "ifconfig eth0"。
ii.专用接口 (eth1)
1. 运行 "ifconfig eth1"。

注意:如果您只看到 1 个 NIC,请确认当机器在 VMware 和 RedHat 中启动时,该设备被标记为“活动”(运行 "# neat")。
 

d. 编辑 /etc/hosts:
 
i. 运行 "vi /etc/hosts" 或 "nedit /etc/hosts"。
ii.清理 127.0.0.1 行,使之与以下示例匹配。
iii.添加 6 个新行(如以下示例所示):

127.0.0.1        localhost.localdomain   localhost
10.10.10.11     raclocal1.us.oracle.com raclocal1
10.10.10.12     raclocal2.us.oracle.com raclocal2
192.168.203.11  raclinux1.us.oracle.com raclinux1
192.168.203.12  raclinux2.us.oracle.com raclinux2
192.168.203.111 raclinux1-vip.us.oracle.com raclinux1-vip
192.168.203.112 raclinux2-vip.us.oracle.com raclinux2-vip

注意:还可以使用 GUI 网络配置工具来执行上面的步骤:
 

gnome (Start)-> Programs->System->Network Configuration
— 或 —
# /usr/sbin/redhat-config-network

e. 修改内核参数以符合 Oracle10g 的需求:

i. 运行 "vi /etc/sysctl.conf" 或 "nedit /etc/sysctl.conf"。
ii.将以下行添加到文件末尾:

fs.file-max = 65536
kernel.shmmax = 2147483648
kernel.sem = 250        32000   100     128
net.ipv4.ip_local_port_range = 1024     65000
net.core.rmem_default = 262144
net.core.rmem_max = 262144
net.core.wmem_default = 262144
net.core.wmem_max = 262144

iii.运行 "sysctl -p",使修改生效。
    
f. (可选)VMWARE 特有:虽然 RHEL3 中包含有用于 vmware 的视频驱动程序,但它们提供的功能比 vmware 软件所提供的要少。
 
 要从 vmware 中安装更好的驱动程序(称为“vmware 工具”,它们允许缩减虚拟磁盘、与主机操作系统同步时间等),请执行以下操作:
 
 
 
1. 切换至在 level 3 下运行(无 GUI) — 这是安装 VMware 工具一般所需要的:
 
          
# telinit 3
 
2. 按 CTRL-ALT 键,将鼠标和键盘从 VM 中释放。

3. 从 VMware 的 "File" 或 "VM" 菜单中,选择 "Install VMware Tools.."

4. 对话框:"Installing the VMware Tools package..."
单击 "Install"。(允许在 /mnt/cdrom 上进行虚拟 cdrom 挂载)

5. 在 VMware 窗口内部单击,将鼠标/键盘分配给 Linux。
6. 作为根用户登录
7. 挂载 /mnt/cdrom
8. # cd
9. tar xvfz /mnt/cdrom/vmware-linux-tools.tar.gz
       
10. # cd vmware-tools-distrib
     
11. ./vmware-install.pl
     
按 ENTER 键大约 8 次,接受所有的默认值。在点击绿色的 OK 之后,
对 "Do you want this program to build vmhgfs..." 单击 NO  
最后选择分辨率,从 800x600 开始,如果需要的话通过再次运行 /usr/bin/vmware-config-tools.pl 来增加。
 

12. 重启 GUI
      
# telinit 5

g. (可选)告诉 VMware 将时间与主机操作系统同步。
   
# vmware-toolbox
       
单击 "Options" 并选择 "Time synchronization..."
关闭
       
注意:长时间使用或批量删除之后,需要缩减虚拟磁盘以回收主机操作系统上的磁盘空间,可使用这一实用工具。
 
 
       
h. (可选)为了节省一些内存并稍微加速启动,
您可以禁用打印服务 (cups) 和电子邮件 (sendmail)
       
# chkconfig cups     --level 35 off
# chkconfig sendmail --level 35 off

上述操作将在下一次重启时生效。要关闭这些,现在您可以执行:
 
       
# /etc/init.d/cups     stop
# /etc/init.d/sendmail stop
 
i. (可选)在 VM 内部启用 ftp 后台程序:
   
i. (可选)在 /etc/vsftpd/vsftpd.conf 中为匿名 ftp 作修改,取消以下行的注释: 
 
         
anon_upload_enable=YES
anon_mkdir_write_enable=YES

ii.(可选)允许 ftp 上载:
     
# chown ftp /var/ftp/pub
         
注意:匿名/ftp 连接的目录是 ftp 用户的目录 (/var/ftp/pub)
 

iii.现在启动 vsftpd 后台程序:
      
#  service vsftpd start
    
vi.在下一次重启时启用 vsftpd:
     
# chkconfig --level 35 vsftpd  on

j. (可选)启用 telnet 服务器,不推荐使用 ssh 代替!
   
i. 确保安装了 telnet-server rpm "rpm -qa|grep telnet-server"
ii. vi /etc/xinetd.d/telnet,将 "disable=yes" 修改为 "disable=no"
iii.作为根用户重启 xinetd 后台程序:"# service xinetd restart"
    
k. (可选)启用 rsh & rlogin,不推荐使用 ssh 代替!
   
i. 确保安装了 rsh-server rpm "rpm -qa|grep rsh-server"
ii. vi /etc/xinetd.d/rsh & rlogin,将 "disable=yes" 修改为 "disable=no"
iii.作为根用户重启 xinetd 后台程序:"# service xinetd restart"
iv.对于无口令的连接,利用节点名称创建 $HOME/.rhosts
     
l. (可选)VMware 在客户操作系统和主机操作系统之间有一个可选的“共享文件夹”特性,要启用它请执行:
 
      
i. 在主机上创建一个共享文件夹,例如:c:/vmware_shared
选择该文件夹:"VM->Settings->Options->Shared Folders->Add.."
         
ii.您需要一个加载在 VM 内部的特殊的内核模块(称为 "vmhgfs")
它预置了 VMWare 工具,但仅用于 RHEL3-U1
我们将使用技巧来使 vmware 将预置的 rpm 加载到 U2 上
         
# cd /usr/lib/vmware-tools/modules/binary
# cp -r up-2.4.21-9.i686-RHAS3.0  up-2.4.21-15.i686-RHAS3.0
# cd up-2.4.21-15.i686-RHAS3.0
         
vi 或 nedit 属性文件
将 "9" 修改为 "15" 并保存修改,在 vi 中使用 "x!"
         
iii.通过运行以下命令来加载内核模块:
    
#  vmware-config-tools.pl
         
注意:您可以验证它是否工作:lsmod|grep hgfs(将显示一行)
         
iv.在客户操作系统内部使用共享文件夹:
     
$ cd /mnt/hgfs/
$ ls              (将显示一个共享文件夹的列表)
         
您放在这些共享文件夹下的任何文件都将显示在主机操作系统上。
         
如果您没有安装这个功能,那么请使用 ftp/nfs/samba 来共享文件。
    
m. (可选)要启用从 Linux VM 到 Windows 的拷贝/粘贴,您必须使 vmware 工具包在后台运行。
 实现这一点的一种方式是将其作为桌面启动程序来运行。
 
       
RedHat -> Preferences -> More Preferences -> Sessions,单击启动程序选项卡,并输入以下命令来开始:
 
       
vmware-toolbox --iconify --minimize
       
一旦您登录到了它的桌面上,就请使用与 Oracle 用户相同的过程。
 
           
n. 从 GUI 中注销,因为您是根用户(主菜单 --> Log Out):
i. 保持 "Save current setup" 复选框为未选中状态。
ii.操作:选择 "Log Out" 或 "Reboot" — 您喜欢任意一种方式都可以。
iii.单击 "OK"。

-- 完成
 

阶段 3:安装 Oracle 集群文件系统 (OCFS) v1(针对 RHEL 或 SLES)

1. 作为 Oracle 用户登录 Linux GUI 桌面。

2. 获取最新的 OCFS RPMS:

** FOR REDHAT **
   
a. 单击任务栏上的“Mozilla”互联网浏览器图标。
b. 输入 URL “http://oss.oracle.com/”。
c. 在“Projects”下单击“OCFS”。
d. 在“Project:OCFS”下单击“Files”。
e. 依次单击“Red Hat”、“RHEL 3”和“i386”。
f. 单击“ocfs-tools-1.0.10-1.i386.rpm”。
选择“Save it to disk”
依次单击“OK”和“Save”。
      
g. 单击“ocfs-support-1.0.10-1.i386.rpm”。
选择“Save it to disk”
依次单击“OK”和“Save”。
   
h. 单击“1.0.13-1”
i. 单击“ocfs-2.4.21-EL-1.0.13-1.i686.rpm”
   
请注意,我们选取的是 nonSMP,也称做 UP(单处理器核心)
请根据您所运行的内核 (uname -a) 来选择 smp 或 hugemem。
OCFS 有时会进行更新;请选取最新的
版本。上述示例中的版本为“1.0.13-1”。
       
选择“Save it to disk”。
依次单击“OK”和“Save”。

注意:工具/支持版本可能与 ocfs 版本不匹配。如果您拥有最新的版本,
那么一切事项都会顺利进行。(请参阅站点上的自述文件。)

j. 退出 Mozilla。


** 针对 SUSE **
   
a. 单击任务栏上的“Mozilla”互联网浏览器图标。
b. 输入 URL “http://oss.oracle.com/”。
c. 在“Projects”下单击“OCFS”。
d. 在“Project:OCFS”下单击“Files”。
e. 依次单击“United Linux”、“United Linux 1.0”和“i386”。
f. 浏览并查找适用于内核 (uname -a) 的最新 OCFS rpm 
SP3 plain 为 2.4.21-138  适用于它的最高 ocfs 是 1.0.11-1。
推荐版本是 1.0.13-1,这是内核 SP3-251 所必需的。

对于一般的硬件,导航过程如下:
      
依次单击“1.0.13-1”、“SP3-251”和 
“ocfs-2.4.21-251-deflt-1.0.13-1.i586.rpm”
      
选择“Save it to disk”
依次单击“OK”和“Save”。
      
VMWARE 用户:VMware 仅支持纯 sp3 内核 (-138),如果您
将内核升级至 -198 或 -241、-251,您的系统
在 VM 内将无法稳定运行。如果选择
使用 OCFS v1.0.11 和普通 SP3 内核 -138,
则 CRS 10.1.0.3 将无法运行。
                     
					 一般而言,您只需将内核
升级至 -251,将 OCFS 升级至 1.0.13 即可。  
      
g. 对于 SUSE,选取 v1.1.2 的 OCFS 工具(不是 v1.0)
在“Projects”之下单击“OCFS Tools”(在 LEFT 边条上)。
h. 在“Project:OCFS Tools”之下单击“Files”。
i. 依次单击“United Linux”、“United Linux 1.0”和“i386”。
j. 单击“1.1.2-1”
k. 单击“ocfs-support-1.1.2-1.i386.rpm”。
选择“Save it to disk”
依次单击“OK”和“Save”。
      
l. 单击“ocfs-tools-1.1.2-1.i386.rpm”。
选择“Save it to disk”
依次单击“OK”和“Save”。


3. 打开一个终端窗口:

a. REDHAT:单击主菜单 --> 系统工具 --> 终端。
SUSE:单击主菜单 --> 系统 -> 终端 -> Konsole。
在任务栏上,从左数第四个图标
b. 输入以下内容,将用户更改为根用户:

$ su -
密码:oracle
      #

注意:提示符从 "___FCKpd___0quot; 更改至 "#" 表示该 shell 是以
根权限运行的。现在,在这些脚本中,每个命令
都将以 "___FCKpd___0quot; 或 "#" 字符开头,以表示
该命令是应当在“oracle”窗口中运行,还是在
“root”窗口中运行。请注意,二者之间确实有所不同。


4. 以 root 用户身份运行以下命令:

** 针对 REDHAT **

# cd ~oracle   (下载 rpms 的位置)
# rpm -Uvh ocfs-2.4.21-EL-1.0.13-1.i686.rpm /
ocfs-support-1.0.10-1.i386.rpm /
ocfs-tools-1.0.10-1.i386.rpm


** 针对 SUSE **

# cd ~oracle   (下载 rpms 的位置)
# rpm -Uvh ocfs-2.4.21-138-deflt-1.0.13-1.i586.rpm /
ocfs-support-1.1.2-1.i386.rpm /
ocfs-tools-1.1.2-1.i386.rpm


或者简单地使用 Linux 提供的方法(通过向导选择 rpm):
   
$ cd ~oracle
# rpm -Uvh ocfs-*.rpm
   
5. 生成 OCFS 配置(仅一次)

a. 作为根用户运行 "ocfstool"
   
# export DISPLAY=localhost:0
# ocfstool &
                   
注意:如果您选择 "Gtk-WARNING **:cannot open display:"
       
 "xhost +" 会作为桌面所有者(作为 oracle)发布
            
# xhost +
    
注意:忽略以下警告是安全的
    
Gtk-WARNING **:libgdk_pixbuf.so.2:cannot open shared object file:
No such file or directory
      
如果您继续,变通方法是在下行前加上注释符:
# include "/usr/share/themes/Bluecurve/gtk/gtkrc"
    
in file /root/.gtkrc
   
b. 选择 "Tasks" --> "Generate Config...".(Control-G)
i. 界面:从下拉菜单中选择 "eth1"。
ii.节点名称:输入 "raclocal1.us.oracle.com"。
iii.单击 "OK"。
c. 选择 "File" --> "Exit"。

6. 作为根用户运行 "load_ocfs"。

对于 Red Hat 而言,忽略有关内核受污的消息:

"Warning:loading /lib/modules/2.4.21-EL-ABI/ocfs/ocfs.o will taint 
the kernel:forced load"

7. 对 ocfs 设备进行分区。
          
a. 根据是将 OCR(Oracle 集群
注册)放置在原始设备还是 OCFS 上,您将遵循略有不同的
路径 -- 只选择一个选项。
	  
性能或特性方面没有差别;将所有内容放置在
 OCFS 上要更为简单,但是如果您希望试用/了解原始设备,
则需要选择相应的方法。请牢记您的选择,稍后您会用到它。
      
作为根用户运行:
   
# fdisk /dev/sda
          
选项 1:OCR+Voting disk ON OCFS Filesystem:

** 请确保您使用的是受支持的 OCFS,版本为 1.0.11 以及以上 **

i. 命令:输入 "n" 并按下 ENTER 键。
ii.命令操作:输入 "p" 并按下 ENTER 键。
iii.分区编号:输入 "1" 并按下 ENTER 键。
iv.第一个 cylinder:按 ENTER 键。
v. 最后一个 cylinder:按 ENTER 键。(整个磁盘)


选项 2:OCR+Voting disk ON RAW Devices:
    
分区 1:(ocr_file)
i. 命令:输入 "n" 并按下 ENTER 键。  
ii.命令操作:输入 "p" 并按下 ENTER 键。
iii.分区编号:输入 "1" 并按下 ENTER 键。
iv.第一个 cylinder:按 ENTER 键。
v. 最后一个 cylinder:+100M。
    
分区 2:(voting_disk)
i. 命令:输入 "n" 并按下 ENTER 键。
ii.命令操作:输入 "p" 并按下 ENTER 键。
iii.分区编号:输入 "2" 并按下 ENTER 键。
iv.第一个 cylinder:按 ENTER 键。
v. 最后一个 cylinder:+100M。
    
分区 3:(ocfs 文件系统)
i. 命令:输入 "n" 并按下 ENTER 键。
ii.命令操作:输入 "p" 并按下 ENTER 键。
iii.分区编号:输入 "3" 并按下 ENTER 键。
iv.第一个 cylinder:按 ENTER 键。
v. 最后一个 cylinder:按 ENTER 键。(驱动器剩余部分)
    
b. 查看分区表,以确定这就是您想要的,输入 "p"
输出如下所示(针对选项 2):
      
Device Boot    Start       End    Blocks   Id  System
/dev/sda1             1        13    104391   83  Linux
/dev/sdd2            14        26    104422+  83  Linux
/dev/sdd3            27      1044   8177085   83  Linux
    
c. 确定更改:输入 "w" 并按下 ENTER 键。

8. 作为根用户运行 "ocfstool"。

a. 选择 "Tasks" --> "Format..."。

i. 设备:从下拉菜单中选择 "/dev/sdd1" (所有内容置于 OCFS 上)或 "/dev/sdd3" 
(如果 OCR+Voting 位于原始设备上)。
ii.卷标:输入 "ocfs"。
iii.挂载点:输入 "/ocfs"。
iv.用户:从下拉菜单中选取 "oracle"。
v. 组:从下拉菜单中选择 "dba"。
vi.单击 "OK"。
vii.对话框:"Are you sure you want to format /dev/sdd1?" 或 "sdd3?"
1. 单击 "Yes"。

b. 选择 "File" --> "Exit".

9. 作为根用户运行 "nedit /etc/fstab &" 或 vi /etc/fstab。
避免使用 xedit(它会忘记在行结尾处放置换行符)

a. 将以下其中一行(不带引号)添加至 fstab 的末尾:

所有内容置于 OCFS 之上:
"/dev/sdd1         /ocfs       ocfs       _netdev   0 0"
      
OCR+Voting 位于原始设备上:
"/dev/sdd3         /ocfs       ocfs       _netdev   0 0"

b. 单击窗口顶部的 "File->Save"。
c. 单击窗口顶部的 "File->Exit"。

10. 作为根用户创建 OCFS 挂载点:

# mkdir /ocfs

11. 作为根用户挂载 OCFS 卷:

# mount /ocfs
    
自动挂载 ocfs 卷:
    
下一次重启后卷将自动安装在 RedHat 上(由于 _netdev )。
在 SUSE 上,选项可以使用 orarun 并指定启动
OCFS。或者手动将其安装在 /etc/init.d/ocfs 中,$LOAD_OCFS 之后:
    
mount -a -t ocfs
    
以级别 09 启动 OCFS 意味着网络配置完成。
从 /etc/init.d/boot 进行调用以使用 /etc/init.d/boot.local
并不凑效,因为该阶段网络还未启用。
    
在 9i 中建议使用 orarun,它与 10g 并不完全兼容。

12. (仅 REDHAT)告知 updatedb/slocate 不要修改 ocfs 文件系统

在 /etc/updatedb.conf 中编辑两行(只需在末尾添加 "ocfs")

PRUNEFS="devpts NFS nfs afs sfs proc smbfs autofs auto iso9660 ocfs"
PRUNEPATHS="/tmp /usr/tmp /var/tmp /afs /net /sfs /ocfs"
 
因为 updatedb 调自 /etc/cron.daily,不具备 "-c"
标签,所以 updatedb.conf 无法看到,编辑
/etc/cron.daily/slocate.cron 并将 ocfs 添加至排除列表:

/usr/bin/updatedb -f "nfs,smbfs,ncpfs,proc,devpts,ocfs" 
-e "/tmp,/var/tmp,/usr/tmp,/afs,/net,/ocfs"



OCFS 滚动升级:

因为版本 1.0.10 滚动升级是可行的(请查阅 ocfs README 以获取详细信息)。
要以滚动升级方式升级 OCFS,请按照以下步骤进行:

1. 关闭节点 A 上的 db
2. 卸载 ocfs 卷
3. 卸载 ocfs 模块
4. 升级 ocfs rpm
5. 重新加载 ocfs 模块
6. 安装 ocfs 卷
7. 启动节点 A 上的 DB 
8. 对节点 A+1 重复步骤
  
VMWARE 说明:
以下内容对于 OCFS 而言一般是正确的,但是对于 VMWare 环境
而言却并非如此。在对虚拟机进行复制或更改其
属性时,vmware uuid(唯一的 id,与
OCFS 的 guid 毫无关系)可能会更改,并进而导致 VM 的 NIC 卡的 MAC 地址
出现变化。OCFS 将出现加载失败,因为存储在 
/etc/ocfs.conf 中的 MAC 地址与 NIC 的新 MAC 地址
不匹配。要配置并运行 OCFS,请按照以下步骤进行:
   
a. 重新生成 OCFS 的 guid(全球唯一 id):
    
# ocfs_uid_gen -r
   
"ocfs_uid_gen:The new GUID is xxxxxx-random-appended-to-MAC-inHEX"
       
在 MAC 地址匹配的情况下重新运行不会产生任何有害结果
你会获得:
       
"ocfs_uid_gen:The GUID is already correct.No action taken."
       
要自动修复启动时出现的这个信息,只需将命令置于 /etc/init.d/ocfs 中
,或使用 LinuxDemoFiles zip 中预编辑好的 ocfs 文件即可。
       
b. 挂载 ocfs,要使用 "reclaimid" 选项(仅第一次安装需要):
    
所有内容都在 OCFS 上:
# mount -t ocfs -o reclaimid /dev/sdd1  /ocfs
   
OCR+Voting 位于原始设备上:
# mount -t ocfs -o reclaimid /dev/sdd3  /ocfs
       
如果您忘记了这个 reclaimid 选项,安装将失败或导致内核
严重错误(基于 1.0.9 或更旧版本的 OCFS)。
       
要自动修复启动时的这个问题,只需将 reclaimid 选项添加至 /etc/fstab 中即可。
(请注意:仅在该 VMware 环境中使用这个自动修复方法;
请勿将其应用于真正集群系统。在那些环境中,当更换 NIC 卡时,
请手动设置 reclaim id。)

-- 完成

第四阶段:安装带有 Oracle RAC 的 Oracle 数据库 10g (10.1.0.3)(用于 RHEL 或 SLES)

注意:如果您使用下载的软件,则必须为此脚本刻录物理 CD!

VMWARE 注意事项:o 如果您在 VMWARE 中安装,可能会因 
速度慢的 CDROM 产生问题。禁用 Norton
AntiVirus 中的实时防护(注意,默认情况下它会在 30 分钟后自动重新启用
)              
                
o 禁用 VM 中的屏幕保护程序以获得更好效果。
Redhat Start->Preferences->Screensaver
SUSE Start->Preferences->Look & Feel->Screensaver

o 我们正在单一节点上配置 RAC,即两个实例 
运行在一台服务器上,这不是一种实际情况,但是
它对调试 CRS/RAC 和了解 CRS/RAC 的工作原理很有用。  
在开发脚本时我们使其尽可能地通用,
这样它们不用做任何修改即可运行在实际服务器上。

1. 如果您还没有登录,则以 oracle 用户登录到 Linux GUI 桌面。
不要以根用户登录到桌面并用 su 连接 oracle。

2. (REDHAT 可选)要准备 GUI 环境:
a. 找到终端程序 (Main Menu --> System Tools --> Terminal)。
b. 右键单击“Terminal”菜单项。
i. 选择“Add this launcher to panel”。

注意:这会将 Terminal 程序图标添加到屏幕底部的启动程序面板中,
我们将频繁使用这个程序。

SUSE (KDE) Desktop 把这个 shell 放在任务栏左起第 4 个图标位置
。
   
3. 如果您尚未打开,则打开两个终端窗口:

a. 单击我们刚刚添加到任务栏的 Terminal 图标。
b. 通过以下方法在其中一个窗口中将用户更改为根用户:

$ su -
Password:oracle
      #

注意:提示符从“___FCKpd___0rdquo;变为了“#”,表示 
shell 正以根用户权限运行。从现在开始,在这些脚本中,每个
命令都将以一个“___FCKpd___0rdquo;或“#”字符开始,以表明
该命令是应该在“oracle”窗口中运行还是在
“root”窗口中运行。注意,这的确是有区别的。

4. Oracle 10g 可以使用 ssh 而非 rsh 将软件安装到远程节点。
如果未定义 ssh,则安装程序将转而运行 rsh。
在这两种情况下 (ssh/rsh),安装期间的登录都必须是不需要口令的。
要通过 SSH 为 oracle 用户设置安全的不需要口令的登录,执行以下操作:

a. 以 oracle 用户生成用户的 SSH 公钥和私钥(~/.ssh/id_dsa.pub
和 id_dsa):
      
$ ssh-keygen -t dsa

i. “Enter file in which to save the key ...:”--> 按 ENTER 键。
ii.“Enter passphrase ...:” 
对于不需要太安全的连接,只要按下 ENTER 即可。
对于需要安全的连接,输入一个只有您知道的口令短语。
iii.“Enter same passphrase again:”或者按 Enter,或者输入口令短语。

注意:在实际的多服务器环境中,在进行步骤“b.”之前,
您要在群集中的每台服务器上重复步骤“a.”。

b. 通过将来自每台服务器的 id_dsa.pub 文件内容合并,
创建 authorized_keys 文件。您可以在一个节点上完成所有这些步骤:
多次运行下面的命令,每次用一个不同的节点名称
替换“raclinux1”。以 oracle 用户:

$ ssh raclinux1 "cat ~/.ssh/id_dsa.pub" >> ~/.ssh/authorized_keys

i. 每次您从任何节点首次连接到一个新主机名时,
您将看到类似这样的消息:

“The authenticity of host 'raclinux1 (192.168.203.11)' can't be
established.RSA key fingerprint is ...
Are you sure you want to continue connecting (yes/no)?”

键入“yes”并按下 ENTER 键。接着您将看到此消息:

“Warning:Permanently added 'raclinux1,192.168.203.11' (RSA) to
the list of known hosts.”

ii.“oracle@raclinux1's password:”--> 键入“oracle”并按下 ENTER 键。

注意:在实际的多服务器环境里,将您刚刚创建的 authorized_keys 文件
复制到群集中每台服务器上的 oracle 用户的 ~/.ssh 
目录中。例如,您可以使用下列命令
将其复制到节点“raclinux2”:
   
$ scp ~/.ssh/authorized_keys raclinux2:/home/oracle/.ssh/
	 oracle@raclinux2's password:--> 键入“oracle”并按下 ENTER 键。

c.(可选)如果您在前面输入了口令短语,而却希望无口令登录(RAC 10g 安装需要),
您需要将此口令短语通知 ssh-agent(已经为桌面运行),
这样就不会提示 ssh 客户端
输入口令短语。一旦您通知 ssh-agent
已经为 GUI 桌面登录过程缓存了口令短语,
ssh-agent 就会满足后续的客户端请求。
       
$ ssh-add
为 /home/oracle/.ssh/id_dsa 输入口令短语:*键入您的口令短语*
添加了标识:/home/oracle/.ssh/id_dsa (/home/oracle/.ssh/id_dsa)

d. (不可选)要结束并测试无需口令的 SSH 连接,
对任何提示都回答 YES(运行两次,第二次将不提示输入 
口令):

i. 运行“ssh raclinux1 date”。
ii.运行“ssh raclocal1 date”。
iii.运行“ssh raclinux1.us.oracle.com date”。
iv.运行“ssh raclocal1.us.oracle.com date”。

注意:在实际的多服务器环境中,在所有节点上重复以上步骤。

疑难解答:如果要求输入口令,检查
用户主目录的所有权应该被限制为对组和其他对象可写。
在尝试进行连接时运行 Tail /var/log/messages
在详细模式下运行 ssh:“ssh -vvv raclinux1 date”


5. 以 root 身份更改 ORACLE_BASE 目录的权限:

# chown oracle:oinstall /opt/oracle

6. 如果选择将 CRS 文件(表决磁盘和 OCR 文件)放在原始设备上,
就必须进行此步骤,否则可以跳过此步骤。
请注意,如决定将 OCFS 用于 CRS 文件(跳过此步骤):
** 确保使用支持的 OCFS **
为表决磁盘和 OCR 文件设置原始设备:

a. 以 root 身份执行 vi 或 nedit:
REDHAT:/etc/sysconfig/rawdevices  
SUSE:/etc/raw
      
并添加:

Red Hat 语法:
/dev/raw/raw1 /dev/sda1
/dev/raw/raw2 /dev/sda2

SuSE 语法:
raw1:sdd1
raw2:sdd2

b. 将原始设备的权限更改为 oracle:

# chown oracle:oinstall /dev/raw/raw1
# chown oracle:oinstall /dev/raw/raw1
      
或简化的 Linux 样式:

# chown oracle:dba  /dev/raw/raw[12]

c. 以 root 身份启动原始设备(确保它们在下次重启动时启动):

RedHat:
# /etc/init.d/rawdevices  restart
      
在 Red Hat 上将原始设备设置为启动时启动。
 
SUSE:
# /etc/init.d/raw start
# chkconfig -s raw 35

d. 以 oracle 身份为表决磁盘和 OCR 文件创建符号链接:

$ cd /ocfs
$ ln -sf /dev/raw/raw1  ocr_file
$ ln -sf /dev/raw/raw2  voting_disk 

7. 安装集群就绪服务 (CRS):
 
a. 将 Oracle 10g CRS CD 放入 CD 托盘中,Linux 可能会
自动挂载它,并在桌面上添加一个“CDROM”图标。
否则,以 root 身份执行:  
      
Red Hat:# mount /mnt/cdrom
SUSE:# mount /media/cdrom     (以 oracle 用户挂载也可以)

b. (可选,VMWare 专用)如果选择将 CRS 文件
(表决磁盘和 OCR 文件)放在 OCFS 上,可以以 oracle 用户身份执行这个
可选命令:
                                                                              
$ dd if=/dev/zero of=/ocfs/voting_disk bs=1M count=9

注意:上面的 dd 命令不是必需的,但是如果我们在这里进行 CRS 安装的话,
它将加快在 CRS 安装后
运行的 root.sh 的速度。

c. 以 oracle 用户身份运行安装程序:

$ cd                     (不要将目录更改为 /mnt/cdrom 或 /media/cdrom)
RedHat:$ /mnt/cdrom/runInstaller                               
SUSE:$ /media/cdrom/runInstaller                             

i. 屏幕显示:“Welcome”
单击“Next”

ii.屏幕显示:“Specify Inventory directory and credentials”
1. 将 Inventory 目录更改为:/opt/oracle/oraInventory
2. 将操作系统组名称更改为:oinstall
3. 单击“Next”
 
iii.弹出窗口……以 root 身份运行 /opt/oracle/oraInventory/orainstRoot.sh
# /opt/oracle/oraInventory/orainstRoot.sh
在安装程序中单击“Continue”。
 
iv.屏幕显示:“Specify File Locations”
将 Name 更改为:CRS10g
将 Path 更改为:/opt/oracle/CRS10g
单击“Next”

v. 屏幕显示:“Language Selection”
单击“Next”

vi.屏幕显示:“Cluster Configuration”
保持 Cluster Name 为“crs”不变
对于公共节点名称,使用“raclinux1.us.oracle.com”。
对于专用节点名称,使用“raclocal1.us.oracle.com”。
单击“Next”
         
注意:如果收到警告:找不到节点,则确保
“ssh <nodename> date”仅返回日期

vii.屏幕显示:“Private Interconnect Enforcement”
对于 eth0,在“Interface Type”中选择“Public”。
对于 eth1,在“Interface Type”列中选择“Private”。
单击“Next”
 
viii.屏幕显示:“Oracle Cluster Registry”
输入:/ocfs/ocr_file
单击“Next”
 
ix.屏幕显示:“Voting Disk”
输入:/ocfs/voting_disk
单击“Next”
 
x. 屏幕显示:“Summary”
单击“Install”结束安装
 
xi.弹出 Setup Privileges 窗口:以 root 在每个节点
上运行:

# /opt/oracle/CRS10g/root.sh

忽略:
“WARNING:directory '/opt/oracle' is not owned by root”
         


CRS 成功消息如下:
“Oracle CRS stack installed and running under init(1M)”
         
如果不是这样的,则仔细检查 /etc/hosts 文件。要重试 root.sh
         
1. vi /etc/inittab(注释掉最后 3 个 crs 行)
2. init q(重新读取 inittab 并终止不需要的进程)
3. 终止任何其他 crs/css/evm 进程

在安装程序弹出窗口中单击“OK”。
                                               
xii.屏幕显示:“End of Installation”,退出安装程序
单击“Exit”并确认退出。
         
xiii.检查 CRS 是否正在运行
   
# ps -efm | grep crs         (应该有很多行)

         
d. 以 root 身份取出 Oracle10g CRS CD:

Red Hat:# umount /mnt/cdrom
SUSE:# umount /media/cdrom

CD 若未自动弹出的话,则手动弹出 CD。

8. 创建 Oracle 用户环境:

a. 编辑 oracle 用户的 .bashrc 登录文件: 

$ vi $HOME/.bashrc    或   nedit  $HOME/.bashrc
   
在最后插入下列 6 行:

export ORACLE_SID=O10G1
export ORACLE_BASE=/opt/oracle
export ORACLE_HOME=/opt/oracle/DB10g
export ORA_CRS_HOME=/opt/oracle/CRS10g
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH
export PATH=$PATH:$ORACLE_HOME/bin
# export LD_ASSUME_KERNEL=2.4.19     (RHEL3 vanilla 或 Update 1 需要)

还可以使用 .bash_profile,但要注意的是默认情况下 KDE 
环境(在 SUSE 上是默认的)不读取 .bash_profile。
如果在 SUSE 上安装了 orarun rpm,在
/etc/profile.d/oracle.sh,csh 中修改环境

注意:数据库名称是“O10G”(字母“O”、数字“10”和大写字母“G”)
SID:“O10G1”和“O10G2”;1 和 2 由 dbca 自动追加。
不要混淆“O”(字母“O”)和“0”(零)。

b. 以 oracle 用户身份执行 .bashrc 脚本获得更改:

$ source $HOME/.bashrc

c. 以 root 用户身份执行:

# source ~oracle/.bashrc

9. 从 CD 安装 Oracle 数据库 10g 企业版 10.1.0.3
(您可以从 OTN 下载 cpio 归档文件自己刻录 CD):

a. 将 Oracle 数据库 CD 放入 CD 托盘中。Linux 会自动挂载它,
并在桌面上添加一个“CDROM”图标。否则,以 root 身份执行:  
      
Red Hat:# mount /mnt/cdrom
SUSE:# mount /media/cdrom

b. 以 oracle 用户身份运行安装程序:
       
$ cd                     (不要将目录更改为 /mnt/cdrom 或 /media/cdrom)
RedHat:$ /mnt/cdrom/runInstaller                              
SUSE:$ /media/cdrom/runInstaller                            
  
i. 屏幕显示:“Welcome”
单击“Next”
  
ii.屏幕显示:“Specify File Locations”
将 Name 更改为:DB10g
确认验证 Path 为:/opt/oracle/DB10g
单击“Next”

iii.屏幕显示:“Specify Hardware Cluster Installation Mode”
选择:“Cluster Installation”                  (最上面的选项)
选择所有节点(实际的 RAC 会有两个或两个以上的节点)
单击“Next”
 
iv.屏幕显示:“Select Installation Type”
选择:“Enterprise Edition”                    (最上面的选项)
单击“Next”

v. 屏幕显示:“Product-specific Prerequisite Checks”
所有检查都应该是成功的。
单击“Next”
         
注意:如果 OS 内核参数不正确,则按照第 2 阶段的步骤在 OS 级别上修复,
然后按 Back 和 Next 按钮,这样就能通过检查。
                              
vi.屏幕显示:“Select Database Configuration”
选择:“Do not create a starter database”      (最下面的选项)
单击“Next”

vii.屏幕显示:Summary
单击“Install”   (大约 10 分钟)
        
        
viii.弹出 Setup Privileges 窗口:在每个节点上以 root 身份运行 $ORACLE_HOME/root.sh 
(确保将 DISPLAY 环境变量设置为用 xclock 测试),
否则可能会遇到如下错误:
         
“InternalError:Can't connect to X11 window server using ':0.0'”

# $ORACLE_HOME/root.sh

1. “Enter the full pathname of the local..”接受默认选项。

2. VIP 配置助手 (vipca) 自动启动:
a. 屏幕显示:“Welcome”
单击“Next”
b. 屏幕显示:“1 of 2, Network Interfaces”
只选择公用接口 — 在我们的例子中为“eth0”
单击“Next”
c. 屏幕显示:“2 of 2, Virtial IPs for cluster nodes”
在“IP Alias Name”下输入“raclinux1-vip.us.oracle.com”。
按 TAB 自动填充“IP address”列。
单击“Next”
d. 屏幕显示:“Summary”
单击“Finish”
               
e. 对话框:“Configuration Assistant Progress Dialog”
所有步骤完成后,单击“OK”。
f. 对话框:“Configuration Results”
单击“Exit”

在安装程序弹出窗口中单击“OK”。
                                               
	ix.屏幕显示:“End of Installation”,退出安装程序
单击“Exit”并确认退出。
    
c. 以 root 用户身份取出 Oracle10g 数据库 CD:

Red Hat:# umount /mnt/cdrom
SUSE:# umount /media/cdrom

CD 若未自动弹出的话,则手动弹出 CD。

10. 加载 10g CRS 所需的 hangcheck-timer 内核模块

将以下行:

modprobe hangcheck-timer hangcheck_tick=30 hangcheck_margin=180
    
	添加到:
	
REDHAT:/etc/rc.local
SUSE:/etc/init.d/boot.local
	
以 root 身份输入:

# modprobe hangcheck-timer hangcheck_tick=30 hangcheck_margin=180

或更高的值(见下面的 VMware 说明)。 
    
VMWARE 说明:对于 VMWARE,使用值,否则机器会重启动
如果从挂起模式恢复,这些是不错的值:
hangcheck_tick=9000000 hangcheck_margin=36000000

11. 确认所有服务都在正常运行:
     
a. 以 oracle 用户身份执行:
 
$ srvctl status nodeapps -n raclinux1

VIP is running on node:raclinux1
GSD is running on node:raclinux1
PRKO-2016 :Error in checking condition of listener on node:raclinux1
ONS daemon is running on node:raclinux1

一旦我们运行 netca,监听器错误就会消失。

12. (可选)增加 RAC/CRS 超时设定,这通常专门针对 VMware。

a. 更改脚本超时值并检查 VIP 资源上的时间间隔。
为避免负载过大情况下所有数据库潜在的关闭可能,以 root 身份:
    
i. 将要修改的资源的详细信息从 OCR 提取到文本:
        
# cd /opt/oracle/CRS10g/bin
# ./crs_stat -p ora.raclinux1.vip > /tmp/ora.raclinux1.vip.cap
   
ii.从上面更新/修改 .cap 文件。将 CHECK_INTERVAL 更改为 900
秒,将 SCRIPT_TIMEOUT 更改为 600 秒(默认情况下二者都为 60 秒):
         
# ./crs_profile -update ora.raclinux1.vip -dir /tmp -o ci=900,st=600
   
iii.现在用 OCR 注册已更新资源(注意, -u 意味着
更新一个已注册的资源):
   
# ./crs_register ora.raclinux1.vip -dir /tmp -u
   
在注释 294336.1 中对这些步骤进行了进一步的说明。 
       
b.(Mware 特有)如果在重启动时没有任何 CRS 资源启动,
则以 root 身份增加 CSS misscount(默认为 60 秒):
      
# /opt/oracle/CRS10g/bin/crsctl set css misscount 180
      
使用这个值,磁盘 IO 用时可达 180*.75 = 160 秒。
      
要检查当前的 misscount,执行:# crsctl get css misscount

在注释 294430.1 中对这些步骤进行了进一步的说明。
       
13. (可选)启动 iSQL*Plus 中间层(设置 dbconsole 可以启用该中间层):

a. 应用此变通方法:
i. 以 oracle 身份用“vi”或“nedit”编辑 $ORACLE_HOME/bin/isqlplusctl:
找到“IS_RAC=true”这一行,并将其更改为“IS_RAC=false”。
b. 以 oracle 身份启动 iSQL*Plus:
$ isqlplusctl start
c. 确认 iSQL*Plus 正在运行:
i. 从一个浏览器连接到 URL“http://raclinux1:5560/isqlplus”

由于没有创建数据库,因此还无法使用用户名和口令进行连接,
但此时会看到这个提示。
       
14. (可选,但强烈建议)为了为 Orcle 软件安装更多补丁,
您需要加载 OPatch。从错误 2617419 下的 Metalink 
获得 OPatchfrom。

cd $ORACLE_HOME
<将补丁 2617419 下载到这个目录>
$ mv OPatch OPatch.orig
$ unzip p2617419_10102_GENERIC.zip

15. (可选,但强烈建议)如果 CRS 在重启动时没有自动启动,
如下应用补丁 3455036。您将需要两个 
shell 窗口,一个以 ($)“oracle”身份登录,另一个以 (#)“root”身份登录。这个
过程有点“不标准”,这是因为我们修补的是 CRS 主目录而不是
RDBMS 主目录(如需更多详细信息,请查看补丁的自述文件)。
    
a. 关闭所有(如果有的话)数据库和服务:
    
$ srvctl stop db -d o10g
$ srvctl stop asm -n raclinux1 -i +ASM1    (如果有 ASM 实例的话)

以 root 身份关闭 CRS:
           
# /etc/init.d/init.crs stop

确认所有进程都已结束:
              
# ps -efm |grep evm  ; ps -efm |grep css  ; ps -efm |grep crs
       
终止任何延迟进程(不应该有延迟进程)
    
b. 从 Metalink 获得补丁 3455036,按照
补丁所带的 README.txt 进行操作。下面是针对我们环境
的步骤:

以 Oracle 用户身份在 CRS home 下解压缩:

$ cd /opt/oracle/CRS10g
$ mkdir Patches
$ cd Patches
<从 Metalink 将补丁 3455036 下载到这个目录>
$ unzip -q p3455036_10103_LINUX.zip
$ cd 3455036
$ chmod +x custom/scripts/*.sh
       
c. 运行 root 预安装步骤:
                   
# cd /opt/oracle/CRS10g/Patches/3455036
# custom/scripts/prerootpatch.sh  
-crshome /opt/oracle/CRS10g -crsuser oracle
       
d. 以 oracle 用户身份应用补丁:
    
$ cd /opt/oracle/CRS10g/Patches/3455036
$ custom/scripts/prepatch.sh -crshome  /opt/oracle/CRS10g
$ export ORACLE_HOME=/opt/oracle/CRS10g
$ /opt/oracle/DB10g/OPatch/opatch apply -local
       
Is this system ready for updating?Please respond Y|N >  Y
                  
$ custom/scripts/postpatch.sh -crshome /opt/oracle/CRS10g
       
在 postpatch.sh 完成之前不要继续操作
(当 ORACLE_HOME 指向了 CRS_HOME 后退出这个 shell)
       
e. Root 安装后的步骤:
    
# cd /opt/oracle/CRS10g/Patches/3455036
# custom/scripts/postrootpatch.sh -crshome /opt/oracle/CRS10g
       
现在所有服务都应自动启动。也可以
重启动以 100% 保证已自动启动所有服务(不是必需的)。
       
f. 确认已以 oracle 用户身份安装了补丁:
    
$ export ORACLE_HOME=/opt/oracle/CRS10g  
$ /opt/oracle/DB10g/OPatch/opatch lsinventory -detail
       
应看到列出了错误 3455036。

16. 	(可选)禁止在 CRS 失败时重新启动

注释掉 FAST_REBOOT(大概在 linux 部分的第 81 行):  
REDHAT:/etc/rc.d/init.d/init.cssd
SUSE:/etc/init.d/init.cssd
   
###  FAST_REBOOT="/sbin/reboot -n -f"
   
      
17. (可选)EM 可能误报无效的对象。以下是使用 OPatch 的好实践:

a. 从 Metalink 获得补丁 3774886,
按照补丁所带的 README.txt 进行操作,或安装下面的
这些相同指令:

$ mkdir -p /opt/oracle/DB10g/Patches
$ cd /opt/oracle/DB10g/Patches
<download patch 3774886 to this directory>
$ unzip -q p3774886_10103_GENERIC.zip
$ cd 3774886
$ ../../OPatch/opatch apply

回答“Y”
	 

b. 从 Metalink 获得补丁 3377171,
按照补丁所带的 README.txt 进行操作。
       
忽略任何“java.io.IOException:Broken pipe”异常,该异常可能会在
最新版本的 opatch 中得到修复。
 
对于现有信息中心库(我们还没有数据库/信息中心库),运行:
       
$ sqlplus sysman/oracle
SQL> @?/sysman/admin/emdrep/sql/db/latest/policy/default_policy_setup
       
      
c. 以 oracle 身份重新加载代理:

$ emctl reload agent

如果还没有创建数据库,出现错误信息是很正常的。

18. (可选)如果计划在数据库中安装 Spatial 选项,则确保
从 Metalink 获得 3928367;按照补丁所带的 README.txt 进行操作。

-- 完成

第五阶段:使用数据库配置助手创建一个示例数据库

在此下载这个脚本的支持文件。

为了便于演示,我们将使用自定义方法
创建数据库。使用这一方法我们还将获得
比附带的示例数据库小的数据库。

VMWARE 注意事项:o 如果是在 RHEL3 vanilla 或 Update 1 上运行,
确保在环境中设置 LD_ASSUME_KERNEL=2.4.19,
否则 java 程序将看起来像挂起一样(解决方法:control-Z/bg/fg,或以上)
RHEL3 Update 2(或以上),SUSE 没有问题。

1. 我们将使用 netca(网络配置助手)来配置 SQL*Net
监听器。TAF(透明的应用程序故障切换)部分我们将
手工完成。

a. 以 oracle 身份运行 netca 创建两个监听器(在一个节点上):

$ export LD_ASSUME_KERNEL=2.4.19    (只用于 RHEL3 vanilla 或 Update1)
$ netca

i. 屏幕显示:“Oracle Net Config...”
选择:“Cluster configuration”
单击“Next”

ii.屏幕显示:“TOPSNodes”
实际情况下我们应选择所有节点,在此只要保留 raclinux1 就行了
选择:“raclinux1”
单击“Next”

iii.屏幕显示:“Welcome”
选择:“Listener configuration”
单击“Next”

iv.屏幕显示:“Listener Configuration, Listener”
选择:“Add”
单击“Next”

v. 屏幕显示:“Listener Configuration, Listener Name”
保留:“LISTENER”
单击“Next”

vi.屏幕显示:“Listener Configuration, Select Protocols”
保留:“TCP”
单击“Next”

vii.屏幕显示:“Listener Configuration, TCP/IP Protocol”
保留: "1521"
单击“Next”

viii.屏幕显示:“Listener Configuration, More Listeners?”
选择:“Yes”
单击“Next”

ix.在实际的硬件(两个或更多节点)上,上述步骤已在每个节点上
(都是端口 1521)配置了一个监听器,这非常好。
跳到步骤“x”,否则对于用于培训的“single node RAC”,

使用以下参数重复步骤 iv. 到 vii.:
Listener Name = "LISTENER2"
Port=1522

x. 屏幕显示:"Listener Configuration, More Listeners?"
选择:"No"
单击“Next”

xi.屏幕显示:“Listener Configuration, Select Listener”
选择:“LISTENER2”
单击“Next”

xii.屏幕显示:“Listener Configuration Done”
单击“Finish”(两次)。

b. 启动主监听器:

$ srvctl start nodeapps -n raclinux1

c. 确认两个监听器正在运行:

$ ps -efm|grep tnslsnr

应该看到两行:LISTENER_RACLINUX1 & LISTENER2_RACLINUX1
      
在 10.1.0.3 中启动的话,每个监听器都有多个线程,因此会
显示更多行。

注意:如果在没有正确设置监视器的情况下调用 dbca,则在数据库创建期间
emca 将无法配置。
 
d. 获得 tsnames.ora(在支持文件中)
   
REDHAT:tnsnames.ora.RedHat
SUSE:tnsnames.ora.SUSE
   
并将其复制到:
   
$ORACLE_HOME/network/admin/tnsnames.ora
   
e. 如果您通过 NETCA 创建了监听器,则 CRS 将自动启动它们,
否则:要在启动时启用自动启动,
将启动行添加到:
      
REDHAT:/etc/rc.local
SUSE:/etc/init.d/boot.local

su - oracle -c "lsnrctl start listener_raclinux1"
su - oracle -c "lsnrctl start listener2_raclinux1"


2. 使用 dbca 创建数据库时一些选项会看起来有些奇怪,
这是因为我们正在试图创建一个足够小的能适应有限空间的
数据库:

a. 以 oracle 用户身份调用 dbca:

$ export LD_ASSUME_KERNEL=2.4.19    (只用于 RHEL3 vanilla 或 Update1)
$ dbca

i. 屏幕显示:“Welcome...”
选择:“Oracle Real Application Clusters database”
单击“Next”

ii.屏幕显示:“Step 1 of 17:Operations”
选择:“Create a database”
单击“Next”

iii.屏幕显示:“Step 2 of 17:Node Selection”
实际情况下我们应选择所有节点,在此只要保留 raclinux1 就行了
如果没有看到这一信息,检查 VIP/GSD/ONS 是否为 UP
单击“Next”

iv.屏幕显示:“Step 3 of 17:Database Templates”
选择:“Custom Database”
单击“Next”

v. 屏幕显示:“Step 4 of 17:Database Identification”
在两个域中(SID 和 DB Name)都输入“O10G”
单击“Next”

注意:数据库名称为“O10G”(字母“O”,数字“10”和大写字母“G”)
SID:“O10G1”和“O10G2”;1 和 2 由 dbca 自动追加。
不要混淆“O”(字母“O”)和“0”(零)。

vi.屏幕显示:“Step 5 of 16:Management Options”
保留:“Configure the Database with Enterprise Manager”
单击“Next”

vii.屏幕显示:“Step 6 of 16:Database Credentials”
输入:“oracle”作为所有帐号的口令
单击“Next”

viii.屏幕显示:“Step 7 of 14:Storage Options”
保留:“Cluster File System”
单击“Next”
         
注意:在这一阶段,可以选择 ASM 而非 OCFS
这意味着所有数据文件都将由 ASM 管理,
包括 init.ora、控制文件以及数据库和重做日志文件。
您需要设置原始设备或安装 ASMLib。

ix.屏幕显示:“Step 8 of 14:Database File Locations”
选择:“Use Common Location for All Database Files”
输入:“/ocfs”
单击“Next”

x. 屏幕显示:“Step 9 of 14:Recovery Configuration”
输入位置“/ocfs/flash_recovery_area”
减少:将“Flash Recovery Area Size”减少到 500MB
单击“Next”

xi.屏幕显示:“Step 10 of 14:Database Content”
取消除“Enterprise Manager Repository”外的所有选定
单击:“Standard Database Components”
取消选定:“Oracle Intermedia”和“Oracle XML DB”
单击“OK”
单击“Next”
         
注意:如果需要的话可以选择使 XML DB 保持打开,这是因为如果您计划
安装 HTML DB 的话,它会有所帮助
               
注意:如果您在上文中选择了 Spatial 选项,确保
a) 也选择 Intermedia               
			   b) 从 Metalink 应用补丁 3928367
			                   
xii.屏幕显示:“Step 11 of 14:Database Services”
单击“Next”

xiii.屏幕显示:“Step 12 of 14:Initialization Parameters”
在“Sizing”选项卡中,更改:
Block Size:2KB
Processes: 100
               
在 10.1.0.3 中,SGA 内存的计算基于物理内存的百分比,
可以通过选择以下选项来禁用:
“Custom”、“Manual”
Shared Pool = 150M
Buffer Cache = 40M
Java Pool = 50M
PGA Size = 58M
            
这是为了确保在 VMware 环境中即便在低内存情况下
也能成功创建数据库。
            
单击“Next”
                 
xiv.屏幕显示:“Step 13 of 14:Database Storage”
选择左侧的“Controlfile”
在“General”选项卡中删除
control03.ctl,突出显示并点击退格键
在“Options”选项卡中将
实例的最大数更改为: 8
将日志历史记录的最大数更改为: 100

展开左侧的“Tablespaces”并选择“SYSAUX”
在“General”选项卡中将大小更改为 150MB

选择“SYSTEM”表空间
在“General”选项卡中将大小更改为 300MB
单击“OK”
在“Storage”选项卡中更改为“Managed in the dictionary”
初始大小:32KB
更改后的大小:128KB
增加幅度:0   (PCTINCREASE,设置为零!)
            
注意:“Locally Managed”是产品部署的
推荐设置。
我们改为“Managed in the dictionary”有两个原因:
1. 节约了一些空间;用空间换取了位图
分配的速度。
2. 如果 SYSTEM 表空间是本地管理的,则即便是为了
培训/测试,也无法在这个数据库上创建任何
词典管理的表空间。
               

选择左侧的“TEMP”,并将其大小更改为 10MB
选择左侧的“UNDOTBS1”并将其大小更改为 100MB

展开左侧的“Redo Log Groups”
选择“3”
通过按左下角的 Delete 按钮删除组并确认。

单击“Next”

xv.屏幕显示:“Step 14 of 14:Creation Options”
选择“Generate Database Creation Scripts”

要手动创建数据库(转到下面的步骤 3)
取消“Create Database”的选定    (不推荐,错误 3463569)
         
或者
         
(首选)现在就让 dbca 自动创建数据库:
选择“Create Database”(并跳过下面的步骤 3)
         
每种方法都要检查“Generate Database Creation Scripts”
         
单击“Finish”
查看摘要并单击“OK”;单击“OK”创建脚本。
         
大约 50-120 分钟(如果马上创建)— 取决于计算机的速度 — 
         
您将会看到成功的消息。 
单击 Exit。

“Do you want to perform another operation?”
单击“no”

注意:如果看到错误消息:
ORA-2142:missing or invalid ALTER TABLESPACE option

只需单击 Ignore。

注意:emca 没有完成配置的错误是由于没有像上面
那样完全配置监听器的缘故。
                

3. 手动运行数据库创建脚本
(如果如上用 dbca 创建脚本,那么跳过这个步骤,转到步骤 4)

a. 用 CRS 注册数据库:

% srvctl add database -d O10G -o $ORACLE_HOME 
$ srvctl add instance -d O10G -i O10G1 -n raclinux1
$ $ORA_CRS_HOME/bin/crs_stat -t


疑难解答:

% srvctl add database -d O10G -o $ORACLE_HOME 

PRKP-1037 :Failed to create cluster database O10G.
     


b. 使用手动脚本创建数据库:

$ cd /opt/oracle/admin/O10G/scripts
$ time ./O10G1.sh                 (约 50 分钟)

输入:oracle,作为所有口令

c. 使用 srvctl 启动数据库,以便使其可以用 CRS 注册
   
$ sqlplus "/ as sysdba"
SQL> shutdown immediate;
      
$ srvctl start instance -d O10G -i O10G1 

d. 要在启动时启用自动启动,(如果已用 CRS 注册,则 10g 需要如此):

United Linux:
在 /etc/sysconfig/oracle(包含在 orarun 程序包中)中更改
START_ORACLE_DB="yes"

RedHat:
将启动行添加到 /etc/rc.local 中
su - oracle -c "dbstart"

4. 启用数据库的自动启动,缩小 SGA 的大小:

a. 编辑 /etc/oratab:

如果手动创建数据库,将下列行添加到 /etc/oratab:
      
O10G:/opt/oracle/DB10g:Y

如果 dbca 自动创建了数据库,则 CRS 将在重启或失败时自动启动
实例。使用 srvctl 启动/停止
或者启用/禁用该自动操作。

b. 缩小实例的 SGA 大小以节约内存。这对 vmware 用户
尤其有用。我们还将修复一些其他的 init.ora 参数,并远离 spfile 以便
并远离 spfile 以便使后面的 init.ora 修改
更容易。如果在 dbca 步骤 2.a.viii. 中选择了 ASM 作为主存储,
而且您希望从 spfile 转换出去,以先进行步骤“iii.”,然后进行
步骤“i.”的顺序完成。如果您的 init.ora 不在
ASM 内,则可以放心地先执行“i.”然后执行“ii.”或“iii.”,
或者更常见的先执行“iii.”然后执行“i.”
       
i. 禁用 spfile(如果使用 ASM 作为主数据库存储则不禁用):

确认发出: 
$ srvctl config database -d O10G -a

禁用 spfile:
$ srvctl modify database -d O10G -p ""

再次发出上面的确认命令。       
 
现在执行下面的“ii.”或“iii.”。
          
ii.使从支持文件 获得的预先编辑的 init.ora 就位 (/opt/oracle/DB10g/dbs/initO10G1.ora)。	  
    
iii.手动编辑 initO10G1.ora,如下
(如果进行了上面的 cp,则跳过这一步):
          
$ cd $ORACLE_HOME/dbs
$ sqlplus "/ as sysdba"
SQL> create pfile from spfile;
SQL> exit
          
现在编辑新创建的 initO10G1.ora 并进行以下更改:

*.db_cache_size=40M
*.java_pool_size=20M
*.shared_pool_size=55M
*.cluster_database_instances=2
*.cluster_database=TRUE

O10G1.thread=1
O10G1.instance_number=1
O10G1.local_listener='LISTENER_O10G1'
O10G1.remote_listener='LISTENER_O10G2'
O10G1.undo_tablespace='UNDOTBS1'

O10G2.thread=2
O10G2.instance_number=2
O10G2.local_listener='LISTENER_O10G2'
O10G2.remote_listener='LISTENER_O10G1'
O10G2.undo_tablespace='UNDOTBS2'

_lm_send_mode="global_ordering"           # Critical for SLES9/VMware/10gRAC

iv.重新启动实例以确保更改生效:

$ srvctl stop  instance -d O10G -i O10G1       
$ srvctl start instance -d O10G -i O10G1
          
ipcs 应显示大小为 128MB 的一段

5. 将第二个实例添加到数据库,有两个选项可用于此;选择选项 1:

a. (首选)选项 1:使用 DBCA 添加实例

i. 创建第二个实例

$ dbca

选择:RAC、Instance Management、Add instance
user:sys, passwd:oracle,  next, next, next,
(可选,节约空间:将大小更改为 50MB)完成。
Instance Summary:OK

如果“Instance Management”变灰,最可能是由于
手动创建的数据库而非通过 DBCA 创建的。在该情况下发出如下命令:

% srvctl add database -d O10G -o $ORACLE_HOME 
$ srvctl add instance -d O10G -i O10G1 -n raclinux1
$ srvctl add instance -d O10G -i O10G2 -n raclinux1

然后重新运行上面的 dbca 步骤。(注意:由于使用 VMware
的特殊情况,我们将两个实例都添加到 raclinux1,
在实际的硬件上,用实际节点名替换:raclinux2)
		 
		 10.1.0.3: 由于一个错误(将在下一版本中修复),
EM 失败:

EM configuration failed due to the following error -
Error updating EM configuration for node raclinux1

单击 OK 忽略。(我们将在以后修复它。)

安装程序询问“Do you want perform another operation?”
单击“NO”。

如果自动启动失败,可以使用下列命令启动:

$ srvctl start instance -d O10G -i O10G2

ii.使两个实例都使用同一 init.ora(RAC 最佳实践):
	 
	     $ cd $ORACLE_HOME/dbs
$ mv initO10G2.ora initO10G2.ora.orig
$ ln -s initO10G1.ora initO10G2.ora
	  
b. 选项 2:手动添加另一个实例:

i. 获取 addinstance.sh 脚本(在支持文件中)

ii.设置另一个 init.ora 文件:
        
$ cd $ORACLE_HOME/dbs
$ ln -s initO10G1.ora initO10G2.ora

iii.添加第二个实例。  

以 oracle 用户身份运行:
     
$ srvctl add instance -d O10G -i O10G2 -n raclinux1
$ $ORA_CRS_HOME/bin/crs_stat -t
$ cd /opt/oracle/admin/O10G/scripts
$ ./addinstance.sh
$ srvctl start instance -d O10G -i O10G2

6. 您现在在同一节点上就有了两个实例,下面确认一下:

a. 在 Linux 层级上:
    
ipcs             (应看到两个大段)
ps -ef|grep dbw  (应看到两个 dbwr 的进程)

b. 在 Oracle 层级上:
    
sqlplus "sys/oracle@O10G1 as sysdba"
sqlplus "sys/oracle@O10G2 as sysdba"
sqlplus "sys/oracle@O10G-TAF as sysdba"
sqlplus "sys/oracle@O10G-NOTAF as sysdba"

上面所有这些实例都应连接到数据库,为确认您连接到了
哪个实例,执行: 
       
SQL> select host_name,instance_name from v$instance;

c. 您还需要将 Enterprise Manager 配置好,

管理并监视到以下地址的连接:
       
	  http://raclinux1.us.oracle.com:5500/em
用户:sys  口令:oracle

	  我们来修复一些配置:

i. 用支持文件中提供的文件替换 /opt/oracle/DB10g/bin/emctl.pl。
这将修复在 VMware 环境中更容易出现的代理
启动/停止问题。Oracle 将来发行的版本中将包含这一修复。

ii.(可选,强烈推荐)由于在一个节点上发现了两个实例,
没有正确配置 targets.xml 以发现两个实例和监听器。

要添加第二个实例和监听器目标:

$ emctl stop dbconsole
$ cd $ORACLE_HOME/raclinux1*1/sysman/emd
<将监听器与实例 xml 定义(在支持文件中)下载并解压到这个目录>
$ cp -p targets.xml targets.xml_single_instance
$ emctl config agent addtarget `pwd`/targets-add-inst.xml
$ emctl config agent addtarget `pwd`/targets-add-list.xml
$ emctl start dbconsole
                   
您还可以选择在下面的步骤“iv.”完成后或在此阶段结束时重启动,
这样就能确知它是否有效。(不能将两个目标添加到一个 xml 
文件中)
          
这一步骤在实际硬件上是不需要的,这是因发现过程会正常运行。

      
iii.要在重启动时自动启动,将:

su - oracle -c "emctl start dbconsole"

添加到 /etc/rc.local (RedHat) 或 /etc/init.d/boot.local (SUSE)。
          
7. (可选)安装示例模式。  
由于我们没使用预先创建的数据库(想要自定义:了解如何自定义,并获得 
对计算机来说足够小的数据库),
没有安装示例模式的选项。我们需要用所随附
CD 来安装它:

a. 将 Oracle 10g 随附 CD 放入 CD 托盘中;
Linux 会将其自动挂载,并在桌面上添加一个“CDROM”图标。
否则,以 root 身份执行:  
      
Red Hat:# mount /mnt/cdrom
SUSE:# mount /media/cdrom     (以 oracle 用户挂载也可以)
   
b. 以 oracle 用户身份运行安装程序:

$ cd $ORACLE_HOME/oui/bin  (Do NOT cd into /mnt/cdrom or /media/cdrom)
$ ./runInstaller
  
i. 屏幕显示:“Welcome”
单击“Next”
  
ii.屏幕显示:“Specify File Locations”
确认 xml 路径:/media/cdrom/stage/products.xml
将 Name 更改为:DB10g
验证 Path 是否为:/opt/oracle/DB10g
单击“Next”

iii.屏幕显示:“Select Nodes”
实际情况下我们应选择所有节点,在此只要保留 raclinux1 就行了
单击“Next”
         
注意:如果从 cdrom 运行安装程序,则不会显示节点选择。
 
iv.屏幕显示:“Select a Product to Install”
选择:“Oracle Database 10g Products”(最上面的选项)
包括 Oracle JDBC、SQLJ、Examples 等
单击“Next”
         
v. 屏幕显示:Summary    
单击“Install”   (大约 5 分钟)
         
如果未找到文件:%fileName%,单击 Ignore。

vi.弹出窗口:以 root 身份运行 /opt/oracle/DB10g/root.sh 

# /opt/oracle/DB10g/root.sh

可能选择选项 3(不安装任何 Legato 软件),返回安装程序,
单击 OK 完成。
 
“Do you want to perform another operation?”
单击“no”
         
c. 现在我们有了创建示例模式的脚本。要加载它,使用 mksample.sh
(它还将重新编译所有无效对象)

从支持文件获得 mksample.sh。

$ time sh ./mksample.sh >& /tmp/mksample.log     (大约 40 分钟)

由于缺少数据库支持(如对空间的支持),一些对象无法创建
是正常的。

8. 一般注意事项:

a. 要启动/停止数据库
(这将在启动时由 CRS 自动完成):
   
$ srvctl stop database -d O10G
$ srvctl start database -d O10G
   
PRKP-1001 :Error starting instance O10G1 on node raclinux1
CRS-1005:Failed to get required resources
CRS-0223:Resource ora.O10G.O10G1.inst has placement error.
   
这是由于有两个实例在同一节点上。可能的变通方法是:
      
$ srvctl start instance -d O10G -i O10G1
$ sleep 10
$ srvctl start instance -d O10G -i O10G2
   
b. 检查数据库是如何配置的:
   
srvctl config database -d O10G -a
      
示例输出:
raclinux1 O10G1 /opt/oracle/DB10g
raclinux1 O10G2 /opt/oracle/DB10g
DB_NAME:O10G
ORACLE_HOME:/opt/oracle/DB10g
SPFILE:null:
DOMAIN:null:
DB_ROLE:null:
START_OPTIONS:null:
 
c. 在 srvctl 中打开跟踪:
$ export SRVM_TRACE=true

d. 将另一节点添加到 RAC:从一个 *现有* RAC 成员/节点运行:

$ cd $ORA_CRS_HOME/oui/bin/                       (以 oracle 用户身份)
$ ./addNode.sh                                      

按照提示进行操作,oui 会将软件复制到远程节点
稍后可以使用 dbca 将一个实例添加到该新节点。不需要使用 
CDs/ISO 来重新安装该软件。OUI 会将现有的 ORACLE_HOME 镜
像到新建主机。

-- 完成(注意:可能会从 EM 得到一个警告;忽略就可以了。)

第 6 阶段: 加载 OrderEntry Swingbench(可选)

请在此处下载这一过程的支持文件。

Swingbench 是一个非正式的 GUI 负载生成工具,您可以
从 http://www.dominicgiles.com/swingbench.php 下载它。
为符合我们的路径/实例名称,此处的版本经过了稍加修改。
请查看以上网站以获取 Swingbench 常见问题解答或更新。
                                                      
通过版本 21g 的新增功能,您可以使用 GUI 负载驱动程序动态更改用户负载
。  Swingbench GUI(而非 charbench)要求在高于分辨率
800x600 的条件下运行,才能正常查看所有 widget。

1. Oracle 10g 包含 Java 1.4.2,因此不必安装它(跳到第 2 步),
   但如果您没有 Oracle 10g,则可以按如下所示安装 Java:

   安装在 Sun 的网站上找到的 Java(软件开发人员软件包)或(Java 运行时环境)
   : http://java.sun.com/j2se/1.4.2/download.html
   
   # rpm -Uhv j2sdk-1_4_2_08-linux-i586.rpm  或  j2re-1_4_2_08-linux-i586.rpm

   如果安装有 Java(即未使用 10g 附带的 Java),那您
   需要编辑 ~oracle/swingbench21g/swingbench.env 以确保
   JAVAHOME 正确。

2. 以 oracle 用户身份安装 swingbench:

   a. 获取 swingbench21g.zip

      $ cd $HOME
      $ unzip swingbench21g.zip

   b. 确认正确设置了 swingbench 环境,查看
      swingbench21g/swingbench.env
        
      如果您按照简明手册中的说明执行操作,则将安装所有内容,否则您需要修复
      JAVAHOME、ORACLE_HOME 和 CLASSPATH
      
   c. 运行 Order Entry 向导以将 Sales Order 模式加载到数据库中

      $ cd swingbench21g/bin
      $ ./oewizard

      i. 屏幕: “Welcome to the Order Entry Install Wizard”
单击“Next”
     ii. 屏幕: “Select Task”
选择: “Create the Order Entry...”
单击“Next”
    iii. 屏幕: “Database Details”
         使用瘦 JDBC 驱动程序(较慢):
           连接字符串: raclinux1:1521:O10G1
           连接类型: thin
         使用 oci JDBC 驱动程序(较快):
           连接字符串: O10G-TAF        (负载平衡,TAF)
           连接类型: oci
单击“Next”

注意: 可以将两个文件 oewizard-thin.xml 或 oewizard-oci.xml
               复制到 oewizard.xml 以实现与通过 GUI 进行选择相同的效果。

     iv. 屏幕: “Schema Details”
         检查值
单击“Next”
      v. 屏幕: “All Details Entered”
单击“Finish”
         正在运行...  (大约 6 分钟)

     vi. PopUP: “Order Entry Schema Created”
单击“OK”
         向导将关闭

    vii. 为使 SOE 用户能够更简单地执行操作,请授予它 dba 角色:
   
$ sqlplus "/ as sysdba"
         SQL> grant dba to soe;
SQL> exit;

3. 测试 Swingbench 负载生成工具

   a. 运行字符模式驱动程序或 Java GUI 控制面板

      $ cd $HOME/swingbench21g/bin
      $ ./charbench                        (字符模式驱动程序)
      $ ./swingbench                       (Java GUI)      

      如果运行 GUI,请通过按窗口右上角的中间按钮
      两次,以调整该窗口的大小。  现在,您可以在屏幕底部看到每分钟
      的事务总数。

      该目录中有多个 swingconfig*.xml 文件,
      可以将这些文件复制到 swingconfig.xml 以测试不同的实例。

   b. 要查看连接分配,请在此处获取 count.sql 和 verify.sql
      并将其放在主目录中。

      $ cd
      $ sqlplus system/oracle@O10G-TAF     @count

   c. 验证您连接到哪个实例:

      $ cd
      $ sqlplus system/oracle@O10G-TAF     @verify1
      
      注意,“FAILED_OVER”列将在故障切换之后更改为 YES。

4. 要模拟 TAF 故障切换,您可以终止一个实例
   通过 O10G-TAF 生成的所有连接将重新建立,以恢复
   实例,任何其他会话(不使用 TAF)将使用 ORA-3113 终止。

   您将发现,在 10g 中,如果您终止 -9 dbwr 或 pmon,
   该实例将崩溃;但过后不久,CRS 将重新启动它!
   这是在 swingbench 运行期间很有用的特性。
   
   如果执行故障切换,则可能注意到 swingbench 窗口中的 ORA-25408 错误
   这是正常的,原因是 TAF 只适用于 SELECTS 而不适用于 DML。
   
   最初在笔记本电脑上运行 10 或 15 名用户。  如果有大量内存
   (1GB 或更多),则可以尝试更多用户。

可能的连接字符串(在 $ORACLE_HOME/network/admin/tnsnames.ora 中定义)

O10G1      连接到 O10G1 实例
O10G2      连接到 O10G2 实例
O10G-TAF   连接到启用了 TAF 的 O10G1 或 O10G2
O10G-NOTAF 连接到禁用了 TAF 的 O10G1 或 O10G2

-- 完成

第 7 阶段: 将 Oracle ASM 添加到现有数据库

此处下载该过程的支持文件。

通常在首次创建数据库的过程中安装/选择 Oracle 自动存储管理 (ASM),将它作为主
存储
选件。 这种情况下,将在该时刻创建 ASM 实例,并且
随后将由 ASM 管理所有的空间分配(包括 init.ora)
。 在本文的示例中,我们演示了一个更困难的情况,即将 ASM
功能实际添加到现有的非 ASM 数据库中。 学习该方法的过程中,您将轻松了解
上述的更常用的主流方法。  

首先,我们将准备将由 ASM 管理的空间。 为简单起见,我们将 4 个磁盘划分为
等大的分区来模拟 4 个磁盘。

1. 使用 fdisk 将 /dev/sde 划分为 4 个分区:
   以 root 的身份运行:
   
      # fdisk /dev/sde
 
     i. 命令: 键入“n”并按 ENTER。  
    ii.命令动作: 键入“p”并按 ENTER。
   iii. 分区号: 键入“1”并按 ENTER。
    iv. 起始柱面: 按 ENTER。
     v. 结束柱面: +2000M。
     
     重复以上步骤 3 次以上,每次分区号
     递增 1。
     
    vi. 要写分区表然后退出,请键入“write”
     
     在实际的 RAC 配置中,其他所有节点将必须重新读取
     分区表更改。 最简单的方法是重新启动这些节点;请询问
     OS/供应商是否有破坏程度低一些的方法,通常情况下
     rmmod <IO-driver> 后跟 insmod <IO-driver> 可以达到目的。
     卸载并重新加载 I/O 设备驱动程序。

2. 在 Linux 上,ASM 可以直接使用 ASMLib 管理原始设备或块设备
   。  选择以下某个方法:

   a. 无 ASMLib: 配置原始设备(这是由于不使用 ASMLib)

      i. 以 root 的身份运行 vi 或 nedit:
      
         REDHAT: /etc/sysconfig/rawdevicesdevices
         SUSE:   /etc/raw

         按如下所示添加每个原始设备的条目:
        
         Red Hat 语法:
/dev/raw/raw11  /dev/sde1
/dev/raw/raw12  /dev/sde2
/dev/raw/raw13   /dev/sde3
/dev/raw/raw14   /dev/sde4

         SUSE 语法:
         raw11:sde1
         raw12:sde2
         raw13:sde3
         raw14:sde4

     ii. 以 root 身份启动原始设备(确保它们在下次重新启动时启动)
         :

         RedHat:
         # /etc/init.d/rawdevices  restart
      
         原始设备设置为在 Red Hat 上启动时自动启动。
         验证: 
         
         # chkconfig --list rawdevices
 
         SUSE:
# /etc/init.d/raw  start
         # chkconfig -s raw 35            (重新启动时自动启动)
      
         如果 CRS 已经启动了两个原始设备,则“rawdevices restart”
         这两个原始设备将显示错误,但这属于正常现象。  这只意味着 CRS
         已经打开了这两个原始设备,因此无法更改它们。
      
    iii. 以 root 的身份修复所有节点的权限:
 
         # chown oracle:dba /dev/raw/raw1[1-4]
         
         特意使用了技巧性的命令,要学习一些 Linux 方面的知识...
         检查 raw11 到 raw14 的权限。

   b. ASMLib: 配置以使用 ASMLib 访问设备

      i. 从以下位置下载 ASMLib rpm 文件:

         http://www.oracle.com/technology/tech/linux/asmlib/index.html
 
         获取“用户空间库”、“驱动程序支持文件”、“内核的驱动程序”

     ii. 以 root 的身份安装 ASMLib:

         # rpm -Uhv oracleasmlib-1.0.0-1.i386.rpm / 
                    oracleasm-2.4.21-EL-1.0.3-1.i686.rpm /
oracleasm-support-1.0.3-1.i386.rpm

         使用适合您的内核和版本的 rpms。  以上
         是双处理器 RHEL3 内核上的 Red Hat 的名称。

    iii. 以 root 的身份配置 ASM 一次:

# /etc/init.d/oracleasm configure
         
         回答提示,答案为 oracle、dba、y、y

     iv. 定义在第 1 步中创建的 4 个磁盘,以 root 的身份运行:

# /etc/init.d/oracleasm createdisk DISK1 /dev/sde1
# /etc/init.d/oracleasm createdisk DISK2 /dev/sde2
# /etc/init.d/oracleasm createdisk DISK3 /dev/sde3
# /etc/init.d/oracleasm createdisk DISK4 /dev/sde4

    
3. 运行“dbca”以创建 ASM 实例。 通常情况下,该步骤将在
   创建主数据库期间完成,方法是选择 ASM 作为主要
   存储选项:

     如果使用 RHEL-U1:  再次检查您是否拥有 LD_ASSUME_KERNEL=2.4.19 
     RHAS2.1,RHEL3-U2 与 SLES8/9 不需要此环境设置。
     
     $ env | grep LD_ASSUME
     
   i. 选择 RAC、Create Database、on raclinux1、Next、任何假数据库名,
      单击“next”直到转到第 7 步(共 16 步)。
  ii. 选择 Automatic Storage Management (ASM)、Next、oracle 作为
      密码、Next、OK
 iii. 让 DBCA 创建 ASM 实例
  iv. 按“Create New”,输入磁盘组名称: MY_DG
      
      如果使用 ASMLib: 将 Disk Discovery Path(右下方)更改为 ORCL:*

   v. 无 ASMLib: 选择要添加的设备 /dev/raw/raw11 与 12
      ASMLib: 选择要添加到使用正常冗余的 MY_DG 的 DISK1 和 DISK2

      。
      
单击“OK”。  (创建 ASM 磁盘组......)

  vi. 退出 DBCA!  确认取消。

4. 注意,ASM 实例已经关闭,要启动实例,请输入以下命令:

   $ srvctl start  asm -n raclinux1
$ srvctl status asm -n raclinux1

5. (可选)为了完全模拟 RAC,可以该节点上再创建并启动
    ASM 实例。 通常,第二个 ASM 实例
   将和第二个实例 O10G2 在在第二个节点运行。 
   要创建第二个 ASM 实例(不支持在一个节点上运行),请执行以下操作:

   a. 编辑 /opt/oracle/DB10g/dbs/init+ASM1.ora 并添加以下两行:

      +ASM2.instance_number=2
      +ASM2.local_listener=LISTENER_+ASM2

   b. 为第二个 ASM 实例创建到该文件的符号链接:

      $ ln -s init+ASM1.ora init+ASM2.ora
  
   c. 为第二个 ASM 实例创建口令文件:

      $ orapwd file=orapw+ASM2 password=oracle 

   d. 修复 /opt/oracle/DB10g/network/admin/tnsnames.ora:

      i. 在 LISTENER_+ASM1 中只包含一个监听器(端口 1521)
     ii. 创建一个新的 LISTENER_+ASM2,包含第二个监听器 (1522)

   e. 将第二个 ASM 实例添加到 CRS 并启动实例:

      $ srvctl add   asm -n raclinux1 -i +ASM2 -o /opt/oracle/DB10g/
      $ srvctl start asm -n raclinux1 -i +ASM2   


6. 由于我们并未创建一个位于 ASM 以外的新数据库,因此我们
   必须执行以下配置步骤:

   a. 将现有实例修改为依赖于新创建的 ASM 实例,
      这样一来,如果 ASM 实例已关闭
      而我们要尝试启动依赖于它的实例,CRS
      将在尝试启动实例时自动启动 ASM
:

$ srvctl modify instance -d O10G -i O10G1 -s +ASM1
$ srvctl modify instance -d O10G -i O10G2 -s +ASM2

注意: 如果只创建了一个 ASM 实例,请将两个数据库实例
            同时设置为依赖于 +ASM1。

   b. 由于出现错误,EM 将不会发现新的 ASM 目标。
      以下演示了如何将它手动添加到 targets.xml(摘自版本说明):

$ emctl stop dbconsole
      $ cd $ORACLE_HOME/raclinux1.us.oracle.com_O10G1/sysman/emd/
      <下载 asm xml 定义(位于支持文件中)并将其解压缩到此目录>
      $ cp -p targets.xml targets.xml_before_ASM
      $ emctl config agent addtarget `pwd`/targets-add-asm.xml                          
$ emctl start dbconsole

   c.(可选)通过访问以下网站进行测试:  http://raclinux1.us.oracle.com:5500/em

      登录: sys/oracle as sysdba

      单击主页面(左侧)中的“crs”目标(集群)链接,
      然后点击顶部栏上的“Targets”,其中列出了所有目标,单击 ASM
      目标。
      
      将数据文件添加到 ASM(下面)后,ASM 链接也将显示:
      
      单击任何实例 O10G1 或 O10G2(主页底部)
      ASM 链接将位于左侧。


7. 使数据库可以侦测到 ASM 存储器上的可用磁盘组
:

   $ ORACLE_SID=O10G1 sqlplus "/ as sysdba"

   SQL> ALTER SYSTEM SET DB_CREATE_FILE_DEST='+MY_DG' scope=both;

   如果不使用 spfile 文件,只需删除范围,然后将该参数
   添加到 initO10G1.ora 文件(initO10G2.ora 应使用符号链接链接它)。

   使更改在第二个节点上生效,重新连接并输入“ALTER
   SYSTEM SET”命令或在更新 init.ora 后回弹 O10G2。

8. (可选)要使用 ASM 管理的存储器内部的空间:

   只需输入(注意,未指定数据文件):
   
   SQL> CREATE TABLESPACE ASM_TBS datafile size 10M;
   
9. (可选,推荐)在命令行模式下进行 ASM 再平衡演示,
   (使用企业管理器的输出将更好),
    不使用 ASMLib 情况下的输出:

   i. 从 swingbench 中使用 oewizard,使用新添加的 ASM 存储器创建一个新模式
      :
   
      $ swingbench21g/bin/oewizard
   
      将用户名、密码和表空间设置为“SOE_ASM”
      数据文件名称为“+MY_DG”,它将使用 ASM 进行存储。

   ii. 启动 Swingbench 并在 SOE_ASM 模式上运行 10 个用户。
       这将加载/更新 MY_DG 磁盘组(SOE_ASM 表空间)中的数据
       在此过程中监视 Swingbench 的事务/分钟。

  iii. 监视 ASM 实例并操作磁盘组:

       $ ORACLE_SID=+ASM1 sqlplus "/ as sysdba"

       初始条件:

       SQL> select state,header_status,substr(name,1,12) Name,free_mb,
                   substr(path,1,16) PATH from v$asm_disk;

       STATE    HEADER_STATU NAME            FREE_MB PATH
       -------- ------------ ------------ ---------- ----------------
       NORMAL   CANDIDATE                          0 /dev/raw/raw14
       NORMAL   CANDIDATE                          0 /dev/raw/raw13
       NORMAL   MEMBER       MY_DG_0001         1812 /dev/raw/raw12
       NORMAL   MEMBER       MY_DG_0000         1812 /dev/raw/raw11

       SQL> select * from v$asm_operation;   (no rows)


   iv. 将两个新磁盘添加到现有磁盘组中:

       没有 ASMLib:
       SQL> alter diskgroup MY_DG add disk '/dev/raw/raw13'
       SQL> alter diskgroup MY_DG add disk '/dev/raw/raw14'

       ASMLib:
       SQL> alter diskgroup MY_DG add disk 'ORCL:DISK3'
       SQL> alter diskgroup MY_DG add disk 'ORCL:DISK4'


       SQL> select state,header_status,substr(name,1,12) Name,free_mb,
                   substr(path,1,16) PATH from v$asm_disk;
 
       STATE    HEADER_STATU NAME            FREE_MB PATH
       -------- ------------ ------------ ---------- ----------------
       NORMAL   MEMBER       MY_DG_0003         2445 /dev/raw/raw14
       NORMAL   MEMBER       MY_DG_0002         1911 /dev/raw/raw13
       NORMAL   MEMBER       MY_DG_0001         1812 /dev/raw/raw12
       NORMAL   MEMBER       MY_DG_0000         1812 /dev/raw/raw11

       SQL> select operation,state,power,actual,sofar,est_work,
                   est_minutes from v$asm_operation; 

       OPERA STAT      POWER     ACTUAL      SOFAR   EST_WORK EST_MINUTES
       ----- ---- ---------- ---------- ---------- ---------- -----------
       REBAL RUN           1          1          3         62           1

        ASM 在添加新磁盘时重新平衡磁盘组。
    
     v. 现在丢弃保存所有用户数据的初始磁盘;观察
        ASM 将所有数据传输到新磁盘,从而使您可以
        移除不需要的磁盘。 撤消操作立即完成,
        传输数据操作在后台发生。

        没有 ASMLib:
        SQL> alter diskgroup MY_DG drop disk my_dg_0000;
        SQL> alter diskgroup MY_DG drop disk my_dg_0001;

        ASMLib:
        SQL> alter diskgroup MY_DG drop disk DISK1;
        SQL> alter diskgroup MY_DG drop disk DISK2;


        SQL> select state,header_status,substr(name,1,12) Name,free_mb,
                    substr(path,1,16) PATH from v$asm_disk;

        STATE    HEADER_STATU NAME            FREE_MB PATH
        -------- ------------ ------------ ---------- ----------------
        NORMAL   MEMBER       MY_DG_0003         2335 /dev/raw/raw14
        NORMAL   MEMBER       MY_DG_0002         1827 /dev/raw/raw13
        DROPPING MEMBER       MY_DG_0001         1860 /dev/raw/raw12
        DROPPING MEMBER       MY_DG_0000         1867 /dev/raw/raw11

        注意,raw11 和 raw12 标记为 DROPPING..
        
        
        SQL> select operation,state,power,actual,sofar,est_work,
                    est_minutes from v$asm_operation; 
        OPERA STAT      POWER     ACTUAL      SOFAR   EST_WORK EST_MINUTES
        ----- ---- ---------- ---------- ---------- ---------- -----------
        REBAL RUN           1          1          7        233           0


        以上是重新平衡操作,用于卸载已丢弃的磁盘中的数据
        。
		
        操作完成时,磁盘标记为 FORMER
        成员,这意味着可以移除它们或重新用于空间。

        SQL> select state,header_status,substr(name,1,12) Name,free_mb,
                    substr(path,1,16) PATH from v$asm_disk;

        STATE    HEADER_STATU NAME            FREE_MB PATH
        -------- ------------ ------------ ---------- ----------------
        NORMAL   FORMER                             0 /dev/raw/raw11
        NORMAL   FORMER                             0 /dev/raw/raw12
        NORMAL   MEMBER       MY_DG_0003         2303 /dev/raw/raw14
        NORMAL   MEMBER       MY_DG_0002         1769 /dev/raw/raw13

        在本演示中,性能根本不受影响;
        每分钟的事务数应保持不变。

-- 完成
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值