当前位置:首页 » 云服务器 » 数据库服务器的灾难恢复一般如何操作

数据库服务器的灾难恢复一般如何操作

发布时间: 2023-04-02 07:29:00

❶ oracle数据库数据删除后如何恢复

Oracle DBA神器:PRM灾难恢复工具,Schema级别数据恢复。PRM For Oracle Database – schema级别oracle数据库数据恢复特性 ,PRM即ParnassusData Recovery Manager是企业级别Oracle数据库灾难恢复工具。PRM可以在无备份的情况下恢复被truncated掉的表,也可以恢复无法打开的Oracle数据库(Alter Database Open失败)中的数据。 PRM是图形化增强版的Oracle DUL工具,同时具备很多Oracle DUL不具备的特性

❷ 怎么恢复mysql数据库怎么恢复数据

简单情况下:进入原来mysql安装路径下的data文件夹下,找到相应的库和ibdata1,进行,就可回复原来的数据。
复杂情况下:
从另一台机上把MySQL数据库的mysql文件夹拷贝到本地机上,目的是恢复本地机对数据的访问和操作。经过如下几种情况的操作。
1. 在本地重装MySQL(安装目录D:\Program Files\MySQL\MySQL Server 5.0),直接把mysql文件夹拷贝至D:\Program Files\MySQL\MySQL Server 5.0\。结果,失败:数据库连接错误。
2. 卸载后重装MySQL,将D:\Program Files\MySQL\MySQL Server 5.0\下的数据备份,只把mysql\data文件夹全部内容拷贝到D:\Program Files\MySQL\MySQL Server 5.0\data下。结果,失败:数据库连接错误。将备份的数据还完覆盖。结果,失败,还是连接不上数据库。
3. 卸载后重装MySQL,将mysql\data文件夹里的cf1,last文件夹(这两个是原来MySQL里的数据库)拷贝进D:\Program Files\MySQL\MySQL Server 5.0\data。连接成功,在Navicat for MySQL里看到数据库cf1和last,但是不能访问,因为数据全为零。明白了原来data里以数据库命名的文件存储的是数据库的表结构,不是元数据。下一步,把data文件夹里的ibdata1文件(3.4G大,明显存储了元数据)拷贝到D:\Program Files\MySQL\MySQL Server 5.0\data里,代替原来的ibdata1文件。重启电脑,打开Navicat for MySQL,连接成功,数据可以访问操作。
至此,操作终于成功。其实当初在那台机上把数据导出来,而不是现在直接把文件夹mysql复制过来会更容易恢复。但那台机已经重装了系统,也就是说MySQL失效了。

❸ 怎么修复数据库 修复数据库坏块方法

修复数据库坏块
dbv
你也可以用dbv工具看一下你现在其他的数据文件有没有还有坏块的
dbv file='yourfilename'
恢复方法:
当Oracle数据库出现坏块时,Oracle会在警告日志文件(alert_SID.log)中记录坏块的信息:
ORA-01578: ORACLE data block corrupted (file # 7, block # )
ORA-01110: data file : '/oracle1/oradata/V920/oradata/V816/users01.dbf'
其中,<AFN>代表坏块所在数据文件的绝对文件号,代表坏块是数据文件上的第几个数据块
出现这种情况时,应该首先检查是否是硬件及操作系统上的故障导致Oracle数据库出现坏块。在排除了数据库以外的原因后,再对发生坏块的数据库对象进行处理。
1.确定发生坏块的数据库对象
SELECT tablespace_name,
segment_type,
owner,
segment_name
FROM dba_extents
WHERE file_id =
AND between block_id AND block_id+blocks-1;
2.决定修复方法
如果发生坏块的对象是一个索引,那么可以直接把索引DROP掉后,再根据表里的记录进行重建;
如果发生坏块的表的记录可以根据其它表的记录生成的话,那么可以直接把这个表DROP掉后重建;
如果有数据库的备份,则恢复数据库的方法来进行修复;
如果表里的记录没有其它办法恢复,那么坏块上的记录就丢失了,只能把表中其它数据坏上的记录取出来,然后对这个表进行重建。
3.用Oracle提供的DBMS_REPAIR包标记出坏块
exec DBMS_REPAIR.SKIP_CORRUPT_BLOCKS('','');
4.使用Create table as select命令将表中其它块上的记录保存到另一张表上
create table corrupt_table_bak
as
select * from corrupt_table;
5.用DROP TABLE命令删除有坏块的表
drop table corrupt_table;
6.用alter table rename命令恢复原来的表
alter table corrupt_table_bak
rename to corrupt_table;
7.如果表上存在索引,则要重建表上的索引
PART2
2014.7.22研究恢复数据库坏块:
Oracle调用标准C的系统函数,对数据块进行读写操作,因此,坏块是有可能由以下几种原因产生:
硬件的I/O错误
操作系统的I/O错误或缓冲问题
内存或paging问题
磁盘修复工具
一个数据文件的一部分正在被覆盖
Oracle试图访问一个未被格式化的系统块失败
数据文件部分溢出
Oracle或者操作系统的bug
遇到“ORA-01578:ORACLE data block corrupted”错误
处理方法:1.rman的recover命令可以在数据库保持open状态下只恢复受损的数据块
2.如果没有备份,万不得已之下也可以采用DBMS_REPAIR包的存储过程将受损坏块隔离,同时尽可能地挽救部分数据。
rman backup命令也是检查坏数据块的好工具 一旦读取ORA-19566 即可有问题
此时可用backup validate tablespace user观察详细的信息,可查看到坏块数与跟踪文件
grep‘corrupt’/u01/app/oracle/diag/rdbms/br/br/trace/**.trc
恢复数据块:rman》recover datafile 5 block 203;
批量恢复受损的数据块:recover corruption list;
数据块坏块一号坏块,需要做:
run{
sql 'alter database datafile 5 offline';
restore datafile 5;
recover datafile 5;
sql'alter database datafile 5 online'
}
使用exp/imp恢复
在这种情况下肯定会造成数据的丢失,在这种情况下应采取将数据导出然后重建表再进行导入的方法,来尽量恢复损坏数据块中的数据,但是在有坏块的情况下是不允许导出的,如下命令:Exp test/test file=t.dmp tables=t;
导出命令在执行中会报ORA-01578错误,在这错误提示中会提示那个文件号的文件以及这个文件中的哪个块被损坏,如:ORA—01578:ORACLE 数据块损坏(文件号 4,块号 35)
针对以上的提示首先查询那些对象被损坏:
Select tablespace_name,segment_type,owner,segment_name From dba_extents Where file_id=4 and 35 between block_id and block_id+blocks-1;
如果被损坏的块是索引,通常可以通过索引重建来解决,如果损坏的是数据(segment_type为table),那么通过设置如下内部事件使得Exp操作跳过坏块。
Alter session set events=’10231 trace name context forever,level 10’;
然后重新执行导出命令,导出相关的表,然后执行Drop Table命令删除相关表,之后重建表最后导入数据。
使用DBMS_REPAIR恢复
用DBMS_REPAIR当然也会丢失数据。这里不做详细的介绍,有兴趣的可以查看oracle的在线文
3、使用dbms_repair包进行坏块处理
1)首先建立repair_table,用于存放dbms_repair.check_object检测出来的坏块信息
SQL> declare
2begin
3dbms_repair.admin_tables
4(table_name => 'REPAIR_TABLE',--表名
5table_type => dbms_repair.repair_table,
6action => dbms_repair.create_action,
7tablespace => 'USERS');--用于指定该表存放的表空间
8end;
9/
PL/SQL 过程已成功完成。
SQL> col owner format a10
SQL> col object_name format a20
SQL> col object_type format a20
SQL> select owner, object_name, object_type
2from dba_objects
3where object_name like '%REPAIR_TABLE';
OWNEROBJECT_NAMEOBJECT_TYPE
---------- -------------------- --------------------
SYSREPAIR_TABLETABLE
SYSDBA_REPAIR_TABLEVIEW
Oracle自动创建了一个DBA_REPAIR_TABLE视图。
2)使用dbms_repair.check_object进行坏块检测
SQL> set serveroutput on size 100000;
SQL> declare
2rpr_count int;
3begin
4rpr_count := 0;
5dbms_repair.check_object(
6schema_name => 'SYS',--指定对象模式,也就是对象的所有者
7object_name => 'TEST',--指定对象名,也就是表名
8repair_table_name => 'REPAIR_TABLE',
9corrupt_count => rpr_count);
10dbms_output.put_line('repair block count: '
11||to_char(rpr_count));
12end;
13/
repair block count: 4
PL/SQL 过程已成功完成。
SQL> select object_name, block_id, corrupt_type, marked_corrupt,
2corrupt_description, repair_description
3from repair_table;
OBJECT_NAMEBLOCK_ID CORRUPT_TYPE MARKED_COR
-------------------- ---------- ------------ ----------
CORRUPT_DESCRIPTION
-------------------------------------------------------------------------------
REPAIR_DESCRIPTION
-------------------------------------------------------------------------------
TEST196148 TRUE
mark block software corrupt
TEST206148 TRUE
mark block software corrupt
TEST236148 TRUE
mark block software corrupt
TEST316148 TRUE
mark block software corrupt
通过运行dbms_repair.check_object,将坏块信息存放到了repair_table表中,其中有个字段marked_corrupt,用于标识该块是否被标识为坏块,当被标识为true时,即该块被标识为坏块。其中这一步跟oracle文档中的描述有点进入,根据oracle文档,当执行完dbms_repair.check_object时,并不会进行坏块标识,也就是marked_corrupt列的值应该为false,而只有当执行dbms_repair.fix_corrupt_blocks过程后才会进行坏块标识。
3)使用dbms_repair.fix_corrupt_blocks进行坏块标识
SQL> declare
2fix_block_count int;
3begin
4fix_block_count := 0;
5dbms_repair.fix_corrupt_blocks (
6schema_name => 'SYS',
7object_name => 'TEST',
8object_type => dbms_repair.table_object,
9repair_table_name => 'REPAIR_TABLE',
10fix_count => fix_block_count);
11dbms_output.put_line('fix blocks count: ' ||
12to_char(fix_block_count));
13end;
14/
fix blocks count: 0
PL/SQL 过程已成功完成。
我们可以见到到fix blocks count=0,即在上一步进行check_object时已经进行了坏块标识了,这一步其实可以省略。(不过没有测试过!)

❹ 灾难恢复的虚拟化灾难恢复

通过允许虚拟机在物理服务器之间进行无缝迁移,虚拟化提供了革命性的灾难恢复计划。 在构建一个远程VMware灾难恢复站点之前,有许多问题需要考虑。
清查现有的基础设施。在彻底理清一个主要数据中心的资产之前,不能对其进行复制。
了解应用程序和它们的依存关系。明确哪些应用程序需要抵抗灾难的能力。要考虑到(主站点和备份站点)存储和网络架构之间任何潜在的差异,确保程序即使在不同的环境下,也能够按照预期实现把故障转移到备份站点。
建立恢复点目标(RPO)和恢复时间目标(RTO)。 如果数据每小时复制到第二数据中心,当灾难发生时,有可能最多丢失之间59分59秒的数据。如果这样是可接受的,不会严重地影响业务,那么PTO可以设定为一个小时。
为用户服务。终端用户也许不能够访问运行维护的所有的服务器和应用程序。要考虑怎样替换用户们的桌面和应用程序,明确他们怎样进行远程访问。 选取数据中心地址。一条可承担到主数据中心的高速连接是选择灾难恢复中心需要考虑的关键的几个因素之一。
获取、安装和准备硬件。
安装和配置vSphere。
选择工具。
实施复制。初始化数据的复制将是最大规模的数据传输,随后的对发生改变的块进行复制将会小很多,但是复制数据的大小会依据应用程序中数据量改变的大小而定。复制的数据的大小也会依据复制的间隔(由RPO决定)而变化。 硬件独立:基于物理系统的灾难恢复解决方案都需要将相同的硬件保留到恢复站点,或必须经过很多复杂耗时的步骤在新的或不同的硬件上重建服务器操作系统。有时候碰巧恢复服务器就是同一个硬件模型,但是包含了最新硬盘控制器固件,会导致服务器镜像延迟。虚拟化使硬件从操作系统中抽象化,而且使操作系统中使用的设备驱动器统一化,不管是何种底层硬件模型,所有虚拟机都使用一个共同的驱动集。这样,在新服务器上安装服务器镜像时就省了很多设备驱动对应的麻烦,大大减少了恢复时间和配置错误的风险。
虚拟机磁盘格式文件:虚拟机将其子操作系统、应用、存储和配置(如IP地址)存放在一个文件里。这个文件——虚拟机磁盘格式(VMDK)或虚拟硬盘(VHD)文件,包含了整个操作系统环境以便能进行简单的虚拟机装载和保存。这个文件不仅包含了操作系统镜像和应用编码,还描述了虚拟机所需的配置,其中包括虚拟处理器、内存和设备。这个简单的可移动文件包含了组成服务器所需的一切信息、服务器环境描述、实际码和数据。从虚拟机磁盘文件启动虚拟机时系统会自动迅速设置所有参数。在灾难恢复站点进行恢复会变得很简单,只需启动VMHD或VHD。
物理工具到虚拟工具:虚拟机解决方案需要利用管理工具来创建、启动、停止和保存虚拟机镜像。为了方便创建虚拟机,有很多工具可以帮助分析物理服务器和从服务器创建VMDK或VHD。从物理系统创建的VMDK或VHD文件可以很快地部署到恢复站点。
硬件再利用:恢复站点的虚拟机硬件不必闲置在那里等着灾难发生,它也可以用作开发、测试或其它用途。当发生灾难时,关闭用于测试或开发的虚拟机,然后启动生产虚拟机,这个过程只需几秒钟即可完成。 由于用户对于服务器虚拟化技术接受程度不断提高,业界有一种对于所谓的“万能的高可用策略”的需求。虽然这种做法可以在一定程度上通过集群故障迁移技术实现简化数据保护的步骤,但并不是所有的数据保护都支持这种做法。
首先,即使当前关于服务器虚拟化部署最乐观的预测成为现实,到2016年也仍然有21%的X86平台的关键业务(产生收入的高性能事务处理程序)运行在高达75%的没有使用任何虚拟化技术的物理服务器上。所以,针对虚拟化和非虚拟化的不同服务器采用不同的策略是很有必要的。
在采用了 x86 虚拟化技术的工作负载中,一些虚拟机(VMs)和它们对应的数据盘(表现为VMDK 和 VHD 文件)相比其他虚机和数据盘次要一些。在没有使用虚拟化技术的环境中存在很多不同的虚拟程序,但并不是所有的应用程序都是关键业务相关。传统的服务器环境中,一些应用程序和虚拟机被频繁使用,也有一些使用的不是那么频繁,这些现实情况都影响着数据备份和数据复制的频率和策略。

❺ 如何应对内存数据库的恢复

【Oracle数据库】内存数据库的恢复与传统数据库的恢复不同,因为你要在一个相当“凶悍的”架构中设计恢复。尽管并不需要频繁地用到它,但因为使用内存数据库就是为了追求速度,你还是得对灾难恢复进行保险设计。为恢复提速也蕴藏了一个商业价值。我之前从事过这样的一项工作:早上收报告,而后得等到第二天才会更新。如果我们一天能收到五到十次的更新,那就能很好地管理公司的年鉴了。
对于内存数据库来说,应该确保尽可能少的写入占用永久存储。提供直接的光纤通道端口,同时确保SSD或PCIe闪存卡的最佳状态用以保证低延迟。保证重要的性能冗余且将网络交换机数量降到最低。
大多数内存数据库都是预先设置好的设备。它包含一些动态的RAM容量,可能还会带些闪存,同时,方方面面通过软件被安排地头头是道。当你使用一台预先设计好的设备时,先在欠载的情况下测试它。测试它的吞吐量及在一年中最坏情况下的灾难恢复。然后告诉大伙儿灾难恢复的时间并确认该速度用于企业业务已是富富有余。你不希望最终结果或者一些关键性业务它无法正常恢复。你在内存数据库上花了大把的钱,并对其寄予厚望。
在如何恢复和放置数据方面,SAPHANA和其他的内存数据库变得越来越智能,它们对吞吐量进行优化并尽可能地为恢复提速。它们能够避免让系统宕机。最坏的情况就是I/O失效让整个内存系统出现故障。采用捷径带来了冲击,没有仔细思考如何优化恢复速度结果造成了运行中断。

❻ 一个完整的数据备份及恢复方案应包括那些

尊敬的用户您好:
常见的数据备份与恢复方法有以下几种:
1.数据备份:数据备份(Backup)是指将计算机硬盘上的原始数据(程序)复制到可移动媒体(Removable Media)上,如磁盘、磁带、光盘等,在出现数据丢失或系统灾难时将复制在可移动媒体上的数据恢复到硬盘上,从而保护计算机的系统数据和应用数据。
2.数据恢复:数据恢复(Recover)是数据备份的逆过程,即将备份的数据恢复到硬盘上的操
作。
3.数据归档:数据归档(Archive)将硬盘数据复制到可移动媒体上,与数据备份不同的是,数据归档在完成复制工作后将原始数据从硬盘上删除,释放硬盘空间。数据归档一般是对与年度或某一项目相关的数据进行操作,在一年结束或某一项目完成时将其相关数据存到可移动媒体上,以备日后查询和统计,同时释放宝贵的硬盘空间。
3.归档恢复:归档恢复(Retrieve)是数据归档的逆操作,将归档数据写回到硬盘上。
4.在线备份:在线备份(On-line backup)是指对正在运行的数据库或应用进行备份,通常对打开的数据库和应用是禁止备份操作的,然而现在的有些计算机应用系统要求24小时运转(如银行的ATM业务),因此要求数据存储管理软件能够对在线的数据库和应用进行备份。
5.离线备份:离线备份(Off-line backup)指在数据库SHUTDOWN或应用关闭后对其数据进行备份,离线
备份通常采用全备份。
6.全备份:全备份(Full backup)是备份策略的一种。执行数据全部备份操作。
7.增量备份:增量备份(Incremental backup)相对全备份而言,是备份策略的一种,只备份上一次备份后数据的改变量。
8.并行技术:并行技术(Parallelism)是指将不同的数据源同时备份/恢复到同一个备份设备/硬盘上。并行技术是考察数据存储管理软件性能的一个重要参数,有些厂商的软件只能支持并行备份,而有的厂商则可以实现并行地备份及恢复;并且,真正有效的并行技术将可以充分利用备份设备的备份速度(带宽),实现大数据量有限时间备份。
9.数据克隆:数据克隆(Clone)是实现灾难恢复的一种重要手段,通过将原始数据同时备份到两份可移动媒体上,将其中一份备份数据(Clone)转移到地理位置不同的办公室存放,在计算机系统发生重大灾难如火灾,系统连接的
备份设备和备份数据都被损坏的情况下,将重要数据在另一套系统上恢复,保障业务的正常运行。所有数据存储管理软件都提供克隆功能。

中国电信提供最优质的网络通讯服务,老友换新机,网龄抵现金,百兆宽带免费体验,超清电视iTV,电信活动可以直接通过营业厅查询。

热点内容
h3c如何查看所有配置 发布:2024-05-04 05:26:39 浏览:491
java统计字符串中字母个数 发布:2024-05-04 05:22:58 浏览:886
throwablejava 发布:2024-05-04 05:22:56 浏览:790
IP和服务器可以分开架设吗 发布:2024-05-04 05:17:48 浏览:26
ip提取源码 发布:2024-05-04 05:01:42 浏览:763
驾校报名了密码是什么 发布:2024-05-04 04:49:02 浏览:610
安卓加密的rar软件 发布:2024-05-04 04:18:30 浏览:606
聚会编程题 发布:2024-05-04 04:02:41 浏览:405
我的世界服务器自动扫地 发布:2024-05-04 03:48:41 浏览:612
4500能配什么电脑配置 发布:2024-05-04 03:22:29 浏览:592