一、修改表空间中数据文件的状态
1.任务场景:在数据应用过程中,总会碰到短期不的数据。那么我们需要站在释放资源角度,将这些数据进行归档。在数据中就是管理数据温江状态。
2.分类
online:在线,数据文件可用
offline:离线,数据文件不可用,运行在归档状态下
offline drop:数据文件不可用,运行在非归档状态下
3.格式
alter database
datafile file_name online|offline|offline drop
4.实践
例如:修改myspace02.dbf 文件状态为offline drop状态。
alter database
database 'E:\class\oracle\datafile2\myspace02.dbf' offline drop;
例如:修改myspace02.dbf数据文件状态online。
alter database
datafile 'E:\class\oracle\datafile2\myspace02.dbf' online;
通过运行测试我们可以看出,运行在非归档模式下的数据文件不可用状态是
无法直接切换成online状态的。我们需要进行介质回复才可以京数据文件状态再次切换为online状态。
第一步使用recover datafile可以进行介质恢复
recover datafile 'E:\class\oracle\datafile2\myspace02.dbf';
第二步切换状态
alter database
datafile 'E:\class\oracle\datafile2\myspace02.dbf' online;
二、移动表空间数据文件
1.任务场景在软件使用过程中会碰到数据迁移的需求,这个时候需要移动数据文件
2.步骤
第一步切换表空间的状态offline
第二步移动数据文件位置,并修改文件名
第三步给表空间说明数据文件存放位置
第四步切换表空间的状态online
3.实践
例如:移动表空间myspace02.dbf的位置。
第一步切换表空间的状态offline
alter tablespace myspace offline;
第二步移动数据文件位置(在d盘创建一个d:data),并修改文件名为myspace02.dbf
第三步给表空间说明数据文件存放位置
alter tablespace myspace
rename datafile 'E:\class\oracle\datafile2\myspace02.dbf'
to 'E:\class\data\myspace03.dbf'
第四步切换表空间的状态online
alter tablespace myspace online;
三、表空间的删除
1.格式
drop tablespace tablespace_name
[including contents and datafiles]
2.实践
例如:删除myspace表空间以及他的数据文件
drop tablespace myspace including contents and datafiles;
四、临时表空间
1.任务场景:在使用软件的过程中因查询、订单统计产生数据也需要有暂存表空间,这个表空间就成为临时表空间。
2.格式
create temporary tablespace tablespace_name
tempfile'文件存放路径,文件名'
size
autoextend [on|off]next k|m
maxsize k|m
3.实践
例如:
创建一个临时表空间mytemp。
create temporary tablespace mytemp
tempfile 'E:\class\oracle\datafile3\mytemp.dbf'
size 10M
autoextend on next 2M
maxsize 20M;
二、创建与管理临时表空间
1.格式
create temporary tablespace tablespace__name
tempfile '文件存放路径,文件名'
size
autoextend [on|off] next k|m
maxsize k|m
tablespace group group_name;
2.实践
例如:创建临时表空间temp1、temp2,并将他们所在的组都指定为group1
create temporary tablespace temp1
tempfile 'C:\datafile\temp1.dbf'
size 2M
tablespace group group1;
create temporary tablespace temp2
tempfile 'C:\datafile\temp2.dbf'
size 2M
tablespace group group1;
查看临时表空间的组
select group_name,tablespace_name
from dba_tablespace_groups
where group_name='GROUP1';
10月13日
一、移动临时表空间
1.格式
alter tablespace tablespace_name group group_name;
2.实践
例如:尝试将temp1移动到group2
alter tablespace temp1 tablespace group group2;
查看临时表空间的组
select group_name,tablespace_name
from dba_tablespace_groups
where group_name='GROUP1';
查看临时表空间的组
select group_name,tablespace_name
from dba_tablespace_groups
where group_name='GROUP2';
二、大文件表空间
1.任务场景
随着数量变多,更多数据块要求能够存储更多的数据。因此我们需要通过大文件表空间创建满足大数据块的需求。
普通数据块最大4M,而大文件表空间数据块4G.
2.格式
create bigfile tablespace tablespace_name
datafile 'datafile_name'
size
autoextend [on|off] next k|m
maxsize k|m
3.实践
例如:创建一个大文件表空间mybigspace.
create bigfile tablespace mybigspace
datafile 'C:\datafile\mybigspace.dbf'
size 10m;
三、非标准数据块表空间
1.任务场景:在数据存储的过程中我们会碰到数据存储容量大小个性化的需求,那么在这种情况下我们可以自行设置数据块满足我们数据存放的要求。
2.查看标准数据块大小
show parameter db_block_size;
3.数据块参数和大小对照
block db_nk_cache_size
2kb db_nk_cache_size
4kb db_nk_cache_size
8kb b_nk_cache_size
16kb db_nk_cache_size
32kb db_nk_cache_size
4.实践
例如:创建一个非标准数据块表空间nostandard,数据块设置为16kb。
create tablespace nostandard
datafile 'c:\datafile\nostandard.dbf'
size 5m
blocksize 16k;
通过测试我们发现,当创建非标准数据块表空间的时候如果没有提前设置数据块,他会提示报错不让完成非标准数据块表空间的创建。
第一步查看db_16k_cache_size数据块大小
show parameter db_16k_cache_size;
第二步使用设置数据完成非标准数据块大小的指定
alter system set db_16k_cache_size=20m;
第三步查看db_16k_cache_size数据块大小
show parameter db_16k_cache_size;
第四步完成非标准数据块表空间的创建
creat tablespace nostandard
datafile 'c:\datafile\nostandard.dbf'
size 5m
blocksize 16k;
10月13 日
一、设置默认表空间
1.任务场景:在安装Oracle数据库的时候,系统会自动的将users和temp设置为默认的永久表空间和临时表空间。如果用户需要将自己设置的表空间指定可用表空间,需要进行设置。
2.格式
alter database default [temporary] tablespace tablespace_name;
3.实践
例如:尝试将myspace设置为默认的永久空间,myspace设置为默认临时表空间。
第一步查看目前系统默认的永久表空间和临时表空间。
select property_name,property_value,description
from database_properties
where property_name
in('DEFAULT_PERMANENT_TABLESPACE','DEFAULT_TEMP_TABLESPACE');
第二步指定myspace设置为默认的永久表空间,mytemp设置为默认临时表空间
alter database default tablespace myspace;
alter database default temporary tablespace myspace;
第三步查看目前系统默认的永久表空间和临时表空间。
select property_name,property_value,description
from database_properties
where property_name
in('DEFAULT_PERMANENT_TABLESPACE','DEFAULT_TEMP_TABLESPACE');
二、撤销表空间
1.任务场景:在软件使用过程中,我们会碰到数据恢复的需求。即没修改的数据需要有暂时存放的空间,这个空间被我们称之为撤销表空间。
2.格式
create UNDO tablespace tablespace_name
datafile 'datafile_name'
size
autoextend [on|off] next k|m
maxsize k|m
3.实践
例如:创建一个名为myundo撤销表空间。
create UNDO tablespace myundo
datafile 'c:\datafile\myundo.dbf'
size 10m;
三、切换撤销表空间p67
1.任务场景:在数据库中可以创建很多表空间,那么哪个撤销表空间是我们目前正在使用的撤销表空间呢?
可以由数据库管理员完成切换设置。
2.格式
alter system set undo_tablespace=tablespace_name
3.实践
例如:尝试设置myundo为正在使用的撤销表空间
第一步查看目前正在使用的默认撤销表空间
show parameter undo_tablespace;
第二步设置myundo为正在使用的撤销表空间
alter system set undo_tablespace='myundo';
第三步查看目前正在使用的默认撤销表空间
show parameter undo_tablespace;