检查修复数据库常用方法

检查修复数据库常用方法
检查修复数据库常用方法

A、检查数据库常用方法:

隔一定时间或计算机经常死机、突然掉电、软件经常连接不上数据库时,需要进行检查数据库的完整性和正确性。

一、进入sqlserver“查询分析器”,选中“消费数据库”后输入检测数据库命令:DBCC CHECKDB ('消费数据库名称', NOINDEX) 二、Sqlserver开始检查“消费数据库”的完整性和正确性。

检查结果:

1、如果为“0个分配性错误,0个一致性错误”,消费数据库正常。退出。

2、否则“消费数据库”需要进行恢复。

步骤: 1、把“查询分析器”的当前数据库改为master数据库。

2、在查询分析器里面依次执行下面命令:

A、SP_DBOPTION '消费数据库名称','SINGLE USER',TRUE

B、DBCC CHECKDB('消费数据库名称',REPAIR_ALLOW_DATA_LOSS)

C、SP_DBOPTION '消费数据库名称','SINGLE USER',FALSe

3、最后重复步骤一再次检查数据库正确性

B、LOG文件损坏处理方法:

1、停止服务,copy mdf与ldf文件到别处(不要做sp_detach_db

分离数据库)

2、建立一个新数据库

3、将你复制出去的 mdf文件改名字,替换刚刚新建的数据库的mdf 文件(此时你再刷新数据库仍为置疑状态,可以不管)

4、进入查询分析器,运行以下语句

USE MASTER

GO

SP_CONFIGURE 'ALLOW UPDATES',1

GO

RECONFIGURE WITH OVERRIDE

GO

UPDATE SYSDATABASES SET STATUS=-32768 WHERE NAME='数据库名称'

5、重建LOG

DBCC REBUILD_LOG('数据库名称','C:\PROGRAM FILES\MICROSOFT SQL SERVER\MSSQL\DATA\数据库名称_LOG.LDF')

如果提示“文件已存在”的话,请在相应目录下把原来的LOG文件删除

6、DBCC检查

DBCC CHECKDB('数据库名称')

7、设置数据库为正常状态

UPDATE SYSDATABASES SET STATUS =28 WHERE NAME='数据库名称'

GO

8、不允许对系统目录直接修改

SP_CONFIGURE 'ALLOW UPDATES',0

GO

RECONFIGURE WITH OVERRIDE

GO

9、以上步骤执行完毕后应该就可以进入系统了,但有可能数据库还是有错误,这时可以使用A中的方法对数据库进行修复

10、如在执行“SP_DBOPTION '消费数据库名称','SINGLE USER',TRUE”报错“服务器: 消息 5070,级别 16,状态 2,行 1

如果其他用户正使用数据库 'elong',则数据库状态不能更改

服务器: 消息 5069,级别 16,状态 1,行 1

ALTER DATABASE 语句失败。

sp_dboption 命令失败。”

就进行以下步骤:

进入查询分析器

执行以下语句(注意数据库名称)

use master

go

--kill所有会话

Declare @tblConnectedUsers Table (SPID int)

Declare @vcSQLText varchar(200),@iSPID int

Insert into @tblConnectedUsers

Select p.spid

from master.dbo.sysprocesses p (nolock)

join master..sysdatabases d (nolock) on p.dbid = d.dbid

Where d.[name] = '数据库名称'

While 1 = 1

Begin

Select top 1 @iSPID = SPID

From @tblConnectedUsers

Where SPID > IsNull(@iSPID, 0)

order by SPID asc

If @@RowCount = 0

Break

Set @vcSQLText = 'Kill ' + Convert(varchar(10), @iSPID)

Exec(@vcSQLText)

End

11、再重新操作A中的步骤修复数据库

SQL数据库置疑的解决方法

SQL2000数据库置疑的解决方法 首先,在任何操作之前,必须要备份数据库(重要) 一、分离数据库 1、点击“程序》Microsoft SQL Server》企业管理》”,打开企业管理器 2、展开服务器组,然后展开服务器,选中要分离的数据库 3、点击鼠标右键“所有任务》分离数据库”,出现如下窗口 4、点击确定,该选定的数据库就被分离。 5.分离后,把原数据库里面.MDF(主数据文件).LDF(事务日志文件)这两个文件复制到目标盘下,例:D盘下 注意事项,只有“使用本数据库的连接”数为0时,该数据库才能分离。所以分离数据库时尽量断开所有对要分离数据库操作的连接,如果还有连接数据库的程序,会出现数据库的连接状态窗口,显示正在连接此数据库的机器以及名称,点击清除按钮将从服务器强制断开现有的连接。

二、附加数据库 1、在附加数据库之前,首先要移动数据库文件 在附加数据库之前,您必须将与数据库关联的 .MDF(主数据文件).LDF(事务日志文件)这两个文件复制到目标硬盘下,或是同一服务器的不同硬盘目录下。这两个文件一般位于C:\Program Files\Microsoft SQL Server\MSSQL\Data 目录下。 2、点击“程序》Microsoft SQL Server》企业管理》”,打开企业管理器 3、展开服务器组,然后展开服务器 4、右击"数据库",然后选择“所有任务》附加数据库”,弹出窗口 5、输入要附加的数据库的MDF名称。如果不确定文件位于何处,单击浏览("...")搜索。若要确保指定的 MDF 文件正确,请单击"验证"。在"附加为"框内,输入数据库的名称。数据库名称不能与任何现有数据库名称相同。指定数据库的所有者 6、单击"确定"按钮。新附加的数据库的数据库节点即创建在"数据库"文件夹中

Java中连接MySql数据库的几种方法

JDBC Java中JDBC定义了java与各种sql数据库之间的编程接口,JDBC API是一个统一的标准应用程序编程接口,这样可以屏蔽异种数据库之间的差异。 JDBC的工作原理 JDBC与ODBC(OpenData Base Connectivity,开放式数据库连接)的作用非常类似,它在应用程序和数据库之间起到了桥梁的作用。ODBC使用的特别广泛,在java中还提供了JDBC-ODBC桥,能够在JDBC与ODBC之间进行转换,这样可以通过ODBC屏蔽不同种数据库之间的差异。在JDK的包java.sql.*中定义了一系列的类、接口、异常以及这些类和接口中定义的属性和方法,java的开发人员通过一定的规则调用java.sql.*中的API就可以实现对数据库管理系统的访问。 JDBC的四种驱动 1.JDBC-ODBC Bridge JDBC-ODBC Bridge可以访问一个ODBC数据源,但在执行Java程序的机器上必须安装ODBC驱动,并作出配置,它的调用方式如下图: 因为中间有个JDBC-ODBC,所以影响了执行效率。 配置ODBC数据源的方法如下(以Mysql为例): 第一步,打开控制面板—>管理工具--->数据源(ODBC) 选择系统DSN,这一项默认应该是空的,我这里是已经配置好了一个数据源。

第二步,点击添加 第三步,选择Mysql的ODBC驱动,点击完成。 注:MySQL的ODBC驱动在系统中一般是找不到的,因为它不是系统默认自带的驱动,所以,我们要自己安装我们所需要的MySQL的ODBC驱动。安装步骤如下: ①.下载安装包,https://www.360docs.net/doc/523787555.html,/downloads/connector/odbc/ ②.我们下载与自己系统相应的ODBC驱动 这里我们选择

数据库测试的分类和方法

数据库测试的分类和方法 数据库, 分类 从测试过程的角度来说我们也可以把数据库测试分为 系统测试 传统软件系统测试的测试重点是需求覆盖,而对于我们的数据库测试同样也需要对需求覆盖进行保证。那么数据库在初期设计中也需要对这个进行分析,测试.例 如存储过程,视图,触发器,约束,规则等我们都需要进行需求的验证确保这些功能设计是符合需求的.另一方面我们需要确认数据库设计文档和最终的数据库相 同,当设计文档变化时我们同样要验证改修改是否落实到数据库上。 这个阶段我们的测试主要通过数据库设计评审来实现。 集成测试 集成测试是主要针对接口进行的测试工作,从数据库的角度来说和普通测试稍微有些区别对于数据库测试来说,需要考虑的是 数据项的修改操作 数据项的增加操作 数据项的删除操作 数据表增加满 数据表删除空 删除空表中的记录 数据表的并发操作 针对存储过程的接口测试 结合业务逻辑做关联表的接口测试 同样我们需要对这些接口考虑采用等价类、边界值、错误猜测等方法进行测试单元测试 单元测试侧重于逻辑覆盖,相对对于复杂的代码来说,数据库开发的单元测试相对简单些,可以通过语句覆盖和走读的方式完成 系统测试相对来说比较困难,这要求有很高的数据库设计能力和丰富的数据库测

试经验。而集成测试和单元测试就相对简单了。 而我们也可以从测试关注点的角度对数据库进行分类 功能测试 对数据库功能的测试我们可以依赖与工具进行 DBunit 一款开源的数据库功能测试框架,可以使用类似与Junit的方式对数据库的基本操 作进行白盒的单元测试,对输入输出进行校验 QTP 大名鼎鼎的自动测试工具,通过对对象的捕捉识别,我们可以通过QTP来模拟用户 的操作流程,通过其中的校验方法或者结合数据库后台的监控对整个数据库中的数据进行测试。个人觉得比较偏向灰盒。 DataFactory 一款优秀的数据库数据自动生成工具,通过它你可以轻松的生成任意结构数据库,对数据库进行填充,帮助你生成所需要的大量数据从而验证我们数据库中的功能是否正确。这是属于黑盒测试 数据库性能 虽然我们的硬件最近几年进步很快,但是我们需要处理的数据以更快的速度在增加。几亿条记录的表格在现在是司空见惯的,如此庞大的数据量在大量并发连接操作时,我们不能像以前一样随意的使用查询,连接查询,嵌套查询,视图,这些操作如果不当会给系统带来非常巨大的压力,严重影响系统性能 性能优化分4部分 1物理存储方面 2逻辑设计方面 3数据库的参数调整 4SQL语句优化. 我们如何对性能方面进行测试呢,业界也提供了很多工具 通过数据库系统的SQL语句分析工具,我们可以分析得到数据库语句执行的瓶

数据库置疑_及修复

Sqlserver 数据库823错误(置疑)的解决方案 一、SQL-Server数据库置疑: 1、异常情况:服务器在正常运行的情况下突然断电,导致数据库文件损坏,具体表现是:数据库名后面有“(置疑)”字样。 2、异常分析:关于823错误的SQL-SERVER 中的帮助: ================================ 错误823 严重级别24 消息正文 在文件%4的偏移量,%3的索引,%2过程中,检测到I/O 错误%1。 解决办法: 准备工作: ①停止sql server服务,找到置疑库的mdf,ldf文件复制出来,这里假设叫kmcyV51_data.mdf(ldf),并与企业管理器中删除该数据库; ②用KM安装包下db_setup.exe建立一个空库(名称和质疑数据库名一致kmcyv51),选择服务器节点,右键停止数据库服务,把损坏的数据库文件kmcyv51_Data.mdf覆盖刚才新建数据库目录下,同时删除kmcy_v51_log.LDF文件;右键节点启动数据库服务,发现数据库名kmcyv51后面有“置疑”字样。 打开SQL自带查询分析器,在master数据库分别执行如下SQL语句: (注意更改数据库名) use master exec sp_configure 'allow updates',1 RECONFIGURE WITH OVERRIDE /* 打开修改系统表开关*/ update sysdatabases set status=32768 where name = 'kmcyv51' /* 设置紧急状态*/ sp_dboption 'kmcyv51', 'single user', 'true' /*启用单用户*/ DBCC REBUILD_LOG ('kmcyv51','E:\km软件_data\KmcyV51_Log.LDF') /* 重建LDF文件*/ update sysdatabases set status=28 where name= 'kmcyv51' /* 设置正常状态*/ --或者 update sysdatabases set status = 16 where name = 'kmcyv51' RESTORE DATABASE kmcyv51 WITH RECOVERY /* 恢复数据库*/ exec sp_configure 'allow updates',0 RECONFIGURE WITH OVERRIDE /* 关闭修改系统表开关*/ sp_dboption 'kmcyv51', 'single user', 'false' /* 关闭单用户模式*/ 如果问题依然存在,最笨的一个方法就是新建另一个数据库,把 原数据库各个表的数据导出到新建数据库表中。

完整java连接数据库步骤

完整java开发中JDBC连接数据库代码和步骤 JDBC连接数据库 ?创建一个以JDBC连接数据库的程序,包含7个步骤: 1、加载JDBC驱动程序: 在连接数据库之前,首先要加载想要连接的数据库的驱动到JVM(Java虚拟机),这通过https://www.360docs.net/doc/523787555.html,ng.Class类的静态方法forName(String className)实现。 例如: try{ //加载MySql的驱动类 Class.forName("com.mysql.jdbc.Driver") ; }catch(ClassNotFoundException e){ System.out.println("找不到驱动程序类,加载驱动失败!"); e.printStackTrace() ; } 成功加载后,会将Driver类的实例注册到DriverManager类中。 2、提供JDBC连接的URL ?连接URL定义了连接数据库时的协议、子协议、数据源标识。 ?书写形式:协议:子协议:数据源标识 协议:在JDBC中总是以jdbc开始 子协议:是桥连接的驱动程序或是数据库管理系统名称。 数据源标识:标记找到数据库来源的地址与连接端口。 例如:(MySql的连接URL) jdbc:mysql: //localhost:3306/test?useUnicode=true&characterEncoding=gbk ; useUnicode=true:表示使用Unicode字符集。如果characterEncoding设置为 gb2312或GBK,本参数必须设置为true 。characterEncoding=gbk:字符编码方式。 3、创建数据库的连接 ?要连接数据库,需要向java.sql.DriverManager请求并获得Connection对象,该对象就代表一个数据库的连接。 ?使用DriverManager的getConnectin(String url , String username , String password )方法传入指定的欲连接的数据库的路径、数据库的用户名和密码来获得。 例如: //连接MySql数据库,用户名和密码都是root String url = "jdbc:mysql://localhost:3306/test" ; String username = "root" ; String password = "root" ; try{ Connection con = DriverManager.getConnection(url , username , password ) ; }catch(SQLException se){ System.out.println("数据库连接失败!"); se.printStackTrace() ; }

数据库在线测试试题

数据库在线测试试题 选择题 1.下述(C)不是DBA数据库管理员的职责 完整性约束说明 定义数据库模式 数据库管理系统设计 数据库安全 2.用户或应用程序看到的那部分局部逻辑结构和特征的描述是(A ),它是模式的逻辑子集 子模式 模式 内模式 物理模式 3.要保证数据库的逻辑数据独立性,需要修改的是( C ) 模式与内模式之间的映射 模式 模式与外模式的映射 三层模式 4.要保证数据库的数据独立性,需要修改的是( A ) 三层之间的两种映射 模式与外模式

模式与内模式 三层模式 5.描述数据库全体数据的全局逻辑结构和特性的是( B ) 外模式 模式 内模式 用户模式 6.数据库系统的数据独立性体现在( B ) 不会因为数据的变化而影响到应用程序 不会因为系统数据存储结构与数据逻辑结构的变化而影响应用程序 不会因为某些存储结构的变化而影响其他的存储结构 不会因为存储策略的变化而影响存储结构 7.下列四项中,不属于数据库系统特点的是( B ) 数据共享 数据冗余度高 数据完整性 数据独立性高 8.下面列出的数据库管理技术发展的三个阶段中,没有专门的软件对数据进行管理的是(D )。I.人工管理阶段II.文件系统阶段III.数据库阶段 I 和II 只有II

II 和III 只有I 9.DBS是采用了数据库技术的计算机系统,它是一个集合体,包含数据库、计算机硬件、 软件和(D ) 系统分析员 程序员 操作员 数据库管理员 10.数据库(DB),数据库系统(DBS)和数据库管理系统(DBMS)之间的关系是(C )。 DBMS包括DB和DBS DBS就是DB,也就是DBMS DBS包括DB和DBMS DB包括DBS和DBMS 2填空题 1.数据库是长期存储在计算机内有组织、可共享、的数据集合。 2.DBMS是指(数据库管理系统),它是位于(用户),和(操作系统), 之间的一层管理软件 3.数据库管理系统的主要功能有, 数据定义, 数据操纵,数据库运行管理,数据库的建立维护维护等4个方面 4.数据独立性又可分为(逻辑独立性)和(物理独立性)

数据库检查报告模版

数据库系统远程性能监测报告模版 文档控制 修改记录 审阅 分发

目录 文档控制i 概述1 数据库配置1非缺省的数据库参数:1 Sga 占用情况3数据文件使用情况4表空间管理方式和碎片17 Tablespaces Free Space17排序区的使用情况:18回滚段:Rollback Segments19使用system 表空间的表和索引21表的数据行迁移情况21 Users错误!未定义书签。 日志切换检查21 Errors Check22 系统空间使用情况:错误!未定义书签。 系统和数据库的性能22操作系统性能监视22数据库配置和监控(statspack报告摘录) 22 运行优势26需改进的方面:26本次检查已经解决的问题:26 建议27应立即解决的问题27将来应解决的问题27

介绍 在此次的ORACLE专家服务中我们完成了对呼和浩特计费系统(服务器位于:呼和浩特网通机 房)的健康检查,在这次检查中我们发现了一些与数据库相关的的一些潜在的问题,同时我们 对计费系统也有了更深入的了解,我们将根据所搜集的信息得出下面的报告。 在此,我们感谢呼和浩特网通及内蒙网通公司对此次系统检查所给予的积极的支持和配合! 读者 此系统健康检查报告供下列读者使用: 概述 此次数据库健康检查主….数据库,下几个方面:数据库配置,数据库可用性及性能,我们观 察到该系统在数据库的参数以及存储方面的设置或配置尚好,同时也发现了一些潜在的问题, 在下面的建议部分,我们将提出相关的改进措施。 数据库配置 非缺省的数据库参数: 使用的参数文件:pfile 节点1: End value Parameter Name Begin value (if different) ----------------------------- --------------------------------- -------------- _lm_direct_sends lkmgr _sqlexec_progression_cost 0 background_dump_dest /o8i/app/oracle/admin/hhlbas/bdum compatible 8.1.0 control_files /dev/vgora/rcontrol1, /dev/vgora/

SQL server 2008 数据库置疑的处理办法

SQL server 2008 数据库置疑的处理办法 1 把问题数据库备份后直接删除 停掉SQLSERVER服务,把服务器上出问题的数据库, 假设名称为ErrorDB的数据库文件及日志文件备份到其他目录,然后直接将其删除,把其数据库文件及日志文件也删除 2 新建同名数据库 启动SQLSERVER服务,新建同名数据库ErrorDB,文件目录和日志和原来一致 3 用备份的数据库文件替换新的数据库文件 停掉SQLSERVER服务,把备份的数据库文件替换新的数据库文件(只替换数据库文件,不替换日志文件) 启动SQLSERVER服务,打开数据库,这时数据库应该是不能访问的 -------------------设置应急模式、单用户模式、检查修复数据,取消单用户模式 ---------------------- 4 将数据库设置为应急状态 alter database ErrorDB set emergency 执行后,为了保险起见,重新停止、开启的SQLSERVER服务 再打开数据库,已经可以看到里面的内容了,如表,视图,存储过程等 数据库名称后有紧急标志,能看到数据库结构,但无法进行备份等操作 5 将数据库设置为单用户模式 ALTER DATABASE ErrorDB SET SINGLE_USER 6 对数据库进行检查修复 dbcc checkdb(EIMSDb,REPAIR_ALLOW_DATA_LOSS) dbcc checkdb(EIMSDb,REPAIR_REBUILD) 操作后,仍然停止启动SQLSERVER服务(不确定是否需要,我只是为了想无干扰查看执行后的数据库状况)重新打开数据库,已经是正常状态了,没有应急提示了 7 取消单用户模式 exec sp_dboption EIMSDb, N'single', N'false'

java平时最常用的7种数据库连接方式

今天总结了java平时最常用的7种数据库连接方式,现在分享给大家 MySQL: String Driver="com.mysql.jdbc.Driver"; //驱动程序 String URL="jdbc:mysql://localhost:3306/db_name"; //连接的URL,db_name 为数据库名 String Username="username"; //用户名 String Password="password"; //密码 Class.forName(Driver).new Instance(); Connection con=DriverManager.getConnection(URL,Username,Password); Microsoft SQL Server: 1) String Driver="com.microsoft.jdbc.sqlserver.SQLServerDriver"; //连接SQL数据库的方法 String URL="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=db_name"; //db_name为数据库名 String Username="username"; //用户名 String Password="password"; //密码 Class.forName(Driver).new Instance(); //加载数据可驱动 Connection con=DriverManager.getConnection(URL,UserName,Password); // 2) String Driver="com.microsoft.sqlserver.jdbc.SQLServerDriver"; //连接SQL数据库的方法 String URL="jdbc:sqlserver://localhost:1433;DatabaseName=db_name"; //db_name为数据库名 String Username="username"; //用户名 String Password="password"; //密码 Class.forName(Driver).new Instance(); //加载数据可驱动 Connection con=DriverManager.getConnection(URL,UserName,Password); Sysbase: String Driver="com.sybase.jdbc.SybDriver"; //驱动程序 String URL="jdbc:Sysbase://localhost:5007/db_name"; //db_name为数据可名 String Username="username"; //用户名 String Password="password"; //密码 Class.forName(Driver).newInstance(); Connection con=DriverManager.getConnection(URL,Username,Password); Oracle(用thin模式): String Driver="oracle.jdbc.driver.OracleDriver"; //连接数据库的方法String URL="jdbc:oracle:thin:@loaclhost:1521:orcl"; //orcl为数据库的SID String Username="username"; //用户名 String Password="password"; //密码 Class.forName(Driver).newInstance(); //加载数据库驱动

2-实验二MySQL数据库操作实验

实验二 MySQL数据库操作实验 实验目的: 1、掌握MySQL数据库的安装方法 2、掌握MySQL数据库的使用 3、熟悉数据库管理工具的使用 实验要求: 1、利用MySQL命令创建数据库和相应的数据库表,并能向数据库表中插入数据 记录和相应的数据库操作。 2、利用Navicat for MySQL建数据库和相应的数据库表,并能向数据库表中插 入数据记录和相应的数据库操作。 3、保存和导入数据库 4、编程查询显示数据库表中的所有记录,可以选择以下添加的任意一个数据库 表的记录。 实验容: 1、安装MySQL数据库 安装MySQL可以参照文档“MySQL 5 安装.doc”,安装MySQL并进行配置,安装成功后,即可操作管理数据库。 方法一: 从开始菜单→MySQL→MySQL Server5.0→MySQL Command Line Client,打开控制台界面,提示输入密码,密码输入成功后,登录MySQL数据库,如下图2.1所示。

图2.1 登录MySQL 服务器 方法二:将MySQL的安装路径下的bin目录添加到环境变量path中,打开控制台命令,输入mysql –uroot –p,在提示符下输入密码,登录MySQL服务器,如下图2.2所示。 图2.2 登录MySQL服务器 2、安装Navicat for MySQL Navicat for MySQL 是一款强大的MySQL数据库管理和开发工具,Navicat 使用很好的GUI,可以使用户采用一种安全和更容易的方式创建、组织、存取和共享信息。 安装Navicat_for_MySQL_10.1.7,安装向导启动界面如下图2.3所示。

SQL数据库置疑解决方案(原因分析、预防措施、修复方法)附图

SQL数据库置疑解决方案 一、数据库置疑产生的原因 1、SQL Server所在分区空间是否够? 数据库文件大小是否达到最大文件限制? FAT32的格式只支持4G以内的文件。 2、数据库文件损坏或被非正常删除时出现这种情况。 3、病毒防火墙的扫描也会引起数据库置疑。 4、当SQL Server启动时,将会尝试获得对数据库文件的排他访问权,如果此时该文件被其他程序占用,或者遗失,数据库将会被标记为置疑。 5、电脑非法关机也会造成数据库置疑。 6、电脑磁盘有坏道有可能造成数据库置疑。 二、数据库置疑的预防 1、数据库存放的盘符,空间是否够大,经常检查盘符的空间。 2、数据库存放的盘符的格式设置为NTFS格式。 3、进行病毒清除时,尽量把SQL服务停掉,再进行检查。 4、尽量减少非正常关机。 5、建议客户购买后备电源。 6、给客户实施软件之后一定要做好自动备份。 7、建议客户每隔一定时间手动备份一次。 三、数据库置疑的修复 1、正常的备份、SQL数据库恢复方式 正常方式下,我们要备份一个数据库,首先要先将该数据库从运行的数据服务器中断开,或者停掉整个数据库服务器,然后复制文件。 卸下数据库的命令:Sp_detach_db 数据库名 连接数据库的命令:Sp_attach_db或者sp_attach_single_file_db s_attach_db [@dbname =] ′dbname′, [@filename1 =] ′filename_n′[,...16] sp_attach_single_file_db [@dbname =] ′dbname′, [@physname =] ′physical_name′ 使用此方法可以正确恢复SQL Sever7.0和SQL Server 2000的数据库文件,要点是备份的时候一定要将mdf和ldf两个文件都备份下来,mdf文件是数据库数据文件,ldf是数据库日志文件。 例子: 假设数据库为pdm,其数据文件为pdm_data.mdf,日志文件为pdm_log.ldf。 下面我们讨论一下如何备份、恢复该数据库。 卸下数据库:sp_detach_db 'pdm' 连接数据库:sp_attach_db 'pdm','C:\Program Files\Microsoft SQL Server\MSSQL\Data\pdm_data.mdf','C:\Program Files\Microsoft SQL Server\MSSQL\Data\pdm_log.ldf'

java数据库连接方法

一、问题引入 在java程序中,需要访问数据库,做增删改查等相关操作。如何访问数据库,做数据库的相关操作呢? 二、Java连接数据库方法概述 java.sql提供了一些接口和类,用于支持数据库增删改查等相关的操作。该jar包定义了java访问各种不同数据库(mysql,oracle,sqlserver。。。。。)的统一接口和标准。同时,各个数据库厂商都提供了该jar包中定义的各个接口的实现类,用于具体实现本厂数据库的增删改查操作,即称之为“数据库驱动jdbc driver”。例如mysql的数据库驱动为:com.mysql.jdbc.driver;oracle的数据库驱动为:oracle.jdbc.driver.oracledriver。在java程序中访问数据库,做数据库连接时,可以采用两种方式: 1、使用java.sql API 利用该包提供的各种接口和类直接访问数据库。 例子: 2、使用数据库连接池 目前存在多个开源的java数据库连接池,这些连接池都是在java.sql基础上编写而成。 该连接池的解决的问题是: 当使用java.sql中提供的api创建数据库连接时候,需要耗费很大的资源,要进 行用户名密码数据库连接验证等,即耗费资源也耗费时间。如果在程序中,每次需 要访问数据库时候,都进行数据库连接,那么势必会造成性能低下;同时,如果用 户失误忘记释放数据库连接,会导致资源的浪费等。而数据库连接池就是解决该问 题,通过管理连接池中的多个连接对象(connection),实现connection重复利用。 从而,大大提高了数据库连接方面的性能。 该连接池的功能是: 负责创建,管理,释放,分配数据库连接即(connection)。首先,负责创建相应 数目的数据库连接对象(connection)对象,并存放到数据库连接池(connect pool)中。当用户请求数据库连接时,该连接池负责分配某个处于空闲状态的数据库连接 对象;当用户发出释放该数据库连接时,该连接池负责将该连接对象重新设置为空

数据库性能测试方法实例讲解

网上订购地址:https://www.360docs.net/doc/523787555.html,/39876

第4章应用实例讲解 4.1 一种特殊的数据库性能测试方法 很多同志在进行数据方面性能测试时束手无策,前面在第二章的第二节我们已经介绍了如何应用ODBC协议录制LoadRunner 8.0自身带的“Flights-ODBC_Access”例子。这里作者为您提供另一种简便的方法。问题描述:一个面向全国各个中小学的信息管理系统,随着系统被广泛的应用,访问人数的急剧增加、数据量也在飞速增长,如何为用户提供方便、快捷的应用呢? 4.1.1 数据库集群项目背景介绍 经过公司相关技术人员的讨论,决定采用数据库的集群技术来解决这些问题,将先前1台数据应用服务器扩展为3台。数据库为Mysql,如果您关心数据库的集群技术,请查阅相关资料,在这里不再赘述。实施的整体思路是这样。由于操作人员主要是进行数据的插入工作,在某一段时间内操作人员比较集中,数据量也较大,为了估计集群后会给性能带来多大的提升,我们分别部署了两套运行环境,一套是先前的单一数据库应用服务器环境,另外一个则是三台数据库服务器进行集群。为了记录用户并发插入大数据量系统的响应时间,在相关表中添加了日期时间型字段,记录插入首条和末尾记录的时间,这样,末尾时间减去首条记录插入时间,就是多用户并发插入大批量数据的执行时间了。实施过程如下:第一步,数据库管理员用Java写了一段代码: import java.sql.*; public class testclus { public static void main(String[] args) { //如果传入参数个数不等于2,则给出提示信息"调用:java testclus ip:port recordcnt" if (args.length!=2) { System.out.println("调用:java testclus ip:port recordcnt"); return; } //根据传入参数,动态建立连接字符串 String URL = "jdbc:mysql://" +args[0]+"/testclus?characterEncoding=gbk";

Java连接数据库全过程

Java连接数据库全过程 第一次用java连接数据库,开始竟然不知道从哪里下手,后看了很多书,请教了很多高手,忙了一天才连接上,所以我把这个详细的过程整理出来贡献给大家,不当的地方,希望大家告诉我,一定更正。 要准备的软件: 1.操作系统:windows xp或其他系统; 2.java运行环境:JDK 官方下载网址:https://www.360docs.net/doc/523787555.html,/javase/downloads/index.jsp 3.数据库:SQL server 2000; 下面是java连接数据库需要更新的东西,不然连不上的: 1安装SQL SP3补丁:“SQLSERVER2000SP3补丁.exe”,和普通的程序安装一样。 2.把3个jar包:“msbase.jar”,“mssqlserver.jar”,“msutil.jar”加到classpath中,具体的安装方法我已经详细整理:“Java连接数据库配置——加载jar包”。 Java连接数据库的核心程序文件:"TestConnect.java"如下 //TestConnect.java import java.sql.*; public class TestConnect { private Connection con=null;//Connection:与特定数据库的连接(会话)。在连接上下文中执行 SQL 语句并返回结果。 String dbDriver="com.microsoft.jdbc.sqlserver.SQLServerDriver";//声明数据库驱动名(这个是微软的驱动名) //String dbDriver="sun.jdbc.odbc.JdbcOdbcDriver";//sun驱动程序名 //String dbUrl="jdbc:odbc:lhs"; String dbUrl="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=lhs";//数据库驱动程序URL,和相应的驱动配套。 String dbUser="sa";//定义数据库登陆用户名 String dbPasw="123";//定义相应用户的登陆密码 //创建数据库连接 public void connect()

数据库测试方法介绍

数据库测试方法介绍(2009-10-12 17:05:17) 标签:杂谈分类:软件测试发布: 2009-9-03 13:18 | 作者: webmaster | 来源: 本站原创 | 查看: 59次 | 进入软件测试论坛讨论 数据库测试方法经验介绍软件测试 随着软件业的迅猛发展,我们的开发也从以前的单层结构进入了三层架构甚至现在多层架构的设计,而数据库从以前一个默默无闻的后台仓库,逐渐成为了数据库系统,而数据库开发设计人员成为了炙手可热的核心人员。以前我们往往把数据库操作写在应用层,从而提高各个模块的独立性和易用性,而现在越来越多的数据库操作被作为存储过程直接放在数据库上进行执行来提高执行效率和提高安全性。 数据库开发既然在软件开发的比重逐步提高,随之而来的问题也突出。我们以前往往重视对代码的测试工作,随着流程技术的日益完善,软件质量得到了大幅度的提高,但数据库方面的测试仍然处于空白。我们从来没有真正将数据库作为一个独立的系统进行测试,而是通过对代码的测试工作间接对数据库进行一定的测试。随着数据库开发的日益升温,数据库测试也需要独立出来进行符合自身特点的测试工作。数据库开发和应用开发并没有实质上的区别,所以软件测试的方法同样适用于数据库测试 从测试过程的角度来说我们也可以把数据库测试分为 系统测试 传统软件系统测试的测试重点是需求覆盖,而对于我们的数据库测试同样也需要对需求覆盖进行保证。那么数据库在初期设计中也需要对这个进行分析,测试.例如存储过程,视图,触发器,约束,规则等我们都需要进行需求的验证确保这些功能设计是符合需求的.另一方面我们需要确认数据库设计文档和最终的数据库相同,当设计文档变化时我们同样要验证改修改是否落实到数据库上。 这个阶段我们的测试主要通过数据库设计评审来实现。 集成测试

sql数据库质疑的一般处理命令

寒山sql数据库修复中心https://www.360docs.net/doc/523787555.html,/ 设置数据库允许直接操作系统表。此操作可以在SQL Server Enterprise Manager里面选择数据库服 务器,按右键,选择"属性",在"服务器设置"页面中将"允许对系统目录直接修改"一项选中。也可以 使用如下语句来实现 */ use ais09 go sp_configure 'allow updates',1 go reconfigure with override go sp_dboption 'ais09','single user','true' go /*设置为紧急修复模式(操作数据库切记切换为master)1077936153/4194328(正常) -32768(只读\脱机\紧急模式) 32768(紧急模式)*/ /*select * from sysdatabases*/ update sysdatabases set status=-32768 where dbid=DB_ID('ais09') go /*执行真正的恢复操作,重建数据库日志文件*/ dbcc checkdb('ais09','REPAIR_REBUILD')/*REPAIR_ALLOW_DATA_LOSS | REPAIR_FAST | REPAIR_REBUILD */ go sp_dboption 'ais09','single user','false' go /*设置数据库为正常状态*/ sp_dboption 'ais09','dbo use only','false' go /*最后一步,我们要将步骤E中设置的"允许对系统目录直接修改"一项恢复。因为平时直接操作系统表 是一件比较危险的事情*/ sp_configure 'allow updates',0 go reconfigure with override go 二种模式: use ais19 exec sp_dboption ais19,'single user',true dbcc checkdb('ais19','repair_rebuild') exec sp_dboption ais19,'single user',false 三种模式: 1. DBCC CHECKDB 重启服务器后,在没有进行任何操作的情况下,在SQL查询分析器中执行以下SQL进

数据库测试5

数据库测试5 姓名: [填空题] * _________________________________ 101 现有"教师"表(教师号、教师名)、"学生"表(学号、学生名)和"课程"表(课程号,课程名)等3个基本情况表。学校中一名教师可主讲多门课程,一名学生可选修多门课程,则主讲教师与学生之间形成了多对多关系。为反映主讲教师与学生之间的关系,在数据库中应增加新的表,下列关于新表的设计中,最合理的设计是()。[单选题] * A、增加两个表:学生-选课表(学号、课程号),教师-任课表(教师号、课程号)(正确答案) B、增加一个表:学生-选课-教师表(学号、课程号、教师号) C、增加一个表:学生-选课-教师表(学号、学生名、课程号、课程名、教师号、教师名) D、增加两个表:学生-选课表(学号、课程号、课程名),教师-任课表(教师号、课程号、课程名) 102 产品表中有日期类型字段"生产日期",要查找在第一季度生产的产品,错误的是()。 [单选题] * A、like "*/[1-3]/*" B、Month([生产日期])>=1 And Month([生产日期])<=3 C、DatePart("q",[生产日期]) = 1 D、1 >= Month([生产日期]) <= 3(正确答案) 103 下列与Access表相关的叙述中,错误的是()。 [单选题] * A、设计表的主要工作是设计表的字段和属性 B、Access数据库中的表是由字段和记录构成

C、Access不允许在同一个表中有相同的数据(正确答案) D、Access中的数据表既相对独立又相互联系 104 在关系A(S,SN,D)和B(D,CN,NM)中,A的主关键字是S,B的主关键字是D,则D是A的()。 [单选题] * A、外键(码)(正确答案) B、候选键(码) C、主键(码) D、以上说法都不对 105 下列关于格式属性的叙述中,正确的是()。 [单选题] * A、格式属性影响字段在表中存储的内容 B、可在需要控制数据的输入格式时选用 C、可在需要控制数据的显示格式时选用(正确答案) D、可以设置自动编号型字段的格式属性 106 若要求输入的数据具有固定的格式,应设置字段的属性是()。 [单选题] * A、格式 B、默认值 C、输入掩码(正确答案) D、字段大小 107 在Access数据库中已有"学生"、"课程"和"成绩"表,为了有效地反映3个表之间的联系,在创建数据库时,还应设置的内容是()。 [单选题] * A、表的默认视图 B、表的排序依据 C、表之间的关系(正确答案)

金蝶SQL数据库置疑解决方法

解决由于sql2000日志文件引起的“置疑”。 日志有错误--------重新附加提示日志有错误。 日志文件丢失-----丢失了.ldf文件,只有.mdf文件的数据库重建。 步骤: 一、备份“置疑”数据库的数据文件,因为日志文件.ldf出错,可以只备份.mdf文件。 二、打开企业管理器(SQL Server Enterprise Manager),删除“置疑”数据库,如果提示删除错误,可以重启数据库服务器,然后再试。 三、在企业管理器中,新建同名数据库(假如数据库为test),注意建立的数据库名称,还有数据文件名要保持和原数据库一致。 四、停止数据库服务器。 五、将刚才新建数据库生成的数据库的日志文件test_log.ldf删除,用要恢复的数据库.mdf 文件覆盖刚才生成的数据库数据文件test_data.mdf。 六、启动数据库服务器。此时会看到数据库test的状态为“置疑”。这时候不能对此数据库进行任何操作。 七、设置数据库允许直接操作系统表。此操作可以在企业管理器 (SQL Server Enterprise Manager)里面选择数据库服务器,按右键,选择“属性”,在“服务器设置”页面中将“允许对系统目录直接修改”一项选中。也可以使用如下语句来实现。 use master go sp_configure 'allow updates',1 go reconfigure with override go 八、设置test为紧急修复模式。 update sysdatabases set status=-32768 where dbid=DB_ID('test') 此时可以在企业管理器(SQL Server Enterprise Manager)里面看到该数据库处于“只读\置疑\脱机\紧急模式”可以看到数据库里面的表,但是仅仅有系统表。 九、下面执行真正的恢复操作,用dbcc rebuild_log命令来重建数据库日志文件(重建路径根据你实际的数据库路径来)。

java连接到各种数据库的方法

此文中的代码主要列出连接数据库的关键代码,其他访问数据库代码省略 1、Oracle8/8i/9i数据库(thin模式) Class.forName("oracle.jdbc.driver.OracleDriver").newInstance(); String url="jdbc:oracle:thin:@localhost:1521:orcl"; //orcl为数据库的SID String user="test"; String password="test"; Connection conn= DriverManager.getConnection(url,user,password); 2、DB2数据库 Class.forName("com.ibm.db2.jdbc.app.DB2Driver ").newInstance(); String url="jdbc:db2://localhost:5000/sample"; //sample为你的数据库名 String user="admin"; String password=""; Connection conn= DriverManager.getConnection(url,user,password); 3、Sql Server7.0/2000数据库 Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance (); String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=mydb"; //mydb为数据库 String user="sa"; String password=""; Connection conn= DriverManager.getConnection(url,user,password); 4、Sybase数据库 Class.forName("com.sybase.jdbc.SybDriver").newInstance(); String url =" jdbc:sybase:Tds:localhost:5007/myDB"; //myDB为你的数据库名 Properties sysProps = System.getProperties(); SysProps.put("user","userid"); SysProps.put("password","user_password"); Connection conn= DriverManager.getConnection(url, SysProps); 5、Informix数据库 Class.forName("https://www.360docs.net/doc/523787555.html,rmix.jdbc.IfxDriver").newInstance(); String url = "jdbc:informix-sqli://123.45.67.89:1533/myDB:INFORMIXSERVER=myserver; user=testuser;password=testpassword"; //myDB为数据库名 Connection conn= DriverManager.getConnection(url);

相关文档
最新文档