1、先对数据进行一次完整的备份。
2、备份之后删除数据库中其中一个表空间,并删除与之相对应的数据文件。
3、然后使用刚刚的备份进行恢复发现出现如下图的错误。
4、然后根据错误提示查询错误原因,发现需要在数据库关闭或者read only情况下才可以进行恢复,所以关闭数据库启动到mount状态。
5、然后再使用rman命令进行恢复即可。
--删除空的表空间,但是不包含物理文件\x0d\x0adroptablespacetablespace_name\x0d\x0a--删除非空表空间,但是不包含物理文件\x0d\x0adroptablespacetablespace_nameincludingcontents\x0d\x0a--删除空表空间,包含物理文件\x0d\x0adroptablespacetablespace_nameincludingdatafiles\x0d\x0a--删除非空表空间,包含物理文件\x0d\x0adroptablespacetablespace_nameincludingcontentsanddatafiles\x0d\x0a--如果其他表空间中的表有外键等约束关联到了本表空间中的表的字段,就要加上CASCADECONSTRAINTS\x0d\x0adroptablespacetablespace_nameincludingcontentsanddatafilesCASCADECONSTRAINTS有两种办法可以删除表中的所有数据:
TRUNCATE TABLE 删除表中的所有行,而不记录单个行删除 *** 作。语法 TRUNCATE TABLE name 参数 name 是要截断的表的名称或要删除其全部行的表的名称。
Delete from tablename where 1=1
方法1:重建库和表:
一、只导出表结构:
导出整个数据库结构(不包含数据):mysqldump -h localhost -uroot -p123456 -d database >dump.sql
导出单个数据表结构(不包含数据):mysqldump -h localhost -uroot -p123456 -d database table >dump.sql
二、只导出表数据:
导出整个数据库数据:mysqldump -h localhost -uroot -p123456 -t database >dump.sql
三、导出结构+数据
导出整个数据库结构和数据:mysqldump -h localhost -uroot -p123456 database >dump.sql
导出单个数据表结构和数据:mysqldump -h localhost -uroot -p123456 database table >dump.sql
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)