数据库整理方案
万佳系统数据库迁移方案
1 事前事项
(1) 实施日期:高温假期间,7月29日到7月31日。 (2) 预计用时:3个工作日 (3) 参与人员:
(4) 影响范围:
1、万佳系统 2、库场系统
2 事前准备
1、安装两台 IBM 750服务器操作系统:CentOS 5.6 X86_64bit。2、共享磁盘准备: 2个RAW OCR磁盘:每个1G 3个RAW VOTING磁盘:每个1G 1个ASM DATA+ 磁盘:150G 1个ASM RECOVERY磁盘:150G 3、安装介质:
(1)oracle 10gr2 clusterware (2)database
(3)10.2.0.4升级包 迁移流程:
1、 安装系统及支持程序包。 2、 设置两个节点的HOSTS。 3、 设置时间同步。 4、 测试时间同步。
5、 新增ORACLE用户、用户组。 6、 设置ORACLE用户环境变量。 7、 设置用户等价。 8、 测试用户等价。 9、 磁盘分区。 10、 创建RAW设备(5个)。 11、 检查RAW设备创建是否成功。 12、 创建ASM磁盘(2个)。
信息系统课 王川
2012-7-27
第1页 共12页
数据库整理方案
13、 14、 15、 16、 17、 18、 19、 20、 21、 22、 23、 24、
检查ASM磁盘权限是否属于用户ORACLE,权限是否属于用户组DBA。 在1号节点上安装clusterware。
测试双节点clusterware 进程及状态是否正常。 在1号节点上安装ASM。
在1号节点上安装DADABASE SOFT。 在2号节点上VIPCA创建VIP。 检查双节点的VIP是否正常。
在1号节点上DBCA创建数据库,期间分配ASM磁盘。 10.2.0.2升级到10.2.0.4。 检测EM是否正常。
在EM上新建用户表空间:CASKWMES。 新增数据库用户:CASKWMES,
权限:\"DBA\表空间:用户表空间CASKWMES,临时表空间:TEMP create tablespace caskwmes datafile ‘+WORKAREA’ size 30g; alter tablespace caskwmes add datafile ‘+WORKAREA’ size 30g; alter tablespace caskwmes add datafile ‘+WORKAREA’ size 30g; 查询目前万佳系统数据库的信息:
(1) 无效对象:SELECT * FROM DBA_OBJECTS WHERE STATUS='INVALID'
(2) 相关用户对象总数:SELECT * FROM DBA_OBJECTS WHERE OWNER IN ('CASKWMES') AND
OBJECT_NAME NOT LIKE 'BIN$%' ORDER BY OWNER,OBJECT_TYPE,OBJECT_NAME
(3) 序列的前后对比:select * from dba_sequences where sequence_owner in ('CASKWMES') (4) 表空间表数量和行数:SELECT TABLE_NAME,TABLESPACE_NAME,NUM_ROWS FROM
USER_TABLES WHERE TABLESPACE_NAME='CASKWMES'
停止万佳系统应用及服务。
使用EXP/EXPDP命令将目前万佳数据库导出并SCP方式传到需要迁移的服务器上,具体的命令
25、
26、
27、
如下
(1) exp CASKWMES/[密码] indexes=y rows=y file= /wmesbak/caskwmes_exp_201201xx.dmp
log= /wmesbak/caskwmes_exp_201207xx.log
(2) 第(1)种导出有问题时,采用该方法导出的文件进行导入:
create directory dump_test as '/wmesbak/expdp/'; grant read, write on directory dump_test to caskwmes;
expdp caskwmes / caskwmes directory=dump_test dumpfile= expdp_201207xx.dmp 监控:
select * from DBA_DATAPUBMP_JOBS;
select sid,serial# from v$session s,dba_datapump_sessions d where s.saddr=d.saddr;
(3)SCP –P 22 –r oracle@192.168.1.167:/wmesbak/ caskwmes_exp_201201xx.dmp /u01/wmesbak/
28、 将导出的数据文件导入到需要迁移的数据库中。
imp CASKWMES/[密码] file= caskwmes_exp_201201xx.dmp indexes=y log= caskwmes_imp_201207xx.log
29、 查询第25步导出的数据信息,迁移服务器进行对比。 30、 更改万佳正式库服务器的连接进程,重启进程,重启4.100的打印服务,数据同步服务,安灯
服务。
第2页 共12页
数据库整理方案
31、
通知赵梦男对万佳状态进行验证。
3 实施步骤
3.1 安装RAC
1、 根据生产系统情况修改hosts文件
# vi /etc/hosts
2、 创建组oinstall,dba,用户oracle
# groupadd oinstall # groupadd dba
# useradd -g oinstall -G dba oracle # passwd oracle
3、 创建安装目录并修改权限,修改oracle用户的初始化参数文件
# mkdir /opt/ora10g --此处路径仅为举例 # chown oracle.oinstall /opt/ora10g # su - oracle
$ vi /home/oracle/.bash_profile 增加如下内容: export TMP=/tmp export TMPDIR=$TMP
export ORACLE_BASE=/opt/ora10g
export ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1 export ORACLE_SID=caskdb1 --二号机为caskdb2 export ORACLE_TERM=xterm export PATH=/usr/sbin:$PATH
export PATH=$ORACLE_HOME/bin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/bin:/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin/ export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib ulimit -u 16384 -n 65536 umask 022 4、 安装需要的包
在Linux桌面的Application菜单下启动Package Manger,添加CentOS-5.6-x86_64安装路径介质为repository,然后安装一下所有的包及其依赖的包: binutils-2.17.50.0.6-2 (x86_64) compat-db-4.2.52-5.1 (x86_64)
compat-libstdc++-296-2.96-138 (i386) compat-libstdc++-33-3.2.3-61(x86_64) compat-libstdc++-33-3.2.3-61 (i386)
第3页 共12页
数据库整理方案
control-center-2.16.0-14 (x86_64) gcc-4.1.1-52 (x86_64) gcc-c++-4.1.1-52 (x86_64) glibc-2.5-12 (x86_64) glibc-2.5-12 (i686)
glibc-common-2.5-12 (x86_64) glibc-devel-2.5-12 (x86_64) glibc-devel-2.5-12 (i386)
glibc-headers-2.5-12 (x86_64) ksh-20060214-1.4 (x86_64) libaio-0.3.106-3.2 (x86_64) libgcc-4.1.1-52 (i386) libgcc-4.1.1-52 (x86_64) libgnome-2.16.0-6 (x86_64) libgnomeui-2.16.0-5 (x86_64) libgomp-4.1.1-52 (x86_64) libstdc++-4.1.1-52 (x86_64)
libstdc++-devel-4.1.1-52 (x86_64) libXp-1.0.0-8 (i386) libXtst-1.0.1-3.1(i386) make-3.81-1.1 (x86_64) sysstat-7.0.0-3 (x86_64)
util-linux-2.13 -0.44 (x86_64) 5、 配置内核参数
# vi /etc/sysctl.conf 增加或修改下列内容 kernel.shmall = 2097152
kernel.shmmax = 68719476736 --内存128G服务器的配置kernel.shmmni = 4096
kernel.sem = 250 32000 100 128 fs.file-max = 65536
net.ipv4.ip_local_port_range = 9000 65000 net.core.rmem_default = 262144 net.core.rmem_max = 2097152
第4页 共12页
数据库整理方案
net.core.wmem_default = 262144 net.core.wmem_max = 1048576 # sysctl -p
设置oracle使用的文件数权限 # vi /etc/security/limits.conf 增加下列内容
oracle soft nproc 2047 oracle hard nproc 16384 oracle soft nofile 1024 oracle hard nofile 65536 修改安全限制 # vi /etc/pam.d/login 增加:
session required /lib/security/pam_limits.so 配置Hangcheck计时器 # vi /etc/rc.local 增加:
modprobe hangcheck-timer hangcheck-tick=30 hangcheck_margin=180 6、 绑定裸设备
给共享磁盘分区 # fdisk /dev/sdb
输入的依次是\"n/p/1/回车/回车/w\" # fdisk /dev/sdc
第5页 共12页
数据库整理方案
输入的依次是\"n/p/1/回车/回车/w\" # vi /etc/udev/rules.d/60-raw.rules 增加如下内容:
ACTION==\"add\
ACTION==\"add\ACTION==\"add\
ACTION==\"add\KERNEL==\"raw[1-2]\重启服务 # start_udev 7、 设置ssh
测试两个节点间互ping,确保都是通的 首先在node1执行:
[root@node1 opt]# su - oracle [oracle@node1 ~]$ mkdir ~/.ssh [oracle@node1 ~]$ chmod 700 ~/.ssh [oracle@node1 ~]$ ssh-keygen -t rsa Generating public/private rsa key pair.
Enter file in which to save the key (/home/oracle/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again:
Your identification has been saved in /home/oracle/.ssh/id_rsa. Your public key has been saved in /home/oracle/.ssh/id_rsa.pub.
第6页 共12页
数据库整理方案
The key fingerprint is:
d2:69:eb:ac:86:62:27:50:99:ff:e8:1e:a2:e6:5d:7f oracle@node1 [oracle@node1 ~]$ ssh-keygen -t dsa Generating public/private dsa key pair.
Enter file in which to save the key (/home/oracle/.ssh/id_dsa): Enter passphrase (empty for no passphrase): Enter same passphrase again:
Your identification has been saved in /home/oracle/.ssh/id_dsa. Your public key has been saved in /home/oracle/.ssh/id_dsa.pub. The key fingerprint is:
0a:9a:20:46:a2:28:ec:72:23:82:f2:9d:f8:62:9b:d1 oracle@node1 然后换node2执行
[root@node2 ~]# ping 192.168.100.102 [root@node2 ~]# ping 10.10.17.222 [root@node2 opt]# su - oracle [oracle@node2 ~]$ mkdir ~/.ssh [oracle@node2 ~]$ chmod 700 ~/.ssh [oracle@node2 ~]$ ssh-keygen -t rsa Generating public/private rsa key pair.
Enter file in which to save the key (/home/oracle/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again:
Your identification has been saved in /home/oracle/.ssh/id_rsa.
第7页 共12页
数据库整理方案
Your public key has been saved in /home/oracle/.ssh/id_rsa.pub. The key fingerprint is:
dd:be:7a:37:e4:b5:f0:b2:24:95:50:61:ea:a1:61:07 oracle@node2 [oracle@node2 ~]$ ssh-keygen -t dsa Generating public/private dsa key pair.
Enter file in which to save the key (/home/oracle/.ssh/id_dsa): Enter passphrase (empty for no passphrase): Enter same passphrase again:
Your identification has been saved in /home/oracle/.ssh/id_dsa. Your public key has been saved in /home/oracle/.ssh/id_dsa.pub. The key fingerprint is:
bc:b5:cb:43:c7:19:53:d6:f7:16:69:85:12:7f:aa:be oracle@node2 切换回node1,接着执行:
[oracle@node1 ~]$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys [oracle@node1 ~]$ cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
[oracle@node1 ~]$ ssh node2 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys The authenticity of host 'node2 (192.168.100.102)' can't be established. RSA key fingerprint is 92:d1:ce:5b:c8:a1:52:d5:ac:00:5f:48:5d:12:06:e4. Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'node2,192.168.100.102' (RSA) to the list of known hosts. oracle@node2's password:
[oracle@node1 ~]$ ssh node2 cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys oracle@node2's password:
第8页 共12页
数据库整理方案
[oracle@node1 ~]$ scp ~/.ssh/authorized_keys node2:~/.ssh/authorized_keys oracle@node2's password:
authorized_keys 100% 1992 2.0KB/s 00:00 两机相互执行,看看是否还需要输入密码 [oracle@node1 ~]$ ssh node1 date [oracle@node1 ~]$ ssh node2 date [oracle@node1 ~]$ ssh node1-priv date [oracle@node1 ~]$ ssh node2-priv date 切换至node2执行
[oracle@node2 ~]$ ssh node1 date [oracle@node2 ~]$ ssh node2 date [oracle@node2 ~]$ ssh node1-priv date [oracle@node2 ~]$ ssh node2-priv date 8、 用CVU检查crs
$ ./runcluvfy.sh stage -pre crsinst -n node1,node2 -verbose9、 安装crs
在vnc或xmanager中运行 # xhost+ # su – oracle
$ ./runInstaller –ignoreSysPrereqs 出现图像安装界面
第9页 共12页
数据库整理方案
根据界面提示操作。需要注意的是在节点选择界面添加2号节点,在设置网卡是指定好public和private。最后会提示以root用户执行脚本: 在 node1 上执行: orainstRoot.sh; 在 node2 上执行: orainstRoot.sh; 在 node1 上执行: root.sh; # vi crs_1/bin/vipca
找到如下内容:
Remove this workaround when the bug 3937317 is fixed arch=`uname -m`
if [ \"$arch\" = \"i686\" -o \"$arch\" = \"ia64\" ] then
LD_ASSUME_KERNEL=2.4.19
第10页 共12页
数据库整理方案
export LD_ASSUME_KERNEL fi
#End workaround 在fi后新添加一行: unset LD_ASSUME_KERNEL # vi crs_1/bin/srvctl
找到如下内容: LD_ASSUME_KERNEL=2.4.19 export LD_ASSUME_KERNEL 同样在其后新增加一行: unset LD_ASSUME_KERNEL 在 node2 上执行: root.sh;
按界面提示完成crs的安装。crs_stat –t可查看组件状态 10、
升级crs到10.2.0.4
# ./crsctl stop crs
图形界面执行runInstaller,注意选择正确的crs_home升级,根据最后一步提示在各节点上以root用户执行
# ./crsctl stop crs # crs_1/install/root102.sh 11、
安装数据库
在vnc或xmanager中运行 # xhost+ # su – oracle
$ ./runInstaller –ignoreSysPrereqs 出现图像安装界面,按提示操作,在select configuration option界面选择install database software only 12、
升级数据库到10.2.0.4
图形界面执行runInstaller,根据提示操作
第11页 共12页
数据库整理方案
13、 14、 15、 16、 17、 18、
执行netca建listener 建库
根据原生产库情况建业务表空间和业务用户 停止业务应用,同时开始启动原生产库备份
以exp owner= CASKWMES, TEST等的方式以业务用户基础导出dump文件
以imp fromuser=CASKWMES, TEST touser=CASKWMES, TEST等的方式按业务用户导入dump文件
执行dbca根据原生产库的情况建库,选择asm存储
的数据 19、
启动和验证业务应用
4 应急方案
为了不影响应用,迁移失败维持原有状态,寻找失败原因后,另寻时间再做迁移。
第12页 共12页
因篇幅问题不能全部显示,请点此查看更多更全内容