【达梦】达梦数据库文件以外删除逻辑备份恢复

1.数据生成 

create tablespace tps_sjzt datafile '/dm/mdbms/data/DAMENG1/tps_sjzt.DBF' size 256 autoextend on; 
SQL> create user sjzt identified by sjzt#1234 default tablespace tps_sjzt;
操作已执行
已用时间: 7.352(毫秒). 执行号:500.

resource 权限:可以创建数据库对象,对有权限的数据库对象进行数据操纵
grant resource to sjzt; 

--或者通过如下授权 
grant create table to sjzt; 
grant create view       to sjzt; 
grant create trigger    to sjzt; 
grant create procedure  to sjzt; 
grant insert table      to sjzt; 
grant update table      to sjzt; 
grant delete table      to sjzt; 
grant select table      to sjzt; 
grant references table  to sjzt; 
grant dump table        to sjzt; 
grant execute procedure to sjzt;  

2.创建数据

conn sjzt/"sjzt#1234"
create table sjzt_tab1(id int,name varchar(20));
SQL> select TABLE_NAME,TABLESPACE_NAME from user_tables; 

行号     TABLE_NAME TABLESPACE_NAME
---------- ---------- ---------------
1          SJZT_TAB1  TPS_SJZT
已用时间: 43.009(毫秒). 执行号:1101.

--造数据 
begin 
for i in 1..100 loop 
insert into sjzt_tab1 values(i,i||'xsq1');
end loop; 
commit; 
end; 
/
SQL> begin 
for i in 1..100 loop 
insert into sjzt_tab1 values(i,i||'xsq1');
end loop; 
commit; 
end; 2   3   4   5   6   
7   /
DMSQL 过程已成功完成
已用时间: 2.879(毫秒). 执行号:1103.
SQL> 
SQL> 
SQL> select count(1) from sjzt_tab1;

行号     COUNT(1)            
---------- --------------------
1          100
已用时间: 0.826(毫秒). 执行号:1104.

3.全库备份 


dexp sysdba/dameng123 file=dmfull.dmp log=dmfull.log directory=/dm/dmback full=y

......
导出模式下的对象权限...
模式[SYSDBA]导出结束.....
成功导出 第10 个SCHEMA :SYSDBA
共导出 10 个SCHEMA
整个导出过程共花费    1.807 s
成功终止导出, 没有出现警告

--导出文件检查 
[dmdba@dm1 dmback]$ ll
总用量 156
-rw-r--r--. 1 dmdba dinstall 137747 7月  25 17:13 dmfull.dmp
-rw-r--r--. 1 dmdba dinstall  17017 7月  25 17:13 dmfull.log

4.模拟删除数据文件 

[dmdba@dm1 DAMENG1]$ rm -rf tps_sjzt.DBF


--检查数据 
[dmdba@dm1 dmback]$ disql sysdba/dameng123@dameng1
服务器[192.168.1.20:5236]:处于普通打开状态
登录使用时间 : 3.049(ms)
disql V8
SQL> 
SQL> select * from sjzt.sjzt_tab1;
行号     ID          NAME  
---------- ----------- ------
1          1           1xsq1
2          2           2xsq1
3          3           3xsq1
4          4           4xsq1
5          5           5xsq1
6          6           6xsq1
7          7           7xsq1
8          8           8xsq1
9          9           9xsq1
10         10          10xsq1
11         11          11xsq1
行号     ID          NAME  
---------- ----------- ------
12         12          12xsq1
13         13          13xsq1
14         14          14xsq1
15         15          15xsq1
16         16          16xsq1
17         17          17xsq1
18         18          18xsq1
19         19          19xsq1
20         20          20xsq1
21         21          21xsq1
22         22          22xsq1
--之所以能够查询到数据,是因为数据在内存中,还没有被刷入数据文件。

--重启数据库 
[dmdba@dm1 arch]$ DmServiceDAMENG1 stop
Stopping DmServiceDAMENG1:                                 [ OK ]
[dmdba@dm1 arch]$ DmServiceDAMENG1 start
Starting DmServiceDAMENG1:                                 [ OK ]

disql sysdba/dameng123
SQL> desc v$database;
第119 行附近出现错误[-510]:系统处于MOUNT状态.
已用时间: 2.890(毫秒). 执行号:0.
SQL> desc v$instance;
第119 行附近出现错误[-510]:系统处于MOUNT状态.
已用时间: 2.820(毫秒). 执行号:0.

SQL> alter database open;
操作已执行
已用时间: 27.875(毫秒). 执行号:0.
SQL> select status$ from v$database; 
行号     STATUS$    
---------- -----------
1          4

已用时间: 0.919(毫秒). 执行号:501.

虽然删除了数据文件,达梦数据库,依然可以打开。并可以查询数据库。
--同时也可以查询到数据。
SQL> select * from sjzt.sjzt_tab1;
select * from sjzt.sjzt_tab1;
[-3433]:表空间处于脱机状态.
已用时间: 1.229(毫秒). 执行号:0.

SQL> conn sjzt/"sjzt#1234"

服务器[LOCALHOST:5236]:处于普通打开状态
登录使用时间 : 8.912(ms)

SQL> select table_name,tablespace_name from user_tables; 

行号     TABLE_NAME TABLESPACE_NAME
---------- ---------- ---------------
1          SJZT_TAB1  TPS_SJZT

已用时间: 28.637(毫秒). 执行号:600.


SQL> select path from v$datafile;
行号     PATH                               
---------- -----------------------------------
1          /dm/mdbms/data/DAMENG1/SYSTEM.DBF
2          /dm/mdbms/data/DAMENG1/ROLL.DBF
3          /dm/mdbms/data/DAMENG1/TEMP.DBF
4          /dm/mdbms/data/DAMENG1/MAIN.DBF
5          /dm/mdbms/data/DAMENG1/BOOKSHOP.DBF
6          /dm/mdbms/data/DAMENG1/DMHR.DBF

6 rows got

--重新创建表空间数据文件,提示已经存在。
--目前文件已经被删除,数据库将其置为脱机状态。
SQL> create tablespace sjzt datafile '/dm/mdbms/data/DAMENG1/tps_sjzt.DBF' size 256 autoextend on;
create tablespace sjzt datafile '/dm/mdbms/data/DAMENG1/tps_sjzt.DBF' size 256 autoextend on;
[-2412]:数据文件已存在.
已用时间: 2.453(毫秒). 执行号:0.

--不允许直接删除
SQL> drop tablespace tps_sjzt;
drop tablespace tps_sjzt;
[-3412]:试图删除已经使用的表空间.
已用时间: 2.734(毫秒). 执行号:0.

--重建表空间。
SQL> drop user sjzt cascade; 
操作已执行
已用时间: 42.405(毫秒). 执行号:703.
SQL> drop tablespace tps_sjzt;
操作已执行
已用时间: 13.158(毫秒). 执行号:704.
SQL> create tablespace sjzt datafile '/dm/mdbms/data/DAMENG1/tps_sjzt.DBF' size 256 autoextend on;
操作已执行
已用时间: 14.001(毫秒). 执行号:705.
--仅创建表空间即可。
--用户在全库导出时已经创建。

5.恢复数据 

--执行全库导入。
--此时导入后,备份后的数据会丢失。
dimp sysdba/dameng123 file=dmfull.dmp log=dmfull2.log TABLE_EXISTS_ACTION=REPLACE


SQL> conn sjzt/"sjzt#1234"

服务器[LOCALHOST:5236]:处于普通打开状态
登录使用时间 : 7.710(ms)
SQL> select count(1) from sjzt_tab1;

行号     COUNT(1)            
---------- --------------------
1          100

已用时间: 2.628(毫秒). 执行号:1900.

6.总结

达梦数据库在以外删除数据文件时,数据库修复比较方便。缺少数据文件,也能快速打开数据库进行业务操作,后续在恢复删除的数据文件。
 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值