【数据迁移】Sqlserver 迁移 Postgresql 详解 CSV+COPY 详细图文教程(实战踩坑优化案例)
文章目录
-
- 前期准备
- 数据准备
- CSV文件迁移方式
-
-
- 启用xp_cmdshell
- 从SQLServer导出CSV
- 导入CSV到Postgresql
- 数据测试
-
- Pgloader方式迁移
-
-
- 迁移工具与原理概述
- 准备工作
- 迁移步骤详解
- 迁移后验证与优化
- 常见问题与解决方案
- 注意事项
-
- 迁移优化
更多相关内容可查看
迁移思路:先用sqlserver把新的项目去跑起来,然后去切postgresql去跑一下项目 项目中一些持久层或者代码要做适配 然后适配完去jmeter去压测,这个数据库性能能否支撑迁移,然后去设计postgre的表结构 ,然后去迁移存储过程函数等,然后迁移索引,然后调研迁移脚本,最后去做测试
前期准备
部署Sqlserver本地数据库:https://blog.csdn.net/Aaaaaaatwl/article/details/145607603?spm=1001.2014.3001.5501
部署Postgresql本地数据库:https://blog.csdn.net/Aaaaaaatwl/article/details/145678643?spm=1001.2014.3001.5501
数据准备
如果为了练习 可以在对应的数据库中生成10万条数据,生成sql如下
-- 开启事务以提高插入性能
BEGIN TRANSACTION;
-- 插入 10 万条数据
DECLARE @i INT = 1;
WHILE @i <= 100000
BEGIN
INSERT INTO xxx (
SERIAL_NUMBER,
SUBSCRIBER_ID,
ORGANIZATION_ID,
APP_ID,
CERT_ENTITY,
ENCRYPTED_D1,
ENCRYPTED_D2,
MODIFY_TIME,
EXT_INFO,
USER_TYPE
)
VALUES (
-- SERIAL_NUMBER: 使用 NEWID() 生成唯一的 UUID
CAST(NEWID() AS VARCHAR(40)),
-- SUBSCRIBER_ID: 随机生成 1 到 1000000 之间的数字
CAST(CEILING(RAND() * 1000000) AS NUMERIC(20)),
-- ORGANIZATION_ID: 随机生成 1 到 10000 之间的数字
CAST(CEILING(RAND() * 10000) AS NUMERIC(15)