您的位置:首页 > 数据库 > Oracle

Oracle:Tablespace & Datafile

2013-08-08 15:19 344 查看
-- 创建本地管理表空间(LMT)

CREATE TABLESPACE TEST DATAFILE 'F:/temp/test1.dbf' SIZE 5M AUTOEXTEND ON NEXT 1M MAXSIZE 10M,'F:/temp/test2.dbf' SIZE 5M;

-- 创建字典管理的表空间(DMT)

CREATE TABLESPACE TEST

DATAFILE 'D:\APP\ORADATA\test01.DBF' SIZE 5M

MINIMUM EXTENT 50K EXTENT MANAGEMENT DICTIONARY

DEFAULT STORAGE (INITIAL 50K NEXT 50K MAXEXTENTS 100 PCTINCREASE 0);

CREATE TABLESPACE TEST

DATAFILE 'D:\APP\ORADATA\test01.DBF' SIZE 5M AUTOEXTEND ON NEXT 1M MAXSIZE 20M,

'D:\APP\ORADATA\test02.DBF' SIZE 5M AUTOEXTEND OFF

EXTENT MANAGEMENT LOCAL

LOGGING

ONLINE

UNIFORM SIZE 1M;

-- 创建索引表空间

CREATE TABLESPACE test_index

DATAFILE 'D:\APP\ORADATA\test_index01.DBF' SIZE 5M

EXTENT MANAGEMENT LOCAL

UNIFORM SIZE 1M;

-- 创建UNDO表空间

CREATE UNDO TABLESPACE test_undo

DATAFILE 'D:\APP\ORADATA\test_undo01.DBF' SIZE 5M;

-- 删除表空间

DROP TABLESPACE TEST INCLUDING CONTENTS AND DATAFILES;

-- 查询数据库默认表空间

SELECT * FROM database_properties WHERE property_name IN ('DEFAULT_TEMP_TABLESPACE','DEFAULT_PERMANENT_TABLESPACE');

-- 修改数据库默认表空间

ALTER DATABASE DEFAULT TABLESPACE USERS;

ALTER DATABASE DEFAULT TEMPORARY TABLESPACE TEST_temp;

-- 说明

create tablespace 默认是LOGGING ,LOCAL MANAGEMENT

system如果为local管理则不允许再建dictionary管理表空间

数据字典:

-- 表空间

SELECT a.ts# ,b.*

FROM v$tablespace a ,dba_tablespaces b

WHERE a.name = b.tablespace_name;

-- 表空间包含的数据文件

SELECT * FROM dba_data_files;

SELECT * FROM v$datafile;

-- 数据文件改变大小,可以使用文件名或file_ID

ALTER DATABASE DATAFILE 'D:\APP\ORADATA\TEST02.DBF' RESIZE 6M;

ALTER DATABASE DATAFILE 8 RESIZE 8M;

-- 表空间增加数据文件

ALTER TABLESPACE TEST ADD DATAFILE 'D:\APP\ORADATA\TEST03.DBF' SIZE 5M AUTOEXTEND OFF;

-- 创建临时表空间,临时表空间只能用标准块,总是nologging

CREATE TEMPORARY TABLESPACE test_temp

TEMPFILE 'D:\APP\ORADATA\test_temp01.DBF' SIZE 5M

EXTENT MANAGEMENT LOCAL

UNIFORM SIZE 1M;

SELECT * FROM dba_temp_files;

SELECT * FROM v$tempfile;

-- 表空间脱机/联机

ALTER TABLESPACE TEST_undo OFFLINE; -- UNDO表空间存在回滚段则不能脱机

ALTER TABLESPACE TEST OFFLINE;

ALTER TABLESPACE TEST ONLINE;

-- 表空间只读/可读写

ALTER TABLESPACE TEST READ ONLY;

ALTER TABLESPACE TEST READ WRITE;

/** 表空间移动的两种方法 **/

---- 1.表空间脱机

ALTER TABLESPACE TEST OFFLINE;

---- 2.移动文件

host copy D:\APP\ORADATA\TEST03.DBF D:\APP\ORADATA\TEST13.DBF

---- 3.更新表空间的数据文件

ALTER TABLESPACE TEST RENAME DATAFILE 'D:\APP\ORADATA\TEST03.DBF' TO 'D:\APP\ORADATA\TEST13.DBF';

---- 4.表空间联机

ALTER TABLESPACE TEST ONLINE;

---- 5.删除原数据文件

host del D:\APP\ORADATA\TEST03.DBF

---- 1.数据库置为mount状态

starup FORCE MOUNT;

---- 2.移动文件

host copy D:\APP\ORADATA\TEST13.DBF D:\APP\ORADATA\TEST03.DBF

---- 3.更新表空间的数据文件,数据库名(v$database.name)

ALTER DATABASE demo RENAME FILE 'D:\APP\ORADATA\TEST13.DBF' TO 'D:\APP\ORADATA\TEST03.DBF';

---- 4.启动数据库

ALTER DATABASE OPEN;

---- 5.删除原数据文件

host del D:\APP\ORADATA\TEST13.DBF

-- 表空间、数据文件的介质恢复

RECOVER TABLESPACE TEST;

RECOVER DATAFILE 'D:\APP\ORADATA\TEST03.DBF';

-- 字典管理 --> 本地管理

EXEC dbms_space_admin.tablespace_migrate_to_local('TEST');

-- 本地管理 --> 字典管理

EXEC dmbs_space_admin.tablespace_migrate_from_local('TEST');

-- OMF管理

ALTER SYSTEM SET db_create_file_dest = 'D:\app\OraData\OMF';

CREATE TABLESPACE testomf;

ALTER TABLESPACE testomf ADD DATAFILE 'D:\app\OraData\OMF\DEMO\DATAFILE\testomf01.dbf' SIZE 5M;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: