‘壹’ oracle数据库的日志文件大小
1、Oracle 数据库默认情况下,在安装的时候,会有三个重做日志文件。
2、当第一个重做日志文件达到一定容量时,就会停止写入,而会转向第二个日志文件。
3、第二个也满时,就会转向第三个,当第三个满时,就会往第一个日志文件中写入。
4、在往这原来的纪录中写入重做日志文件的时候,是否需要对原有的纪录进行备份则是根据用户需求的不同,存在两种处理模式。
一种是不需要数据库进行自动备份,这种模式就叫做非归档模式;
一种是在重做日志改写原有的重做日志文件以前,数据库会自动对原有的日志文件进行备份的话,这种操作模式就叫做归档模式。
5、所以你说的数据文件会一直增大的原因是归档模式,只要设置成非归档模式日志文件就不会一直增大。
---
以上,希望对你有所帮助。
‘贰’ 如何在数据库中添加一个新的数据库文件,大小为10mb
sql">CREATEDATABASE[test_db]ONPRIMARY
(NAME=N'test_db',FILENAME=N'D:DB est_db.mdf',SIZE=10240KB,FILEGROWTH=10240KB)
LOGON
(NAME=N'test_db_log',FILENAME=N'D:DB est_db_log.ldf',SIZE=10240KB,FILEGROWTH=10240KB)
GO
上面是创建一个test_db数据库,初始大小为10MB,日志文件为10MB,文件增量为10MB,存储在D:DB目录下
‘叁’ 如何控制数据库日志增长速度
SQL server控制日志增长采取措施:
1.清空日志
DUMP TRANSACTION 库名 WITH NO_LOG
2.收缩数据库文件(如果不压缩,数据库的文件不会减小)
先提供一种复杂的方法压缩日志及数据库文件如下:
1.清空日志
DUMP TRANSACTION 库名 WITH NO_LOG
2.截断事务日志:
BACKUP LOG 数据库名 WITH NO_LOG
3.收缩数据库文件(如果不压缩,数据库的文件不会减小
企业管理器--右键你要压缩的数据库--所有任务--收缩数据库--收缩文件
--选择日志文件--在收缩方式里选择收缩至天天上网M,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了
--选择数据文件--在收缩方式里选择收缩至天天上网M,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了
也可以用SQL语句来完成
--收缩数据库
DBCC SHRINKDATABASE(客户资料)
--收缩指定数据文件,1是文件号,可以通过这个语句查询到:select * from sysfiles
DBCC SHRINKFILE(1)
4.为了最大化的缩小日志文件(如果是sql 7.0,这步只能在查询分析器中进行)
a.分离数据库:
企业管理器--服务器--数据库--右键--分离数据库
b.在我的电脑中删除LOG文件
c.附加数据库:
企业管理器--服务器--数据库--右键--附加数据库
此法将生成新的LOG,大小只有500多K
或用代码:
下面的示例分离 pubs,然后将 pubs 中的一个文件附加到当前服务器。
a.分离
E X E C sp_detach_db @dbname = ’pubs‘
b.删除日志文件
c.再附加
E X E C sp_attach_single_file_db @dbname = ‘pubs’,
@physname = ’c:\Program Files\Microsoft SQL Server\MSSQL\Data\pubs.mdf‘
5.为了以后能自动收缩,做如下设置:
企业管理器--服务器--右键数据库--属性--选项--选择"自动收缩"
--SQL语句设置方式:
E X E C sp_dboption ’数据库名‘, ’autoshrink‘, ’TRUE‘
6.如果想以后不让它日志增长得太大
企业管理器--服务器--右键数据库--属性--事务日志
--将文件增长限制为xM(x是你允许的最大数据文件大小)
--SQL语句的设置方式:
alter database 数据库名 modify file(name=逻辑文件名,maxsize=20)
特别注意:
请按步骤进行,未进行前面的步骤,请不要做后面的步骤
否则可能损坏你的数据库.
一般不建议做第4,6两步
第4步不安全,有可能损坏数据库或丢失数据
第6步如果日志达到上限,则以后的数据库处理会失败,在清理日志后才能恢复.
另外提供一种更简单的方法
1。右建数据库属性窗口--故障还原模型--设为简单
2。右建数据库所有任务--收缩数据库
3。右建数据库属性窗口--故障还原模型--设为大容量日志记录
‘肆’ 数据库中日志文件与系统日志文件的区别
区别如下:
1、每个数据库至少具有两个操作系统文件:一个数据文件和一个日志文件。
数据文件包含数据和对象,例如表、索引、存储过程和视图。
2、日志文件包含恢复数据库中的所有事务所需的信息,为了便于分配和管理,可以将数据文件集合起来,放到文件组中。
3、主要数据文件包含数据库的启动信息,并指向数据库中的其他文件。
用户数据和对象可存储在此文件中,也可以存储在次要数据文件中,每个数据库有一个主要数据文件,主要数据文件的建议文件扩展名是 .mdf。
4、数据库的日志文件是事务日志,理解它的话首先要理解是什么是事务,事务是如何操作的,对于数据库而言,日志文件是必不可少的核心文件之一,数据库的日志文件保存的是对数据库的各种操作,例如数据的修改、删除等,在数据库内容发生丢失时可以用来恢复数据库。
5、而系统日志文件是用来记录系统上发生的事件的信息的,用来作系统的监控。
‘伍’ 事务日志文件的大小一般为数据库大小的多少合适
我认为日志文件的大小跟数据文件是没有太大的关联的,关键是看一次提交的事务的大小(要估计最大量),日志文件大小可以设置为最大的一次事务提交的大小的2-3倍就可以了,然后经常备份日志就可以了。数据库及其日志一定要经常备份,不然就算设置的日志文件再大也不行的。
‘陆’ 数据库访问慢的问题,数据库文件:1.3G,日志文件:3.1G,日志文件太大会不会影响访问速度,或者影响效率
手动收缩:企业管理器--右键你要压缩的数据库--所有任务--收缩数据库--收缩文件
--日志文件收缩
--数据文件收缩
设置自动收缩:企业管理器--服务器--右键数据库--属性--选项--选择"自动收缩"
‘柒’ sql server 数据库日志过大会影响运行速度吗
sql server数据库日志文件过大不会影响运行速度,但是会导致数据无法写入。
SQL Server数据库中,当日志文件过大或者日志已满时就会影响到数据库的正常工作。而日志文件已满常常会造成SQL Server数据库无法写入的问题。
解决方法:
1、右键数据库→属性→选项→故障还原模型→设为简单→确定;
2、右键数据库→所有任务→收缩数据库→确定;
3、右键数据库→属性→选项→故障还原模型→设为大容量日志记录→确定。
‘捌’ 数据库日志已满,如何处理
先提供一种复杂的方法压缩日志及数据库文件如下:1.清空日志 mp transaction 库名 with no_log 2.截断事务日志: backup log 数据库名 with no_log3.收缩数据库文件(如果不压缩,数据库的文件不会减小 企业管理器--右键你要压缩的数据库--所有任务--收缩数据库--收缩文件 --选择日志文件--在收缩方式里选择收缩至xxm,这里会给出一个允许收缩到的最小m数,直接输入这个数,确定就可以了 --选择数据文件--在收缩方式里选择收缩至xxm,这里会给出一个允许收缩到的最小m数,直接输入这个数,确定就可以了 也可以用sql语句来完成 --收缩数据库 dbcc shrinkdatabase(客户资料) --收缩指定数据文件,1是文件号,可以通过这个语句查询到:select * from sysfiles dbcc shrinkfile(1)4.为了最大化的缩小日志文件(如果是sql 7.0,这步只能在查询分析器中进行) a.分离数据库: 企业管理器--服务器--数据库--右键--分离数据库 b.在我的电脑中删除log文件 c.附加数据库: 企业管理器--服务器--数据库--右键--附加数据库 此法将生成新的log,大小只有500多k 或用代码: 下面的示例分离 pubs,然后将 pubs 中的一个文件附加到当前服务器。 a.分离 e x e c sp_detach_db @dbname = 'pubs' b.删除日志文件 c.再附加 e x e c sp_attach_single_file_db @dbname = 'pubs', @physname = 'c:\program files\microsoft sql server\mssql\data\pubs.mdf'5.为了以后能自动收缩,做如下设置: 企业管理器--服务器--右键数据库--属性--选项--选择"自动收缩" --sql语句设置方式: e x e c sp_dboption '数据库名', 'autoshrink', 'true'6.如果想以后不让它日志增长得太大 企业管理器--服务器--右键数据库--属性--事务日志 --将文件增长限制为xm(x是你允许的最大数据文件大小) --sql语句的设置方式: alter database 数据库名 modify file(name=逻辑文件名,maxsize=20)特别注意: 请按步骤进行,未进行前面的步骤,请不要做后面的步骤 否则可能损坏你的数据库. 一般不建议做第4,6两步 第4步不安全,有可能损坏数据库或丢失数据 第6步如果日志达到上限,则以后的数据库处理会失败,在清理日志后才能恢复.另外提供一种更简单的方法,本人屡试不爽,建议大家使用。更简单的方法: 1。右建数据库属性窗口--故障还原模型--设为简单 2。右建数据库所有任务--收缩数据库 3。右建数据库属性窗口--故障还原模型--设为大容量日志记录 查询sql数据库中表占用的空间大小最近在给一家客户做系统维护时,需要查看数据库表的大小,相关的sql如下:1. exec sp_spaceused '表名' --(SQL统计数据,大量事务操作后可能不准)
2. exec sp_spaceused '表名', true --(准确的表空间大小,但可能会花些统计时间)
3. exec sp_spaceused -- (数据库大小查询)
4. exec sp_MSforeachtable "exec sp_spaceused '?'" --(所有用户表空间表小,SQL统计数据,,大量事务操作后可能不准)
5. exec sp_MSforeachtable "exec sp_spaceused '?',true" --(所有用户表空间表小,大数据库慎用)
create table #t(name varchar(255), rows bigint, reserved varchar(20), data varchar(20), index_size varchar(20), unused varchar(20))
exec sp_MSforeachtable "insert into #t exec sp_spaceused '?'"
select * from #t
drop table #t
‘玖’ MYSQL数据库10M大约能发布多少篇文章多少注册用户
像mysql和mssql这两种数据库,由于事务和日志等等功能的原因,导致实际可用大小远不到10M,估计10M可以放几十到几百个用户和总数几十万字的纯文字内容
。并且随着insert和update等等操作次数的增多,可用空间越来越少!
所以,建议你使用sqlite3,这个是类似access类型的数据库,语法与mysql一样,但是占用的是web空间,无需担心数据库的不足,只要你的web空间够大就行。相关的网站你网络下sqlite就可以找到了,sqlite的管理工具是sqliteman,都是t-sql方式进行操作