如何迁移Oracle 10g RAC ASM存储
展开全部
ORACLE RAC系统是指ORACLE公司针对ORACLE Database推出的一个群集系统,RAC为real application cluster的简写,意味真正的应用程序群集系统。RAC能够独立进行群集方式工作,同时也支持嵌入第三方群集系统中,比如SUN CLUSTER 3.2等所谓的vender群集系统中。
结合ORACLE的ASM(自动存储管理)、Oracle Clusterware等,建议数据库在系统独立运行,无需运行第三方的群集系统,卷管理系统等。
1.2 安装前的准备工作
俗话说,磨刀不误砍柴工,在安装RAC之前,仔细阅读官方的安装手册是最佳途径,因为网上的很多文章写的时候,都是按照作者所拥有的环境进行安装的,实际中会有很多的变数导致安装出现很多情况,因此,网上文章作为每个安装工程师来说,只有参考价值。
1.2.1 硬件方面的准备工作
在硬件方面,首先确认服务器的类型,操作系统的类型,存储器是否正确连接到两台或者多台服务器上,主机系统能否正确访问存储,是否所有主机系统共享了改存储器。
主机系统方面,是否有足够的网卡,RAC需要至少一个public和一个private的网卡,分别用于数据库instance的访问和心跳网卡(此心跳也用来传输一些数据库的数据)。
1.2.2 软件方面的准工作
在软件方便,一是根据主机类型,选择相应的数据库软件,包括database和clusterware软件,需要注意的是,最好能选择比较新的版本的软件,因为ORACLE RAC方面,针对很多平台,最初版本软件或多或少都会存在一些bug,选择正确的版本后,安装能够尽量减少麻烦。
操作系统方面,也应该根据数据库软件做最优的安装,比如solaris 10,最好能够使用update 10的版本,EIS光盘最好能够使用最近的光盘来安装最新的10的推荐补丁包。补丁一定要打最新的,这个可以大大减小bug的产生。
2. 安装准备工作
本示例安装主要基于ORACLE SPARC服务器的两个节点安装RAC,由于使用的是T5120用LDM创建的两个虚拟主机,所以相关网卡名字等都是按虚拟机里面的命名方式进行的。
安装完操作系统后,必须打上操作系统的推荐补丁包,用最近的EIS光盘来,如果没有EIS光盘,可以到oracle网站下载最近的推荐补丁包,比如solaris10的最新补丁下载地址如下:这个可能需要OPN的账号
https://updates.oracle.com/download/12714436.html
2.1 网络配置文件的修改
/etc/hosts该文件记录了将来使用的IP地址,包括public和private的地址:
192.168.0.12 orac1 (主机1的本地地址)
192.168.0.13 orac2 (主机2的本地地址)
192.168.0.14 orac1-vip (主机1的public地址)
192.168.0.16 orac2-vip (主机2的public地址)
192.168.0.15 orac1-priv(主机1的private地址)
192.168.0.17 orac2-priv(主机2的private地址)
私有地址可以设置成另外一个网段的地址,本示例都为一个网段地址。
另外一台主机的/etc/hosts文件里面需要这些地址,都写上。
/etc/下主机网卡配置文件,public地址将来可以用在本地地址的那张网卡上,系统能够plumb一个虚拟网卡,比如vnet0:1,私有地址必须单独指定,比如/etc/hostname.vnet1,里面写入orac1-priv即可在系统reboot时候自动将私有地址网卡plumb起来。
建立好所有配置文件,需要确认以下地址是能够ping通的:
ping orac1 ping orac2 ping orac1-priv ping orac2-priv
2.2 创建相应的ORACLE用户和用户组
根据oracle数据库安装的需要创建相应的unix组和用户oracle:
groupadd dba 创建dba组
groupadd oinstall 创建oinstall组
useradd -g oinstall -G dba -d /opt/oracle -m -s /bin/sh oracle 创建oracle用户
passwd oracle 修改oracle用户的密码
创建这些用户和用户组,对来说非常重要,千万不要小看这些,首先必须保证以上的gid和uid在所有节点上保持一致,在安装Clusterware,如果没有正确设置一些目录和设备的权限,可能会导致这些软件不能正确安装或者安装后无法正常使用。
oracle用户的.profile文件,需要做如下的定义,具体可以根据文档对照主机系统配置来进行修改和优化:
ORACLE_BASE=/opt/oracle/app/oracle
export ORACLE_BASE
ORACLE_HOME=/opt/oracle/app/oracle/10g
export ORACLE_HOME
ORACLE_SID=inst-ora1
export ORACLE_SID
PATH=${PATH}:$ORACLE_HOME/bin
export PATH
其他诸如 LD_LIBRARY等参数都可以在.profile文件里面定义,SID每个节点都需要定义成1,2,3,4等,前缀为整个群集database定义的实例名,比如inst-ora,各个节点的SID就是inst-ora1,insta_ora2等等。
建立信任关系:
如果是10g,只需要建立rsh的信任关系,如果是11G的话,必选建立ssh的主机信任关系:
1. rsh信任关系
在所有节点执行以下命令:
su - oracle
touch .rhosts
echo + > .rhosts
2. ssh信任关系
用命令来创建这些信任关系非常方便,如果使用11g的runInstaller程序的话,可以使用该程序提供的设置程序来建立信任关系,以下为命令方式建立:
su – oracle
mkdir .ssh(如果没有.ssh就创建之); chmod 755 .ssh
/usr/bin/ssh-keygen -t rsa
/usr/bin/ssh-keygen -t dsa
以上根据提示输入恰当的内容即可,以上两个命令分别在.ssh目录下生成id_rds.pub和id_dsa.pub两个文件,将这两个文件的内容全部拷贝到authorized_keys文件里面去,chmod 644 .ssh/authorized_keys文件。该文件里面应该包含所有节点的id_rds.pub和id_dsa.pub文件的内容。
2.3 修改系统参数
操作系统kernel参数需要根据具体机器配置进行适当修改,以下为典型的系统参数,可以将这些写入/etc/system文件中,修改这个文件后,需要reboot系统才能生效:
set noexec_user_stack=1
set semsys:seminfo_semmni=100
set semsys:seminfo_semmns=1024
set semsys:seminfo_semmsl=256
set semsys:seminfo_semvmx=32767
set shmsys:shminfo_shmmax=4294967295
set shmsys:shminfo_shmmin=1
set shmsys:shminfo_shmmni=100
set shmsys:shminfo_shmseg=10
在Solaris 10下,如果使用project来管理,可以动态修改这些kernel参数,这对以后生产系统在线提供了非常好的便利。
2.4 创建CRS的home目录
CRS的home最好不要和ORACLE的home放在一起,因为CRS目录最终将成为root用户的权限。
mkdir -p /opt/crs/oracle/product/10/app
chown -R root:oinstall /opt/crs
chmod -R 775 /opt/crs/oracle
注意此处crs目录的宿主被设置成root:oinstall,如果设置成其他的话,安装以后运行root.sh脚本将会有大量的警告,同时,crs无法正常运行的可能性将非常大。
2.5 存储设备的设置
存储设备主要提供给Clusterware软件存放OCR和voting disk之用,并为数据库提供存放数据等文件的,决定存储如何使用非常重要,这主要影响以后数据库的架构,存储可以支持ASM方式、cluster file system方式以及raw设备方式。以下的matrix为各个存储方式对CRS等的支持:
File Types Supported
Storage Option CRS Database Recovery
Automatic Storage Management No Yes Yes
Cluster file system Yes Yes Yes
NFS file system
PRIMECLUSTER and a certified Yes Yes Yes
NAS device (SPARConly)
Shared raw logical volumes (SPARC only) Yes Yes No
Shared raw partitions Yes Yes No
建议使用ASM自动存储管理方式来进行存储的管理,对于Cluster file system来说,大多数需要成本来购买相应的软件,但也可以采用SUN公司的QFS软件(该软件应该是免费的)。采用raw裸设备的话,对用户来说,要求相对要高些,因为raw安装数据库的时候,需要为每个dbf等文件分配一个raw设备,以后需要添加新的dbf等文件话,其操作步骤还是比较繁琐的。
使用ASM一定要注意每个LUN的划分,千万不要使用EFI格式做磁盘的label,在多次实践中发现,在使用EFI的label格式的存储时候,将出现一个比较奇怪的现象,建好cluster后能够顺利创建数据库,但是instance只能在一个节点启动,另外一个节点无法启动,查看alertlog文件,报告出现一个ora-600的错,以及queue file IO error等错误。在solaris下,将LUN划分为2T以下,采用VTOC方式的label即可,官方文档建议创建大空间的LUN来减少系统对存储的管理,但实践证明,如果存储空间大,可以建立多个小于2T的LUN,然后创建一个或多个ASM组来管理这些LUN是比较理想的。
根据RAC对存储空间的要求来划分对应的LUN或者slice,存放OCR的LUN 和voting disk都可以小些,建议使用1G的空间,存放数据库的数据文件等存储的LUN划分得大些。
如果这些LUN曾经被用过,特别是曾经在RAC中被使用过的话,那么就需要将磁盘里面的内容清除,方法就是使用dd命令将磁盘内容清除,例如:
dd if=/dev/zero of=/dev/rdsk/c2t0d0s0 bs=1024k count=1000
本示例中,c0d1s0 作为OCR存放设备,c0d1s0作为voting disk,安装中安装程序会提示使用哪种冗余方式,一般采用Normal方式,也就是OCR设备需要两个设备来做mirror,voting disk需要三块设备做冗余。如果这些设备在存储器上已经做了raid 5等冗余保护,那么这些冗余方式可以采用External方式,即只要单个设备即可。
设备权限必须设置正确,否则安装程序会报错,具体权限设置如下:
chown -R root:oinstall /dev/rdsk/c0d1s0 OCR盘宿主为root,用户为oinstall
chmod 640 /dev/rdsk/c0d1s0
chown -R root:oinstall /dev/rdsk/c0d1s3 voting disk设置如同CRS盘
chmod -R 660 /dev/rdsk/c0d1s3 voting disk文件为660的读写属性
存放ORACLE数据库dbf等文件的raw设备权限设置为oracle:dba即可,写权限设置为775。
结合ORACLE的ASM(自动存储管理)、Oracle Clusterware等,建议数据库在系统独立运行,无需运行第三方的群集系统,卷管理系统等。
1.2 安装前的准备工作
俗话说,磨刀不误砍柴工,在安装RAC之前,仔细阅读官方的安装手册是最佳途径,因为网上的很多文章写的时候,都是按照作者所拥有的环境进行安装的,实际中会有很多的变数导致安装出现很多情况,因此,网上文章作为每个安装工程师来说,只有参考价值。
1.2.1 硬件方面的准备工作
在硬件方面,首先确认服务器的类型,操作系统的类型,存储器是否正确连接到两台或者多台服务器上,主机系统能否正确访问存储,是否所有主机系统共享了改存储器。
主机系统方面,是否有足够的网卡,RAC需要至少一个public和一个private的网卡,分别用于数据库instance的访问和心跳网卡(此心跳也用来传输一些数据库的数据)。
1.2.2 软件方面的准工作
在软件方便,一是根据主机类型,选择相应的数据库软件,包括database和clusterware软件,需要注意的是,最好能选择比较新的版本的软件,因为ORACLE RAC方面,针对很多平台,最初版本软件或多或少都会存在一些bug,选择正确的版本后,安装能够尽量减少麻烦。
操作系统方面,也应该根据数据库软件做最优的安装,比如solaris 10,最好能够使用update 10的版本,EIS光盘最好能够使用最近的光盘来安装最新的10的推荐补丁包。补丁一定要打最新的,这个可以大大减小bug的产生。
2. 安装准备工作
本示例安装主要基于ORACLE SPARC服务器的两个节点安装RAC,由于使用的是T5120用LDM创建的两个虚拟主机,所以相关网卡名字等都是按虚拟机里面的命名方式进行的。
安装完操作系统后,必须打上操作系统的推荐补丁包,用最近的EIS光盘来,如果没有EIS光盘,可以到oracle网站下载最近的推荐补丁包,比如solaris10的最新补丁下载地址如下:这个可能需要OPN的账号
https://updates.oracle.com/download/12714436.html
2.1 网络配置文件的修改
/etc/hosts该文件记录了将来使用的IP地址,包括public和private的地址:
192.168.0.12 orac1 (主机1的本地地址)
192.168.0.13 orac2 (主机2的本地地址)
192.168.0.14 orac1-vip (主机1的public地址)
192.168.0.16 orac2-vip (主机2的public地址)
192.168.0.15 orac1-priv(主机1的private地址)
192.168.0.17 orac2-priv(主机2的private地址)
私有地址可以设置成另外一个网段的地址,本示例都为一个网段地址。
另外一台主机的/etc/hosts文件里面需要这些地址,都写上。
/etc/下主机网卡配置文件,public地址将来可以用在本地地址的那张网卡上,系统能够plumb一个虚拟网卡,比如vnet0:1,私有地址必须单独指定,比如/etc/hostname.vnet1,里面写入orac1-priv即可在系统reboot时候自动将私有地址网卡plumb起来。
建立好所有配置文件,需要确认以下地址是能够ping通的:
ping orac1 ping orac2 ping orac1-priv ping orac2-priv
2.2 创建相应的ORACLE用户和用户组
根据oracle数据库安装的需要创建相应的unix组和用户oracle:
groupadd dba 创建dba组
groupadd oinstall 创建oinstall组
useradd -g oinstall -G dba -d /opt/oracle -m -s /bin/sh oracle 创建oracle用户
passwd oracle 修改oracle用户的密码
创建这些用户和用户组,对来说非常重要,千万不要小看这些,首先必须保证以上的gid和uid在所有节点上保持一致,在安装Clusterware,如果没有正确设置一些目录和设备的权限,可能会导致这些软件不能正确安装或者安装后无法正常使用。
oracle用户的.profile文件,需要做如下的定义,具体可以根据文档对照主机系统配置来进行修改和优化:
ORACLE_BASE=/opt/oracle/app/oracle
export ORACLE_BASE
ORACLE_HOME=/opt/oracle/app/oracle/10g
export ORACLE_HOME
ORACLE_SID=inst-ora1
export ORACLE_SID
PATH=${PATH}:$ORACLE_HOME/bin
export PATH
其他诸如 LD_LIBRARY等参数都可以在.profile文件里面定义,SID每个节点都需要定义成1,2,3,4等,前缀为整个群集database定义的实例名,比如inst-ora,各个节点的SID就是inst-ora1,insta_ora2等等。
建立信任关系:
如果是10g,只需要建立rsh的信任关系,如果是11G的话,必选建立ssh的主机信任关系:
1. rsh信任关系
在所有节点执行以下命令:
su - oracle
touch .rhosts
echo + > .rhosts
2. ssh信任关系
用命令来创建这些信任关系非常方便,如果使用11g的runInstaller程序的话,可以使用该程序提供的设置程序来建立信任关系,以下为命令方式建立:
su – oracle
mkdir .ssh(如果没有.ssh就创建之); chmod 755 .ssh
/usr/bin/ssh-keygen -t rsa
/usr/bin/ssh-keygen -t dsa
以上根据提示输入恰当的内容即可,以上两个命令分别在.ssh目录下生成id_rds.pub和id_dsa.pub两个文件,将这两个文件的内容全部拷贝到authorized_keys文件里面去,chmod 644 .ssh/authorized_keys文件。该文件里面应该包含所有节点的id_rds.pub和id_dsa.pub文件的内容。
2.3 修改系统参数
操作系统kernel参数需要根据具体机器配置进行适当修改,以下为典型的系统参数,可以将这些写入/etc/system文件中,修改这个文件后,需要reboot系统才能生效:
set noexec_user_stack=1
set semsys:seminfo_semmni=100
set semsys:seminfo_semmns=1024
set semsys:seminfo_semmsl=256
set semsys:seminfo_semvmx=32767
set shmsys:shminfo_shmmax=4294967295
set shmsys:shminfo_shmmin=1
set shmsys:shminfo_shmmni=100
set shmsys:shminfo_shmseg=10
在Solaris 10下,如果使用project来管理,可以动态修改这些kernel参数,这对以后生产系统在线提供了非常好的便利。
2.4 创建CRS的home目录
CRS的home最好不要和ORACLE的home放在一起,因为CRS目录最终将成为root用户的权限。
mkdir -p /opt/crs/oracle/product/10/app
chown -R root:oinstall /opt/crs
chmod -R 775 /opt/crs/oracle
注意此处crs目录的宿主被设置成root:oinstall,如果设置成其他的话,安装以后运行root.sh脚本将会有大量的警告,同时,crs无法正常运行的可能性将非常大。
2.5 存储设备的设置
存储设备主要提供给Clusterware软件存放OCR和voting disk之用,并为数据库提供存放数据等文件的,决定存储如何使用非常重要,这主要影响以后数据库的架构,存储可以支持ASM方式、cluster file system方式以及raw设备方式。以下的matrix为各个存储方式对CRS等的支持:
File Types Supported
Storage Option CRS Database Recovery
Automatic Storage Management No Yes Yes
Cluster file system Yes Yes Yes
NFS file system
PRIMECLUSTER and a certified Yes Yes Yes
NAS device (SPARConly)
Shared raw logical volumes (SPARC only) Yes Yes No
Shared raw partitions Yes Yes No
建议使用ASM自动存储管理方式来进行存储的管理,对于Cluster file system来说,大多数需要成本来购买相应的软件,但也可以采用SUN公司的QFS软件(该软件应该是免费的)。采用raw裸设备的话,对用户来说,要求相对要高些,因为raw安装数据库的时候,需要为每个dbf等文件分配一个raw设备,以后需要添加新的dbf等文件话,其操作步骤还是比较繁琐的。
使用ASM一定要注意每个LUN的划分,千万不要使用EFI格式做磁盘的label,在多次实践中发现,在使用EFI的label格式的存储时候,将出现一个比较奇怪的现象,建好cluster后能够顺利创建数据库,但是instance只能在一个节点启动,另外一个节点无法启动,查看alertlog文件,报告出现一个ora-600的错,以及queue file IO error等错误。在solaris下,将LUN划分为2T以下,采用VTOC方式的label即可,官方文档建议创建大空间的LUN来减少系统对存储的管理,但实践证明,如果存储空间大,可以建立多个小于2T的LUN,然后创建一个或多个ASM组来管理这些LUN是比较理想的。
根据RAC对存储空间的要求来划分对应的LUN或者slice,存放OCR的LUN 和voting disk都可以小些,建议使用1G的空间,存放数据库的数据文件等存储的LUN划分得大些。
如果这些LUN曾经被用过,特别是曾经在RAC中被使用过的话,那么就需要将磁盘里面的内容清除,方法就是使用dd命令将磁盘内容清除,例如:
dd if=/dev/zero of=/dev/rdsk/c2t0d0s0 bs=1024k count=1000
本示例中,c0d1s0 作为OCR存放设备,c0d1s0作为voting disk,安装中安装程序会提示使用哪种冗余方式,一般采用Normal方式,也就是OCR设备需要两个设备来做mirror,voting disk需要三块设备做冗余。如果这些设备在存储器上已经做了raid 5等冗余保护,那么这些冗余方式可以采用External方式,即只要单个设备即可。
设备权限必须设置正确,否则安装程序会报错,具体权限设置如下:
chown -R root:oinstall /dev/rdsk/c0d1s0 OCR盘宿主为root,用户为oinstall
chmod 640 /dev/rdsk/c0d1s0
chown -R root:oinstall /dev/rdsk/c0d1s3 voting disk设置如同CRS盘
chmod -R 660 /dev/rdsk/c0d1s3 voting disk文件为660的读写属性
存放ORACLE数据库dbf等文件的raw设备权限设置为oracle:dba即可,写权限设置为775。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询