前言
服务器要从A区迁到B区,下面记录了我迁移数据库的过程。
建议做任何事之前先规划好达到目的的步骤和所需进行的操作,并把流程拉起来,到时候按操作步骤一步步来,方便之余,更便于问题的排查(如果出了问题)
一、备份旧库数据
- 首先查看源库配置(与新库做对比,保证所有配置都相同)包括:
-- 查看表空间列表
SELECT * FROM user_tablespaces;
我这里旧库没有新开辟表空间,直接存到了USERS表空间里,所以我们备份至新库,新库不需要再开辟表空间了
-- 查看数据库字符集
SELECT * FROM v$nls_parameters WHERE PARAMETER = 'NLS_CHARACTERSET'
-- 查看数据库配置参数
SELECT name,value,display_value FROM v$parameter
WHERE name IN(
'processes',
'sessions',
'memory_target',
'memory_max_target',
'sga_max_size',
'sga_target',
'pga_aggregate_target'
)
- 在确保所有服务全部暂停后,备份源库数据
- 创建目录(这里在/data/backup下)可选
- create directory dir_dp as '/data/backup';
- 赋予读写权限
- grant read,write on directory dir_dp to user;
- 备份数据库
在新库操作:
- 切换到oracle
- 登录数据库
- 创建表空间(我这里不需要再新建了)
- 创建用户
- 分配dba角色
- 创建目录(expdp)
create directory dir_dp as '/data/backup';
-
- 将迁移过来的备份数据mv到/data/backup下
mv *备份数据名* /data/backup
-
- 将数据导入整库
- 数据校验
- 验证迁移后数据是否和源库相同
- 数据结构明细验证
- 数据量核对(参考)
- 随机查询一个表,看看是否有乱码情况
验证完成,迁移完成