达梦数据库表空间日常操作

1、创建一个用户表空间
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

2、为表空间添加数据文件
数据文件操作
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 T A B L E S P A C E A S t s , V TABLESPACE AS ts, V TABLESPACEASts,VDATAFILE AS df WHERE ts.ID= df.GROUP_ID;

3、删除表空间
删除表空间只能删除没有使用过的表空间。
drop tablespaceTBS;

4、修改表空间名称
alter tablespace TBS rename to TBS_new ;

5、修改表空间状态
a、离线表空间
alter tablespace to TBS_new offline;
b、上线表空间
alter tablespace to TBS_new online;

6、修改表空间数据缓冲区
alter tablespace TBS_new cache=“KEEP”;
alter tablespace TBS_new cache=“NORMAL”;

7、移动数据文件
要移动数据文件,必须让表空间处于脱机状态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;

8、表空间的备份
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;

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

fashion186

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值