当完成从mysql到达梦数据库的迁移工作后,为确定数据已经全部成功迁移到到达梦数据库,要统计mysql数据库和达梦数据库中数据对象的数量是否一致。
通过以下方式统计mysql数据中的对象以及表数据量:
--根据指定用户统计用户下的对象数目
SELECT count(*) TABLES, table_schema FROM information_schema.TABLES
where table_schema = '数据库名称' GROUP BY table_schema;//表数目
select `name` from mysql.proc where db = '数据库名称' and `type` = 'PROCEDURE'; // 存储过程
select `name` from mysql.proc where db = '数据库名称' and `type` = 'FUNCTION' // 函数
--创建移植辅助表,统计每个表的数据量并插入到移植辅助表中
create table mysqls_tables(tab_owner varchar(100),tab_name varchar(100),tab_count int);
insert into mysqls_tables select table_name,table_rows from information_schema.TABLES where TABLE_SCHEMA = '数据库名称' order by table_rows desc;
select * from mysql_tables;
统计达梦数据库中的数据对象:
--dm
表
select count(1) from DBA_TABLES WHERE DBA_TABLES.OWNER ='数据库用户名';
视图
select * from dba_views where owner='数据库用户名';
序列
select * from dba_sequences where sequence_owner='数据库用户名';
存储函数和过程
select object_name,object_type from dba_objects where object_type in ('FUNCTION','PROCEDURE') and owner='数据库用户名' order by 2,1;
字段
select count(1) from DBA_TAB_COLUMNS WHERE OWNER='数据库用户名' AND TABLE_NAME IN
(
select TABLE_NAME from DBA_TABLES WHERE DBA_TABLES.OWNER ='数据库用户名'
);
统计oracle数据库中的数据对象
--oracle
表
select COUNT(1) from user_tables WHERE TABLE_NAME ;
视图
select view_name from user_views;
序列
select * from user_sequences ;
存储函数和过程
select object_name,object_type from user_objects where object_type in ('FUNCTION','PROCEDURE') order by 2,1;
字段
select COUNT(1) from DBA_TAB_COLUMNS WHERE OWNER='数据库用户'