拓扑园

  • O&M
    • Universal部署
    • PHP+VUE+Laravel相关
  • Oracle性能优化
  • Oracle项目案例
    • Oracle近期项目案例(目录)
    • Oracle实战问题解析(目录)
    • Oracle数据库名变更流程(2种方式)
    • Oracle数据库目录更换流程(使用Oracle的clone工具)
    • Oracle数据库迁移方案(目录)
    • 标准化文档系列
  • Oracle基础知识
    • LLL的Oracle培训(分类)
    • LLL的docker培训(分类)
    • 标准化文档系列--(分类)
    • Oracle核心经典分析(分类)
    • 图灵小队----(分类并包含以下文章)
    • --MySQL8.0/Oracle/Memcached/Redis等安装配置于RHEL/OL6/7/8.X系列-运行环境最优配置
    • --PG安装配置于RHEL/9X系列-运行环境最优配置
    • --自动维护任务详解-开启、关闭信息统计收集(统计信息)
    • --图灵小队—Oracle/PostgreSQL下创建一个用户测试表(自行定义数据行)
    • --图灵小队-Oracle存储过程导出表的明细_UTL_FILE(文章)
    • --图灵小队-Oracle数据库删除/卸载操作指南(文章)
    • --图灵小队-Oracle常用性能查询SQL语句(文章)
    • --图灵小队-Oracle数据库上线前检查(文章)
    • --图灵小队-Oracle常用SQL语句(文章)
    • --图灵小队—Linux/Oracle脚本/MySQL合集(持续更新)
    • --图灵小队-Oracle技巧记录(文章)
    • ADG
    • RAC
    • ASM
    • OGG
    • RMAN
    • EXPDP/IMPDP
    • 工厂数据导入导出系列
  • MySQL
    • MySQL数据库规范
    • MySQL项目案例
    • MySQL安装配置
    • MYSQL集群项目
    • MySQL常见处理
    • MySQL-Sysbench专题
    • MySQL-Percona Toolkit专题
  • Linux
    • Shell编程
    • kubernetes
    • docker
    • Linux
    • PHP
    • Nginx
    • haproxy
    • mail
    • 网站
    • 域名
    • 网址收藏
  • 数据中心
    • 新框架系统集合
    • 工作文档
    • EBS数据文件扩容
    • VMware虚拟化
    • EBS系列
    • 大数据
    • SVN
    • zabbix
    • SAP
    • 备份相关
    • FC交换机
    • SVN
  • K-Studing
    • D8-Python学习
    • Oracle/MySQl等面试题
    • LG-MySQL
    • LG-Docker/K8S
    • LG-PostgreSQL
    • LG-ORACLE_BBED
    • LG-ORACLE
    • LG-Elasticsearch(ES)+ELK
    • Oracle-19C-OCP
    • WERN_ORACLE培训
    • redis数据库
    • Nginx培训学习系列
  • 其他
    • 外研英语4年级下册-听力
    • 影视系列
    • 如何使用iTunes软件通过抓包下载旧版本的ios的app
天高任鸟飞
Oracle/MySQL数据库恢复/数据迁移/生产规范报告技术交流:TEL:18562510581(微信同号);加微信入群
  1. 首页
  2. 技术学习系列
  3. Oracle-19C-OCP
  4. 正文

Oracle OCP 19C学习—Day5.1—数据库空间优化实操——表空间收缩

2022年6月14日 975点热度 0人点赞 0条评论

目录

  • 一、预警值设置案例
    • 1、查看默认表空间
    • 2、恢复pct预警值
    • 3、查看默认的值
    • 4、确认表是自动段管理的(手动管理的表,是无法shrink的)
    • 5、查看当前表空间CDATA的PCT_FREE大小
    • 6、设置最新的预警值(55,70)
  • 二、数据表收缩案例
    • 1、创建表空间,用户及表
    • 2、查看压缩前块数量
    • 3、查看PCT值
    • 4、插入数据直到pct_free到40%左右
    • 5、查看pct
    • 6、声明一个TASK
    • 7、执行这个task
    • 8、获取优化建议结果
    • 9、得到优化语句
    • 10\
    • 10、空间收缩
      • (1)开启表的行迁移功能
      • (2)开始压缩
      • (3)查看压缩后块数量
      • (4)关闭行迁移

一、预警值设置案例

1、查看默认表空间

SQL>select PROPERTY_NAME,PROPERTY_VALUE from database_properties where property_name like '%DEFAULT%';

2、恢复pct预警值

SQL> exec DBMS_SERVER_ALERT.SET_THRESHOLD(dbms_server_alert.tablespace_pct_full, NULL,NULL,NULL,NULL,1,1,NULL,dbms_server_alert.object_type_tablespace,NULL);

3、查看默认的值

col critical_value for a20
col warning_value for a20
select warning_value,critical_value from dba_thresholds where object_name='USERS';

4、确认表是自动段管理的(手动管理的表,是无法shrink的)

其中tablespace是system的,undo,temp的表空间的segment_space_management是手动管理的。

如果把表建在system上,是无法进行shrink的。

SQL>select tablespace_name,segment_space_management from dba_tablespaces;

5、查看当前表空间CDATA的PCT_FREE大小

SQL>select df.tablespace_name tablespace,fs.bytes free,df.bytes,fs.bytes *100/ df.bytes pct_free from dba_data_files df,dba_free_space fs where df.tablespace_name=fs.tablespace_name and df.tablespace_name = 'CDATA' ;

6、设置最新的预警值(55,70)

SQL/PLUS执行,object_name是存在的才可以。

SQL>exec dbms_server_alert.set_threshold(-
metrics_id=> dbms_server_alert.tablespace_pct_full,- 
warning_operator=> dbms_server_alert.operator_ge,-
warning_value=>'55',-
critical_operator=> dbms_server_alert.operator_ge,-
critical_value=>'70',-
observation_period=> 1,-
consecutive_occurrences=> 1, -
instance_name=>'OCPORCL',-
object_type => dbms_server_alert.object_type_tablespace,- 
object_name =>'USERS');

二、数据表收缩案例

1、创建表空间,用户及表

SQL>create tablespace tbs_test datafile '/oracle/oradata/orclpdb3.dbf' size 10m autoextend off;

SQL>create user test identified by 123 default tablespace tbs_test;
SQL>insert into t_test values(1,'LLL01');

2、查看压缩前块数量

SQL>select blocks from user_segments where segment_name= 'T_TEST' ;
 BLOCKS
----------
8

3、查看PCT值

SQL>select df.tablespace_name tablespace,fs.bytes free,df.bytes,fs.bytes*100/df.bytes pct_free from dba_data_files df,dba_free_space fs where df.tablespace_name=fs.tablespace_name and df.tablespace_name = 'TBS_TEST';

4、插入数据直到pct_free到40%左右

insert into t_test select * from t_test;

5、查看pct

SQL>select df.tablespace_name tablespace,fs.bytes free,df.bytes,fs.bytes*100/df.bytes pct_free from dba_data_files df,dba_free_space fs where df.tablespace_name=fs.tablespace_name and df.tablespace_name = 'TBS_TEST';
TABLESPACE    FREE      BYTES        PCT_FREE
---------- ---------   -----------  -----------
TBS_TEST     4194304    10485760      40

6、声明一个TASK

SQL>DECLARE
tname VARCHAR2(128) := 'my_seg.task3';
tname_desc VARCHAR2(128) := 'Gec shrink advice for segments in USERS';
task_id NUMBER;
object_id NUMBER;
objeccname VARCHAR2 (100);
objectcype VARCHAR2 (100);
BEGIN
dbms_advisor.create_task('Segment Advisor', task_id, tname, tname_desc, NULL);
dbms_advisor.create_object(tname, 'TABLESPACE', 'TBS_TEST',' ',' ',NULL,' ',object_id);
END;
/

如果有重复,可以先删除任务

SQL>begin
dbms_advisor.delete_task('my_seg.task3');
end;
/

7、执行这个task

SQL>DECLARE
tname VARCHAR2(128) := 'my_seg.task3';
BEGIN
dbms_advisor.EXECUTE_TASK(tname);
END;
/

8、获取优化建议结果

SQL>SElECT DESCRIPTION FROM dba_advisor_tasks WHERE TASK_NAME='my_seg.task3';
SQL>select attr1,attr2,message from dba_advisor_findings f,dba_advisor_objects o where f.task_name=o.task_name and f.object_id=o.object_id and f.task_name='my_seg.task3';

9、得到优化语句

SQL> select tablespace_name, segment_name, segment_type, recommendations, c1 from table( dbms_space . asa_recommendations( 'TRUE ', 'TRUE', 'FALSE')) ;

10\

>select blocks from user_segments where segment_name= 'T_TEST' ;

BLOCKS
----------
896

10、空间收缩

(1)开启表的行迁移功能

SQL>alter table test.t_test enable row movement;

(2)开始压缩

分两个步骤,迁移和压缩

SQL>alter table test.t_test shrink space;

(3)查看压缩后块数量

SQL>select blocks from user_segments where segment_name= 'T_TEST' ;

BLOCKS
----------
880

(4)关闭行迁移

SQL>alter table test.t_test disable row movement;

 

本作品采用 知识共享署名 4.0 国际许可协议 进行许可
标签: 暂无
最后更新:2022年9月2日

admin

这个人很懒,什么都没留下

打赏 点赞
< 上一篇
下一篇 >

COPYRIGHT © 2022 拓扑园. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang

鲁ICP备2021020523号

鲁ICP备2021020523号