Category: 数据库

2008-12-08

SQL数据库的备份、压缩与SQL数据库数据处理的方法

归类于: 数据库 - 08 Dec 2008

一、备份数据库

1、打开SQL企业管理器,在控制台根目录中依次点开Microsoft SQL Server

2、SQL Server组双击打开你的服务器双击打开数据库目录

3、选择你的数据库名称(如论坛数据库Forum)然后点上面菜单中的工具选择备份数据库

4、备份选项选择完全备份,目的中的备份到如果原来有路径和名称则选中名称点删除,然后点添加,如果原来没有路径和名称则直接选择添加,接着指定路径和文件名,指定后点确定返回备份窗口,接着点确定进行备份

二、还原数据库

1、打开SQL企业管理器,在控制台根目录中依次点开Microsoft SQL Server

2、SQL Server组双击打开你的服务器点图标栏的新建数据库图标,新建数据库的名字自行取

3、点击新建好的数据库名称(如论坛数据库Forum)然后点上面菜单中的工具选择恢复数据库

4、在弹出来的窗口中的还原选项中选择从设备点选择设备点添加然后选择你的备份文件名添加后点确定返回,这时候设备栏应该出现您刚才选择的数据库备份文件名,备份号默认为1(如果您对同一个文件做过多次备份,可以点击备份号旁边的查看内容,在复选框中选择最新的一次备份后点确定)然后点击上方常规旁边的选项按钮

5、在出现的窗口中选择在现有数据库上强制还原,以及在恢复完成状态中选择使数据库可以继续运行但无法还原其它事务日志的选项。在窗口的中间部位的将数据库文件还原为这里要按照你SQL的安装进行设置(也可以指定自己的目录),逻辑文件名不需要改动,移至物理文件名要根据你所恢复的机器情况做改动,如您的SQL数据库装在D:\Program Files\Microsoft SQL Server\MSSQL\Data,那么就按照您恢复机器的目录进行相关改动改动,并且最后的文件名最好改成您当前的数据库名(如原来是bbs_data.mdf,现在的数据库是forum,就改成forum_data.mdf),日志和数据文件都要按照这样的方式做相关的改动(日志的文件名是*_log.ldf结尾的),这里的恢复目录您可以自由设置,前提是该目录必须存在(如您可以指定d:\sqldata\bbs_data.mdf或者d:\sqldata\bbs_log.ldf),否则恢复将报错

6、修改完成后,点击下面的确定进行恢复,这时会出现一个进度条,提示恢复的进度,恢复完成后系统会自动提示成功,如中间提示报错,请记录下相关的错误内容并询问对SQL操作比较熟悉的人员,一般的错误无非是目录错误或者文件名重复或者文件名错误或者空间不够或者数据库正在使用中的错误,数据库正在使用的错误您可以尝试关闭所有关于SQL窗口然后重新打开进行恢复操作,如果还提示正在使用的错误可以将SQL服务停止然后重起看看,至于上述其它的错误一般都能按照错误内容做相应改动后即可恢复

三、收缩数据库

一般情况下,SQL数据库的收缩并不能很大程度上减小数据库大小,其主要作用是收缩日志大小,应当定期进行此操作以免数据库日志过大

1、设置数据库模式为简单模式:打开SQL企业管理器,在控制台根目录中依次点开Microsoft SQL ServerSQL Server组双击打开你的服务器双击打开数据库目录选择你的数据库名称(如论坛数据库Forum)然后点击右键选择属性选择选项在故障还原的模式中选择“简单”,然后按确定保存

2、在当前数据库上点右键,看所有任务中的收缩数据库,一般里面的默认设置不用调整,直接点确定

3、收缩数据库完成后,建议将您的数据库属性重新设置为标准模式,操作方法同第一点,因为日志在一些异常情况下往往是恢复数据库的重要依据

四、设定每日自动备份数据库强烈建议有条件的用户进行此操作!

1、打开企业管理器,在控制台根目录中依次点开Microsoft SQL ServerSQL Server组双击打开你的服务器

2、然后点上面菜单中的工具选择数据库维护计划器

3、下一步选择要进行自动备份的数据下一步更新数据优化信息,这里一般不用做选择下一步检查数据完整性,也一般不选择

4、下一步指定数据库维护计划,默认的是1周备份一次,点击更改选择每天备份后点确定

5、下一步指定备份的磁盘目录,选择指定目录,如您可以在D盘新建一个目录如:d:\databak,然后在这里选择使用此目录,如果您的数据库比较多最好选择为每个数据库建立子目录,然后选择删除早于多少天前的备份,一般设定4-7天,这看您的具体备份要求,备份文件扩展名一般都是bak就用默认的

6、下一步指定事务日志备份计划,看您的需要做选择下一步要生成的报表,一般不做选择下一步维护计划历史记录,最好用默认的选项下一步完成

7、完成后系统很可能会提示Sql Server Agent服务未启动,先点确定完成计划设定,然后找到桌面最右边状态栏中的SQL绿色图标,双击点开,在服务中选择Sql Server Agent,然后点击运行箭头,选上下方的当启动OS时自动启动服务

8、这个时候数据库计划已经成功的运行了,他将按照您上面的设置进行自动备份

修改计划:

1、打开企业管理器,在控制台根目录中依次点开Microsoft SQL ServerSQL Server组双击打开你的服务器管理数据库维护计划打开后可看到你设定的计划,可以进行修改或者删除操作

五、数据的转移(新建数据库或转移服务器)

一般情况下,最好使用备份和还原操作来进行转移数据,在特殊情况下,可以用导入导出的方式进行转移,这里介绍的就是导入导出方式,导入导出方式转移数据一个作用就是可以在收缩数据库无效的情况下用来减小(收缩)数据库的大小,本操作默认为您对SQL的操作有一定的了解,如果对其中的部分操作不理解,可以咨询动网相关人员或者查询网上资料

1、将原数据库的所有表、存储过程导出成一个SQL文件,导出的时候注意在选项中选择编写索引脚本和编写主键、外键、默认值和检查约束脚本选项

2、新建数据库,对新建数据库执行第一步中所建立的SQL文件

3、用SQL的导入导出方式,对新数据库导入原数据库中的所有表内容

补充一个SQL数据库备份恢复的方法:

1、将原来备份的C:\Program Files\Microsoft …

解决MySQL中文件未找到的现象

归类于: 数据库 - 08 Dec 2008

如果遇到”ERROR ’…’未发现(errno: 23)”,”无法打开文件:… (errno: 24)”,或来自MySQL的具有errno 23或errno 24的其它错误,它表示未为MySQL服务器分配足够的文件描述符。你可以使用perror实用工具来了解错误编号的含义:

shell> perror 23

错误代码23:文件表溢出

shell> perror 24

错误代码24:打开文件过多

shell> perror 11

错误代码11:资源暂时不可用

这里的问题是,mysqld正试图同时打开过多的文件。你可以通知mysqld不要一次打开过多文件,或增加mysqld可用文件描述符的数目。

要想通知mysqld将一次打开的文件控制在较小的数目上,可降低table_cache系统变量的值(),从而减少表高速缓冲(默认值为64)。降低max_connections的值也能降低打开文件的数目(默认值为100)。

要想更改mysqld可用的文件描述符的数目,可在mysqld_safe上使用”–open-files-limit”选项或设置(自MySQL 3.23.30开始)open_files_limit系统变量。

设置这些值的最简单方式是在选项文件中增加1个选项。

如果mysqld的版本较低,不支持设置打开文件的数目,可编辑mysqld_safe脚本。在脚本中有1个注释掉的行ulimit -n 256。你可以删除‘#’字符取消对该行的注释,更改数值256,以设置mysqld可用的文件描述符数目。

“–open-files-limit”和ulimit能够增加文件描述符的数目,但最高不能超过操作系统限制的数目。此外还有1个”硬”限制,仅当以根用户身份启动mysqld_safe或mysqld时才能覆盖它(请记住,在该情况下,还需使用”–user”选项启动服务器,以便在启动后不再以根用户身份继续运行)。如果需要增加操作系统限制的对各进程可用文件描述符的数目,请参阅系统文档。

注释:如果运行tcsh …

SQL Server 性能优化工具

归类于: 数据库 - 08 Dec 2008

数据和工作负荷示例

使用下例说明 SQL Server 性能工具的使用。首先创建下表。

create table testtable (nkey1 int identity, col2 char(300) default ‘abc’, ckey1 char(1))

接下来,在这个表中填充 10,000 行测试数据。可以为列 nkey1 中所填充的数据创建非聚集索引。可以为列 ckey1 中的数据创建聚集索引,col2 中的数据仅仅是填充内容,将每一行增加 300 字节。

declare @counter int

set @counter = 1

while (@counter …

启动Mysql 错误 1067 进程意外终止的一种解决方法

归类于: 数据库 - 08 Dec 2008

装完Mysql后,如果启动Mysql时,报错如下

CODE:

H:\mysql\bin>net start mysql

MySql 服务正在启动 .

MySql 服务无法启动。

系统出错。

发生系统错误 1067。

进程意外终止。 [/code]

请执行以下命令

CODE:

H:\mysql\bin>mysqld-nt –defaults-file=h:\windows\my.ini –standalone –console

InnoDB: The first specified …

MYSQL用户root密码为弱口令的攻击解析

归类于: 数据库 - 08 Dec 2008

前天,我发了一张关于MYSQL用户ROOT密码为空的贴,在网上我也找到一些利用此漏洞的方法,一般就是写一个ASP或PHP的后门,不仅很麻烦,而且还要猜解网站的目录,如果对方没有开IIS,那我们岂不没办法了?  

后来,自己思索想到一个办法,在我测试的几台有此漏洞的机中均获得了成功,现将我的攻击方法公布如下:   

1、连接到对方MYSQL 服务器

mysql -u root -h 192.168.0.1

mysql.exe 这个程序在你安装了MYSQL的的BIN目录中   

2、让我们来看看服务器中有些什么数据库

mysql>show databases;

MYSQL默认安装时会有MYSQL、TEST这两个数据库,如果你看到有其它的数据库那么就是用户自建的数据库。   

3、让我们进入数据库

mysql>use test;

我们将会进入test数据库中   

4、查看我们进入数据库中有些什么数据表

mysql>show tables;

默认的情况下,test中没有任何表的存在。

以下为关键的部分   

5、在TEST数据库下创建一个新的表;

mysql>create table …

安装SQL Server 2005实例环境图解

归类于: 数据库 - 08 Dec 2008

关键的安装考虑

虽然大多数的SQL Server安装都使用了默认的参数,这样的话是一个简单的过程,但是没有理解安装参数的话,也会导致困惑或者将来安全攻击方面的问题。正因为如此,下面我列出了一些关键的思考点,供你在安装SQL Server的时候思考:

◆只安装必要的SQL Server组件来限制服务的数量。这也同时限制了忘记打关键补丁的可能性,因为你没有实现SQL Server的必要组件。

◆对于SQL Server服务账号,确保要选择一个拥有域内适当权限的账号。不要只是选择域管理员来运行SQL Server服务账号。平衡最小权限和只分配所需权限给账号的原则。与此同时,确保给SQL Server服务账号分配了一个复杂的密码。针对以上各项,在你进行步骤12之前确保选择了正确的参数。

◆在步骤3中,选择认证模式。有两个选项,分别是Windows认证模式或者混合模式(Windows和SQL Server认证)。在Windows认证模式下,只有Windows账号才可以拥有登录SQL Server的权限,在混合模式下,Windows和SQL Server的账号都可以理所当然地拥有登录到SQL Server的权限。

◆步骤3中的SQL Server认证模式会直接影响步骤4种的安装过程。当选中混合模式认证的时候,这时就是分配系统管理员密码的时机。因为是服务账号,确保使用一个强有力的密码或者密码段,并且正确保护密码。

◆接下来的一个关键考虑点是在SQL Server安装过程中的,就是调整设置。在SQL Server中,Windows和SQL Server的调整都是可用的。这些调整应该是基于应用程序语言支持需求的。另外在你所在环境中检查当前SQL Server的配置也是明智的,可以以此确保他们能够满足特殊应用程序需求,以及/或者SQL Server的一致性。

◆最后的一个考虑就是察看所有安装的输出,以此确保过程是成功的。确保在把SQL Server发布到你的环境之前验证输出。

安装 SQL Server 2005 实例环境

Home:简介

Step 1:开始你的SQL Server实例安装

Step 2:选择SQL Server安装组件

Step 3:指定账号认证模式和设置

Step 4:点击’Install’并且检查你的总结日志

Step 5:安装 SQL Server Service Pack 1

开始安装你的 SQL Server 实例环境

1主菜单——只要你载入DVD驱动器中的光盘,就会出现如下的屏幕。

要安装SQL Server 2005的实例,在安装标题下选择”服务器组件、工具、在线书籍,以及示范”等选项。…

如何清空FB数据库?

归类于: 数据库 - 08 Dec 2008

问题1:

我的数据库中有60多个tabel,如果写程序,用delete from 的话比较麻烦,而且速度也是问题,但是系统在做初始化的时候我又想清空所有的数据,怎么办呢?在delphi中怎么才能通过DBexpress实现‘数据初始化’的功能??请高手指点!!

问题2:

在delphi中怎样才能备份、恢复FB的数据库??

回答一:

1、清空所有的数据好象没有好的方法,只有通过delete from 语句,60多个tabel不应该是独立的表,应该都有关系的,先从表后主表,先外键表后主键表等,如果表规则中设置级联删除,那就是例外了。一个一个的从后往前删除。

2、暂时用的copy文件的办法,HenryXu有个fb备份的程序,我找找去。

可以先看看:http://info.codepub.com/2008/05/info-19235.html

回答二:

ihere大侠的方法:

1:

for SELECT RDB$RELATION_NAME

FROM RDB$RELATIONS

WHERE ((RDB$SYSTEM_FLAG = 0) AND (RDB$VIEW_BLR IS NULL))

into :var_table_name

do

begin

EXECUTE STATEMENT ‘DELETE FROM ‘ || :var_table_name;

end

用户的二个需求:本能驱动与习惯

归类于: 数据库 - 08 Dec 2008

用户需求的来源大致有以下几个方面:1、本能驱动;2、习惯;3、专业要求。我以互联网为切入点,分别举例说明。今天先说本能驱动。

人最大的本能是性,这是物种繁衍后代的需要,从本质上讲,其他诸如吃喝拉撒的本能,都围绕”性”展开。和其他动物不同,人的性没有周期限制,而且花样翻新。由此,从用户需求的角度来看,人类对性的需求和期望值越来越高,而互联网放大了获取源和可能性,所以,上网搜索色情文字、图片、视频甚至寻找一夜情成为用户的本能需求,这个需求量我没有统计数据,但直观推测会非常庞大,有一则旧闻从侧面验证了这种推测。

可以说,”性”这个领域在任何时代都具有普遍的需求和商业价值。国内目前还没有诞生以”性交易”为直接目的的网络平台,这和政策有直接关系,中国国情决定了我们暂不能将性产业规模化,但是”性”的周边产业在悄然发展,以互联网为平台,围绕”性”的各种运作曾经而且正在发挥着作用,如各大门户网的女性频道,如各大社区每隔一段时间就爆发的脱衣、裸露、艳照等事件,都着眼与此。不过,这些内容组织也好,炒作手段也好,作用在于吸引注意力,并没有带来直接的经济收益,毕竟点击率不直接等同于真金白银。相比之下,近年迅速成长起来的51.com,将稀释后的用户”性”需求作为主要切入点,把”性吸引”作为主要的运营手段,整个社区架构都围绕上述操作,获得了庞大的目标用户群。近期,51.com又吸引了史玉柱的投资,有可能会往”性”的方向更深入,更商业化。

总结:包括性在内的本能驱动是大众最具共性的需求,如以此作为互联网产品或服务的切入点,即使在目前的政策限制之下,仍有发展空间。但前提是这个产品和服务的架构和运营目的围绕”本能”这个用户需求而去展开,不然,就适得其反。如果仅仅把”本能”作为一个吸引点(推广手段),试图通过这个共性去捕捉用户,不但无明显优势,反而会为一群蜂拥而至的非目标用户头痛不已。因为”本能”作为推广手段,门槛太低,很容易被模仿和复制,最重要的是,产品定位-目标用户需求-推广方式三者的不统一,将破坏整个平台的生态环境,从而丧失目标用户。说到底,就是要搞清楚自己的目标用户有什么样的核心需求(而非普遍共性),产品设计是否围绕这个核心需求,其次,才是相应的推广手段。

MySQL数据库下损坏数据的恢复操作其过程总结

归类于: 数据库 - 08 Dec 2008

此文档是一位高手同事Hewei的原创实践总结,过程真是精彩,最后修复损坏数据库取得圆满效果,值得收藏的一篇好文章

mysql数据库下损坏数据的恢复操作其过程总结

(此文档是一位高手同事Hewei的原创实践总结,过程真是精彩,最后修复损坏数据库取得圆满效果,值得收藏的一篇好文章)

前几天因为mysql数据库部分数据损坏原因,我尝试了下恢复数据,之后整理以下文档,供各位参考,

以备各位同事以后如有类似问题,可以少走些弯路,尽快解决问题。

环境:windows2003

数据库:mysql

损坏数据文件名:function_products

将数据库内容物理文件直接导入到mysql\data下,每只表各3个文件,依次分别为:.frm .MYD .MYI

首先我第一想到的是去网上搜索,寻找类似的工具,试图通过工具来恢复已损坏的文件,于是我在GOOGLE上查找,

找到一款名为MySQLRecovery的工具,安装后我用其进行恢复,只可惜效果太不理想,几十M大的数据文件,恢复

之后它提示我竟然只有几十K,令我吐血…

我又想到了mysql下应有自己本身的修复程序等,于是想通过其来进行恢复,心想应不会太差劲吧,在网上查找了

资料,提示:

由于临时断电,使用kill -9中止MySQL服务进程,或者是mysql正在高速运转时进行强制备份操作时等,

所有的这些都可能会毁坏MySQL的数据文件。如果在被干扰时,服务正在改变文件,文件可能会留下错误的

或不一致的状态。因为这样的毁坏有时是不容易被发现的,当你发现这个错误时可能是很久以后的事了。

于是,当你发现这个问题时,也许所有的备份都有同样的错误。

Firebird/InterBase内置函数使用说明

归类于: 数据库 - 08 Dec 2008

  加*号为FB2.0加入的函数

整理:剑雷(jianlei) 2006-10-13

1. COUNT, AVG, MAX, MIN, SUM

说明:通用统计函数,不详细介绍了

2. EXTRACT(timestamp_part FROM value)

说明:EXTRACT(YEAR/MONTHE/DAY/WEEKDAY FROM 字段名)

从日期型字段中分离出年,月,日及一个星期的第几天

3. CAST(value AS datatype)

说明:转换数据类型

4. LOWER() *

说明:返回小写值

5. UPPER()

说明:返回大写值

6. TRIM() *

说明:去除字符串两边的空格

7. SUBSTRING(string FROM pos FOR length)

说明:取字符串子串,注意,第一个字符的位置是1

8. BIT_LENGTH *

说明:返回字符串位(bit)数

9. CHAR_LENGTH/CHARACTER_LENGTH *

说明:返回字符串字符数

10. OCTET_LENGTH *

说明:返回字符串字节数

11. …

下一页 »