创建表空间
CREATE TABLESPACE用于在数据库中创建一个新的表空间。
SYSTEM/SYSAUX/UNDO/SWAP/TEMPORARY/DEFAULT表空间在CREATE DATABASE时自动创建,无需手动CREATE TABLESPACE创建。
为了方便管理,当有不同的业务用户时,需要给不同用户的创建不同的表空间。
创建表空间示例
SQL>CREATE TABLESPACE yashan1 DATAFILE 'yashan1' SIZE 4M AUTOEXTEND ON NEXT 4M MAXSIZE 1G;
运行上面的命令后,会自动在数据目录创建表空间文件:
[yashan@node10 dbfiles]$ pwd
/home/yashan/yasdb_data/db-1-1/dbfiles
[yashan@node10 dbfiles]$ ls
ctrl1 ctrl2 ctrl3 dwf redo1 redo2 redo3 redo4 swap sysaux system temp undo users yashan1
[yashan@node10 dbfiles]$ du -sh yashan1
4.0M yashan1
新建用户指定表空间
SQL>CREATE USER yashan_user1 IDENTIFIED BY yashan_pwd1 DEFAULT TABLESPACE yashan1;
SQL>GRANT DBA TO yashan_user1;
修改用户密码:
SQL> alter user yashan_user1 identified by "Rscpass123."; #一定要加双引号
修改用户默认表空间
SQL>ALTER USER yashan_user1 DEFAULT TABLESPACE users;
删除表空间
DROP TABLESPACE用于删除一个表空间。
注意:
不能删除一个已被某个用户指定的DEFAULT TABLESPACE,必须先通过ALTER USER语句将其变更。
不能删除一个已创建了任何数据库对象的表空间,除非指定了INCLUDING CONTENTS语句。
如果表空间中存在被其他表空间对象定义的外键约束,那么即使指定了INCLUDING CONTENTS语句,该表空间也
不能被删除,除非同时指定了CASCADE CONSTRAINT。
不能删除SYSTEM/SYSAUX/UNDO/SWAP/TEMPORARY/DEFAULT等内置表空间
删除表空间示例
SQL>DROP TABLESPACE yashan1 INCLUDING CONTENTS AND DATAFILES CASCADE CONSTRAINTS;
INCLUDING CONTENTS
删除表空间后,对应的数据文件也删除了:
[yashan@node10 dbfiles]$ ls
ctrl1 ctrl2 ctrl3 dwf redo1 redo2 redo3 redo4 swap sysaux system temp undo users
该语句用于指定将表空间及其包含的所有对象都删除。
AND|KEEP DATAFILES
指定在删除表空间时,其对应的数据文件是被删除,还是被保留,缺省为保留。
CASCADE CONSTRAINT
当存在其他表空间里的对象定义了到本表空间里对象的外键约束时,先将这些外键约束项删除,再删除本表空间。
ALTER TABLESPACE维护表空间
ALTER TABLESPACE语句用于更改一个已存在的表空间的相关属性。
增加数据文件
SQL>ALTER TABLESPACE yashan1 ADD DATAFILE;
SQL>ALTER TABLESPACE yashan1 ADD DATAFILE;
会自动添加数据文件:
[yashan@node10 dbfiles]$ ls
ctrl1 ctrl3 redo1 redo3 swap system undo yashan1 YASHAN12
ctrl2 dwf redo2 redo4 sysaux temp users YASHAN11
[yashan@node10 dbfiles]$ du -sh ./*
4.0M ./yashan1
64M ./YASHAN11
64M ./YASHAN12
空闲空间回收
SQL>ALTER TABLESPACE yashan1 SHRINK SPACE;
CREATE TABLESPACE用于在数据库中创建一个新的表空间。
SYSTEM/SYSAUX/UNDO/SWAP/TEMPORARY/DEFAULT表空间在CREATE DATABASE时自动创建,无需手动CREATE TABLESPACE创建。
为了方便管理,当有不同的业务用户时,需要给不同用户的创建不同的表空间。
创建表空间示例
SQL>CREATE TABLESPACE yashan1 DATAFILE 'yashan1' SIZE 4M AUTOEXTEND ON NEXT 4M MAXSIZE 1G;
运行上面的命令后,会自动在数据目录创建表空间文件:
[yashan@node10 dbfiles]$ pwd
/home/yashan/yasdb_data/db-1-1/dbfiles
[yashan@node10 dbfiles]$ ls
ctrl1 ctrl2 ctrl3 dwf redo1 redo2 redo3 redo4 swap sysaux system temp undo users yashan1
[yashan@node10 dbfiles]$ du -sh yashan1
4.0M yashan1
新建用户指定表空间
SQL>CREATE USER yashan_user1 IDENTIFIED BY yashan_pwd1 DEFAULT TABLESPACE yashan1;
SQL>GRANT DBA TO yashan_user1;
修改用户密码:
SQL> alter user yashan_user1 identified by "Rscpass123."; #一定要加双引号
修改用户默认表空间
SQL>ALTER USER yashan_user1 DEFAULT TABLESPACE users;
删除表空间
DROP TABLESPACE用于删除一个表空间。
注意:
不能删除一个已被某个用户指定的DEFAULT TABLESPACE,必须先通过ALTER USER语句将其变更。
不能删除一个已创建了任何数据库对象的表空间,除非指定了INCLUDING CONTENTS语句。
如果表空间中存在被其他表空间对象定义的外键约束,那么即使指定了INCLUDING CONTENTS语句,该表空间也
不能被删除,除非同时指定了CASCADE CONSTRAINT。
不能删除SYSTEM/SYSAUX/UNDO/SWAP/TEMPORARY/DEFAULT等内置表空间
删除表空间示例
SQL>DROP TABLESPACE yashan1 INCLUDING CONTENTS AND DATAFILES CASCADE CONSTRAINTS;
INCLUDING CONTENTS
删除表空间后,对应的数据文件也删除了:
[yashan@node10 dbfiles]$ ls
ctrl1 ctrl2 ctrl3 dwf redo1 redo2 redo3 redo4 swap sysaux system temp undo users
该语句用于指定将表空间及其包含的所有对象都删除。
AND|KEEP DATAFILES
指定在删除表空间时,其对应的数据文件是被删除,还是被保留,缺省为保留。
CASCADE CONSTRAINT
当存在其他表空间里的对象定义了到本表空间里对象的外键约束时,先将这些外键约束项删除,再删除本表空间。
ALTER TABLESPACE维护表空间
ALTER TABLESPACE语句用于更改一个已存在的表空间的相关属性。
增加数据文件
SQL>ALTER TABLESPACE yashan1 ADD DATAFILE;
SQL>ALTER TABLESPACE yashan1 ADD DATAFILE;
会自动添加数据文件:
[yashan@node10 dbfiles]$ ls
ctrl1 ctrl3 redo1 redo3 swap system undo yashan1 YASHAN12
ctrl2 dwf redo2 redo4 sysaux temp users YASHAN11
[yashan@node10 dbfiles]$ du -sh ./*
4.0M ./yashan1
64M ./YASHAN11
64M ./YASHAN12
空闲空间回收
SQL>ALTER TABLESPACE yashan1 SHRINK SPACE;