一次oracle迁移11g到19c后用到的对象数量对比脚本

devtools/2024/10/18 8:19:24/

一次oracle迁移11g到19c后用到的对象数量对比脚本,按用户习惯就好。

oracle@jyc:/home/oracle/stat>ll
合計 584
-rw-r--r-- 1 oracle oinstall  82709  9月 27 09:20 11g-79-01.txt
-rw-r--r-- 1 oracle oinstall    332  9月 27 09:17 11g-79-02.txt
-rw-r--r-- 1 oracle oinstall 161788  9月 27 09:17 11g-79-03.txt
-rw-r--r-- 1 oracle oinstall    721  9月 27 09:07 o1.bak
-rw-r--r-- 1 oracle oinstall  25878  9月 27 09:20 o1.log
-rwxr-xr-x 1 oracle oinstall    335  9月 27 09:07 o1.sh
-rw-r--r-- 1 oracle oinstall    809  9月 27 09:18 o1.sql
-rw-r--r-- 1 oracle oinstall  82659  9月 27 09:20 o1.txt
-rw-r--r-- 1 oracle oinstall    492  9月 27 09:17 o2.log
-rwxr-xr-x 1 oracle oinstall    134  9月 27 09:07 o2.sh
-rw-r--r-- 1 oracle oinstall    655  9月 27 09:15 o2.sql
-rw-r--r-- 1 oracle oinstall  29932  9月 27 09:17 o3.log
-rwxr-xr-x 1 oracle oinstall    317  9月 27 09:07 o3.sh
-rw-r--r-- 1 oracle oinstall   1570  9月 27 12:01 o3.sql
-rw-r--r-- 1 oracle oinstall 161756  9月 27 09:17 o3.txt
oracle@jyc:/home/oracle/stat>more o1.sh
#!/bin/bash
sqlplus system/oracle <<EOF
spool /home/oracle/stat/o1.txt;
set timing on
@/home/oracle/stat/o1.sql;
spool off;
exit;
EOF
echo "OWNER      TABLESPACE_NAME                  TABLE_NAME                                       ROW_COUNT TABLE_SIZE(M)" | cat - /home/oracle/stat/o1.txt |grep -v "SQL>" > /home/oracle/stat/o11.txt
oracle@jyc:/home/oracle/stat>more o1.sql
set pagesize 0
set line 180
--set head on
col OWNER for a10
col TABLESPACE_NAME for a32
col table_name for a40
col ROW_COUNT for 9999999999999999
col TABLE_SIZE(M) for a30
SELECT T.OWNER,
       T.TABLESPACE_NAME,
       T.table_name,
       to_number(extractvalue(xmltype(dbms_xmlgen.getxml('select count(*) c from ' || T.OWNER ||'.' || T.TABLE_NAME)),
                              '/ROWSET/ROW/C')) AS row_count,
       (select trim(to_char(round(sum(bytes) / (1024 * 1024), 4),
                            '999990.9999')) || 'M' as M
          from dba_segments
         where segment_name = upper(t.TABLE_NAME)) as "TABLE_SIZE(M)"
  FROM dba_tables T
WHERE T.OWNER IN ('JYC1','JYC2')
 ORDER BY T.OWNER, T.TABLESPACE_NAME, T.TABLE_NAME;
oracle@jyc:/home/oracle/stat>more o2.sh
#!/bin/bash
sqlplus system/oracle <<EOF
spool /home/oracle/stat/o2.txt;
set timing on
@/home/oracle/stat/o2.sql;
spool off;
exit;
EOF
oracle@jyc:/home/oracle/stat>more o2.sql
set head on
SELECT
    (SELECT COUNT(*) FROM dba_tables where owner in ('JYC1','JYC2')) AS table_count,
    (SELECT COUNT(*) FROM dba_views where owner in ('JYC1','JYC2')) AS view_count,
    (SELECT COUNT(*) FROM dba_procedures where owner in ('JYC1','JYC2')) AS procedure_count,
    (SELECT COUNT(*) FROM dba_triggers where owner in ('JYC1','JYC2')) AS trigger_count
FROM
    dual;
oracle@jyc:/home/oracle/stat>more o3.sh
#!/bin/bash
sqlplus system/oracle <<EOF
spool /home/oracle/stat/o3.txt;
set timing on
@/home/oracle/stat/o3.sql;
spool off;
exit;
EOF
echo "用户       对象类型             对象名称                                 对象表空间" | cat - /home/oracle/stat/o3.txt |grep -v "SQL>" > /home/oracle/stat/o31.txt
oracle@jyc:/home/oracle/stat>more o3.sql
set head on
set pagesize 0
set line 180
col 用户 for a10
col 对象类型 for a20
col 对象名称 for a40
col 对象表空间 for a32
SELECT ss.用户, ss.对象类型, ss.对象名称, ss.对象表空间
  FROM (SELECT 'table' as 对象类型,
               t.OWNER as 用户,
               t.TABLESPACE_NAME as 对象表空间,
               t.TABLE_NAME as 对象名称
          FROM dba_tables t where t.owner in ('JYC1','JYC2')
        union all
        SELECT 'view' as 对象类型,
               v.OWNER as 用户,
               '' as 对象表空间,
               v.VIEW_NAME as 对象名称
          FROM dba_views v where v.owner in ('JYC1','JYC2')      
        union all        
        SELECT 'procedure' as 对象类型,
               p.owner as 用户,
               '' as 对象表空间,
DECODE(NVL(p.PROCEDURE_NAME,null),null,p.OBJECT_NAME,p.OBJECT_NAME||'.'||p.PROCEDURE_NAME) as 对象名称
          FROM dba_procedures p where p.owner in ('JYC1','JYC2')        
        union all       
        SELECT 'trigger' as 对象类型,
               tt.owner as 用户, '' as 对象表空间,
               tt.trigger_name as 对象名称
          FROM dba_triggers tt where tt.owner in ('JYC1','JYC2')) ss
 order by ss.用户, ss.对象类型, ss.对象名称;
 
执行查询脚本
nohup ./o1.sh > o1.log &
查看结果
more o1.txt


http://www.ppmy.cn/devtools/122113.html

相关文章

Markdown 语法详解大全(超级版)(四)——Markdown 使用 Emoji 表情 (附:表情符号简码列表)

Markdown 语法详解大全(超级版)&#xff08;四&#xff09; ——Markdown 使用 Emoji 表情 &#xff08;附&#xff1a;表情符号简码列表&#xff09; 本文目录&#xff1a; 一、复制和粘贴表情符号 二、使用表情符号简码 三、表情符号简码列表 本系列文章&#xff1a; Ma…

大学生就业与招聘:Spring Boot系统设计

1系统概述 1.1 研究背景 如今互联网高速发展&#xff0c;网络遍布全球&#xff0c;通过互联网发布的消息能快而方便的传播到世界每个角落&#xff0c;并且互联网上能传播的信息也很广&#xff0c;比如文字、图片、声音、视频等。从而&#xff0c;这种种好处使得互联网成了信息传…

NVIDIA G-Assist 项目:您的游戏和应用程序AI助手

NVIDIA G-Assist 是一个革命性的人工智能助手项目&#xff0c;旨在通过先进的AI技术提升玩家的游戏体验和系统性能。这个项目在2024年Computex上首次亮相&#xff0c;展示了其在游戏和应用程序中的潜在应用。 喜好儿网 G-Assist 的核心功能是提供上下文感知的帮助。它能够接收…

uniapp+Android面向网络学习的时间管理工具软件 微信小程序

目录 项目介绍支持以下技术栈&#xff1a;具体实现截图HBuilderXuniappmysql数据库与主流编程语言java类核心代码部分展示登录的业务流程的顺序是&#xff1a;数据库设计性能分析操作可行性技术可行性系统安全性数据完整性软件测试详细视频演示源码获取方式 项目介绍 用户功能…

以太网交换安全:端口隔离

一、端口隔离 以太交换网络中为了实现报文之间的二层广播域的隔离&#xff0c;用户通常将不同的端口加人不同的 VLAN大型网络中&#xff0c;业务需求种类繁多&#xff0c;只通过 VLAN实现报文的二层隔离&#xff0c;会浪费有限的VLAN资源。而采用端口隔离功能&#xff0c;则可…

PostgreSQL 17:新特性与性能优化深度解析

目录 引言核心新特性 块级别增量备份与恢复逻辑复制槽同步参数SQL/JSON的JSON_TABLE命令PL/pgSQL支持数组%TYPE和%ROWTYPE 性能优化 IO合并读取性能参数真空处理过程的内存管理改进写前日志&#xff08;WAL&#xff09;锁的改进 升级建议结语 引言 PostgreSQL 17版本于2024年…

【D3.js in Action 3 精译_027】3.4 让 D3 数据适应屏幕(下)—— D3 分段比例尺的用法

当前内容所在位置&#xff08;可进入专栏查看其他译好的章节内容&#xff09; 第一部分 D3.js 基础知识 第一章 D3.js 简介&#xff08;已完结&#xff09; 1.1 何为 D3.js&#xff1f;1.2 D3 生态系统——入门须知1.3 数据可视化最佳实践&#xff08;上&#xff09;1.3 数据可…

废物利用,三百块电脑如何升级并安装双系统便携使用

文章目录 引言最初的配置开始改装更换内存升级硬盘2.5 英寸 sata 固态msata 加装 升级电池其他的升级娱乐大师跑分 双系统安装前提条件设置 Bios安装 win 10安装 Manjaro时间同步问题 屏幕问题黑屏难开 引言 最近浏览 b 站的二手笔记本信息&#xff0c;想要整个二手笔记本玩玩…