任何软件都有可能在有意或无意的情况下被重新安装,如Oracle重装后数据库怎么恢复呢?情况发生在你是无意的情况下!ORACLE数据库恢复的方法我们经常会用到,下面就为您介绍重装系统后ORACLE数据库恢复的方法,希望对您学习ORACLE数据库恢复方面能有所帮助。\x0d\\x0d\我的电脑突然挂了,不得不重装系统,不过我的ORACLE装在了D盘,所有的文件都还在,我相信一定能够恢复,直到搞定工作,我才开始整我的数据库,花了两天时间,终于恢复了,庆祝一下,同时总结一下,希望有遇到同样问题的朋友能够快速搞定此类问题\x0d\\x0d\第一种:\x0d\\x0d\首先,备份数据库(X:\oracle\oradata)下的数据文件,重新命名即可(否则装数据库的时候会提示sid已存在)。重新安装数据\x0d\库,当然数据库的名字就是你要恢复的名字。安装完成后,打开控制面板,停止oracle的服务。把(X:\oracle\oradata)下新生成的文件\x0d\改名,把原先目录下的文件恢复名字。再重新启动oracle服务和监听。用sys/as dba \x0d\登陆数据库,可能会提示权限不够(ora-01031)修改(X:\oracle\ora92\network\admin \x0d\)文件夹下的sqlnetora文件,添加SQLNETAUTHENTICATION_SERVICES= \x0d\(NTS),增加权限。登陆进去后,打开table提示不能打开。打开common页,执行命令alert database \x0d\open;这时再刷新table,发现原先的表可以打开了。恢复成功了。再用原先数据库的普通用户进入。发现一切正常。至此,大功告成。\x0d\\x0d\第二种:\x0d\\x0d\1、首先,将原来的ORACLE文件夹改名,原来的路径是D:/oracle我暂时改成D:/oracle_old找来ORACLE(我用\x0d\的是ORACLE 9I)安装光盘,将ORACLE安装在原来安装的目录下,这样恢复起来更加方便,主要是注册表的内容不用修改。\x0d\\x0d\2、安装完了之后,系统中又有一个可以使用的ORACLE了。这个时候要做的就是将原来的文件和数据恢复过来。第一步,先关闭ORACLE的所\x0d\有已经启动的项目,在"服务"里面逐一关闭。然后,将安装目录改名。我现在用的是D:/oracle改成D:/oracle_new再将D:\x0d\/oracle_old改成D:/oracle \x0d\这样理论上说从物理层面恢复了ORACLE了。但是我们发现,现在还不能启动ORACLE的监听程序和服务程序。我们还要从逻辑上解决。\x0d\\x0d\3、在dos环境下执行一个删除命令:oradim -delete -sid mm,其中mm为创建oracle时候创建的实例 \x0d\建议执行这个命令后重新启动机器,重启后就可以建立和原来实例名相同的实例。当然你懒,不重新启动也可以,但是你的实例名就不能和原来的一样了。\x0d\\x0d\4、在dos环境下执行命令 oradim -new -sid mm -startmode a -pfile "D:\oracle\admin\mm\pfile\initmmora "创建一个新的实例,其中 "mm"为新数据库的名称。\x0d\\x0d\5、启动服务,先打开数据库,然后可以用以前的用户名和密码登陆进去。 \x0d\要补充的是,一般的ORACLE数据库的监听程序都是用电脑的名称来识别地址的,而不是127001或者localhost所以,如果我们安装系\x0d\统的时候用的是不同的电脑名称(比如我原来用的是wm_mm重新安装后用的是wenming_mm),那么我们还有一个工作要做,就是修改文件 \x0d\listenerora将里面的相关的东西改过来就可以了。\x0d\\x0d\需要耐心、细心,可能在一步里有一个细小的差别就会出些古怪的错误提示,有时需要根据错误提示采取策略,总之原理是,先装一个一模一样的ORACLE,安装目录、数据库名称都一样,这样保证注册表里不用更改;再覆盖物理文件,最后重新实例化,打开数据库就可以进去了。
前提条件
-- 将 数据库的恢复模式(Recovery mode)设置为 “完整(Full)”
-- 此 *** 作可以在 SQL Server Management Studio 中, 选择数据库, 鼠标右键, 属性后,在 选项 标签中进行设置。
USE [master]
GO
ALTER DATABASE [test] SET RECOVERY FULL WITH NO_WAIT
GO
-- 完整备份数据库
backup database test to disk='e:\test_20130704dat'
GO
已为数据库 'test',文件 'Test' (位于文件 1 上)处理了 376 页。
已为数据库 'test',文件 'Test_log' (位于文件 1 上)处理了 3 页。
BACKUP DATABASE 成功处理了 379 页,花费 1151 秒(2571 MB/秒)。
测试数据
USE [test]
GO
-- 创建测试表
CREATE TABLE test_br_table (
ID int,
VAL VARCHAR(10),
PRIMARY KEY(ID)
);
GO
INSERT INTO test_br_table VALUES (1, 'TEST1');
INSERT INTO test_br_table VALUES (2, 'TEST2');
INSERT INTO test_br_table VALUES (3, 'TEST3');
GO
SELECT GETDATE()
GO
-----------------------
2013-07-04 16:44:12393
(1 行受影响)
-- 假设误 *** 作, 删除所有的数据了
DELETE FROM test_br_table
GO
(3 行受影响)
恢复
USE [master]
GO
-- 步骤1 备份当前数据库的事务日志:
BACKUP LOG [Test] TO disk= N'e:\test_log' WITH NORECOVERY
GO
已为数据库 'Test',文件 'Test_log' (位于文件 1 上)处理了 9 页。
BACKUP LOG 成功处理了 9 页,花费 0046 秒(1486 MB/秒)。
-- 步骤2 恢复一个误删除之前的完全备份:
RESTORE DATABASE [Test] FROM DISK = N'e:\test_20130704dat' WITH NORECOVERY, REPLACE
GO
已为数据库 'Test',文件 'Test' (位于文件 1 上)处理了 376 页。
已为数据库 'Test',文件 'Test_log' (位于文件 1 上)处理了 3 页。
RESTORE DATABASE 成功处理了 379 页,花费 0828 秒(3574 MB/秒)。
-- 步骤3 将数据库恢复至误删除之前的时间点:
RESTORE LOG [Test] FROM DISK = N'e:\test_log' WITH STOPAT = N'2013-07-04 16:44:12393' , RECOVERY
GO
已为数据库 'Test',文件 'Test' (位于文件 1 上)处理了 0 页。
已为数据库 'Test',文件 'Test_log' (位于文件 1 上)处理了 9 页。
RESTORE LOG 成功处理了 9 页,花费 0013 秒(5258 MB/秒)。
核对数据
use [Test]
GO
SELECT FROM test_br_table
GO
ID VAL
----------- ----------
1 TEST1
2 TEST2
3 TEST3
(3 行受影响)
上面为 SQL Server 2008 下面 *** 作的记录, SQL 2000 下面, 不知道行不行了
楼上的回答都不太准确。
1、方差和标准差是否有单位,取决于“样本数据”的单位。
2、如果“样本数据”有单位,那么方差和标准差均有单位;如果“样本数据”只是没有单位的数值,那么方差和标准差均没有单位。
3、理由:
方差的单位应该是“样本数据”单位的平方,而标准差的单位就是“样本数据”的单位。
4、参见方差和标准差的计算公式:
方差σ2反映各样本数值与平均分μ之间的差异,σ2=∑(xi-μ)/N);
σ为总体标准差,是方差σ2的正的平方根。
(注:σ2即σ的平方。写成这样是因为不好输入)
因为磁盘空间不足,我的一个虚拟机服务器崩溃了。结果数据库服务器进程无法启动,数据也就无法导出。只能想办法从数据库原始文件 ibdata 和 frm 文件中恢复数据库。
因为没有经验,好不容易才找到了恢复方法。特此记录,以备后用。
磁盘空间不足之后,mysqld 进程无法启动,提示“Can't connect to local MySQL server through socket '/var/lib/mysql/mysqlsock' (2)”。这真是让人无比头大,数据库根本连接不上。
目录 Contents
1 保存原始数据库文件
2 恢复方法
3
参考资料:
1 保存原始数据库文件¶
好在数据库原始文件还在。在我的系统环境和配置情况下,这些文件位于 /var/lib/mysql/ 文件夹下面。假设数据库名是 test,则这些文件表现为:
--mysql
|--test
|--1frm
|--2frm
|
|--mysql
|
|--ib_logfile0
|--ib_logfile1
|--ibdata1
|
这些就是原始数据库文件,可以用来恢复数据库。将这些文件额外保存一份,以防万一。
2 恢复方法¶
我的原始虚拟机完全没有磁盘空间而无法启动数据库服务器进程。虽然试着删除一些不需要的文件,但是数据库却始终无法连接。于是我新建了一个几乎一样的虚拟机(当然磁盘加大了),试图将这些数据库文件导入并恢复数据库。
在经历了很多错误之后,终于找到了正确的方法:
安装完成新服务器之后,通过命令行新建了与原来一样的数据库:数据库名称、用户名、密码都一样。如果有多个数据库需要恢复,就都给建好。(跟配置新服务器一样,参见安装和配置 MYSQL 数据库服务器。)
停止 mysqld 进程
service mysqld stop
将备份的原始数据库文件中的所有 frm 文件(保持原来的目录结构)和 ibdata1 文件复制到新服务器的数据库文件目录中(如果新服务器 *** 作系统和配置环境一样,那么目录结构也一样),其它文件不要。
使用 -innodb_force_recovery=6参数启动数据库服务器进程,这里是
/etc/initd/mysqld start -defaults-file=/etc/mycnf -standalone -console -innodb_force_recovery=6
OK,数据库恢复完成。
1、使用SQL最简单备份,还原数据库。
2、为了方便以后的使用,开始对语句进行简单的封装->存储过程。进行备份。
3、还原数据库,数据库还原后的保存位置(目录)(使用系统默认保存位置。为数据库重命名(使用数据库默认名称)不包含扩展名,如果目录已存在该名称的数据库,将会被覆盖 。
要使数据库具有可恢复性,基本原理就是 “冗余”,即数据的重复存储。
数据库恢复实现方法:
(1) 数据转储(dump)(又称“倒库”) 转储是指DBA将整个数据库复制到磁带或另 一个磁盘上保存起来的过程。这些备用的数 据文本称为后备副本或后援副本。一时发生 故障,可以将后备副本重新装入。
(2) 建立“日志”文件(logging)。 日志文件是用来记录事务对数据库的更新 *** 作的文件。对于数据库的每次插入、删除或 修改,记下改变前后 的值,写到““日志” 文件,以便有案可查。
数据库数据恢复步骤
1、通过日志恢复SQLSERVER2005数据(也可通过LogExplorer工具查找进行恢复数据)
(A)通过日志和时间点来恢复数据的前提条件:数据库的故障恢复改为非简单模式,去掉自动关闭和自动收缩两个选项,如果是简单模式:类似下面的语句 *** 作数据就不会记录到日志中:selectintotfrom[表名]采用LogExplorer工具可以在线 *** 作,通过恢复日志(指定时间点恢复)来恢复数据,必须停止数据库或者再另一个数据库恢复(前提是必须有一个完全备份和日志备份)
这时为保证数据的完整要将数据库的恢复模式改成“完整
11、这时对数据库事务日志做备份(注意,如果没做个数据库完整备份,是不能做事务日志备份的)
这时新建一个数据库zp(将以前的数据库改名),恢复数据库
这时我们看到,有两个还原的数据库备份,因为我对zp数据库备份了两次,两次的备份的数据文件都一样。这里我们选择最近时间的备份默认在数据库的设置如下:是追加到备份集里,所以会有两个备份。
同时,在”选项“里设置”不回滚“事务,
注意:通过事务日志还原数据库,必须选择"不回滚"事务
确定后:出现下面情况:
这时发现,数据库一直是”正在还原“,这时还原数据库事务日志,
12、“常规”里选择时间,(刚删除的时间)
13、“选项”里将恢复状态设置为”回滚未提交“事务
确定后,查询数据库,发现数据回来了
2、无日志的数据恢复
21新建一个同名的数据库
22再停掉sqlserver(注意不要分离数据库)
23用原数据库的数据文件覆盖掉这个新建的数据库
24再重启sqlserver
25此时打开企业管理器时会出现置疑,先不管,执行下面的语句(注意修改其中的数据库名)
26完成后一般就可以访问数据库中的数据了,这时,数据库本身一般还要问题,解决办法是,利用
数据库的脚本创建一个新的数据库,并将数据导进去就行了
USEMASTERSP_CONFIGURE'ALLOWUPDATES',1RECONFIGUREWITHOVERRIDE
UPDATESYSDATABASESSETSTATUS=32768WHERENAME='数据库名'
sp_dboption'数据库名','singleuser','true'
DBCCCHECKDB('数据库名')
updatesysdatabasessetstatus=28wherename='数据库名'
sp_configure'allowupdates',0reconfigurewithoverride
sp_dboption'数据库名','singleuser','false'
以上就是关于重装系统后,怎么恢复oracle数据库全部的内容,包括:重装系统后,怎么恢复oracle数据库、SQL2000数据库被误重写了,怎样恢复到之前MDF和日志文件都完好没有破坏,在线等...、实验没有做重复,用什么方法进行数据恢复并计算方差等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)