exp/imp对于小数据量的数据库,是一个不错的迁移工具。 迁移数据过程如下,分两大步,导出和导入。
项目背景:
原来的数据库服务器运行在hp dl388g7服务器上面,内存32g,,由于业务增长,内存吃紧,加上时不时出现服务器硬件故障,由于是单实例单服务器,存在单点发现,于是打算采取一些措施改善一下:
1)升级服务器内存
2)并搭建服务器操作系统级别的双机
3)迁移数据库数据到新服务器
前面已经写过升级服务器内存相关的文章,题目为“数据库服务器升级内存需要考虑的问题”,链接如下:
——————————————————————————————————————————————————————————
exp/imp对于小数据量的数据库,是一个不错的迁移工具。 迁移数据过程如下,分两大步,导出和导入。
一、导出过程1、准备好导出脚本:more / exp20130118/exp.sh
date
expdp bv/bv32ebai2 directory=data_pump_dir2 dumpfile=exp_2013-1-19.dmp logfile=exp_2013-1-19.log schemas=bv
date
2、创建导出目录:exp目标目录放在本地还是存储,放哪个目录?是否创建directory?
sql> select * from dba_directories;
owner directory_name directory_path
sys data_pump_dir /oracle/product/10.2/db/rdbms/log/
sys data_pump_dir1 /exp
sys oracle_ocm_config_dir /oracle/product/10.2/db/ccr/state
create directory data_pump_dir2 as ' /exp20130118';
3、导出dmp文件找一个业务不繁忙的时间,执行导出脚本即可。
二、导入过程1、创建表空间、用户说明:
1)我google网上大多数文章都说,如果用exp/imp方式迁移数据,在新服务器上,只需要创建一个用户用于导入就可以,但是我第一次导入时只创建一个用户,就会报一大堆错,最后还是创建所有用户,知道的同学告诉我一声,谢谢。
2)我这里偷点懒,直接用toad拷贝创建用户的语句,连加密的密码也有了,方便。
到toad里边拷贝创建表空间和用户的脚本,直接粘贴进行初始化准备工作。表空间主要是看看和用户相关的都有哪些表空间,可以用sql语句查询;用户就得一个一个看。
1、1创建一个参数文件
create profile limit_session limit
sessions_per_user 30
cpu_per_session default
cpu_per_call default
connect_time default
idle_time default
logical_reads_per_session default
logical_reads_per_call default
composite_limit default
private_sga default
failed_login_attempts default
password_life_time default
password_reuse_time default
password_reuse_max default
password_lock_time default
password_grace_time default
password_verify_function default;