数据迁移前的准备和系统检查

关于数据迁移,在之前也讨论过一些需要注意的地方,可能林林总总列了不少,都是在数据迁移迁移前和迁移时需要注意的。
http://blog.itpub.net/23718752/viewspace-1195364/
我在这个帖子的基础上进行更多的总结和补充。

数据升级前的测试

 -)充分的测试,评估时间,总结经验,提升性能, 心中有数。
在生产中进行数据的大批量迁移时,充分的测试时必须的。一方面可以根据这些测试积累一些必要的数据作为生产中使用参考,另外一方面可以基于之前的测试,总结经验,总结不足之处,加入改进,在生产中每一分钟的改进都是很重要的。

补充:
需要做一些相关的性能测试,在条件允许的情况下在类似的环境中完全模拟,得到一些性能数据,然后不断的改进,看能够否有大的提升。
我们在做数据迁移的时候,就是在备份库中克隆的一套环境,然后在上面做的性能测试,在生产上的步骤方式都一样,结果在正式升级的时候就能够做到心中有数。什么时候需要注意什么,什么时候需要做哪些想关的检查。

完整的备份策略
热备甚至冷备
    在数据迁移之前进行完整的备份,一定要是全量的。甚至在允许的情况下做冷备都可以。数据的备份越充分,出现问题时就有了可靠的保证。
lob数据类型的备份,做表级的备份(create table nologging....)
    对于lob的数据类型,在使用imp,impdp的过程中,瓶颈都在lob数据类型上了,哪怕表里的lob数据类型是空的,还是影响很大。
    自己在做测试的时候,使用Imp基本是一秒钟一千条的数据速度,impdp速度有所提升,但是parallle没有起作用,速度大概是1秒钟1万条的样子。
    如果在数据的导入过程中出了问题,如果有完整快速的备份,自己也有了一定的数据保证,要知道出问题之后再从备份库中导入导出,基本上都是很耗费时间的。

补充:
关于lob数据的备份,大家可以根据自己的情况而定,如果使用数据泵来做数据迁移,强烈建议做表级备份,如果出现数据冲突的时候,能够很方便的排查。
而在系统级的备份,也是很重要的,这个也是整个升级的关键,如果出现任何预料之外的情况,我们还可以退回一步。

数据升级前的系统级检查
1)内存检查
    可以使用top,free -m来做一个检查,看内存的使用情况是否正常,是否有足够的内存空间。
 像下面的情况,在同一台机器上有多个实例,如果能够最大程度的释放内存给需要的库,可以考虑把剩下的库failover到别的服务器上。或者情况允许的情况下,直接停掉。

àDB instance in the same DB server(PRODB01)

As I remember XXXXX ,XXXX is on other DB server before, is it possible to switch to other DB servers?

> ps -ef|grep smon

oraccbs1 21056     1  0 Aug17 ?        00:00:17 ora_smon_PRODB01

oraaems2 22395     1  0 Aug17 ?        00:00:02 ora_smon_DBM02

oraarcs1 24868     1  0 Aug17 ?        00:00:02 ora_smon_DBC01

oramaes1 26396     1  0 Aug17 ?        00:00:01 ora_smon_DBE01

2)检查cpu,io情况,查看iowait是否稳定,保持在较低的一个幅度。
    可以使用top,sar命令来查看或者通过shell脚本来得到一些系统的负载信息,及时排除不必要的隐患。
    可以查看iowait的情况,如果超过30%,说明有比较严重的io等待了,一般都需要保持在一个很低的比例。

àIOwait

from system level has reduced much, as I remember, it is around 4% before. And vxfs_thread has gone.

top - 12:54:20 up 26 days, 11:51,  8 users,  load average: 2.05, 2.22, 2.36

Tasks: 2150 total,   4 running, 2145 sleeping,   0 stopped,   1 zombie

Cpu(s):  5.8%us,  0.4%sy,  0.0%ni, 93.6%id,  0.1%wa,  0.0%hi,  0.1%si,  0.0%st

Mem:  371307496k total, 187371412k used, 183936084k free,  2043876k buffers

Swap: 377487328k total,     9440k used, 377477888k free, 112921640k cached

3)检查进程的情况
    检查是否有高cpu消耗的异常进程
    检查是否有僵尸进程
 像下面的例子,进程中存在一个僵尸进程,可以查看倒底是什么进程,排查后可以杀掉。

top - 16:53:11 up 26 days, 15:50,  9 users,  load average: 2.95, 2.61, 2.83

Tasks: 2096 total,   2 running, 2093 sleeping,   0 stopped,   1 zombie

Cpu(s):  5.8%us,  1.1%sy,  0.1%ni, 88.5%id,  4.2%wa,  0.0%hi,  0.2%si,  0.0%st

Mem:  371307496k total, 100558832k used, 270748664k free,  2047600k buffers

Swap: 377487328k total,     9440k used, 377477888k free, 26339800k cached

> ps -A -ostat,ppid,pid,cmd | grep -e '^[Zz]'

Zs    8739  8745 [sh]

>  ps -ef|grep 8739

root      8739 10743  0 00:01 ?        00:00:00 crond

root      8745  8739  0 00:01 ?        00:00:00 [sh]

oraccbs1 20785  6780  0 16:54 pts/5    00:00:00 grep 8739

> ps -ef|grep 8745

root      8745  8739  0 00:01 ?        00:00:00 [sh]

oraccbs1 22222  6780  0 16:54 pts/5    00:00:00 grep 8745

4)是否有crontab的设置
这个检查太重要了,如果在升级的时候有什么例行的job在运行,会有很大的影响,可以使用crontab -l来查看crontab的情况

5)vxfs下的odm是否已经启用
如果使用的veritas的文件系统,需要检查一下odm是否正常启用。

àODM is enabled.

Oracle instance running with ODM: Veritas 6.0.100.000 ODM Library, Version 2.0

Sun Aug 17 23:24:39 2014

> ps -ef|grep odm

root     10615     1  0 Jul23 ?        00:00:17 [vxodm_ioreap]

root     10616     1  0 Jul23 ?        00:00:00 [vxodm_ioclean]

oraccbs1 24858 28913  0 12:58 pts/9    00:00:00 grep odm

6)IO 简单测试
从系统角度来考虑,需要保证io的高效性。可以使用
iostat,sar等来评估
还可以使用如下的脚本简单来测试一下。
time dd if=/dev/zero bs=1M count=204 of=direct_200M

->DD testing, result is expected.

> time dd if=/dev/zero bs=1M count=204 of=direct_200M

204+0 records in

204+0 records out

213909504 bytes (214 MB) copied, 0.401999 seconds, 532 MB/s

real    0m0.404s

user    0m0.001s

sys     0m0.035s

> time dd if=/dev/zero bs=1M count=204 of=direct_200M

204+0 records in

204+0 records out

213909504 bytes (214 MB) copied, 0.424942 seconds, 503 MB/s

real    0m0.433s

user    0m0.000s

sys     0m0.030s 

  7) 网络带宽
    网络是很重要的一个因素,数据迁移的时候肯定会从别的服务器中传输大量的文件,dump等,如果网络太慢,无形中就是潜在的问题。
可以使用scp来进行一个简单的测试,如果存储还不错的话,一般在50M左右/每秒 的速度

时间: 2024-10-01 04:46:04

数据迁移前的准备和系统检查的相关文章

Datapump数据迁移前的准备工作

    其实对于Datapump迁移而言,如果参与过XTTS,OGG,Veritas SF,外部表增量等迁移方式的话,会发现Datapump还是很简单清晰的,一个优点就是操作简单清晰,想必于imp而言性能要好.所以不要小看这种迁移方式,不是说哪些迁移方式就是最好的,数据迁移中也没有银弹,最合适的就是最好的.     迁移之前我们还是需要做一些准备工作,尽量避免临时的忙乱,减少出错概率,要知道升级迁移都是在大早上,大晚上,都是精力比较差的时候,如果迁移前的准备不足,没有充足的准备,就会忙乱一团.所

Datapump数据迁移前的准备工作(二)

之前写了一篇文章分析了Datapump迁移数据的一些准备总结,反响还不错.最近碰到一个场景,根据评估还是使用Datapump比较好.主要的原因如下: 1.原来的环境在Solaris下,硬件资源老旧,需要迁移到Linux下,跨平台迁移使用逻辑迁移优先 2.原来的环境使用10gR2,现在需要顺带迁移到11gR2,充分解决备库"不中用"的情况 3.迁移的数据量不算大,在几百G以内,可以充分利用带宽和I/O吞吐量来达到预期的时间窗口. 而在这个方案之外,考虑到提高性能,我们采用了PCIE-SS

云存储中的数据迁移分析

如今, 由于数据成本的不断飙升.技术管理人员的水平参差不齐等原因,云存储已经成为了各个机构数据存储的重要举措和发展方向.云存储作为云中的一项重要服务, 它通过集群应用.网格技术或分布式文件系统等将各种存储设备通过应用软件集合起来, 对外提供数据存储和业务访问.对于数据存储, 当我们从一个物理环境和单个阵列过渡到完全虚拟化的.高度动态的的存储环境时,需要面对很多问题.而数据迁移作为采用云存储方案中最为基础.关键的步骤.它将历史数据进行清洗,转换, 并装载到新系统,它是保证数据系统平滑升级和更新的重

数据迁移中的数据库检查和建议

关于数据迁移,在之前也讨论过一些需要注意的地方,可能林林总总列了不少,都是在数据迁移迁移前和迁移时需要注意的.http://blog.itpub.net/23718752/viewspace-1195364/http://blog.itpub.net/23718752/viewspace-1254945/ 我在这些帖子的基础上进行更多的总结和补充. 数据库级的检查和建议1)参数检查 有些参数是需要在数据迁移前临时做变更的,有些是性能相关的,需要考虑. log_buffer在数据导入的过程中会有极

让数据迁移变得轻松

不管你称其为数据引力还是数据惯性,从存储基础设施的一个位置移动数据到另一个位置是个艰难的过程.至少,过去是这样.而现在,在合适的工具和基础设施条件下,传统的数据迁移过程中涉及到的许多困难点都可以消除.采用的方法只是提前规划和采用恰当的技术. 为什么数据迁移在过去是个问题 一份最新的Hitachi Data Systems报告详细的整理了来自IDC和451个集团公司的调研.报告表明数据迁移项目占据了大型企业IT项目的60%,并且,几乎一半的IT预算用于运维开销--一个明显的信号即数据迁移消耗了大部

从MySQL到Redis,提升数据迁移的效率

做开发的同学都知道,一旦设计到底层存储优化,数据结构甚至数据库的变更,通常都会进行数据迁移的工作.如果系统运行时间过长,数据迁移的数量可能非常庞大.这时候,如何进行高效的数据迁移,实际也是上线质量的直接影响因素之一. 下面内容是转载的一个小技巧(原文),无法适用于各种变化的场景,仅供大家参考. 场景是从MySQL中将数据导入到Redis的Hash结构中.当然,最直接的做法就是遍历MySQL数据,一条一条写入到Redis中.这样可能没什么错,但是速度会非常慢.而如果能够使MySQL的查询输出数据直

从用户Windows系统到阿里云NAS SMB服务:常用数据迁移备份工具

本文介绍如何由本地(on-premises) 或阿里云的虚拟机Windows系统向阿里云NAS SMB服务上传和备份数据. 阿里云文件系统SMB协议服务介绍 阿里云文件存储服务NAS(阿里云NAS)是阿里云在2016年正式推出的公有云上的网络文件系统实现.阿里云NAS主要面向阿里云 ECS 实例.HPC.Docker.弹性Web和BatchCompute 等计算节点提供文件存储服务.通过标准的文件访问协议,用户无需对现有应用做任何修改,即可在云上使用具备无限容量及性能扩展.单一命名空间.多共享.

FreeBSD系统的数据迁移方法

相信一些朋友也曾经想过如何快捷安全迁移数据,迁移数据可能有多种原因,一种是想增加一块硬盘,把原来一些空间不够的分区迁移过来:另一种是硬盘复制,旧的硬盘容量可能太小了,又或者已经出现了问题,想用新的硬盘代替.葱头就分别举例说明怎样迁移数据,具体方法可能和你的硬盘的实际情况有所不同,这里只是作一个指引. 无论是那种方法,都必须先将新硬盘装上并让系统正确识别.为了不用设硬盘跳线(硬盘缺省为Master),这里举例安装一个新的IDE硬盘到IDE1接口,即与旧硬盘使用不同的数据线,系统识别为ad2:如果你

IBM数据迁移服务:针对与System Storage磁盘系统连接

提供预先打包的高效数据迁移服务,同时尽可能减少中断现象 新的信息和数据需求.加上不断上升的IT 管理成本以及缺乏熟练掌握新兴技术的专业人员,促使我们需要更有效的服务器和存储http://www.aliyun.com/zixun/aggregation/13748.html">基础架构.企业也希望从其信息和数据中获得更多价值,以完善决策.促进员工之间的协作,并激励创新.这些业务目标都需要一个有效.灵活且可扩展的存储基础架构.许多组织正转而使用新的存储技术,数据迁移的时机和准确性已成为关键的成