ORACLE数据库迁移方案

ORACLE数据库迁移方案

2023年6月26日发(作者:)

数据库整理方案

万佳系统数据库迁移方案

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","CONNECT","EXP_FULL_DATABASE","IMP_FULL_DATABASE";

表空间:用户表空间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_

log= /wmesbak/caskwmes_exp_

(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_

监控:

select * from DBA_DATAPUBMP_JOBS;

select sid,serial# from v$session s,dba_datapump_sessions d where =;

(3)SCP –P 22 –r oracle@192.168.1.167:/wmesbak/ caskwmes_exp_

/u01/wmesbak/

28、 将导出的数据文件导入到需要迁移的数据库中。

imp CASKWMES/[密码] file= caskwmes_exp_ indexes=y log=

caskwmes_imp_

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 ll /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/

增加或修改下列内容

= 2097152

= 68719476736 --内存128G服务器的配置 = 4096

= 250 32000 100 128

-max = 65536

_local_port_range = 9000 65000

_default = 262144

_max = 2097152

第4页 共12页

数据库整理方案

_default = 262144

_max = 1048576

# sysctl -p

设置oracle使用的文件数权限

# vi /etc/security/

增加下列内容

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_

配置Hangcheck计时器

# vi /etc/

增加:

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/

增加如下内容:

ACTION=="add", KERNEL=="/dev/sdb1",RUN+="/bin/raw /dev/raw/raw1 %N"

ACTION=="add", ENV{MAJOR}=="8",ENV{MINOR}=="17",RUN+="/bin/raw /dev/raw/raw1 %M %m"

ACTION=="add", KERNEL=="/dev/sdc1",RUN+="/bin/raw /dev/raw/raw2 %N"

ACTION=="add", ENV{MAJOR}=="8",ENV{MINOR}=="33",RUN+="/bin/raw /dev/raw/raw2 %M %m"

KERNEL=="raw[1-2]", OWNER="oracle", GROUP="oinstall", MODE="640"

重启服务

# 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_.

第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_.

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_.

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_.

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_ >> ~/.ssh/authorized_keys

[oracle@node1 ~]$ cat ~/.ssh/id_ >> ~/.ssh/authorized_keys

[oracle@node1 ~]$ ssh node2 cat ~/.ssh/id_ >> ~/.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_ >> ~/.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

$ ./ stage -pre crsinst -n node1,node2 -verbose9、 安装crs

在vnc或xmanager中运行

# xhost+

# su – oracle

$ ./runInstaller –ignoreSysPrereqs

出现图像安装界面

第9页 共12页

数据库整理方案

根据界面提示操作。需要注意的是在节点选择界面添加2号节点,在设置网卡是指定好public和private。最后会提示以root用户执行脚本:

在 node1 上执行: ;

在 node2 上执行: ;

在 node1 上执行: ;

# 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 上执行: ;

按界面提示完成crs的安装。crs_stat –t可查看组件状态

10、 升级crs到10.2.0.4

# ./crsctl stop crs

图形界面执行runInstaller,注意选择正确的crs_home升级,根据最后一步提示在各节点上以root用户执行

# ./crsctl stop crs

# crs_1/install/

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页

发布者:admin,转转请注明出处:http://www.yc00.com/news/1687774983a43014.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信