数据库的分离和附加
- 格式:doc
- 大小:422.00 KB
- 文档页数:5
数据库附加方法迁移用友U8 10.12015年8月1日23:44:32一、环境二、分离/附加概述SQL Server提供了“分离/附加”数据库、“备份/还原”数据库、复制数据库等多种数据库的备份和恢复方法。
这里介绍一种学习中常用的“分离/附加”方法,类似于大家熟悉的“文件拷贝”方法,即把数据库文件(.M DF)和对应的日志文件(.LDF)拷贝到其它磁盘上作备份,然后把这两个文件再拷贝到任何需要这个数据库的系统之中。
比如,在实验教学过程中,同学们常常想把自己在学校实验室计算机中创建的数据库搬迁到自己的计算机中而不想重新创建该数据库,就可以使用这种简单的方法。
但由于数据库管理系统的特殊性,需要利用SQL Server提供的工具才能完成以上工作,而直接的文件拷贝是行不通的。
这个方法涉及到SQL Server分离数据库和附加数据库这两个互逆操作工具。
1、分离数据库就是将某个数据库(如student_Mis)从SQL Server数据库列表中删除,使其不再被S QL Server管理和使用,但该数据库的文件(.MDF)和对应的日志文件(.LDF)完好无损。
分离成功后,我们就可以把该数据库文件(.MDF)和对应的日志文件(.LDF)拷贝到其它磁盘中作为备份保存。
2、附加数据库就是将一个备份磁盘中的数据库文件(.MDF)和对应的日志文件(.LDF)拷贝到需要的计算机,并将其添加到某个SQL Server数据库服务器中,由该服务器来管理和使用这个数据库。
三、附加数据库时丢失日志文件的风险1. SQL Server数据库启动的过程数据库启动时,大致可以分为以下3个过程:(1)分析:读取日志文件,从而分析数据文件中的检查点是否是最后一个检查点,并且分析哪些事务未提交从而需要回滚。
(2)前滚(Redo):数据文件的检查点之后的所有事务都重做一次,直到最后一笔事务。
(3)回滚(Undo):撤销所有未提交的事务。
2. 附加数据库时丢失日志文件的潜在风险由于预写事务日志(WAL)是一种缓存机制,数据文件也采用了缓存机制(检查点),那么丢失了日志文件可能有以下风险:(1)如果数据库关闭时未执行检查点(例如,shutdown with nowait),那么这些数据将不会回写到数据文件,即丢失了部分数据。
SQL 2000批量分离与附加数据库【len&odin】--请武狼把此功能加入到Five_Wolf里面。
3Q!感谢狼。
--批量分离数据库declare @dbname varchar(2000)declare @sql varchar(2000)declare len_cur1 cursor for select db_name(dbid) as dbname from master..sysaltfileswhere fileid=1 and db_name(dbid) not in ('master','tempdb','model','msdb','pubs','Northwind')open len_cur1fetch next from len_cur1 into @dbnamewhile @@fetch_status = 0beginset @sql='sp_detach_db'+''''+@dbname+''''exec (@sql)--print (@sql)fetch next from len_cur1 into @dbnameendclose len_cur1deallocate len_cur1--批量附加指定目录数据库存储过程if object_id('attach_db_pro') is not nulldrop procedure attach_db_progocreate procedure attach_db_pro@dir nvarchar(520)asdeclare @dbname varchar(20)declare @filename nvarchar(520)declare @name sysnamedeclare @temp_db_name varchar(20)declare @i intdeclare @sqlq varchar(2000)declare @sql varchar(2000)select cast(space(100) as varchar) as dbname,0 as depth,0 as filee into #tmp from master..sysaltfiles where 1=2set @sqlq='insert into #tmp exec xp_dirtree'''+@dir+'\'''+',1,1 'exec (@sqlq)select case when right(left(dbname,len(dbname)-4),4)='_LOG' then left(dbname,len(dbname)-8)when right(left(dbname,len(dbname)-4),5)='_DATA' then left(dbname,len(dbname)-9) else left(dbname,len(dbname)-4) end as dbname, left(dbname,len(dbname)-4) as name,@dir+dbname filename into #lentmp from #tmp where filee=1ORDER BY dbnamedeclare my_cursor cursorforselect dbname,name,filename from #lentmpwhere dbname not in (select db_name(dbid) from master..sysaltfiles)open my_cursorfetch next from my_cursor into @dbname,@name,@filenamewhile @@fetch_status = 0beginset @temp_db_name = @dbnameset @i = 1set @sql='exec sp_attach_db @dbname ='''+@dbname+''',@filename'+ convert(varchar,@i) + ' =''' + @dir + '\' + rtrim(@name) + rtrim(right(@filename,4))+''''fetch next from my_cursor into @dbname,@name,@filenamewhile @@fetch_status = 0 and @temp_db_name = @dbnamebeginset @i = @i + 1set @sql=+@sql+',@filename' + convert(varchar,@i) + ' = ''' + @dir + '\'+rtrim(@name)+rtrim(right(@filename,4))+''''exec (@sql)fetch next from my_cursor into @dbname,@name,@filenameendendclose my_cursordeallocate my_cursordrop table #tmpdrop table #lentmpgo--批量附加数据库使用例子:exec attach_db_pro 'E:\Data'请武狼把此功能加入到Five_Wolf里面。
一、判断题[数据库系统概论]2(F)与用文件系统来管理数据相比,用数据库管理数据增加了数据冗余度。
(F)一个信息只能用一种数据形式来表示。
(F)数据库系统是数据库管理系统的重要组成部分。
(F)数据库的三级模式是概念模型、逻辑模型和物理模型。
(F)E-R模型只能转换为关系模型,不能转换为层次模型和网状模型。
(F)如果一个实体A对应多个实体B,则A与B之间必然是一对多的联系。
[关系型数据库基本原理]2(F)一个关系的主键只能包含一个属性。
(F)在实体-联系模型中,实体具有属性,联系不能具有属性。
(F)关系运算中,选择运算是从列的角度进行的运算,投影运算是从行的角度进行的运算。
(F)在一个关系模式中,如果A->B,B->C,则称C部分依赖于A。
(F)E-R图转换为关系模型时,实体可转换为关系模式,联系不能转换为关系模式。
(F)E-R图转换为关系模式时,所有的联系都必须转换为独立的关系模式。
[数据库的管理]1(F)数据库的文件包括数据文件、事务日志文件和索引文件。
(F)数据库的一个数据文件可以属于多个文件组。
(F)在SQL Server中,数据库的主数据文件的扩展名是ldf。
[表的管理]2(F)创建一个表时,对于表的每一列,必须指明数据类型和长度,例如“生日datetime(8)”。
(T)在SQL S erver中,nchar数据类型与nvarchar数据类型的区别是,前者是固定长度的,后者是可变长度的。
(T)在SQL Server中,存储逻辑型数据值的数据类型是bit.(F)SQL中的数据定义语言(DDL)用于实现数据增、删、改、查等数据操作。
(F)对于逻辑型的属性,赋值是只能写“YES”或“NO”。
(T)在SQL语句中,对一个字符型的属性赋值,应该两边用单引号将值包括起来。
[数据查询]1(F)关系型数据库的连接查询有内连接和外连接之分,内连接只能实现两个表的查询,外连接可以实现多个表的查询。
7.2.8 SQL Server数据库的备份和恢复大到自然灾害,小到病毒感染、电源故障乃至操作员操作失误等,都会影响数据库系统的正常运行和数据库的破坏,甚至造成系统完全瘫痪。
数据库备份和恢复对于保证系统的可靠性具有重要的作用。
经常性的备份可以有效的防止数据丢失,能够把数据库从错误的状态恢复到正确的状态。
如果用户采取适当的备份策略,就能够以最短的时间使数据库恢复到数据损失量最少的状态。
SQL Server提供了“分离/附加”数据库、“备份/还原”数据库、复制数据库等多种数据库的备份和恢复方法。
这里介绍一种学习中常用的“分离/附加”方法,类似于大家熟悉的“文件拷贝”方法,即把数据库文件(.MDF)和对应的日志文件(.LDF)拷贝到其它磁盘上作备份,然后把这两个文件再拷贝到任何需要这个数据库的系统之中。
比如,在实验教学过程中,同学们常常想把自己在学校实验室计算机中创建的数据库搬迁到自己的计算机中而不想重新创建该数据库,就可以使用这种简单的方法。
但由于数据库管理系统的特殊性,需要利用SQL Server提供的工具才能完成以上工作,而简单的文件拷贝导致数据库根本无法正常使用。
这个方法涉及到SQL Server分离数据库和附加数据库这两个互逆操作工具。
1、分离数据库就是将某个数据库(如student_Mis)从SQL Server数据库列表中删除,使其不再被SQL Server管理和使用,但该数据库的文件(.MDF)和对应的日志文件(.LDF)完好无损。
分离成功后,我们就可以把该数据库文件(.MDF)和对应的日志文件(.LDF)拷贝到其它磁盘中作为备份保存。
2、附加数据库就是将一个备份磁盘中的数据库文件(.MDF)和对应的日志文件(.LDF)拷贝到需要的计算机,并将其添加到某个SQL Server数据库服务器中,由该服务器来管理和使用这个数据库。
下面分别介绍这两个步骤的操作细节。
1、分离数据库分离数据库的操作由以下6步构成。
广西大学2014数据库原理实验报告学号:****************专业班级:计网121班指导老师:***成绩:实验一SQL Server的安装及环境介绍实验目的1.掌握SQL Server 服务器的安装方法(安装版本为SQL Server 2012)。
2.了解SQL Server 服务器的环境实验要求1. 完成SQL Server的安装、启动。
实验内容安装SQL Server。
实验步骤(1)下载SQL Server2012集成包并解压,运行后出现“SQL Server安装中心”。
在左侧的目录树中选择“安装”。
(2)在右侧的选择项中,选择第1项目“全新安装或向现有安装添加功能”,然后就进入了安装程序。
(3)输入产口密钥,许可条款,安装程序支持文件。
(4)接下来,才是正式安装SQL Server程序。
这个步骤看起来跟刚才在准备过程中的一样,都是扫描本机,防止在安装过程中出现异常。
现在并不是在重复刚才的步骤,从下图明显看出这次扫描的精度更细,扫描的内容也更多。
(5)功能选择。
勾选全部的安装组件,方便以后使用。
(6)实例配置。
我们这里安装一个默认实例。
(7)服务账户配置。
(8)数据库引擎配置。
(9)之后的配置无需改动,一路下一步即可,等待安装成功。
请你练习1.如果在安装时设置身份验证模式为混合模式,那SQL Server默认生成的系统管理员账户名是?答:系统管理员账户名sa2.SQL Server 2008中有哪几种身份验证模式?答:Windows身份、SQlServer和Windows身份验证模式3.什么是实例、默认实例和命名实例?在一台计算机上是否可以安装多个实例?答:“实例”,就是一个SQL Server 数据库引擎。
一台计算机上最多只有一个默认实例,也可以没有默认实例,默认实例名与计算机名相同。
“命名实例”就是自己使用这自己命名的事例。
客户端连接命名实例时,必须使用以下计算机名称与命名实例的实例名组合的格式。
oracle数据库读写分离方案背景介绍:Oracle数据库是一种功能强大的关系型数据库管理系统,广泛应用于企业级应用和大型数据存储系统中。
在高并发的应用场景下,数据库读写性能经常成为瓶颈。
为了提升数据库的整体性能,读写分离方案应运而生。
本文将详细介绍Oracle数据库读写分离的原理和实施方法。
一、读写分离的原理读写分离是将数据库的读操作和写操作分离到不同的数据库实例上,实现负载均衡和提升系统性能的目的。
读操作通常占据数据库的大部分负载,而写操作则对数据进行更新和修改。
通过将读请求分发到多个副本数据库,可以有效减轻主数据库的负载压力。
二、Oracle数据库读写分离实施方法1. 配置主数据库和多个副本数据库首先,需要搭建一个主数据库和多个副本数据库的环境。
主数据库用于处理写操作,副本数据库用于处理读操作。
副本数据库可以通过物理复制或逻辑复制的方式实现数据的同步。
2. 配置数据库连接池在应用程序中,配置数据库连接池来实现数据库读写分离。
连接池的功能是管理数据库连接的创建和销毁,可以根据负载情况将读请求分发到副本数据库。
3. 实现读写分离的负载均衡通过在应用程序中配置负载均衡算法,实现读请求的分发和负载均衡。
常见的负载均衡算法有轮询、随机、权重等,可以根据实际需求选择合适的算法。
4. 监控和自动故障转移在读写分离方案中,需要设置监控机制来监测数据库的状态。
当主数据库发生故障时,应能自动将读请求切换到可用的副本数据库上,实现自动故障转移。
5. 数据一致性保证在读写分离方案中,主数据库和副本数据库之间的数据需要保持一致性。
可以通过同步机制和定期数据校验来实现数据的一致性。
三、读写分离方案的优势1. 提高系统性能和可用性通过将读操作分发到多个副本数据库,在保证数据一致性的前提下,提高数据库的整体性能和可用性。
2. 平衡负载压力将读请求分散到多个副本数据库上,减轻主数据库的负载压力,提高系统的整体并发能力。
3. 提升用户体验通过读写分离方案,可以更快地响应用户的读请求,提升用户的体验和满意度。
当事务日志太大时我们有时会通过分离附加的方式清除LOG文件,正常情况下,清除LOG后,附加都会成功,但是有些时候可能数据文件破坏或者分离异常等诸多原因导致无法正常附加,附加时报错:设备激活错误。
物理文件名'C:\Program Files\Microsoft SQL Server\MSSQL\data\DSCSYS_Log.LDF '可能有误。
解决方法(以数据库DSCSYS为例):1.将原先的数据文件DSCSYS_data.mdf备份到其他路径下或者重命名,建立新的数据库DSCSYS,这样就会在相同路径下新生成DSCSYS_data.mdf和DSCSYS_Log.LDF2.停止服务管理器,删除新生成的DSCSYS_Log.LDF,并将原先的数据文件DSCSYS_data.mdf恢复覆盖新生成的DSCSYS_data.mdf切记:此处不可通过分离的方式执行删除和覆盖动作,否则后续无法成功附加3.启动服务管理器,打开企业管理器,我们会看到数据库DSCSYS处于“置疑”状态,这时候不能对数据库做任何的操作4.设置数据库允许之行操作系统表,进入企业管理器,打开SQL Server属性,选择服务器设置,勾选“允许对系统目录直接进行修改”,也可以通过如下语句实现,USE MASTERGOSP_CONFIGURE 'ALLOW UPDATES',1GORECONFIGURE WITH OVERRIDE执行该语句时,有时可能因为SQL Server本身的原因,会报错配置选项'ALLOW UPDATES' 不存在,也可能是高级选项。
此时还是建议采用进入企业管理器勾选“允许对系统目录直接进行修改”5.设置DSCSYS为紧急修复模式UPDATE SYSDA TABASES SET STATUS =32768 WHERE NAME='DSCSYS' 执行该语句后我们看到执行结果为:影响1行6.重建数据库日志文件dbccrebuild_log('DSCSYS','C:\ProgramFiles\MicrosoftSQLServer\MSSQL\data\DSCSYS_Log.LDF ') 执行该语句后我们看到执行结果为:数据库'DSCSYS ' 的日志已重建。
数据库的分离和附加
因为我们机房机器装有保护卡,我们本次实验创建的数据库及它所包含的表等对象,下次实验还要重新创建。
SQL Server提供数据库的分离和附加的功能,可以将本次实验创建的数据库对象从数据库服务器分离,拷贝到U盘。
下次实验再拷贝回磁盘,附加到数据库服务器上。
分离和附加一对互逆的功能。
1、数据库的分离
将我们创建的一个用户数据库从数据库服务器分离出来,变成独立的文件.mdf数据文件和.ldf日志文件。
我们可以把这些文件拷贝到我们的U盘。
2、数据库的附加
将.mdf数据文件和.ldf日志文件拷到一个目录下,附加到数据库服务器上。
在SQL Server Management Studio的对象资源管理器就可以使用这个用户数据库了。
和数据库的分离是互逆的过程。
具体操作步骤如下:
1、数据库的分离
如图1,在SQL Server Management Studio的对象资源管理器中,选中cpxs数据库对象,单击右键,在弹出的快捷菜单选“任务-分离”。
图1
如图2,在弹出的“分离数据库”对话框,单击确定。
图2
如图3,在SQL Server Management Studio的对象资源管理器,选中你本地的数据库服务器单击右键,点刷新。
这样你再观察SQL Server Management S tudio的对象资源管理器,就没有这个用户数据库对象了。
图3
如图4,经过分离,cpxs数据库所对应的物理文件还是存在在硬盘上,选中.mdf数据文件和.ldf日志文件,就可以复制或者剪切到U盘或其他目录。
图4
2、数据库的附加
如图5在SQL Server Management Studio的对象资源管理器,选中数据库,单击右键,点附加。
图5
如图6,在弹出的“附加数据库”对话框中,单击添加,
图6
如图7,在“定位数据库文件”对话框,选择.mdf文件的目录,选择.mdf文件,单击确定。
图7
如图8,在“附加数据库”对话框,就可以看到附加的数据库了,下面有该数据库的详细信息(包括主数据文件,辅助数据文件,日志文件),单击确定。
图8
如图9,在SQL Server Management Studio的对象资源管理器,数据库下面就可以看到附加的数据库了cpxs。
图9。