暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

oracle 19c 表空间

shenma 2024-06-10
205

见:https://www.topunix.com/post-4374.html

一、在CDB/PDB创建永久表空间

二、定义默认永久表空间

三、临时表空间

四、更改和删除表空间

五、查看表空间信息

六、实现OMF文件托管

七、扩大数据库

八、移动或重命名文件

1、在线移动数据文件???

SQL> alter database move datafile " /u01/app/oracle/oradata/orclpdb3_ INVENTORY2. dbf' to '/u01/app/oracle/oradata/CDBTEST/C4894D0E624E2D95E053BF 3848C0FBFF/datafile/INVENTO
RY2.dbf";


表空间管理

oracle 支持不同块尺寸的表空间(只有oracle數據庫支持)

表空間分爲標準快的表空間和非標準快的表空間。

SQL> select tablespace_name,block_size,status,logging,extent_management,segment_space_management from dba_tablespaces;-------查詢表空間的信息

TABLESPACE_NAME BLOCK_SIZE STATUS LOGGING EXTENT_MAN SEGMEN
------------------------------ ---------- --------- --------- ---------- ------
SYSTEM 8192 ONLINE LOGGING LOCAL MANUAL
SYSAUX 8192 ONLINE LOGGING LOCAL AUTO
UNDOTBS1 8192 ONLINE LOGGING LOCAL MANUAL
TEMP 8192 ONLINE NOLOGGING LOCAL MANUAL
USERS 8192 ONLINE LOGGING LOCAL AUTO
EXAMPLE 8192 ONLINE NOLOGGING LOCAL AUTO


我们在创建非标准块的表空间时,数据库是不允许我们创建的。因为数据库的标准块默认为8k,数据缓冲区会是很多个8k的内存槽,如果我们设置块为16k,那么这个16k的块是不能装进8k的内存槽的,这个时候我们就需要去创建个16k的缓冲区,以后这个缓冲区就装16k的数据块。

SQL> show parameter db_cache_size;----查看内存块的大小
SQL> alter system set db_16k_cache_size=10m;-----设置16k的内存块,修改内存块的大小要在cdb$root下面更改
SQL> select property_name,property_value,description from database_properties;-----查看默认的表空间 字符集

默认的表空间:如果在创建表的时候指定了表空间就会将数据放进指定的表空间,如果没有指定,那么数据就会存进默认的表空间。

select tablespace_name,file_name from dba_temp_files;---------查看临时表空间的数据

设置表空间为offline的3种方式:

normal:如果表空間的任何數據文件都不存在錯誤條件,則表空間可以正常脫機。oracle數據庫在使表空間的所有數據文件脫機時,會爲他們設置一個檢查點,從而保證所有數據都寫入磁盤。

tempory:即使表空間中的一個或多個文件出現錯誤,也可以暫時使表空間脫機。oracle數據庫將數據文件脫機時,并在脱机时对其执行检查点。如果没有文件处于脱机状态,但使用了临时子句,则无需进行介质恢复。但是,如果表空间的一个或多个文件由于写入错误而脱机,并且已经暂时使表空间脱机,则需要恢复表空间,然后才能使其重新联机。

immediate:表空间可以立即脱机,而oracle数据库不会对任何数据文件设置检查点,需要进行介质恢复。

SQL> alter database move datafile '/u01/app/oracle/oradata/CDB/user01.dbf' to '/u01/app/oracle/oradata/CDB/pdb1/users01.dbf';---在线移动数据文件的位置,并且可以直接移动os文件的位置,很神奇对吧

Database altered.

创建表空间

SQL> create tablespace ts001 datafile '+DATA/orcl/datafile/ts001.DBF' size 100M
'+DATA/orcl/datafile/ts002.DBF' size 100M
autoextend on next 100M---当表空间的数据文件不足时会自动给数据文件增加100M
maxsize 2G---表空间最大为2G
EXTENT MANAGEMENT LOCAL------表空间的区为本地管理
UNIFORM SIZE 1M;-------表空间每个extent的大小为1M

重置表空间的大小

SQL> alter database orcl datafile '+DATA/orcl/datafile/ts001_2.dbf' resize 200M;------第一种方式:修改数据文件的大小
SQL> alter tablespace ts001 add datafile '+DATA/orcl/datafile/ts001_2.dbf' size 100M
autoextend on next 50m;-----第二种方式:为表空间增加数据文件

重命名数据文件

第一种方式:停库操作

关闭数据库,移动操作系统文件,然后将数据库启动到mount状态修改控制文件信息,最后需要删除原来的文件

SQL> alter database rename file '+DATA/orcl/datafile/ts001_1.dbf' to '+DATA/orcl/datafile/ts1_001.dbf'; Database altered.


第二种方式:不需要停库

将表空间离线,移动操作系统文件然后修改修改控制文件信息,再将表空间上线,最后需要删除原来的操作系统文件

SQL> alter tablespace ts001 offline;
Tablespace altered.
SQL> alter tablespace rename file '+DATA/orcl/datafile/ts001.dbf' to '+DATA/orcl/datafile/ts001_1.dbf';
Tablespace altered.
SQL> alter tablespace ts001 online;

删除表空间

DROP TABLESPACE DUMP INCLUDING CONTENTS AND DATAFILES;--------删除表空间的同时删除表空间的内容和操作系统数据文件

一、创建数据库PDB

二、创建表空间

# 连接到数据库后查看当前所有的PDB
show pdbs;
# 连接到想要操作的pdb
alter session set container=YUFEI;
# 查看当前pdb的状态
select status from v$instance;
# 如果pdb处于关闭状态,可以打开pdb
alter database open;

# 创建名字为YANBING的表空间,路径为/data/ORCL/jjcwcs/yanbing.dbf 表空间大小为1GB并按照10M自己增长,最大不限。
CREATE TABLESPACE yanbing DATAFILE '/data/ORCL/jjcwcs/yanbing.dbf' SIZE 1G AUTOEXTEND ON NEXT 10M MAXSIZE UNLIMITED;
# 创建表空间如果不知道路径的话,可以用下面命令看一下pdb的路径,然后放到pdb的路径里面即可。
select * from dba_data_files;

# 如果需要删除表空间,切记不可以直接删除,后面需要加上参数才能删除干净。如下:
drop tablespace yanbing INCLUDING CONTENTS and datafiles;

三、创建用户

# 创建名为LYB的用户,密码为12345678默认表空间为yanbing
create user LYB identified by 12345678 default tablespace yanbing;

四、给用户授权

# 给用户LYB授权
grant connect,resource,create view,unlimited tablespace to LYB;



「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论