oracle dump数据库
最近正在看老白的《DBA的思想天空》,了解数据块结构,想通过dump data block验证oracle对于行尾的NULL,是不占用存储空间的。
我们先来看一下怎样dump数据块:
1.在数据库级别dump数据库,oracle提供了命令支持
ALTER SYSETM DUMP DATAFILE absolute_file_number
BLOCK block_number;
ALTER SYSETM DUMP DATAFILE absolute_file_number
BLOCK MIN minimum_block_number
BLOCK MAX maximum_block_number;
ALTER SYSETM DUMP DATAFILE 'file_name'
BLOCK block_number;
如果需要强制dump出来的数据以十六进制显示,需要设置event 10289
ALTER SESSION SET EVENTS
'10289 trace name context forever, level 1';
然后再dump数据块,使用下列命令关闭10289
ALTER SESSION SET EVENTS
'10289 trace name context off';
需要注意的是:
- dump是,如果忽略block参数,将dump整个数据文件
- 使用文件号(absolute_file_number)是,数据库必须处于OPEN状态,并且数据文件也要求ONLINE;
- 使用文件号,dump信息来自Buffer Cache,而不是磁盘
- 使用文件名,dump信息来自磁盘,因此实例在NOMOUNT状态也可以dump
2.通过操作系统工具dump
dd if=/s01/app/oracle/oradata/MYAPP/users01.dbf of=b527.dmp bs= skip= count=
OK,补充了dump的知识,让我们来跟随老白的实验,验证null是不占用存储空间的。
CREATE TABLE TEST1 (A INTEGER,B VARCHAR2(100),C VARCHAR2(100);
INSERT INTO TEST1 VALUES (1,null,'aaaa');
INSERT INTO TEST1 VALUES (2,null,'bbbb');
INSERT INTO TEST1 VALUES (1,'',null);
然后查找这个extent所在的位置:
SELECT extent_id,file_id,block_id from dba_extents where segment_name='TEST1' and owner='SCOTT';
EXTENT_ID FILE_ID BLOCK_ID
---------- ---------- ----------
0 4 520
然后我们查询TEST1表的ROWID
SQL> select dbms_rowid.rowid_block_number('AAASwvAAEAAAAIPAAA') block# from dual;
BLOCK#
---------------------------------------------------
527
通过dd命令可以看到这三条数据。
选中部分2C 01 02:02代表长度。这里也可以验证数据块里的数据是从下往上分布的。
或者alter system dump datafile:
block_row_dump:
tab 0, row 0, @0x1f8c
tl: 12 fb: --H-FL-- lb: 0x1 cc: 3
col 0: [] c1 02
col 1: *NULL*
col 2: [] 61 61 61 61
tab 0, row 1, @0x1f80
tl: 12 fb: --H-FL-- lb: 0x1 cc: 3
col 0: [] c1 03
col 1: *NULL*
col 2: [] 62 62 62 62
tab 0, row 2, @0x1f74
tl: 12 fb: --H-FL-- lb: 0x1 cc: 2
col 0: [ 2] c1 02
col 1: [ 5] 31 31 31 31 31
end_of_block_dump
End dump data blocks tsn: 4 file#: 4 minblk 527 maxblk 527
可以看到 INSERT INTO TEST1 VALUES (1,'11111',null); dump出来只有两列数据,NULL是不占用空间的。
oracle dump数据库的更多相关文章
- 【转帖】循序渐进Oracle:数据库的字符集和字符集文件
循序渐进Oracle:数据库的字符集和字符集文件 https://blog.csdn.net/Enmotech/article/details/100869162 2019年09月15日 18:23: ...
- Oracle 11G 数据库迁移【expdp/impdp】
转自:http://www.th7.cn/db/Oracle/201802/263773.shtml 0x01 环境 A 机器,操作系统 CentOS7.3,Oracle版本:11G,IP地址:192 ...
- oracle 11g 数据库恢复技术 ---02 控制文件
oracle 11g 数据库恢复技术 ---02 控制文件 SYS@ orcl >show parameter control_file NAME TYPE VALUE ------------ ...
- Oracle创建数据库
Oracle创建数据库有三种方式:一.使用DBCA(Database Configuration Assistant 数据库配置助手):二.使用 create database指令:三.在安装数据库软 ...
- jsp+oracle实现数据库内容以表格形式在前台显示(包含分页)
jsp+oracle实现数据库内容以表格形式在前台显示(包含分页) 在文件夹内新增list_emp.jsp 代码如下: <%@ page contentType="text/html& ...
- DBCP连接Oracle,数据库重启后现OALL8 is in an inconsistent state异常
最近,DBCP连接Oracle,数据库重启后现OALL8 is in an inconsistent state异常. 版本说明 commons-dbcp-1.4.jar commons-pool-1 ...
- 在Windows 10上安装Oracle 11g数据库出现的问题及解决
在Windows 10上安装Oracle 11g数据库,并且很多次出现过:当安装的进度条进行到快要结束的时候弹出一个提示框.如下: [Java(TM)2 Platform Standard Editi ...
- oracle 数据恢复,只有oradata文件夹里的文件,没有备份文件的数据库恢复,重装系统后,oracle 10g数据库恢复
格式化重装系统后,才想起来oracle 10g 数据库没有做备份,开始以为很麻烦,没想到数据库恢复的还挺顺利的 恢复方法: 1,把原来的数据库文件备份,(D:\oracle\product\10.2. ...
- 完美完全卸载Oracle 11g数据库
Oracle 11g可在开始菜单中卸载,然后同时需要删除注册表中相关内容. 操作系统:windows10专业版. 卸载步骤: 1.停用oracle服务:进入计算机管理,在服务中,找到oracle开头的 ...
随机推荐
- [LeetCode] Maximal Square 最大正方形
Given a 2D binary matrix filled with 0's and 1's, find the largest square containing all 1's and ret ...
- [LeetCode] Reverse Words in a String 翻转字符串中的单词
Given an input string, reverse the string word by word. For example, Given s = "the sky is blue ...
- [LeetCode] Reverse Nodes in k-Group 每k个一组翻转链表
Given a linked list, reverse the nodes of a linked list k at a time and return its modified list. If ...
- redis慢查询日志
运维需要记录一下主redis中那些“慢操作”的命令,然后找到相关的业务方,不然的话,阻塞 就不好玩了.然后就直接在redis手册中就找到了相关的命令. SLOWLOG subcommand [argu ...
- SQL Server 中使用数据类型表示小数
在使用的时候发现一个问题,由于编程的习惯,当数据库中需要存储小数的时候,就想当然的使用了float类型,可结果太让人意外了. 数据库中存储了0.5没问题,当使用0.6的时候,得到的确是0.599999 ...
- C# 动态修改Config
Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None); confi ...
- win10使用技巧之如何打出偏僻字母
一.背景 有时需要在打出一些希腊字母,诸如ɛ.μ等字符,如果输入法不支持该怎么办呢?在很多国产拼音软件中,都会提供扩展方便用户寻找这类字符,但是如果用户换过一款软件,可能要在一定时间找到这些字符就没那 ...
- MYSQL (二)
视图: 视图是一个虚拟表(非真实存在),其本质是[根据SQL语句获取动态的数据集,并为其命名],用户使用时只需使用[名称]即可获取结果集,并可以将其当作表来使用. 1. 尽量使用视图完成读操作 2. ...
- LOL one Key
玩英雄联盟的小伙伴们快点来,犀利的工具哦,注意一点哦,放技能的时候别按空格,不然放不出来.最后说一句这几天常说的话 新年快乐.. 下载地址:http://pan.baidu.com/s/1eQzJ8l ...
- Web Application Penetration Testing Local File Inclusion (LFI) Testing Techniques
Web Application Penetration Testing Local File Inclusion (LFI) Testing Techniques Jan 04, 2017, Vers ...