mysql删除数据库没有备份怎么恢复

mysql删除数据库没有备份怎么恢复,第1张

打开mysql的bin log功能:

对于mysql也是支持增量备份,但要打开mysql的bin log功能。

我们修改mysql的配置文件。linux是/etc/mycnf,windows是mysql的安装目录/myini

我们在[mysqld]下面加上log-bin一行代码,如下面。

[mysqld]

log-bin=mysql-bin

复制代码

加完后重起mysql即可。

某客户更新数据的时候,误删了数据库的内容,因为数据库做了主从,但是没有做备份(备份很重要啊!)幸好开启了bin-log,之后只好把整个日志的记录拿回来本地进行恢复。

之后自己也做了一个简单的测试,对数据进行恢复,具体如下:

1、新建一个表

CREATE TABLE `lynn``sn_test` ( `name` VARCHAR( 10 ) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL , `age` INT( 3 ) NOT NULL ) ENGINE = MYISAM;

2、插入多条数据

INSERT INTO `lynn``sn_test` (`name`, `age`) VALUES ('lynn1', '1');

INSERT INTO `lynn``sn_test` (`name`, `age`) VALUES ('lynn2', '2');

INSERT INTO `lynn``sn_test` (`name`, `age`) VALUES ('lynn3', '3');

INSERT INTO `lynn``sn_test` (`name`, `age`) VALUES ('lynn4', '4');

3、查看数据并删除

mysql> select from sn_test;

+-------+-----+

| name | age |

+---------+---+

| lynn1 | 1 |

| lynn2 | 2 |

| lynn3 | 3 |

| lynn4 | 4 |

+---------+-----+

4 rows in set (000 sec)

mysql> delete from sn_test;

Query OK, 4 rows affected (000 sec)

mysql> select from sn_test;

Empty set (000 sec)

4、mysqlbinlog恢复数据

mysqlbinlog mysql-bin000006 > 1sql

查看1txt里面数据插入的纪录,把删除之前的数据进行恢复

mysqlbinlog mysql-bin000006 --start-position=2471 --stop-position=2876 | mysql -uroot -p123

重新登录,查看数据,OK,已经成功恢复了

对于数据库 *** 作,应该注意如下问题:

1、要常备份(全备,增量备份),出了问题可以最快恢复数据;

2、 *** 作数据库前,要把需要 *** 作的数据库或者表dump出来;

3、需要把bin-log打开,就算没有做上面的两步,也可以通过日志恢复数据

方法:

第一步:选择需要还原的数据库,鼠标右键,选择任务下的还原;

第二步:选择“源设备”,点击后面的文件选择“”;

第三步:添加需要还原的数据库,还原的数据库文件后缀为备份文件(bak);

第四步:选中添加进来的还原文件,找到左上角上的“选择项”,勾选第一项(覆盖现有数据库),点击确定就可以了。

尊敬的用户您好:

常见的数据备份与恢复方法有以下几种:

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,电信活动可以直接通过营业厅查询。

备份数据库

1、打开SQL企业管理器,在控制台根目录中依次点开Microsoft

SQL

Server

2、SQL

Server组-->双击打开你的服务器-->双击打开数据库目录

3、选择你的数据库名称(如财务数据库cwdata)-->然后点上面菜单中的工具-->选择备份数据库

4、备份选项选择完全备份,目的中的备份到如果原来有路径和名称则选中名称点删除,然后点添加,如果原来没有路径和名称则直接选择添加,接着指定路径和文件名,指定后点确定返回备份窗口,接着点确定进行备份。

在SQL Server 2008数据库中。为了防止数据的丢失我们就需要按时的来备份数据库了。要是每天都要备份的话,人工备份会很麻烦的,自动备份的话就不需要那么麻烦了,只要设置好了,数据库就会自动在你设置的时间段里备份。那么自动备份要怎么设置呢。下面为大家讲解。

工具/原料

电脑一台

要安装SQL Server 2008数据库。

方法/步骤

1

在电脑开始菜单中选择“SQL Server Management Studio”双击。在出现的界面中点击“连接”按钮。

2

在出现的“ Microsoft SQL Server Management Studio”界面中选择“管理”下的“维护计划”右击维护计划,点击“维护计划向导”,

3

在出现的“SQL Server维护计划向导”界面中点击“下一步”

在出现的界面中把名称和说明写上。然后点击“更改”设顶备份计划

在出现的“作业计划属性”界面中,更改执行时间,也就是多久备份一次。这里该为每天备份。间隔时间更改为“1”更改执行一次时间为0:00:00也就是在每天的0点自动备份数据。

更改好以后,就可以在下面看到“在每天的 0:00:00 执行。将从 2014-5-16 开始使用计划。”然后点击“下一步”按钮

在选择维护任务界面中选择要备份的数据库文件。然后点击下一步。

在选择维护任务顺序中,可以移动要备份的数据库文件的顺序。然后点击“下一步”

在定义“备份数据库完整”界面中,选择数据库后面下拉菜单中的数据库文件。然后点击“确定”按钮

在定义“备份数据库完整”界面里选择备份路径。然后点击“下一步”

在“选择报告选项”界面中设置好“报告文本文件”的路径。然后点击“下一步”

在出现的“完成该向导”界面中会看到设置备份的详细信息。

这样数据库自动备份就成功了。

一 理解什么是数据库恢复

当我们使用一个数据库时,总希望数据库的内容是可靠的、正确的,但由于计算机系统的故障(硬件故障、软件故障、网络故障、进程故障和系统故障)影响数据库系统的 *** 作,影响数据库中数据的正确性,甚至破坏数据库,使数据库中全部或部分数据丢失。因此当发生上述故障后,希望能重构这个完整的数据库,该处理称为数据库恢复。恢复过程大致可以分为复原(Restore)与恢复(Recover)过程。

数据库恢复可以分为以下两类:

11实例故障的一致性恢复

当实例意外地(如掉电、后台进程故障等)或预料地(发出SHUTDOUM

ABORT语句)中止时出现实例故障,此时需要实例恢复。实例恢复将数据库恢复到故障之前的事务一致状态。如果在在线后备发现实例故障,则需介质恢复。在其它情况Oracle在下次数据库起动时(对新实例装配和打开),自动地执行实例恢复。如果需要,从装配状态变为打开状态,自动地激发实例恢复,由下列处理:

(1) 为了解恢复数据文件中没有记录的数据,进行向前滚。该数据记录在在线日志,

包括对回滚段的内容恢复。

(2) 回滚未提交的事务,按步1重新生成回滚段所指定的 *** 作。

(3) 释放在故障时正在处理事务所持有的资源。

(4) 解决在故障时正经历一阶段提交的任何悬而未决的分布事务。

12介质故障或文件错误的不一致恢复

介质故障是当一个文件、一个文件的部分或磁盘不能读或不能写时出现的故障。文件错误一般指意外的错误导致文件被删除或意外事故导致文件的不一致。这种状态下的数据库都是不一致的,需要DBA手工来进行数据库的恢复,这种恢复有两种形式,决定于数据库运行的归档方式和备份方式。

(1) 完全介质恢复可恢复全部丢失的修改。一般情况下需要有数据库的备份且数据库运行在归档状态下并且有可用归档日志时才可能。对于不同类型的错误,有不同类型的完全恢复可使用,其决定于毁坏文件和数据库的可用性。

(2)

不完全介质恢复是在完全介质恢复不可能或不要求时进行的介质恢复。重构受损的数据库,使其恢复介质故障前或用户出错之前的一个事务一致性状态。不完全介质恢复有不同类型的使用,决定于需要不完全介质恢复的情况,有下列类型:基于撤消、基于时间和基于修改的不完全恢复。

基于撤消(CANCEL)恢复:在某种情况,不完全介质恢复必须被控制,DBA可撤消在指定点的 *** 作。基于撤消的恢复地在一个或多个日志组(在线的或归档的)已被介质故障所破坏,不能用于恢复过程时使用,所以介质恢复必须控制,以致在使用最近的、未损的日志组于数据文件后中止恢复 *** 作。

基于时间(TIME)和基于修改(SCN)的恢复:如果DBA希望恢复到过去的某个指定点,是一种理想的不完全介质恢复,一般发生在恢复到某个特定 *** 作之前,恢复到如意外删除某个数据表之前。

第二章 数据库恢复案例测试环境

21 数据库环境

以下的所有案例都是通过测试经过,环境为:

OS:Windows 2000 Server

DB:Oracle 816

DBNAME:TEST

数据文件:

SQL> select file#,status,enabled,name from v$datafile;

FILE# STATUS ENABLED NAME

----------------------------------------------------------------

1 SYSTEM READ WRITE D:/Oracle/ORADATA/TEST/SYSTEM01DBF

2 ONLINE READ WRITE D:/Oracle/ORADATA/TEST/RBS01DBF

3 ONLINE READ WRITE D:/Oracle/ORADATA/TEST/USERS01DBF

4 ONLINE READ WRITE D:/Oracle/ORADATA/TEST/TEMP01DBF

5 ONLINE READ WRITE D:/Oracle/ORADATA/TEST/TOOLS01DBF

6 ONLINE READ WRITE D:/Oracle/ORADATA/TEST/INDX01DBF

控制文件:

SQL> select from v$controlfile;

STATUS NAME

---------------------------------------------------------------------

D:/Oracle/ORADATA/TEST/CONTROL01CTL

D:/Oracle/ORADATA/TEST/CONTROL02CTL

D:/Oracle/ORADATA/TEST/CONTROL03CTL

联机日志:

SQL> select from v$logfile;

GROUP# STATUS MEMBER

---------------------------------------------------------------------

1 STALE D:/Oracle/ORADATA/TEST/REDO01LOG

2 D:/Oracle/ORADATA/TEST/REDO02LOG

3 STALE D:/Oracle/ORADATA/TEST/REDO03LOG

22 数据库备份脚本

冷备份脚本:

rem script:coldbaksql

rem creater:chenjiping

rem date:582003

rem desc:offline full backup database

--connect database

connect internal/password;

--shutdown database

shutdown immediate;

--Copy Data file

!xcopy d:/Oracle/oradata/test/dbf d:/database/H/R;

--Copy Control file

!xcopy d:/Oracle/oradata/test/ctl d:/database/H/R;

--Copy Log file

!xcopy d:/Oracle/oradata/test/log d:/database/H/R;

--startup database

startup;

说明:

1、以上脚本在数据库关闭状态下备份数据库所有的数据文件,联机日志,控制文件(在一个目

录下),如果成功备份,所有文件是一致的;

2、没有备份参数文件,参数文件可以另外备份,没有必要每次都备份,只需要在改变设置后备份一次;

3、如果以上命令没有成功依次执行,那么备份将是无效的,如连接数据库不成功,那么肯定关闭数据库也不成功,那么备份则无效;

4、冷备份建议下人工干预下执行。

数据库OS热全备份脚本

rem script:hotbaksql

rem creater:chenjiping

rem date:582003

rem desc:backup all database datafile in archive

--connect database

connect internal/password;

--archive

alter system archive log current;

--start

alter tablespace system begin backup;

!xcopy d:/Oracle/oradata/test/system01dbf d:/databak/H/R;

alter tablespace system end backup;

alter tablespace rbs begin backup;

!xcopy d:/Oracle/oradata/test/rbs01dbf d:/databak/H/R;

alter tablespace rbs end backup;

alter tablespace users begin backup;

!xcopy d:/Oracle/oradata/test/users01dbf d:/databak/H/R;

alter tablespace users end backup;

alter tablespace tools begin backup;

!xcopy d:/Oracle/oradata/test/tools01dbf d:/databak/H/R;

alter tablespace tools end backup;

alter tablespace indx begin backup;

!xcopy d:/Oracle/oradata/test/indx01dbf d:/databak/H/R;

alter tablespace indx end backup;

--end

--bak control file

--binary

alter database backup controlfile to 'd:/databak/controlbinbak000';

--ascii

alter database backup controlfile to trace;

alter system archive log current;

说明:

1、热备份必须在数据库归档方式下才可以运行;

2、以上脚本可以在数据库运行状态下备份数据库所有的数据文件(除了临时数据文件),没有必要备份联机日志;

3、归档日志至少需要一次完整备份之后的所有日志;

4、如果以上命令没有成功依次执行,那么备份也是无效的,如连接数据库不成功,那么备份则无效。

RMAN备份只讲叙有恢复目录的情况,如果没有恢复目录,情形大致相似。以下是RMAN的热备份全备份的脚本:

# script:bakuprcv

# creater:chenjiping

# date:582003

# desc:backup all database datafile in archive with rman

# connect database

connect rcvcat rman/rman@back;

connect target internal/virpure;

# start backup database

run{

allocate channel c1 type disk;

backup full tag 'dbfull' format 'd:/backup/full%u_%s_%p' database

include current controlfile;

sql 'alter system archive log current';

release channel c1;

}

# end

说明:

1、 数据库必须运行在归档模式下;

2、 RMAN将自动备份数据文件,运行可靠;

3、 归档日志另外备份处理,但至少需要保存一次备份来的日志;

4、 没有必要用RMAN做冷备份,效果不好。

以上举例说明了数据库的恢复案例的测试环境与部分备份测试脚本,其它的备份脚本可以根据以上脚本演变而来或在案例中加以说明。

数据库的自动实例将不加以说明,这里只举例说明媒体错误或人为错误造成的恢复可能。

以上包括以下案例都是在WINDOWS+Oracle816上测试验证的,在不同的 *** 作系统与不同的数据库版本中略有差别。

1 导出存储过程,触发器,序列等所有用户对象。(备份)

在PL/SQL Developer的菜单Tools(工具) => Export User Objects(导出用户对象)中出来一个对话框界面

建议红色框住部分都不选,这样执行这个sql 时,就根据当前你的登录账户来进行创建。 在对象列表中ctrl+a 全选所有(如果你只导出部分,可单独选择)

设置 输出文件地址,文件名。 点击导出完成。

2 导出数据。(备份)

在PL/SQL Developer的菜单Tools(工具) => 导出表 中出来一个对话框界面

如果 数据量较大,选择oracle导出,勾压缩选项,然后设置输出文件地址。 如果只导出部分数据,可以在Where 处添加条件。例如 rownum<=1000 ( 导出1000条记录),此种方式导出dmp 格式文件。

如果数据量较小,可以选择sql 插入,此种方式导出sql文件。

选项,勾选 约束,索引,行数,触发器。

注意:如果表中包含clob 或nclob 字段,就只能用dmp格式进行导入,如果是少量表,不包含这种字段,可以用sql插入方式。

还原时,注意需要先还原dmp文件。

3 表数据还原 。

a 如果dmp 文件,那么在PL/SQL Developer的菜单Tools(工具) => 导入表 中出来一个对话框界面

可以在 “到用户” 处 选择你登录的账户。

b 如果是sql 格式文件,一样在PLSQL中新建一个命令窗口 (command windows) , 粘贴(ctrl+v) 刚才负责的sql内容。然后就开始自动执行还原了。

4 还原其他对象(存储过程,触发器,序列,函数等)

a 用PLSQL 登录要还原的Oracle。此时你登录的账号是什么,还原就在该账号下。

b 把先前备份的表结构sql文件打开,全选内容。 然后在PLSQL中新建一个命令窗口 (command windows) , 粘贴(ctrl+v) 刚才负责的sql内容。然后就开始自动执行还原了。

以上就是关于mysql删除数据库没有备份怎么恢复全部的内容,包括:mysql删除数据库没有备份怎么恢复、增量备份和全库备份怎么恢复数据库、一个完整的数据备份及恢复方案应包括那些等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9357373.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-27
下一篇 2023-04-27

发表评论

登录后才能评论

评论列表(0条)

保存