在日常操作中,数据表的误删除是难以避免的情况。对于Oracle数据库来说,如果误删除了sys下的表,将会导致数据库无法启动,从而影响到整个应用系统的正常工作。因此,处理误删sys下的表无法启动数据库的问题是十分重要的。
在具体操作中,如果发现了sys下的表被误删后,需要立即采取以下措施进行处理:
1. 快照恢复
可以通过Oracle自带的快照功能来还原表。具体步骤如下:
– 需要在备份时开启快照功能,这需要在RMAN中指定backup backupset … format=/snapshot;
– 然后,需要找到最近的一个快照,通过快照还原表。如果只有一个快照,可以通过以下命令还原:
$ restore table sys.table_name until sequence=;
– 如果存在多个快照,可以通过以下命令查询快照号并还原:
$ list snapshot of database;
$ restore table sys.table_name until snapshot ;
2. 导出表数据
如果没有开启快照功能或快照恢复失败,可以通过表数据的导出和导入来恢复表。具体步骤如下:
– 需要在其他相同版本的数据库上创建同名表(表结构必须完全一致),然后将其导出:
$ exp sys/xxxxx tables=sys.table_name file=sys_table_name.dmp
– 然后,将导出的表数据导入到目标数据库中:
$ imp sys/xxxxx tables=sys.table_name file=sys_table_name.dmp
3. 使用Data Pump
Data Pump是Oracle的一种数据导入导出工具。它可以将表空间、用户和数据表等导出到文件中,然后在另一个数据库中导入。具体步骤如下:
– 需要在目标数据库上创建同名的表,并用Data Pump将源数据库的表导出:
$ expdp sys/xxxxx tables=sys.table_name dumpfile=sys_table_name.dmp
– 然后,将导出的表数据导入到目标数据库中:
$ impdp sys/xxxxx tables=sys.table_name dumpfile=sys_table_name.dmp
除了以上三种方法,还有其他一些方法可用于处理误删sys下的表无法启动数据库的问题,例如Oracle Flashback、Oracle LogMiner等。
相关问题拓展阅读:
恢复步骤:
1、运行EasyRecovery。
2、选择“DeletedRecovery”。
3、选择数据库文件所在的驱租橡动器,在“File Filter”冲备中输入*.mdf|*.ldf,选择“Next”。
4、在左侧窗口会列出被删除的数据库文件,选择所要恢复的数据库文件,选择“Next”。
5、在“Recover to Local Drive”中选择恢复后的文件存放的路径,要选择与原数据库文件不同的路径,选择“Next”。
6、文件被恢复后,将恢复的文件复制到原数据库文件位置,并在企业管理器通过附加数据库,将恢复的文件恢复到SQL Server中。
注:如果删除的数据库文件所有的存储区域被写过了,就无法恢复了,所以删除与恢复的时间间隔越短越好弊判旁。
sql
server中误删除数据的恢复本来不是件难事,从事务日志恢复即可。但是,这个恢复需要有两个前提条件:
1.
至少有一个误删除之前的数据库完全备份。
2.
数据库的恢复模式(recovery
mode)是“完整(full)”。
针对这两个前提条件,会有三种情况:
情况一、如果这两个前提条件都存在,通过sql语句搭森御只需三步就能恢复(参考文章),无需借助第三方工具。
a)
备份当前数据库的事务日志:backup
log
to
disk=
n’备份文件名’
with
norecovery
b)
恢复一个误删除之前的完全备份:restore
database
from
disk
=
n’完全备份文件名’
with
norecovery,
replace
c)
将数据库恢复至误删除之前的时间点:restore
log
from
disk
=
n’之一步的日志备份文春搜件名’
with
stopat
=
n’误删除之前的时间点’
,
recovery
情况二、如果第1个前提条件不存在,第2个前提条件存在,需要借助第三方工具。
情况三、如果第2个前提条件不存在,无法恢复。所以,一定要将数据库恢复模式设置为“完整(full)”。
我现在面临的是第二种情况,需要找第三方工具。
开始找的是log
explorer
for
sql
server,不支持sql
server
2023。
后来找的是sql
log
rescue,也不知岩支持sql
server
2023。
接着找到的是systools
sql
recovery,支持sql
server
2023,但需要购买,demo版并没有数据恢复功能。
最终在officerecovery.com上找到recovery
for
sql
server,虽然也是商业软件,需要购买,但demo版可以恢复数据,只要数据库文件不超过24gb。幸好朋友的数据库文件不大,用它完成了误删除数据的恢复。
下面分享一下用recovery
for
sql
server进行恢复的操作步骤:
1.
运行recovery
for
sql
server
2.
点击菜单中的
file
>
recover,选择要恢复的数据库的数据文件(.mdf)
3.
next
>
next,进入
recovery
configuration
界面,选择custom(选择了custom才可以选择从日志中恢复误删除的数据)。
4.
next
进入
recovery
options
窗口,选中
search
for
deleted
records,并选择要恢复的数据库的日志文件路径(log
file
path)。
5.
next
并选择目标文件夹(destination
folder),用于存放恢复过程中生成的sql语句与bat文件。
6.
点击start,开始恢复操作(在上一步选择的目标文件夹中生成相应的sql文件与bat文件),然后,出现
sql
server
database
creation
utility
窗口。
7.
next,选择被恢复数据存放的目标数据库。
8.
next,
选择
import
availiable
data
from
both
database
and
log
files
9.
next,
next,
然后就完成数据的恢复!
误删sys下的表无法启动数据库的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于误删sys下的表无法启动数据库,怎样处理误删sys下的表无法启动数据库?,数据库被删除怎么恢复的信息别忘了在本站进行查找喔。
香港服务器选创新互联,2H2G首月10元开通。
创新互联(www.cdcxhl.com)互联网服务提供商,拥有超过10年的服务器租用、服务器托管、云服务器、虚拟主机、网站系统开发经验。专业提供云主机、虚拟主机、域名注册、VPS主机、云服务器、香港云服务器、免备案服务器等。
文章标题:怎样处理误删sys下的表无法启动数据库?(误删sys下的表无法启动数据库)
链接地址:http://www.shufengxianlan.com/qtweb/news5/320455.html
网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联