当前位置:首页 » 数据仓库 » 小麦科技数据库初始化后怎样恢复
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

小麦科技数据库初始化后怎样恢复

发布时间: 2023-06-07 04:21:07

❶ 紧急求救,怎样才能恢复数据库

数据库被挂起了。你可以试一试用下面的方法恢复:
A.现象:Error 926
Severity Level 14
Error Message Text
Database 'xx' cannot be opened - it has been marked SUSPECT by recover Explanation

(1) 当你使用Transact_sql命令操作这个数据库的数据时, 出现这个信息, 这是一个严重的错误, 如果你要使用这个数据库的数据, 必须改正这个错误.

(2) 启动Backup Server, 后备master数据库

1>mp database master to "/usr/sybase/master_mp.19991201"
2>go

(3) 用isql登录到SQL Server, 须用sa帐号 (本文以pubs2数据库为例)

1>sp_configure "allow updates", 1
2>go
1>begin tran
2>go
1>update master..sysdatabases
2>set status = -32768
3>Where name="pubs2"
4>go

如果得到(1 row affected),则

1>commit
2>go

否则

1>rollback
2>go

(4.1)如果条件允许,bcp out用户数据或mp用户数据库

(5.1)这时重新启动SQL Server, 再有sa帐号注册到SQL Server.

1>begin tran
2>go
1>update master..sysdatabases
2>set status=0
3>Where name="pubs2"
4>go

如果得到(1 row affected),则

1>commit
2>go

否则
1>rollback
2>go

1>sp_configure "allow updates" ,0
2>go

(4) 如果你的数据库原来有dboption(例如"select into","trunc log on chkpt"等), 你需要重新设置这些option..

(5) 运行dbcc命令检查数据库的一致性
isql -Usa -P -i dbcc.sql -o dbcc.out
dbcc.sql文件示例:
dbcc checkdb("pubs2")
go
dbcc checkalloc("pubs2")
go
dbcc checkcatalog("pubs2")
go
grep Msg dbcc.out

6) 后备用户数据库

1>mp database pubs2 on "/usr/sybase/pubs2_mp.19991201"
2>go

B.如何解决数据库被标记为"suspect"的问题之二( 数据库设备损坏时的解决方案 )?

A.现象: 926错误产生的原因有几种。本文讨论当数据库设备初始化失败( 设备文件丢失或文件读写权限不正确)时,导致数据桐盯库恢复失败,出现926错误的情况。
(1) 请先恢消贺复数据库设备及读写权限。

(2) 启动Backup Server, 后备master数据库
1>mp database master to "/usr/sybase/master_mp.19991201"
2>go

3) 用isql登录到SQL Server, 须用sa帐号 (本文以pubs2数据库为例)

1>sp_configure "allow updates", 1
2>go
1>begin tran
2>go

1>update master..sysdatabases
2>set status = status - 256
3>Where name="pubs2"
4>go

如果得到(1 row affected),则

1>commit
2>go

否则
1>rollback
2>go
(4) 重新启动SQL Server, 运行dbcc命令检查数据库的一致性编辑生成dbcc.sql文件:

dbcc checkdb("pubs2")
go
dbcc checkalloc("pubs2"局桥和)
go
dbcc checkcatalog("pubs2")
go

isql -Usa -P -i dbcc.sql -o dbcc.out
grep Msg dbcc.out

(5) 后备用户数据库

1>mp database pubs2 on "/usr/sybase/pubs2_mp.19991201"
2>go

❷ 数据库被删除了怎么恢复

恢复步骤:
1、运行EasyRecovery。
2、选择“DeletedRecovery”。
3、选择数据库文件所在的驱动器,在“File Filter”中输入*.mdf|*.ldf,选择“Next”。
4、在左侧窗口会列出被删除的数据库文件,选择所要恢复的数据库文件,选择“Next”。
5、在“Recover to Local Drive”中选择恢复后的文件存放的路径,要选择与原数据库文件不同的路径,选择“Next”。
6、文件被恢复后,将恢复的文件复制到原数据库文件位置,并在企业管理器通过附加数据库,将恢复的文件恢复到SQL Server中。
注:如果删除的数据库文件所有的存储区域被写过了,就无法恢复了,所以删除与恢复的时间间隔越短越好。

❸ 如何从完好的数据文件恢复oracle数据库

一。有数据文件、控制文件和日志文件的备份1.服务器重装了操作系统,oracle也重装了。如果重装的oracle和以前损坏的数据库是一模一样的结构,那么此时的恢复是比较简单的。
1)删除掉新建数据库的所有数据文件、控制文件和日志文件。Copy原数据库的数据文件、控制文件和日志文件到对应目录下。

2)

Cmd>sqlplus /nolog

Sql>conn as sysdba

用户名:system

密码:(此处密码为新创建数据库的密码)

Sql>shutdown immediate

Sql>startup nomount

Sql>alter database mount

此时看数据库是不是能mount起来,有时会提示没有口令文件PWDdemo.ora文件找不到。查看对应的目录(database下)会发现该文件是存在的。此时需要注意,该口令文件是新安装数据库后创建实例时生成的口令文件,不是以前所用数据库的口令文件,而现在,我们是用以前数据库的控制文件和数据文件来打开以前的数据库,所以此时需要重新创建一个口令文件。

Sql>shutdown immediate

Sql>host orapwd file=c:/oracle9i/database/PWDdemo.ora password=oracle

Entries=10 (放在database 目录下)

Sql>startup nomount

Sql>alter database mount

Sql>alter database open

打开数据库

2.如果新数据库的安装目录和原有数据库的目录不一样,那么此时可以重建控制文件来打开数据库。因为原控制文件中记录的数据文件地址和现有的数据文件位置不一样。此时和下面第二中情况一样。当然,此时也可以创建和原数据库一样的目录结构(前提是要记得原数据库的目录结构),需要注意的就是参数文件中记录的控制文件位置和控制文件中记录的数据文件位置。

说明:我们需要清楚数据库在打开的三个阶段中,需要读取的文件

Sql>startup nomount (此时读取参数文件)

Sql>alter database mount (根据参数文件中记录的控制文件地址,去读取控制文件)

Sql>alter database open (根据控制文件中记录的数据文件地址,读取数据文件,打开数据库)

二。只有数据文件备份,没有控制文件和日志文件

由于只有数据文件备份,没有控制文件和日志文件,此时只能采用重建控制文件来恢复数据库。以下通过两中方法来介绍如何通过重建控制文件来进行数据库的恢复。

1)仅安装数据库软件,通过新建oracle服务,引用数据文件来创建一个实例。下面以实例名为demo为例进行说明。

1.创建存储demo相关文件的目录。即::各类文件的存放地址。

C:/documents and settings/mkdir c:/demo

C:/documents and settings/mkdir c:/demo/bmp

C:/documents and settings/mkdir c:/demo/ump

C:/documents and settings/mkdir c:/demo/cmp

C:/documents and settings/mkdir c:/demo/pfile

C:/documents and settings/mkdir c:/demo/create

C:/documents and settings/mkdir c:/demo/oradata

C:/documents and settings/mkdir c:/demo/oradata/demo (放置datafile、logfile、controlfile)

2.创建初始化参数文件(pfile)

此处pfile文件可以从其他能正常运行的数据库上一个过来进行修改。(判断其他正常运行的数据库使用的是pfile还是spfile,如是pfile可以直接,如是spfile,则可根据spfile创建一个pfile文件)

Copy过来的pfile需要修改的地方:

background_mp_dest=c:/demo/bmp
core_mp_dest=c:/demo/cmp
user_mp_dest=c:/demo/ump
control_files=("c:/demo/oradata/demo/CONTROL01.CTL", "c:/demo/oradata/demo/CONTROL02.CTL", "c:/demo/oradata/demo/CONTROL03.CTL")
dispatchers="(PROTOCOL=TCP) (SERVICE=demoXDB)"(实例名)
dispatchers="(PROTOCOL=TCP) (SERVICE=demoXDB)"
db_domain=""
db_name=demo

3.创建oracle服务和口令文件

C:/documents and settings/oradim — new —sid demo —intpwd oracle

4.配置监听和服务

用net manager 进行配置(demo实例的配置)

5.复制数据文件备份到指定的目录下。此处为c:/demo/oradata/demo
6.重建controlfile

C:/Documents and Settings/hefan>sqlplus /nolog
SQL*Plus: Release 9.2.0.1.0 - Proction on 星期一 12月 29 10:57:07 2008
Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.
SQL> conn as sysdba
请输入用户名: system
请输入口令:
已连接。
SQL> shutdown immediate
ORA-01507: 未安装数据库
ORACLE 例程已经关闭。
SQL> startup nomount file= c:/demo/pfile/initdemo.ora
ORACLE 例程已经启动。
Total System Global Area 135338868 bytes
Fixed Size 453492 bytes
Variable Size 109051904 bytes
Database Buffers 25165824 bytes
Redo Buffers 667648 bytes
SQL> @d:/controlfile.sql
控制文件已创建
Controlfile.sql内容如下:(此处也可以直接在sql>下输入以下内容进行创建controlfile)
CREATE CONTROLFILE REUSE DATABASE "demo" RESETLOGS NOARCHIVELOG
MAXLOGFILES 50
MAXLOGMEMBERS 5
MAXDATAFILES 100
MAXINSTANCES 8
MAXLOGHISTORY 226
LOGFILE
GROUP 1 'c:/demo/oradata/demo/redo01.log' SIZE 50M,
GROUP 2 'c:/demo/oradata/demo/redo02.log' SIZE 50M,
GROUP 3 'c:/demo/oradata/demo/redo03.log' SIZE 50M
DATAFILE
'c:/demo/oradata/demo/system01.dbf',
'c:/demo/oradata/demo/odm01.dbf',
'c:/demo/oradata/demo/indx01.dbf',
'c:/demo/oradata/demo/tools01.dbf',
'c:/demo/oradata/demo/undotbs01.dbf',
'c:/demo/oradata/demo/users01.dbf',
'c:/demo/oradata/demo/xdb01.dbf',
'c:/demo/oradata/demo/cwmlite01.dbf',
'c:/demo/oradata/demo/drsys01.dbf',
'c:/demo/oradata/demo/example01.dbf'
CHARACTER SET zhs16gbk
说明:此时没有日志文件,所以只能进行reserlogs,如果是有logfile,则此处不需要resetlogs,noresetlogs就可以

❹ 如何Oracle 数据库备份与恢复

Oracle数据库备份与恢复的三种方法
Oracle数据库有三种标准的备份方法,它们分别是导出/导入(EXP/IMP)、热备份和冷备份。导出备件是一种逻辑备份,冷备份和热备份是物理备份。
一、 导出/导入(Export/Import)
利用Export可将数据从数据库中提取出来,利用Import则可将提取出来的数据送回到Oracle数据库中去。
1、 简单导出数据(Export)和导入数据(Import)
Oracle支持三种方式类型的输出:
(1)、表方式(T方式),将指定表的数据导出。
(2)、用户方式(U方式),将指定用户的所有对象及数据导出。
(3)、全库方式(Full方式),瘵数据库中的所有对象导出。
数据导入(Import)的过程是数据导出(Export)的逆过程,分别将数据文件导入数据库和将数据库数据导出到数据文件。
2、 增量导出/导入
增量导出是一种常用的数据备份方法,它只能对整个数据库来实施,并且必须作为SYSTEM来导出。在进行此种导出时,系统不要求回答任何问题。导出文件名缺省为export.dmp,如果不希望自己的输出文件定名为export.dmp,必须在命令行中指出要用的文件名。
增量导出包括三种类型:
(1)、“完全”增量导出(Complete)
即备份三个数据库,比如:
exp system/manager inctype=complete file=040731.dmp
(2)、“增量型”增量导出
备份上一次备份后改变的数据,比如:
exp system/manager inctype=incremental file=040731.dmp
(3)、“累积型”增量导出
累计型导出方式是导出自上次“完全”导出之后数据库中变化了的信息。比如:
exp system/manager inctype=cumulative file=040731.dmp
数据库管理员可以排定一个备份日程表,用数据导出的三个不同方式合理高效的完成。
比如数据库的被封任务可以做如下安排:
星期一:完全备份(A)
星期二:增量导出(B)
星期三:增量导出(C)
星期四:增量导出(D)
星期五:累计导出(E)
星期六:增量导出(F)
星期日:增量导出(G)
如果在星期日,数据库遭到意外破坏,数据库管理员可按一下步骤来回复数据库:
第一步:用命令CREATE DATABASE重新生成数据库结构;
第二步:创建一个足够大的附加回滚。
第三步:完全增量导入A:
imp system/manager inctype=RESTOREFULL=y FILE=A
第四步:累计增量导入E:
imp system/manager inctype=RESTOREFULL=Y FILE=E
第五步:最近增量导入F:
imp system/manager inctype=RESTOREFULL=Y FILE=F
二、 冷备份
冷备份发生在数据库已经正常关闭的情况下,当正常关闭时会提供给我们一个完整的数据库。冷备份时将关键性文件拷贝到另外的位置的一种说法。对于备份Oracle信息而言,冷备份时最快和最安全的方法。冷备份的优点是:
1、 是非常快速的备份方法(只需拷文件)
2、 容易归档(简单拷贝即可)
3、 容易恢复到某个时间点上(只需将文件再拷贝回去)
4、 能与归档方法相结合,做数据库“最佳状态”的恢复。
5、 低度维护,高度安全。
但冷备份也有如下不足:
1、 单独使用时,只能提供到“某一时间点上”的恢复。
2、 再实施备份的全过程中,数据库必须要作备份而不能作其他工作。也就是说,在冷备份过程中,数据库必须是关闭状态。
3、 若磁盘空间有限,只能拷贝到磁带等其他外部存储设备上,速度会很慢。
4、 不能按表或按用户恢复。
如果可能的话(主要看效率),应将信息备份到磁盘上,然后启动数据库(使用户可以工作)并将备份的信息拷贝到磁带上(拷贝的同时,数据库也可以工作)。冷备份中必须拷贝的文件包括:
1、 所有数据文件
2、 所有控制文件
3、 所有联机REDO LOG文件
4、 Init.ora文件(可选)
值得注意的使冷备份必须在数据库关闭的情况下进行,当数据库处于打开状态时,执行数据库文件系统备份是无效的。
下面是作冷备份的完整例子。
(1) 关闭数据库
sqlplus /nolog sql>;connect /as sysdba sql>;shutdown normal;
(2) 用拷贝命令备份全部的时间文件、重做日志文件、控制文件、初始化参数文件
{$PageTitle=sql>;cp ; ;}
(3) 重启Oracle数据库
sql>;startup
三、 热备份
热备份是在数据库运行的情况下,采用archivelog mode方式备份数据库的方法。所以,如果你有昨天夜里的一个冷备份而且又有今天的热备份文件,在发生问题时,就可以利用这些资料恢复更多的信息。热备份要求数据库在Archivelog方式下操作,并需要大量的档案空间。一旦数据库运行在archivelog状态下,就可以做备份了。热备份的命令文件由三部分组成:
1. 数据文件一个表空间一个表空间的备份。
(1) 设置表空间为备份状态
(2) 备份表空间的数据文件
(3) 回复表空间为正常状态
2. 备份归档log文件
(1) 临时停止归档进程
(2) log下那些在archive rede log目标目录中的文件
(3) 重新启动archive进程
(4) 备份归档的redo log文件
3. 用alter database bachup controlfile命令来备份控制文件
热备份的优点是:
1. 可在表空间或数据库文件级备份,备份的时间短。
2. 备份时数据库仍可使用。
3. 可达到秒级恢复(恢复到某一时间点上)。
4. 可对几乎所有数据库实体做恢复
5. 恢复是快速的,在大多数情况下爱数据库仍工作时恢复。
热备份的不足是:
1. 不能出错,否则后果严重
2. 若热备份不成功,所得结果不可用于时间点的恢复
3. 因难于维护,所以要特别仔细小心,不允许“以失败告终”。