数据库迁移后的检验,2022-07-22

(2022.07.22 Fri)

关系型数据库迁移后的检验

对象完整性检验

可检测是否所有的数据库对象都已迁移,包括

  • 数据库、表
  • 视图
  • 存储过程
  • 函数
  • 触发器
  • 分页
    等。

检测迁移后的对象是否存在、对象的信息,并用诸如diff之类的命令与原数据的相应信息做比较。

MySQL中的命令 -
查看数据库和表

SHOW databases;
SHOW tables;
SELECT * from information_schema.TABLES; 
SHOW columns FROM ; // 列出列属性信息
DESCRIBE ;

查看视图

SELECT * from information_schema.VIEWS;  //视图

查看存储过程和函数

// 1
select  from mysql.proc where db =  and `type` = 'PROCEDURE'; //存储过程
select  from mysql.proc where db =  and `type` = 'FUNCTION'; //函数
// 2
SHOW PROCEDURE STATUS; 
SHOW FUNCTION STATUS;
// 3 查看创建的代码
SHOW CREATE PROCEDURE ;
SHOW CREATE FUNCTION ; 

查看触发器

// 1
SHOW TRIGGERS [FROM ] [LIKE ];
SHOW TRIGGERS \G;  // 加入\G命令,返回结果展示工整
// 2
SELECT * FROM information_schema.triggers \G; // 查看所有触发器
SELECT * FROM information_schema.triggers WHERE trigger_name=  \G;

查看分页

SELECT * FROM tab LIMIT , ;

对象的完整性检测完成,接下来检测数据表格中的总数是否与迁移前的相同。比如对迁移后的表格做count操作,计算总行数。

此外还可查看表格中的索引是否一致,

SHOW INDEX FROM  \G;

对数据库运行业务查询

对迁移前后的数据库做业务查询,看结果是否正常。

使用数据库提供的内置工具作对比

不同的数据库产品提供了相应的工具做迁移前后的比较

  • Oracle:dbms_comparison包、minus相减法、dbms_utility.get_hash_value计算hash值、 PL/SQL Developer工具等
  • SQL Server:Visual Studio工具,SQL Server Data Tools (SSDT)、SQLDiff或tablediff.exe工具针对单表比对、Red Gate的SQL Compare工具,需要注意: 对于 SSDT工具来说,需要对比的2个库都必须有主键或唯一键才能进行比对
  • MySQL:mysqldiff + mysqldbcompare

Reference

1 网络文章整理

你可能感兴趣的:(数据库迁移后的检验,2022-07-22)