Oracle数据迁移(详细)
使用场景
将一个用户某些表数据迁移到另一个用户中,可以个性化表数据
使用技术
- sql语句
- 存数过程
- database links
流程图
操作步骤
1. 导出数据源数据
将数据迁移的数据源的数据导出,导出方式为
- 导出 sql语句
- 导出 csv文件
- 导出 dmp 文件
- database links 连接导入导出
根据实际的需求,来选择导出方式
2. 创建临时库
所有的数据,都是在临时库中操作,防止误操作,将原有的数据损坏
- 创建数据源用户:old_user
- 创建数据处理用户:new_user
- 将第一步导出的数据,导入到old_user 用户中,该数据是数据迁移的数据源
- 在new_user用户,创建表,表结构跟你最后导出的表结构相同即可
- 在new_user用户, 创建 database links 名称为 old_link
3.编写存储过程
create or replace procedure pro_t_users is --异常可以自己写
cursor old_users
is
select
name,sex,age
from t_old_users@old_link;
row_old_users old_users%rowtype;
uid number; --声明uid作为变量 为id 赋值
begin
delete t_users; --删除历史数据,每一次执行存数过程先删除历史数据
commit;
uid:=0;
open old_users;
loop
fetch old_users into row_old_users;
exit when old_users%notfound;
uid:=uid+1; --每一次添加增加1
insert into t_users(id,username,sex,age,crttime)
values(uid,row_old_users.name ,row_old_users.sex, row_old_users.age, sysdate);
commit; --可以判断id 来进行,每 100或 1000 或者10000等等 进行提交
END LOOP;
CLOSE DOC_TYPE;
end;
4. 处理后的数据导出到迁移库中
导出数据方式参考第一步中的方法
##结束语
感谢大家观看我的博客,第一次写博客,排版,组织语言等等还是一个新手,请大神们多多关照