工作随记:oracle重建一张1T数据量的大表

2024-03-13 17:28

本文主要是介绍工作随记:oracle重建一张1T数据量的大表,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • 一、删除测试表
  • 二、重命名旧表:
  • 三、验证:
  • 四、检查alert日志和昨天到今天的统计信息任务收集是否正常


一、删除测试表

#xshell登录用户hthis用户连接登录处理:
sqlplus ht/"123456"
sqlplus ht/"123456"@10.8.5.23/htdb
drop table rcd_record_data_26 purge;
#创建新表的操作:脚本参考如下,注意检查where条件是否满足要求。
cd /u01/app/oracle/product/19,0.0,0/dbhome 1/OPatch/
sqlplus ht/"123456"
#c.sql是建表语句create as where
@c.sql
#创建完成后,注释可能乱码,PL/SQL工具核查一下字段默认值和注释:
#处理办法:打开command窗口执行如下:
comment on table RCD_RECORD_DATA_26 is 'xx数据';
comment on column RCD_RECORD_DATA_26.id is 'ID';
comment on column RCD_RECORD_DATA_26.data is 'xx数据';#创建时注意表空间占用:
alter tablespace  TBS52023  add datafile '+DATAC1' size 20480m autoextend on next 10m;
alter tablespace  TBS52022  add datafile '+DATAC1' size 20480m autoextend on next 10m;
alter tablespace  TBS52021  add datafile '+DATAC1' size 20480m autoextend on next 10m;
alter tablespace  TBS52020  add datafile '+DATAC1' size 20480m autoextend on next 10m;
alter tablespace  TBS52019  add datafile '+DATAC1' size 20480m autoextend on next 10m;

二、重命名旧表:

#重命名前检查:
select * from dba_dependencies where REFERENCED_NAME='RCD_RECORD_DATA';
#解锁防止占用:select d.spid, c.object_name,a.USERNAME,a.OSUSER,a.MACHINE, a.STATUS,'ALTER SYSTEM KILL SESSION '''||a.sid||','||a.SERIAL#||''';'
from gv$session a ,gv$locked_object b,dba_objects c,gv$process d
where a.SID = b.SESSION_ID
and b.OBJECT_ID = c.object_id
and a.paddr=d.addr and c.object_name='RCD_RECORD_DATA';#重命名:
alter table RCD_RECORD_DATA rename to RCD_RECORD_DATA_27;
#如果报错失败,需先处理锁表问题,再重命名。
#检查确认备份表数据正常:select count(*) from RCD_RECORD_DATA_27;
#处理完成后再把新表重命名为生产表:
alter table RCD_RECORD_DATA_26 rename to RCD_RECORD_DATA;
#检查确认生产表数据正常:select count(*) from RCD_RECORD_DATA;#检查表空间大小:
@/home/oracle/tbs#编译失效对象:
sqlplus / as sysdba
@?/rdbms/admin/utrlp.sql;#补充缺失数据:
insert into RCD_RECORD_DATA(ID,DATA,CREATE_TIEM) select ID,DATA,CREATE_TIEM from RCD_RECORD_DATA_27 where id > '39716984';insert into RCD_RECORD_DATA_26(ID,DATA,CREATE_TIEM) select ID,DATA,CREATE_TIEM from RCD_RECORD_DATA where id > '39716984';

三、验证:

#查询lob字段占用大小:
select * from dba_tables where owner ='HTHIS' and table_name='RCD_RECORD_DATA';select e.segment_name,e.segment_type,sum(e.BYTES)/1024/1024/1024 as Gb from dba_extents e where e.segment_name='SYS_LOB0000629267C00002$$' 
group by e.segment_name,e.segment_type;

四、检查alert日志和昨天到今天的统计信息任务收集是否正常

#检查节点1,2的alert日志看是否还有异常报错?
#检查统计信息是否正常了?
select * from (select ACTUAL_START_DATE,RUN_DURATION,STATUS FROM dba_scheduler_job_run_details
where job_name like 'ORA$AT_OS_OPT%'
order by actual_start_date desc) where rownum < 30;陈哈哈:
select d.spid, c.object_name,a.USERNAME,a.OSUSER,a.MACHINE, a.STATUS,'ALTER SYSTEM KILL SESSION '''||a.sid||','||a.SERIAL#||''';'
from v$session a ,v$locked_object b,dba_objects c,v$process d
where a.SID = b.SESSION_ID
and b.OBJECT_ID = c.object_id
and a.paddr=d.addr and c.object_name=upper('rcd_record_data');陈哈哈:
-- tablespace usage
select  a.tablespace_name,round(a.bytes_alloc / 1024 / 1024) megs_alloc,round(nvl(b.bytes_free, 0) / 1024 / 1024) megs_free,round((a.bytes_alloc - nvl(b.bytes_free, 0)) / 1024 / 1024) megs_used,round((nvl(b.bytes_free, 0) / a.bytes_alloc) * 100) Pct_Free,100 - round((nvl(b.bytes_free, 0) / a.bytes_alloc) * 100) Pct_used,round(maxbytes/1048576) Max
from  ( select  f.tablespace_name,sum(f.bytes) bytes_alloc,sum(decode(f.autoextensible, 'YES',f.maxbytes,'NO', f.bytes)) maxbytesfrom dba_data_files fgroup by tablespace_name) a,( select  f.tablespace_name,sum(f.bytes)  bytes_freefrom dba_free_space fgroup by tablespace_name) b
where a.tablespace_name = b.tablespace_name (+)
union all
select h.tablespace_name,round(sum(h.bytes_free + h.bytes_used) / 1048576) megs_alloc,round(sum((h.bytes_free + h.bytes_used) - nvl(p.bytes_used, 0)) / 1048576) megs_free,round(sum(nvl(p.bytes_used, 0))/ 1048576) megs_used,round((sum((h.bytes_free + h.bytes_used) - nvl(p.bytes_used, 0)) / sum(h.bytes_used + h.bytes_free)) * 100) Pct_Free,100 - round((sum((h.bytes_free + h.bytes_used) - nvl(p.bytes_used, 0)) / sum(h.bytes_used + h.bytes_free)) * 100) pct_used,round(sum(f.maxbytes) / 1048576) max
from   sys.v_$TEMP_SPACE_HEADER h, sys.v_$Temp_extent_pool p, dba_temp_files f
where  p.file_id(+) = h.file_id
and    p.tablespace_name(+) = h.tablespace_name
and    f.file_id = h.file_id
and    f.tablespace_name = h.tablespace_name
group by h.tablespace_name
ORDER BY pct_used desc ;

这篇关于工作随记:oracle重建一张1T数据量的大表的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/805621

相关文章

MiniGPT-3D, 首个高效的3D点云大语言模型,仅需一张RTX3090显卡,训练一天时间,已开源

项目主页:https://tangyuan96.github.io/minigpt_3d_project_page/ 代码:https://github.com/TangYuan96/MiniGPT-3D 论文:https://arxiv.org/pdf/2405.01413 MiniGPT-3D在多个任务上取得了SoTA,被ACM MM2024接收,只拥有47.8M的可训练参数,在一张RTX

工作常用指令与快捷键

Git提交代码 git fetch  git add .  git commit -m “desc”  git pull  git push Git查看当前分支 git symbolic-ref --short -q HEAD Git创建新的分支并切换 git checkout -b XXXXXXXXXXXXXX git push origin XXXXXXXXXXXXXX

嵌入式方向的毕业生,找工作很迷茫

一个应届硕士生的问题: 虽然我明白想成为技术大牛需要日积月累的磨练,但我总感觉自己学习方法或者哪些方面有问题,时间一天天过去,自己也每天不停学习,但总感觉自己没有想象中那样进步,总感觉找不到一个很清晰的学习规划……眼看 9 月份就要参加秋招了,我想毕业了去大城市磨练几年,涨涨见识,拓开眼界多学点东西。但是感觉自己的实力还是很不够,内心慌得不行,总怕浪费了这人生唯一的校招机会,当然我也明白,毕业

Oracle type (自定义类型的使用)

oracle - type   type定义: oracle中自定义数据类型 oracle中有基本的数据类型,如number,varchar2,date,numeric,float....但有时候我们需要特殊的格式, 如将name定义为(firstname,lastname)的形式,我们想把这个作为一个表的一列看待,这时候就要我们自己定义一个数据类型 格式 :create or repla

ORACLE 11g 创建数据库时 Enterprise Manager配置失败的解决办法 无法打开OEM的解决办法

在win7 64位系统下安装oracle11g,在使用Database configuration Assistant创建数据库时,在创建到85%的时候报错,错误如下: 解决办法: 在listener.ora中增加对BlueAeri-PC或ip地址的侦听,具体步骤如下: 1.启动Net Manager,在“监听程序”--Listener下添加一个地址,主机名写计

Oracle Start With关键字

Oracle Start With关键字 前言 旨在记录一些Oracle使用中遇到的各种各样的问题. 同时希望能帮到和我遇到同样问题的人. Start With (树查询) 问题描述: 在数据库中, 有一种比较常见得 设计模式, 层级结构 设计模式, 具体到 Oracle table中, 字段特点如下: ID, DSC, PID; 三个字段, 分别表示 当前标识的 ID(主键), DSC 当

oracle分页和mysql分页

mysql 分页 --查前5 数据select * from table_name limit 0,5 select * from table_name limit 5 --limit关键字的用法:LIMIT [offset,] rows--offset指定要返回的第一行的偏移量,rows第二个指定返回行的最大数目。初始行的偏移量是0(不是1)。   oracle 分页 --查前1-9

husky 工具配置代码检查工作流:提交代码至仓库前做代码检查

提示:这篇博客以我前两篇博客作为先修知识,请大家先去看看我前两篇博客 博客指路:前端 ESlint 代码规范及修复代码规范错误-CSDN博客前端 Vue3 项目开发—— ESLint & prettier 配置代码风格-CSDN博客 husky 工具配置代码检查工作流的作用 在工作中,我们经常需要将写好的代码提交至代码仓库 但是由于程序员疏忽而将不规范的代码提交至仓库,显然是不合理的 所

未来工作趋势:零工小程序在共享经济中的作用

经济在不断发展的同时,科技也在飞速发展。零工经济作为一种新兴的工作模式,正在全球范围内迅速崛起。特别是在中国,随着数字经济的蓬勃发展和共享经济模式的深入推广,零工小程序在促进就业、提升资源利用效率方面显示出了巨大的潜力和价值。 一、零工经济的定义及现状 零工经济是指通过临时性、自由职业或项目制的工作形式,利用互联网平台快速匹配供需双方的新型经济模式。这种模式打破了传统全职工作的界限,为劳动

Smarty模板引擎工作机制(一)

深入浅出Smarty模板引擎工作机制,我们将对比使用smarty模板引擎和没使用smarty模板引擎的两种开发方式的区别,并动手开发一个自己的模板引擎,以便加深对smarty模板引擎工作机制的理解。 在没有使用Smarty模板引擎的情况下,我们都是将PHP程序和网页模板合在一起编辑的,好比下面的源代码: <?php$title="深处浅出之Smarty模板引擎工作机制";$content=