存档
Status bits, some of which can be set by using ALTER DATABASE as noted:
1 = autoclose (ALTER DATABASE)
4 = select into/bulkcopy (ALTER DATABASE using SET RECOVERY)
8 = trunc. log on chkpt (ALTER DATABASE using SET RECOVERY)
16 = torn page detection (ALTER DATABASE)
32 = loading
64 = pre recovery
128 = recovering
256 = not recovered
512 = offline (ALTER DATABASE)
1024 = read only (ALTER DATABASE)
2048 = dbo use only (ALTER DATABASE using SET RESTRICTED_USER)
4096 = single user (ALTER DATABASE)
32768 = emergency mode
4194304 = autoshrink (ALTER DATABASE)
1073741824 = cleanly shutdown
Multiple bits can be ON at the same time.
status2
16384 = ANSI null default (ALTER DATABASE)
65536 = concat null yields null (ALTER DATABASE)
131072 = recursive triggers (ALTER DATABASE)
1048576 = default to local cursor (ALTER DATABASE)
8388608 = quoted identifier (ALTER DATABASE)
33554432 = cursor close on commit (ALTER DATABASE)
67108864 = ANSI nulls (ALTER DATABASE)
268435456 = ANSI warnings (ALTER DATABASE)
536870912 = full text enabled (set by using sp_fulltext_database )
转自:http://blog.csdn.net/obuntu/archive/2010/06/08/5655494.aspx
谢谢obuntu
flag | Trace Flag Description (underlined are sp_configure’able) |
-1 | Sets trace flags for all connections. Used only with DBCC TRACEON and TRACEOFF. The setting of the Trace flag -1 is not visible with DBCC TRACESTATUS command, but work without problems. |
105 | SQL Server 6.5 you can use maximum 16 tables or subqueries in a single select statement. There is no documented way, to avoid this restriction, but you can use undocumented trace flag 105 for this purpose. |
106 | Disables line number information for syntax errors. |
107 | Interprets numbers with a decimal point as float instead of decimal. |
110 | Turns off ANSI select characteristics. |
204 | A backward compatibility switch that enables non-ansi standard behavior. E.g. previously SQL server ignored trailing blanks in the like statement and allowed queries that contained aggregated functions to have items in the group by clause that were not in the select list. |
205 | Report when a statistics-dependent stored procedure is being recompiled as a result of AutoStat. |
206 | Provides backward compatibility for the setuser statement. |
208 | SET QUOTED IDENTIFIER ON. |
237 | Tells SQL Server to use correlated sub-queries in Non-ANSI standard backward compatibility mode. |
242 | Provides backward compatibility for correlated subqueries where non-ANSI-standard results are desired. |
243 | The behavior of SQL Server is now more consistent because null ability checks are made at run time and a null ability violation results in the command terminating and the batch or transaction process continuing. |
244 | Disables checking for allowed interim constraint violations. By default, SQL Server checks for and allows interim constraint violations. An interim constraint violation is caused by a change that removes the violation such that the constraint is met, all within a single statement and transaction. SQL Server checks for interim constraint violations for self-referencing DELETE statements, INSERT, and multi-row UPDATE statements. This checking requires more work tables. With this trace flag you can disallow interim constraint violations, thus requiring fewer work tables. |
246 | Derived or NULL columns must be explicitly named in a select….INTO or create view statement when not done they raise an error. This flag avoids that. |
253 | Prevents ad-hoc query plans to stay in cache. |
257 | Will invoke a print algorithm on the XML output before returning it to make the XML result more readable. |
在sql server 2000的错误日志文件中出现如下的错误:
2010-08-05 09:21:51.31 spid11 错误: 823,严重度: 24,状态: 2
2010-08-05 09:21:51.31 spid11 I/O error (torn page) detected during read at offset 0x0000116496a000 in file 'd:\Microsoft SQL Server\MSSQL\data\xxxxxxx_Data.MDF'.
======================================================
Description&Solution:
Torn_page_detection:
This recovery option allows SQL Server to detect incomplete I/O operations caused by power failures or other system outages.
When set to ON, this option causes a bit to be reversed for each 512-byte sector in an 8-kilobyte (KB) database page when the page is written to disk. If a bit is in the wrong state when the page is later read by SQL Server, the page was written incorrectly; a torn page is detected. Torn pages are usually detected during recovery because any page that was written incorrectly is likely to be read by recovery.
Although SQL Server database pages are 8 KB, disks perform I/O operations using a 512-byte sector. Therefore, 16 sectors are written per database page. A torn page can occur if the system fails (for example, due to power failure) between the time the operating system writes the first 512-byte sector to disk and the completion of the 8-KB I/O operation. If the first sector of a database page is successfully written before the failure, the database page on disk will appear as updated, although it may not have succeeded.
Note Using battery-backed disk caches can ensure that data is successfully written to disk or not written at all.
If a torn page is detected, an I/O error is raised and the connection is killed. If the torn page is detected during recovery, the database is also marked suspect. The database backup should be restored, and any transaction log backups applied, because it is physically inconsistent.
By default, TORN_PAGE_DETECTION is ON.
Powerbuilder历程
0引言
PowerBuilder是在中国用户群很大的数据库产品,多年来深受中国用户的喜爱。作为一个使用PowerBuilder多年进行系统开发的资深用 户,我在进行开发的同时,也关注着PowerBuilder的历史以及发展,以下是我对PowerBuilder历史的研究资料,希望能够给广大 PowerBuilder提供一点有用的东西。
本文的组织有两条主线,一是两任CEO对PowerBuilder发展的贡献;二是PowerBuilder产品线的发展。
从1974年Kertzman创建Powersoft公司的前身Computer Solutions公司,1984年Mark Hoffman创建SYBASE公司,到Computer Solutions公司易名为Powersoft公司,推出PowerBuilder1.0,再到1995年Powersoft公司和SYBASE公司的 合并,以及后来陈守宗拯救SYBASE公司,真实地展现了一个高科技公司从创建到发展壮大的过程。这样一个过程,绝对值得国内的高科技公司学习与借鉴。
1. 传奇的开始
·小说般的创业
说到PowerBuilder的创始人Mitchell E. Kertzman,的确是一个传奇人物。
Mitchell E. Kertzman出生在麻省的波士顿市,他曾经当过主席和CEO,他说“高科技企业的CEO生涯就象一本故事书”,事实上,他的CEO生涯就是一本故事书。
在十几岁时,Mitchell Kertzman是一位波士顿的民间歌手,1968年,当他在Brandeis University读二年级时,Mitchell Kertzman从大学辍学成为波士顿的WBCN 的摇滚电台主持人(这是美国最为激进的电台之一),并认为这将会成为他一生的职业。然而,1968年夏天他只在电台呆了4个月,就因为被指控煽动一场暴乱 ――和平抗议波士顿的宵禁(Mitchell Kertzman否认这项指控)而被电台解雇了。随后,他在加油站工作,不久,他的母亲在软件公司给他找了一份技术员的工作。从此,他开始了其编程生涯并 为之着迷,以至于后来创办了自己的软件公司。这听起来象一本小说里的故事,但对于Mitchell Kertzman来说,这是真实的。
Mitchell Kertzman平易近人,但很难预测他的行为。他曾经说过:“我年轻的时候非常害羞,但当我学会了弹吉他和唱民间歌曲,姑娘们喜欢上我了。”
商业世界艰难的开始
经过短暂的加油站工作,Mitchell Kertzman作为音频-视觉产品技术员,在一家名为“交互式学习系统”的教育软件公司工作。“我问主管我们部门的副总,我能否参与编程”,主管回答, “当然,你可以试试”。这成为Mitchell Kertzman一生很重要的决定。接下来四年里,Mitchell Kertzman开始为公司不停地编程。“我喜爱编程”,但令人啼笑皆非的是,现在SYBASE公司用Mitchell Kertzman的代码来告诫新的程序员们,如果他们写出这样的代码,那么就会滚蛋。
当公司陷入财政微机时,Kertzman开始了两项工作。一是通过邮件提供人体生理功能节律失调图表;二是给乐队提供预约服务。“这是一个本质上的错误,我竟然相信摇滚音乐家的商业道德”,Kertzman从中得到了宝贵的商业教训。
创建Powersoft公司
1974年Kertzman决定开始自己的编程事业,在其生活过的街区,麻省的West Newton街区,他创建了一个名为Computer Solutions的公司,这是一个制作MRP(生产需求计划)的小型软件咨询公司。当时创建这个公司时,Kertzman没有很多想法,只是“为食物而 编程”,为了养家糊口。他希望人们能够喜欢他编写的程序,这样他就可以买蔬菜和付房租。
Kertzman一直干得不错。他挂出招牌“定制程序”,其头两个客户都是制造业公司,Kertzman学习了其商业流程并将其自动化,使其易于使用,迅于实施。同时,Kertzman还非常注重软件用户界面的人机工程学,这样客户非常喜爱他编写的程序。
1987年,Kertzman看到了下一波计算热潮将是运行用户界面的网络PC,后来被称为客户/服务器计算市场的潜力,就开始寻找可以重写企业生产应用 的开发工具,但是没有找到,后来Kertzman就找到并雇用了Dave Litwack来开发这种新的开发工具,Litwack是Cullinet的前研发主管,对这个巨大的市场的开发工具有很好的构想,就是后来被称为 PowerBuilder的产品。于是他就开始了重写企业生产应用和研发开发工具的工作。开发工具的工作进展相当顺利,业务量也越来越大,所以 Kertzman卖掉了开发生产应用的业务。80年代末,他将公司改名为Powersoft,这曾是提供生产需求计划MRP的最好生产商之一。在1991 年6月,Powersoft公司发布了其旗标式客户/服务器应用开发工具,PowerBuilder1.0。
Powersoft公司随后还发布了Optima++,这是快速应用开发工具的一员,用来简化C++和Java的使用,并创建WINDOWS客户/服务器应用和WEB应用;S-Designor,设计和建模工具。
说到 PowerBuilder,不得不提到他的奠基人,David Litwack。
正是这位天才的程序员,一手缔造了伟大的开发工具,PowerBuilder。David Litwack在1990年代初的客户/服务器模式(client/server)热潮中,任职于 Powersoft公司时,他推动客户/服务器模式革命,倚仗的利器是“PowerBuilder”──他亲手开发的工具,当时最受欢迎的程序开发工具之 一。也因此David Litwack当上了Powersoft公司的主席。虽然Litwack后来离开Powersoft公司另谋生路,但是,他对Powersoft公司、对 客户/服务器模式的贡献都是不可磨灭的。
创建表空间
create tablespace dultest datafile 'e:\oracle\oradata\orcl\dultest.dbf'
size 100m autoextend on next 100m maxsize unlimited
default storage(
initial 20M
next 20M
minextents 1
maxextents unlimited
pctincrease 0
);
表空间仅有一个数据文件,数据文件初始大小为100m,以后增长幅度为100m,不限制上限。表空间dultest内的对象的默认的空间分配信息为:对象初始大小为20m,后续空间增长幅度为20m。
通过系统视图查看表空间的信息:
SQL> set linesize 2000
SQL> col tablespace_name format a16
SQL> col datafile_name format a40
SQL> select ts.ts#,ts.name tablespace_name,file#, df.name datafile_name,block_size,blocks,bytes,status,enabled
2 from v$tablespace ts,v$datafile df
3 where ts.ts# = df.ts# and ts.name='DULTEST';
TS# TABLESPACE_NAME FILE# DATAFILE_NAME BLOCK_SIZE BLOCKS BYTES STATUS ENABLED
---------- ---------------- ---------- ---------------------------------------- ---------- ---------- ---------- ------- ----------
8 DULTEST 6 E:\ORACLE\ORADATA\ORCL\DULTEST.DBF 8192 25600 209715200 ONLINE READ WRITE
SQL>
删除表空间及其表空间内所有的对象
drop tablespace dultest including contents and datafiles;
删除目录下的所有文件和子文件夹:
del /S 目录名
将一个目录拷贝到另外一个目录里,比如将D盘下的data文件夹拷贝到d:\sybase里面
D:\> xcopy /E /Y /I data sybase\data
使用密码 ZaBaToAd 来将文件夹“games”的内容添加到压缩文件“secret”
rar a -pZaBaToAd -r secret games\*.*
将文件分割压缩 将文件e:\andkylee_dat.dat压缩,每个2M进行分割,压缩级别为3(标准)
"c:\Program Files\winrar\rar" a -v2000k -m3 e:\andkylee e:\andkylee_dat.dat
命令行配置telnet服务的启动状态为:手动
sc config tlntsvr start= demand
从命令行启动telnet服务
sc start tlntsvr
配置telnet服务器的最大并发用户连接数为:10
tlntadmn config maxconn= 10
配置telnet服务器空闲会话不超时
tlntadmn config timeoutactive=yes
------------------------------------------------------------------------------
telnet服务tlntadmn命令的端口设置 http://network.51cto.com/art/201007/212864.htm
- 下面我们对tlntadmn的命令对Telnet服务的端口设置问题进行一下介绍。那么具体的内容就让我们来详细看一下吧。
telnet可以帮助我们完成远程的登录设置,那么管理员如何对端口认证等系统进行管理呢?这里我们就来介绍一下tlntadmn 命令的用法。这个命令可以帮助我们完成telnet服务的这些设置。那么,tlntadmn是telnet服务的设置命令,可以对telnet服务的端 口、认证方式等进行设置:
用法: tlntadmn [computer name] [common_options] start | stop | pause | continue | -s | -k | -m | config config_options
所有会话用 'all'.
-s sessionid 列出会话的信息.
-k sessionid 终止会话.
-m sessionid 发送消息到会话.
config 配置Telnet服务器参数.
common_options 为:
-u user 指定要使用其凭据的用户
-p password 用户密码
config_options 为:
dom = domain 设定用户的默认域
ctrlakeymap = yes|no 设定 ALT 键的映射
timeout = hh:mm:ss 设定空闲会话超时值
timeoutactive = yes|no 启用空闲会话.
maxfail = attempts 设定断开前失败的登录企图数.
maxconn = connections 设定最大连接数.
port = number 设定Telnet端口.
sec = [+/-]NTLM [+/-]passwd 设定身份验证机构
fname = file 指定审计文件名.
fsize = size 指定审计文件的最大尺寸(MB).
mode = console|stream 指定操作模式.
auditlocation = eventlog|file|both 指定记录地点
audit = [+/-]user [+/-]fail [+/-]admin 指定审计的事件
使用的办法:
转自:http://space.itpub.net/?uid-7656893-action-viewspace-itemid-664954
第一步:计算整个Block Header的大小
数据块头部所需要的空间大小由以下公式计算:
Space after headers (hsize) = DB_BLOCK_SIZE - KCBH - UB4 - KTBBH - ((INITRANS - 1) * KTBIT) - KDBH
其中的一些参数说明如下:
DB_BLOCK_SIZE:数据库的block大小,可以查询V$PARAMETER视图中获得。
KCBH、UB4、KTBBH、KTBIT、KDBH都是常量,这些定义的大小可以从V$TYPE_SIZE视图中获得。
INITRANS是分配给表的初始化事务的数量,可以从USER_TABLES表中的INI_TRANS字段中获得。
第二步:计算每个数据块可用的数据空间
每个数据块为数据保留的空间是由PCTFREE参数所指定的,因此计算公式如下:
Available data space (availspace) = CEIL(hsize * (1 - PCTFREE/100))
– KDBT
其中的一些参数说明如下:
CEIL是取大于或者等于N的最小整数。
PCTFREE是在表中预留出来用于UPDATE操作的空间,可以从USER_TABLES表中的PCT_FREE字段中获得。
KDBT是常量,定义的大小可以从V$TYPE_SIZE视图中获得。如果你找不到KDBT的定义大小,用UB4定义的大小代替也可以。
第三步:计算每行所用的空间大小
计算每行所使用的空间大小是需要多步计算完成的。
首先计算列的大小,包括字节的长度:
Column size including byte length = column size + (1, if column size < 250, else 3)
对于列的大小,既可以利用经验来判断其大小,也可以使用语句来计算每列的大小:
Select avg(vsize(colname)) from table_name;
接着,计算行的大小:
Rowsize = row header (3 * UB1) + sum of column sizes including length bytes
最后,计算每行所用的空间大小:
Space used per row (rowspace) = MAX(UB1 * 3 + UB4 + SB2, rowsize) + SB2
UB1、UB4、SB2都是常量,定义的大小可以从V$TYPE_SIZE视图中获得。
当每行所占用的空间超过了一个数据块可用的空间的大小,但是仍然小于每个数据块保留给UPDATE操作的空间大小(例如,PCTFREE=0),每行记录将仍然被存储在它们自己的block块中。
当每行的空间大小超过了每个数据块可用的空间,并且没有任何保留给UPDATE操作的空间可用了,此时,这行记录将被链接到另外一个block或者更多,因此,这个时候的存储的负载会比较高。
第四步:计算在一个block中可以容纳最多的记录数量
可以使用下面的公式来计算一个数据block中可以容纳的记录的数量:
Number of rows in block = FLOOR(availspace / rowspace)
FLOOR是取小于N的最大整数。
这个过程只是提供一个大致的估算一个表的大小,而不是精确的去计算的。在大致的估算出一个表的大小之后,我们可以利用这个信息来判定在创建表的时候究竟使 用多大的INITIAL这个存储参数。当表被创建后开始使用了,空间的需求往往是大于我们通过计算得出的估计值。
有这样一个备份策略:周一对某用户数据库进行完全备份,周二,周三一直到周日都进行日志备份。此策略简单易于说明本文的问题。
假如在周五的时候,其它地方需要使用此用户库的所有数据,而又不想拷贝周一的备份和后续的多个日志备份文件。此时,如何进行数据库全备呢?
如果做全备的话,则可能对原本运行正常的备份策略产生影响。此应用场景下,对用户库做了全备后,后续的周六、周日的日志备份所对应的基点就不是周一的全备而是周五的全备了。如果还按照原本的备份策略,则势必会出现问题。
如何在做数据库全备的时候,不影响原来的备份策略呢?
解决办法:
在sql server 2005 中有个参数 copy_only。
backup database andkylee to disk='d:\andkylee.bak' with copy_only
已为数据库 'andkylee',文件 'andkylee' (位于文件 2 上)处理了 17296 页。
已为数据库 'andkylee',文件 'andkylee_log' (位于文件 2 上)处理了 1 页。
BACKUP DATABASE 成功处理了 17297 页,花费 5.790 秒(24.471 MB/秒)。
成功!
————————————————————————————————-
—- 本文为andkylee个人原创,请在尊重作者劳动成果的前提下进行转载;
—- 转载务必注明原始出处 : http://www.dbainfo.net
—- 关键字:sql server 2005 备份 完全备份 with copy_only
————————————————————————————————-