ITPub博客

首页 > 数据库 > 国内数据库 > 达梦用户表空间的基本操作

达梦用户表空间的基本操作

原创 国内数据库 作者:u_fc1213d3ed13 时间:2020-09-30 10:16:20 0 删除 编辑

一、创建一个用户表空间
create tablespace TBS datafile '/opt/dm8/data/DAMENG/TBS01.dbf' size 128 autoextend on next 4 maxsize 10240,'/opt/dm8/data/DAMENG/TBS02.dbf' size 128 autoextend on next 4 maxsize 10240;
这个语句创建了一个TBS的表空间,初始化两个文件TBS01.dbf和TBS02.dbf  ,初始大小为128M 打开自动扩展,每次扩展4M,最大大小是10G
二、为表空间添加数据文件
数据文件操作
alter tablespace TBS add datafile  '/opt/dm8/data/DAMENG/TBS03.dbf' size 500;
alter tablespace TBS add datafile  '/opt/dm8/data/DAMENG/TBS04.dbf' size 128 autoextend on next 4 maxsize 10240;
SELECT ts.NAME, df.PATH FROM V$TABLESPACE AS ts, V$DATAFILE AS df  WHERE ts.ID= df.GROUP_ID;
三、删除表空间
删除表空间只能删除没有使用过的表空间。
drop tablespaceTBS;
四、修改表空间名称
alter tablespace TBS  rename to TBS_new ;
五、修改表空间状态
1、离线表空间
alter tablespace to TBS_new offline;
2、上线表空间
alter tablespace to TBS_new online;
六、修改表空间数据缓冲区
alter tablespace TBS_new cache="KEEP";

alter tablespace TBS_new cache="NORMAL";
七、移动数据文件
要移动数据文件,必须让表空间处于脱机状态offline
alter tablespace TBS_new offline;
alter tablespaceTBS_new rename datafile  '/opt/dm8/data/DAMENG/TBS04.dbf' to '/home/dmdba/TBS06.dbf';
alter tablespace TBS_new online;
select file_name,TABLESPACE_NAME from dba_data_files;
八、表空间的备份
backup tablespace TBS_new  backupset 'tablespace_TBS_new _bak_01';
九、表空间恢复
1、创建一张表
create table tb1 tablespace TBS_new  as select *  from dba_tables  ;
select table_name,owner from tb1 limit 5;
2、删除表空间的数据文件
SQL> host rm -rf  /opt/dm8/data/DAMENG/TBS01.dbf;
SQL>host rm -rf /opt/dm8/data/DAMENG/TBS02.dbf;
select table_name,owner from tb1 limit 5;
执行成功。
对数据文件有效性进行验证:
sp_file_sys_check();
然后再执行查询会失败。
select table_name,owner from tb1 limit 5;
执行失败
3、通过linux 句柄进行删除文件恢复。
SQL>SP_TABLESPACE_PREPARE_RECOVER('TBS_NEW');
SQL>exit
ps -ef | grep dmserver #找到DMSERVER进程
ll /proc/18459/fd 
 11 -> /opt/dm8/data/DAMENG/TBS01.dbf (deleted)
 12 -> /opt/dm8/data/DAMENG/TBS02.dbf (deleted)
cp /proc/18459 /fd/11 /opt/dm8/data/DAMENG/TBS01.dbf
cp /proc/18459 /fd/12 /opt/dm8/data/DAMENG/TBS02.dbf
SP_TABLESPACE_RECOVER('TBS_new');
cd   /opt/dm8/data/DAMENG/
可以看到两个删除的文件已经恢复了。
SQL>sp_tablespace_recover('TBS_NEW')
SQL>SP_FILE_SYS_CHECK();
SQL>select table_name,owner from tb1 limit 5;
可以执行成功。
4、通过consol 进行恢复
(1)、先创建一个表空间的备份
backup tablespace TBS_new  backupset 'tablespace_TBS_new _bak_02';
(2)停止数据库服务
DmServiceDMSERVER stop
调用console
启动数据库
DmServiceDMSERVER start
验证数据是否恢复:
select table_name,owner from tb1 limit 5;
5、通过DMRMAN进行恢复
(1)停止数据库服务
DmServiceDMSERVER stop
(2)启动DMRMAN进行恢复
RESTORE DATABASE '/opt/dm8/data/DAMENG/dm.ini'  tablespace tbs_new FROM BACKUPSET '/opt/dm8/data/DAMENG/bak/tablespace_TBS_new _bak_02' DEVICE TYPE disk;
RECOVER DATABASE '/opt/dm8/data/DAMENG/dm.ini'  tablespace tbs_new WITH ARCHIVEDIR '/home/dmdba/arc';
验证:
DmServiceDMSERVER start
验证数据是否恢复:
select table_name,owner from tb1 limit 5;

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69974986/viewspace-2725215/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: 没有了~
下一篇: 没有了~
请登录后发表评论 登录
全部评论

注册时间:2020-09-29

  • 博文量
    1
  • 访问量
    4275