数据库附加没有日志文件怎么办

数据库附加没有日志文件怎么办,第1张

解决办法:

1、新建一个同名数据库

2、停止数据库服务,覆盖新建的数据库主文件(小技巧:最好放在同一个磁盘里面,把新建的数据库主文件删掉或移开,再把要恢复的数据库主文件剪切过去,这样就可以节省时间。)

3、启动数据库服务,数据库变为置疑或可疑状态。然后在查询分析器中运行:

alter database 无日志文件的数据库名称 set emergency

设置为紧急状态。

4、再运行:

alter database 无日志文件的数据库名称 set single_user

或者:

Sp_dboption '无日志文件的数据库名称', 'single user', 'true'

设置为单用户模式。

5、检查并重建日志文件,运行:

dbcc checkdb('无日志文件的数据库名称',REPAIR_ALLOW_DATA_LOSS)

这个时间比较长。耐心等待!如果有错误提示,再运行:

dbcc checkdb('无日志文件的数据库名称',REPAIR_REBUILD)

进行修复。如果没有错误,可以跳过。

6、恢复成多用户模式

alter database 无日志文件的数据库名称 set multi_user

或者:

Sp_dboption '无日志文件的数据库名称', 'single user', 'false'

刷新数据库,你就可以看到已经修复好的数据库了。

1、常用命令 SQL> show parameter log_archive_dest; SQL> archive log list; SQL> select from V$FLASH_RECOVERY_AREA_USAGE; ARCHIVELOG 9662 0 141 SQL> select sum(percent_space_used)3/100 from v$flash_recovery_area_usage; 29904 SQL> show parameter recover; db_recovery_file_dest string /u01/oracle/flash_recovery_area db_recovery_file_dest_size big integer 2G 2、删除日志 cd $ORACLE_BASE/flash_recovery_area/orcl/archivelog 转移或清除对应的归档日志, 删除一些不用的日期目录的文件,注意保留最后几个文件在删除归档日志后,必须用RMAN维护控制文件,否则空间显示仍然不释放。 3、rman target sys/password RMAN> crosscheck archivelog all; RMAN> delete expired archivelog all; 或者 RMAN> delete archivelog until time “sysdate-1″; 4、再查 SQL> select from V$FLASH_RECOVERY_AREA_USAGE; 5、修改大小 SQL> alter system set db_recovery_file_dest_size=4G scope=both;

你好!

1如果要看日志内容,sql server下不直接支持,但是可以用LogExplorer(只支持2000)等工具来查看

如果你的意思是想看数据库在执行什么语句,可以用Sql profiler

菜单 Tool->Sql Server Profiler

进到Profiler的界面后新建一个跟踪(new Trace),选择好你的数据库和相应的用户、密码,然后就可以看到所有传到Sql Server来执行的语句了。

如果想更多的了解,可以去找些 Sql Server Profiler的资料看下,最好还是自己试几下, *** 作很简单,但是平时开发过程中调试很好用

2每个 Microsoft® SQL Server™ 2000 数据库都有事务日志,用以记录所有事务和每个事务对数据库所做的修改。记录事务及其修改有三个作用:

恢复个别的事务。

如果应用程序发出 ROLLBACK 语句,或者 SQL Server 检测到错误(例如失去与客户端的通讯),就使用日志记录回滚未完成的事务所做的修改。

SQL Server 启动时恢复所有未完成的事务。

当运行 SQL Server 的服务器发生故障时,数据库可能处于这样的状态:还没有将修改从高速缓冲存储器写入数据文件,在数据文件内有未完成的事务所做的修改。当启动 SQL Server 的复本时,它对每个数据库执行恢复 *** 作。前滚日志中记录的、可能尚未写入数据文件的每个修改。然后回滚在事务日志中找到的每个未完成的事务,以确保数据库的完整性。

将还原的数据库前滚到故障点。

丢失数据库(在没有 RAID 驱动器的服务器上,硬盘驱动器出现故障时可能会出现这种情况)后,可以将数据库还原到故障点。首先还原上一次的完整数据库备份或差异数据库备份,然后将事务日志备份序列还原到故障点。当还原每个日志备份时,SQL Server 重新应用日志中记录的所有修改以前滚所有事务。当最后的日志备份还原后,SQL Server 将使用日志信息回滚到该点未完成的所有事务。

SQL Server 2000 事务日志的特点是:

事务日志不是作为一个表实现,而是作为单独的文件或数据库内的一组文件实现。日志高速缓存与数据页的高速缓冲存储器分开管理,从而使数据库引擎内的编码更简单、更快速和更可靠。

日志记录和页的格式不必遵守数据页的格式。

事务日志可以在几个文件上实现。可以根据需要定义这些文件为自动增长。这样可减少事务日志内空间不足的可能性,同时减少管理开销。

截断日志中未用部分的机制速度快且对事务吞吐量影响最小。

1、登录Oracle服务器,切换到oracle用户下

#su - oracle

注:需要进入到命令行模式下

2、进入到sqlplus接口

$sqlplus '/as sysdba'

注意:使用角色sysdba

3、查询alter日志目录

show parameter dump

4、找到alert日志

USE pubs

在没有再次使用USE语句来改变当前数据库以前,后面的每一行 *** 作语句都将针对pubs数据库执行。使用系统存储过程sp_helpdb可以查看当前服务器上所有数据库的信息,如果指定了数据库的名字则返回指定数据库的信息。

使用系统存储过程sp_databases可以查看当前服务器上所有可以使用的数据库。

使用系统存储过程sp_helpfile可以查看当前数据库上所有文件(包括数据文件和日志文件)的信息。如果指定了文件的名字,则返回该文件的信息。

使用系统存储过程sp_helpfilegroup可以查看当前数据库上所有文件组,包括Primary文件组和User_defined文件组的信息。如果指定了文件组的名字,则返回该文件组的信息。

可以使用企业管理器来查看更详细的有关数据库的信息,方法是:

(1) 选中要查看的数据库。

(2) 从 *** 作菜单或快捷菜单中选择属性命令,d出如图34所示的对话框。从中可以查看或者修改数据文件、日志文件、文件组及使用权限等属性。

图34 数据库的属性查看

34 管理数据库

创建好数据库,也许使用一段时间之后,发现此数据库的文件容量不敷使用、此数据库已经有一段时间不用了等相关事情发生时,就必须要针对数据库来进行管理。

341 修改数据库大小

SQL Server 2000的数据文件可以自动扩充长度,所以数据库的大小也会自动增加。但是如果设置了最大文件长度,则数据库的扩充依然是有必要进行的 *** 作。修改数据库的大小实质上是修改数据文件和日志文件的长度,或者增加/删除 *** 作系统文件。这种 *** 作可以通过下面的语法来实现:

ALTER DATABASE database

{ ADD FILE <filespec> [,n] [TO FILEGROUP filegroup_name]

| ADD LOG FILE <filespec> [,n]

| REMOVE FILE logical_file_name

| ADD FILEGROUP filegroup_name

| REMOVE FILEGROUP filegroup_name

| MODIFY FILE <filespec>

| MODIFY FILEGROUP filegroup_name filegroup_property

}

<filespec> ::=

(NAME = logical_file_name

[, FILENAME = 'os_file_name' ]

[, SIZE = size]

[, MAXSIZE = { max_size | UNLIMITED } ]

[, FILEGROWTH = growth_increment] )

下面的例子在Company数据库的默认文件组Primary文件组里,增加了一个数据文件。

ALTER DATABASE Company

ADD FILE

(

NAME = Test1dat2,

FILENAME = 'e:\program files\Microsoft sql server\mssql\data\t1dat2ndf',

SIZE = 5MB,

MAXSIZE = 100MB,

FILEGROWTH = 5MB

)

GO

下面的例子在Company数据库的ComGroup1文件组里增加了两个数据文件,并将该文件组设置为默认文件组。

ALTER DATABASE Company

ADD FILE

( NAME = test1dat3,

FILENAME ='e:\program files\Microsoft sql server\mssql\data\t1dat3ndf',

SIZE = 5MB,

MAXSIZE = 100MB,

FILEGROWTH = 5MB),

( NAME = test1dat4,

FILENAME = 'e:\program files\Microsoft sql server\mssql\data\t1dat4ndf',

SIZE = 5MB,

MAXSIZE = 100MB,

FILEGROWTH = 5MB)

TO FILEGROUP ComGroup1

ALTER DATABASE Company

MODIFY FILEGROUP ComGroup1 DEFAULT

GO

下面的例子将Company数据库中test1dat3数据文件的长度改变为20MB。

ALTER DATABASE Company

MODIFY FILE

(NAME = test1dat3,

SIZE = 20MB)

GO

同样的 *** 作可以在企业管理器中进行,方法如下。

(1) 选中要查看的数据库。

(2) 从主菜单或快捷菜单中选择属性命令,d出如图34 所示对话框。

(3) 在数据文件选项卡中增删数据文件或对其属性进行修改。

(4) 在事务日志选项卡上增删日志文件或对其属性进行修改。

342 收缩数据库

SQL Server 2000数据库在长时间使用后数据文件和日志文件会非常庞大,同时删除了大量的数据后,数据文件的大小并没有自动变小。SQL Server 2000提供了手段来缩小过于庞大的数据库,以回收没有使用的数据页。可以用手动的方法单独缩小某一个数据文件,也可以缩小整个文件组的长度。还可以设置数据库在达到一定大小之前自动执行缩小 *** 作。

使用企业管理器完成缩小数据库的方法如下。

(1) 从指定服务器上展开数据库节点,选中要执行缩小 *** 作的数据库。

(2) 从快捷菜单中选择所有任务|收缩数据库命令,d出如图35所示的对话框。

图35 缩小数据库

选择执行数据库缩小 *** 作的方式:

l 收缩后文件中的最大可用空间微调框 在进行过数据库收缩后,文件中还可以利用的空间。

l 在收缩前将页移到文件起始位置复选框 把含有数据的数据页都移动到文件的开头。

l 收缩文件选项组 为了进行更精确的文件大小控制,针对每个单独的数据库文件进行收缩,具体方法是:单击文件按钮,d出如图36所示的对话框。

图36 针对文件进行收缩

可以在这个对话框中选择针对文件执行收缩 *** 作的不同方式,也可以设置执行收缩 *** 作的时间,把执行数据库收缩的时间安排在数据库存取不那么频繁的时段。

343 备份数据库

数据对于用户来说是非常宝贵的资产。数据是存放在计算机上的,但是即使是最可靠的硬件和软件,也会出现系统故障或产品故障。所以,应该在意外发生之前做好充分的准备工作,以便在意外发生之后有相应的措施能快速地恢复数据库的运行,并使丢失的数据量减少到最小。

通过企业管理器来备份数据库的 *** 作如下:

(1) 选中指定的数据库,选择工具|备份数据库命令,d出如图37所示的对话框。

图37 进行数据库备份

(2) 在该对话框可以更换需要备份的数据库,输入备份的名字和对备份的描述,选择备份的类型。

(3) 单击添加按钮选择要备份的设备,如图38所示。

图38 选择备份设备

在这个对话框中可以创建新的备份设备。用户可以一次选择多个设备,将数据库备份到多个设备上。也可以将数据库备份到指定的文件。

(4) 在图37所示的对话框的重写选项组里,选择在设备上进行 *** 作的方式,可以选择追加到媒体单选按钮,将新的备份添加到备份设备中以前备份的后面(不影响原来的备份);也可以选择重写现有媒体单选按钮,用新的备份覆盖原来的备份。

(5) 选中调度复选框,用户可以拟订自动进行备份 *** 作的时间,单击右边的按钮用户可以自主设计自动进行备份 *** 作的时间,如图39所示。完成设置后单击确定按钮,回到数据库备份界面。

图39 设置自动备份

(6) 单击确定按钮,完成备份 *** 作。

344 恢复数据库

使用SQL Server 2000可以很方便地实现数据库的恢复,步骤如下。

(1) 选中指定的数据库,选择工具|还原数据库命令,d出对话框如图310所示的对话框。

图310 还原数据库

(2) 可以选择要进行还原的数据库。在参数选项组中,用户可以选择利用哪个数据库备份来执行数据库的恢复 *** 作。如果是利用事务日志来进行恢复,还可以选择恢复数据库到某一指定时刻的状态。如果是从设备(文件)恢复数据库,可以在还原选项中选择从设备单选按钮,如图311所示。

图311 从设备还原数据库

单击选择设备按钮,如图312所示。单击添加按钮可以选择还原的文件名称。完成后单击确定按钮。

图312 选择设备

(3) 单击确定按钮完成数据库的恢复。

查看归档模式

conn

/as

sysdba

archive

log

list

如果数据库为归档模式的话,可以通过logmnr来进行挖掘日志文件查看这些信息的。如果是非归档模式。对不起无法查看了

开启后台进程跟踪,

设置参数(initsidora)

backgroudn_dump_dest=目录名

--

指定根踪文件存放的路径

user_dmup_test=目录名

--指定用户信息跟踪文件的存放路径

用户的跟踪文件(trc),

用TKPROF

来格式化用户跟踪文件

SQL

语句跟踪即可。

imed_statistics=true;

--设置启用

sql_trace

=true;

user_dump_dest=目录

--指定跟踪文件的存放路径

max_dump_file_size=5M

--指定跟踪文件最大尺寸

SQL_TRACE=TRUE;

动态改变

:alter

session

set

sql_trace=true;

或者打开生成的跟踪文件:

默认在\oralce\admin\user\udump\trc,由于oralce

生成的trc

直接打开格式不规格,看得很累,可以用tkprof

gk

来格式化

:c:\tkprof

ora00001trc

atxt

以上就是关于数据库附加没有日志文件怎么办全部的内容,包括:数据库附加没有日志文件怎么办、如何查询数据库恢复需要用到哪些归档日志、sql server 2000中,如何查询事务日志事务日志有什么作用等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存