您的当前位置:首页正文

ORACLE数据库迁移方案

2021-08-12 来源:好走旅游网


数据库整理方案

万佳系统数据库迁移方案

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页

因篇幅问题不能全部显示,请点此查看更多更全内容