分离和附加数据库方法
U8——数据库附件方法迁移用友U8 10.1
数据库附加方法迁移用友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),那么这些数据将不会回写到数据文件,即丢失了部分数据。
处理数据库置疑的方法
处理数据库置疑的方法处理数据库置疑的方法先分离数据库企业管理器--右键置疑的数据库--所有任务--分离数据库然后备份你的置疑数据库的文件,再按下面的步骤处理:1.新建一个同名的数据库2.再停掉sql server3.用置疑数据库的文件覆盖掉这个新建的同名数据库,只覆盖mdf文件,日志文件不要覆盖4.再重启sql server5.此时打开企业管理器时新建的同名数据库会出现置疑,先不管,打开查询分析器执行下面的语句(注意修改其中的数据库名)重建日志文件,经过修复后数据就可以正常分离并附加了,语句中“C:\置疑的同名数据库名_Log.ldf”是重建日志日志文件存放路径,在重建日志后,最好将数据库分离并将重新创建的日志文件拷贝到数据库文件所在目录,再重新进行附加。
--重建日志文件,修复损坏的日志USE MASTERSP___RE 'ALLOW __',1 __GURE WITH __EGOUPDATE __BASES SET STATUS =__ WHERE NAME='置疑的同名数据库名'Godbcc rebuild_log('置疑的同名数据库名','C:\置疑的同名数据库名_Log.ldf')GOupdate sysdatabases set status =28 where name='置疑的同名数据库名'Gosp_configure 'allow updates', 0 reconfigure with overrideGo6、数据库修复后还需要进行数据库检测,看是否存在一些错误,数据库检测需要用DBCC __命令,如下:DBCC __('置疑的同名数据库名')如果检测到错误,需要进行修复,但修复数据库需要在单用户模式下,请使用以下语句,ALTER __E 置疑的同名数据库名SET SINGLE_USER WITH __K __TEDBCC __ ('置疑的同名数据库名',REPAIR___)GOALTER __E 置疑的同名数据库名SET MULTI_USER WITH __K __TEGO如果还有错误,执行下面的语句DBCC __ ('数据库名',REPAIR_ALLOW_DATA_LOSS )-------(执行一次如果还有错误,可以多执行几次)7、有时通过DBCC __能够修复数据库中的错误,但有时不能修复,可能需要对单个有问题的数据表进行修复,需要使用DBCC __BLE('有问题的数据表名',REPAIR___) 命令,详细请看联机帮助8、DBCC __命令介绍检查指定数据库中的所有对象的分配和结构完整性。
SQL数据库分离与附加
2012-3-27
龍光輝 Bright Long
返回主目录
6
分离数据库
五、2、在没有分离数据之前,复制MDF与LDF两个文件,在粘贴的时候出错,提示文件 在没有分离数据之前,复制MDF与LDF两个文件,在粘贴的时候出错, MDF 两个文件 已在另一个程序中打开,这也是SQL对于文件的保护措施, SQL对于文件的保护措施 已在另一个程序中打开,这也是SQL对于文件的保护措施,所以我们必须先分离数据库然 后再复制保存
龍光輝 Bright Long
返回主目录
5
分离数据库
五、1、在没有分离数据之前,复制MDF与LDF两个文件,在粘贴的时候会出错,提示程 在没有分离数据之前,复制MDF与LDF两个文件,在粘贴的时候会出错, MDF 两个文件 序已在另一个程序打开,这也是SQL对于文件的保护措施,下面就先复制一下 SQL对于文件的保护措施 复制一下, 序已在另一个程序打开,这也是SQL对于文件的保护措施,下面就先复制一下,在其它地 方粘贴看看
2012-3-27
龍光輝 Bright Long
返回主目录
12
附加数据库
二、分离了数据库之后,一定要把它附加回来才可以用,它的方法和新建一个附加数据库 分离了数据库之后,一定要把它附加回来才可以用, 的方法一样,下面就开始介绍: 的方法一样,下面就开始介绍: 选择要附加的数据库文件MDF,然后单击确定按钮继续, 数据库文件MDF 确定按钮继续 2、选择要附加的数据库文件MDF,然后单击确定按钮继续,
2012-3-27
龍光輝 Bright Long
返回主目录
4
ቤተ መጻሕፍቲ ባይዱ
分离数据库
四、在事务日志文件选项卡,可以看到Log文件存放的位置及分配的空间,Log文件空间一 在事务日志文件选项卡,可以看到Log文件存放的位置及分配的空间,Log文件空间一 看到Log文件存放的位置 ,Log 般比数据库文件要大
数据库应用基础第2章习题参考答案
1.选择题(1)下列(C)不是sql 数据库文件的后缀。
A..mdf B..ldf C..tif D..ndf(2)SQL Server数据库对象中最基本的是(B)。
A.表和语句B.表和视图C.文件和文件组D.用户和视图(3)事务日志用于保存(C.)。
A. 程序运行过程B. 程序的执行结果C. 对数据的更新操作D. 数据操作(4)Master数据库是SQL Server系统最重要的数据库,如果该数据库被损坏,SQL Server将无法正常工作。
该数据库记录了SQL Server系统的所有(D)。
A. 系统设置信息B. 用户信息C. 对数据库操作的信息D. 系统信息(5)SQL Server中组成数据库的文件有(B)类型。
A. 2B. 3C. 4D. 5(6)分离数据库就是将数据库从(B)中删除,但是保持组成该数据的数据文件和事务日志文件中的数据完好无损。
A. WindowsB. SQL ServerC. U盘D. 企业管理器(7)数据库恢复的基础是利用转储的冗余数据。
这些转储的冗余数据包括(C )。
A. 数据字典、应用程序、审计档案、数据库后备副本B. 数据字典、应用程序、审计档案、日志文件C. 日志文件、数据库后备副本D. 数据字典、应用程序、数据库后备副本2.填空题(1)数据库逻辑结构中的文件主要存储(用户数据),而且存储所有与(用户数据)相关的信息。
(2)数据库物理结构主要应用于面向计算机的(数据)组织和管理。
(3)SQL Server的(逻辑组件)通常被称为数据库对象。
(4)一个数据库只能有一个(主数据)文件。
一个数据库可以有(零个)或多个(次数据)文件。
(5)事务日志文件是用来(对数据的)更新情况的文件,扩展名为LDF。
(6)SQL Server中(数据存储)的基本单位是页,一页的大小为8 千字节(KB )。
页是存储数据的(基本)单位。
(7)一个服务器在理论上可以管理(32,767 )个数据库。
SQL数据库日记文件满造成数据库不能保存数据的处理方法
SQL Server2000数据库收缩、分离与附加当日记文件储存满以后,会出现SQL数据库数据无法保存现象。
这就造成了我们在运行KJ2008软件的时候出现,数据库连接正常,但报表打印出现“SQL 2009-4-11数据无效”。
此时,首先应该对kj2006数据库进行手动收缩。
收缩不成功才考虑分离和附加。
一、收缩数据库1、点击“程序》Microsoft SQL Server》企业管理》”,打开企业管理器2、展开服务器组,然后展开服务器,选中要分离的数据库(kj2006)3、点击鼠标右键“所有任务》收缩数据库”,出现如下窗口4、点击“文件”,出现如下窗口选择:kj2006_log(日记文件),然后单独对日记文件进行收缩。
点:确定。
即完成对日记文件的收缩。
然后查看日记文件是否缩小。
SQL Server 2000允许分离数据库的数据和事务日志文件,然后将其重新附加到同一台或另一台服务器上。
分离数据库将从SQL Server 删除数据库,但是保证在组成该数据库的数据和事务日志文件中的数据库完好无损。
然后这些数据和事务日志文件可以用来将数据库附加到任何SQL Server 实例上,这使数据库的使用状态与它分离时的状态完全相同。
数据库分离和附加其实很简单,您即使是初次接触数据库,做起来也很容易。
一、分离数据库1、点击“程序》Microsoft SQL Server》企业管理》”,打开企业管理器2、展开服务器组,然后展开服务器,选中要分离的数据库3、点击鼠标右键“所有任务》分离数据库”,出现如下窗口4、点击确定,该选定的数据库就被分离(分离后的数据库和事务日志文件路径就是它们原先所在的路径)。
应注意,只有“使用本数据库的连接”数为0时,该数据库才能分离。
所以分离数据库时尽量断开所有对要分离数据库操作的连接,如果还有连接数据库的程序,会出现数据库的连接状态窗口,显示正在连接此数据库的机器以及名称,点击清除按钮将从服务器强制断开现有的连接。
C#简单构架之EF进行读写分离+多数据库(MysqlSqlService)
C#简单构架之EF进⾏读写分离+多数据库(MysqlSqlService)最近因为项⽬需要,研究了下EF的读写分离,所以做了⼀个demo进⾏测试,下⾯是项⽬的结构表现层view主要提供Web、WebApi等表现层的解决⽅案公共层public主要提供项⽬公共类库,数据缓存基础⽅法等实体层model主要提供数据库映射模型,还有就是DDD领域操作模型数据层Db主要封装EF操作基础类数据服务层Service主要提供数据库操作服务、缓存操作服务数据接⼝服务层inface主要提供数据库操作服务接⼝、缓存操作服务接⼝1.⾸先是多数据库的⽀持,⽬前就⽀持mysql/sqlservice,如果需要添加更多的数据库⽀持,只需要再数据库操作类型上⾯添加即可///<summary>///数据库类型///</summary>public enum DbContextType : byte{SqlService = 1,MySql = 2}View Code分别对mysql/sqlservice的上下⽂操作进⾏封装///<summary>/// MySql操作类///</summary>[DbConfigurationType(typeof(MySqlEFConfiguration))]public class MySqlContext : DbContext{public DbSet<Test> TestEntities { get; set; }///<summary>///配置默认的字符串链接///</summary>public MySqlContext() : base("DefaultConnection") {}///<summary>///⾃定义数据库链接///</summary>///<param name="connenction"></param>public MySqlContext(string connenction) : base(connenction) { }///<summary>///实体对应规则的映射配置///</summary>///<param name="modelBuilder"></param>protected override void OnModelCreating(DbModelBuilder modelBuilder){}}View Code///<summary>/// Sql数据库操作类///</summary>public class SqlServiceContext : DbContext{///<summary>///配置默认的字符串链接///</summary>public SqlServiceContext() {}///<summary>///⾃定义数据库链接///</summary>///<param name="connenction"></param>public SqlServiceContext(string connenction) : base(connenction) {}///<summary>///实体对应规则的映射配置///</summary>///<param name="modelBuilder"></param>protected override void OnModelCreating(DbModelBuilder modelBuilder){}}View Code在view调⽤时候,进⾏ef上下⽂初始化只需要设置类型///<summary>///数据库策略初始化类///</summary>public static class DBInitializer{public static DbContextType DbContextType { get; set; }///<summary>///数据库初始化策略配置///</summary>`public static void Initialize(DbContextType ContextType){string IsUsedWR = System.Configuration.ConfigurationManager.AppSettings["IsUsedWR"];DbContextType = ContextType;///获得数据库最后⼀个版本// Database.SetInitializer<DBContextHelper>(new MigrateDatabaseToLatestVersion<DBContextHelper, DBConfiguration>());if (ContextType == DbContextType.SqlService){Database.SetInitializer(new MigrateDatabaseToLatestVersion<WriteSqlServiceContext, WriteSqlServiceDBConfiguration>());if (IsUsedWR == "1") {Database.SetInitializer(new MigrateDatabaseToLatestVersion<ReadSqlServiceContext, ReadSqlSqlServiceDBConfiguration>()); }else{Database.SetInitializer<ReadSqlServiceContext>(null);}}else{Database.SetInitializer(new MigrateDatabaseToLatestVersion<WriteMySqlContext, WriteMySqlDBConfiguration>());if (IsUsedWR == "1"){Database.SetInitializer(new MigrateDatabaseToLatestVersion<ReadMySqlContext, ReadMySqlDBConfiguration>());}else{Database.SetInitializer<ReadMySqlContext>(null);}//Database.SetInitializer<WriteMySqlContext>(null);// Database.SetInitializer<ReadMySqlContext>(null);}// Database.SetInitializer<DBContextHelper>(null);///删除原来数据库重新创建数据库//Database.SetInitializer(new DropCreateDatabaseIfModelChanges<ContextHelper>());// Database.SetInitializer<ContextHelper>(new DropCreateDatabaseIfModelChanges<ContextHelper>());}}View Codepublic class MvcApplication : System.Web.HttpApplication{protected void Application_Start(){AreaRegistration.RegisterAllAreas();FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);RouteConfig.RegisterRoutes(RouteTable.Routes);BundleConfig.RegisterBundles(BundleTable.Bundles);//Autofac//ContainerBuilder builder = new ContainerBuilder();//builder.RegisterAssemblyTypes(Assembly.GetExecutingAssembly());//IContainer container = builder.Build();//DependencyResolver.SetResolver(new AutofacDependencyResolver(container));//Autofac初始化过程ContainerBuilder builder = new ContainerBuilder();builder.RegisterControllers(System.Reflection.Assembly.GetExecutingAssembly());//注册mvc容器的实现var assemblys = BuildManager.GetReferencedAssemblies().Cast<Assembly>().ToList();builder.RegisterAssemblyTypes(assemblys.ToArray()).Where(t => .Contains("Service")).AsImplementedInterfaces();var container = builder.Build();DependencyResolver.SetResolver(new AutofacDependencyResolver(container));//初始化数据库DBInitializer.Initialize(DbContextType.MySql);}}View Code通过上⾯多数据库的⽀持已经完成,下⾯进⾏读写分离,分别进⾏继承上述上下⽂操作///<summary>///读///</summary>public class WriteSqlServiceContext : SqlServiceContext{public WriteSqlServiceContext() : base("") { }}///<summary>///写///</summary>public class ReadSqlServiceContext : SqlServiceContext{public ReadSqlServiceContext() : base("") { }}View Code通过⼯⼚类进⾏初始化///<summary>///上下⽂⼯⼚类///</summary>public static class Contextfactory{///<summary>///获取上下⽂///</summary>///<returns></returns>public static DbContext GetContext(DbOpertionType OpertionType){DbContextType ContextType = DBInitializer.DbContextType;if (ContextType == DbContextType.MySql){if (OpertionType == DbOpertionType.Read)return new ReadMySqlContext();elsereturn new WriteMySqlContext();}else{if (OpertionType == DbOpertionType.Read)return new ReadSqlServiceContext();elsereturn new WriteSqlServiceContext();}}///<summary>///获取上下⽂操作///</summary>///<typeparam name="TEntity"></typeparam>///<param name="OpertionType"></param>///<returns></returns>public static TEntity CallContext<TEntity>(DbOpertionType OpertionType) where TEntity: DbContext{var DbContext = GetContext(OpertionType);return (TEntity)DbContext;}}View Code最后配置webcofig即可<!--数据库配置(WriteMySqlConnection:读数据库,ReadMySqlConnection:写数据库如果⽆需要进⾏就配置IsUsedWR,2个链接都写写⼊库)--><connectionStrings><add name="WriteMySqlConnection" connectionString="data source=*; Initial Catalog=YK_Test_WriteDB ; uid=root; pwd=yk12345;Charset=utf8" providerName="MySql.Data.MySqlClient" /> <add name="ReadMySqlConnection" connectionString="data source=*; Initial Catalog=YK_Test_ReadDB ; uid=root; pwd=yk12345;Charset=utf8" providerName="MySql.Data.MySqlClient" /> </connectionStrings><!--数据库读取分离配置--><!--是否开启读写分离1:开启0:不开启--><add key="IsUsedWR" value="1"/>View Code最后进⾏测试public class TestController : Controller{private ITestService _TestServiceDb { get; set; }public TestController(ITestService TestServiceDb) {_TestServiceDb = TestServiceDb;}// GET: Testpublic ActionResult Index(){var result = _TestServiceDb.AddEntity(new Test() { ID=Guid.NewGuid(), Age=11, CreateTime=DateTime.Now, Name="Test" });var NewResult = _TestServiceDb.GetEntityByID(result.ID);return View();}}View Code搞定,可能在代码上有点累赘,但是总算是可⾏的。
SQL_Server2008数据库分离和附加
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步构成。
实验三_分离与附加、还原与备份
实验三分离与附加、还原与备份一、目的与要求1.掌握SQL Server2005拷贝物理文件的方法;2.掌握SQL Server 2005附加数据库的方法;3.掌握SQL Server 2005备份和还原的方法;4.掌握SQL Server 2005定期自动备份的方法。
二、实验准备1.了解数据库分离和附加的意义;2.了解备份的类型、备份设备、恢复模式等概念;3.了解维护计划所需的服务。
三、实验容所有题目,请写出主要操作步骤和运行截图。
(一) 附加数据库将提供的pubs数据库物理文件pubs.mdf和pubs_log.ldf,放在E:\学号文件夹\下,然后附加到对象资源管理器的目录树中步骤:右击数据库—>附加—>添加—>选择E盘学号文件夹下的物理文件pubs.mdf和pubs_log.ldf—>单击确定。
运行过程及结果如下所示:(二) 复制数据库文件1. 停止服务器,复制数据库文件新建文件夹D:\MYDATA,停止SQL Server2005的数据库引擎服务,复制pubs 数据库的物理文件,粘贴到文件夹D:\MYDATA中。
2. 分离数据库,复制数据库文件在不停止服务的情况下,分离实验二中建立的studentdb数据库,将其物理文件拷贝到D:\MYDATA文件夹中。
步骤:右击数据库studentdb—>任务—>分离—>单击确定,结果如下:(三) 备份和还原1.简单恢复模式下,数据库完整备份和还原,备份目标为文件名方式。
(1)将pubs数据库设置成简单恢复模式;步骤:右击pubs数据库—>选择属性—>恢复模式选择简单,结果如下:(2)查看jobs表的第一条记录的max_lvl值为10,对此进行完整备份。
这里备份到文件E:\学号文件夹\pubsbk。
步骤:右击数据库pubs—>选择任务—>备份,结果如下:(3)将jobs表的第一条记录的max_lvl值改为100,使用上一步中备份的文件进行还原,查看是否恢复到原有数据。
数据库实验报告一
广西大学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 数据库引擎。
一台计算机上最多只有一个默认实例,也可以没有默认实例,默认实例名与计算机名相同。
“命名实例”就是自己使用这自己命名的事例。
客户端连接命名实例时,必须使用以下计算机名称与命名实例的实例名组合的格式。
数据库的分离和附加
数据库的分离和附加因为我们机房机器装有保护卡,我们本次实验创建的数据库及它所包含的表等对象,下次实验还要重新创建。
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盘或其他目录。
图42、数据库的附加如图5在SQL Server Management Studio的对象资源管理器,选中数据库,单击右键,点附加。
图5如图6,在弹出的“附加数据库”对话框中,单击添加,图6如图7,在“定位数据库文件”对话框,选择.mdf文件的目录,选择.mdf文件,单击确定。
图7如图8,在“附加数据库”对话框,就可以看到附加的数据库了,下面有该数据库的详细信息(包括主数据文件,辅助数据文件,日志文件),单击确定。
数据库实验1
南京理工大学泰州科技学院实验报告书课程名称:《数据库原理及应用》实验题目:实验一数据库的创建与管理班级:学号:姓名:指导教师:一、实验目的1.巩固数据库的基础知识。
2.掌握SQL Server 2005的安装与配置方法。
3.掌握创建数据库的两种方法。
二、实验内容至少要有:SQL Server 2005的安装与配置、创建数据库、查看和修改数据库、删除数据库操作环境:Windows XP + SQL Server 2005三、实验步骤及结果1、创建一个名称为BookStore的数据库,支持网上书店系统的信息管理。
要求:(1) 将主数据库文件BookStore.mdf放置在D:\DBF文件夹中,文件大小为5MB,文件增量为2MB,不限制增长。
(2) 将事务日志文件BookStore_log.ldf放置在D:\DBF文件夹中,文件大小为2MB,最大值为10MB,文件按10%增长。
2、使用T-SQL语句创建一个名称为BookStore1的数据库。
要求如上题。
3、将BookStore数据库完全备份到磁盘文件D:\Backup中。
4、使用上题生成的备份文件恢复数据库。
恢复的数据库名为BookStore2。
注:正在使用的数据库不能被还原5、附加和分离数据库:将BookStore1数据库分离,然后将数据库文件和日志文件复制到D:\Backup,再附加该数据库。
提示(1)分离数据库只是数据库脱离SQL SERVER的管理,并不是将数据库从磁盘上删除。
(2)在分离数据库之前需关闭所有与数据库连接的应用程序、操作窗口。
如果存在“活动连接”,则处于“未就绪”状态,不能分离。
SQL2000数据库分离_附加_置疑_单用户解除的方法
双机热备模式下,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、单击"确定"按钮。
新附加的数据库的数据库节点即创建在"数据库"文件夹中重启双机1.此时数据库分离,附加完成,必须重启一次双机修复置疑1,双机重启后,数据库置疑下面所有修复置疑的语法,在没有特别提到时,默认数据库都请选择(Master)数据库)2,修复置疑(必须在SQL的查询分析器中才能进行数据修复置疑工作)A、打开查询分析器,当数据置疑之后在查询分析器中是看不到置疑的数据库名称的,所以进入查询分析器之后,所选数据库默认(Master)数据库即可。
sqlserver数据库的分离与附加
sqlserver数据库的分离与附加当我们⼀台电脑上创建了数据库想要转移到另外⼀台电脑上时,由于数据库处于联机状态,不能够对数据库⽂件进⾏复制和迁移,所以我们可以将数据库从服务器上分离出去,这样我们就可以复制数据库⽂件了。
然后将数据库⽂件复制到另外⼀台电脑上,再将数据库⽂件附加进去。
1.分离与附加数据库的⽅式(1)在试图下分离与附加数据库分离数据库: 右击想要分离的数据库--->任务--->分离选中红框位置,然后点击确定,刷新数据库,可以看到在数据库的对象资源管理器下已经看不到分离的数据库了。
附加数据库:选中对象资源管理器下的数据库--->右击--->附加进⼊到如下页⾯:将要附加数据库的主数据库⽂件(也就是以“.mdf”结尾的⽂件)添加进去,添加进去之后我们可以看到它会⾃动补全数据库的其他所有⽂件。
点击确定即可。
(2)使⽤存储过程分离与附加数据库:分离数据库: EXEC sp_detach_db @dbname=E_Market GO附加数据库: EXEC sp_attach_db @dbname=E_Market, @filename1='D:\program files\sqlserver2017\sqlserver workspace\E_Market_data.mdf', @filename2='D:\program files\sqlserver2017\sqlserver workspace\E_Market_log.ldf', @filename3='D:\program files\sqlserver2017\sqlserver workspace\E_Market_log1.ldf', @filename4='D:\program files\sqlserver2017\sqlserver workspace\FG_E_Market_data.ndf' GO 有⼏个⽂件就写⼏个@filename2.脱机与分离数据库的异同点不同点: 脱机:与数据库服务断开连接,但在数据库节点上还存在数据库名称 分离:将数据库从服务器上分离出去,数据库不存在,只存在相应的数据⽂件和⽇志⽂件。
SQLServer2008数据库分离和附加
SQLServer2008数据库分离和附加SQL Server 2008数据库分离和附加SQL Server 2008是一款常见的关系型数据库管理系统,具备良好的数据管理和数据存储能力。
在数据库管理中,数据库的分离和附加是一种常见的操作方式,用于将数据库从一个服务器迁移到另一个服务器,或者备份和恢复数据库。
本文将介绍SQL Server 2008数据库分离和附加的具体步骤和注意事项。
一、数据库分离数据库分离是指将数据库从一个服务器分离出来,使其成为一个独立的数据文件,方便进行备份和迁移。
下面是具体的操作步骤:1. 连接到SQL Server Management Studio(SSMS)。
2. 在对象资源管理器中,找到要分离的数据库,右键单击,并选择“任务”->“分离”。
3. 在分离数据库对话框中,选择要分离的数据库,确认所选数据库的文件路径和名称,并勾选“更新系统目录以反映更改”选项。
4. 单击“确定”按钮,数据库将会被分离,并将从服务器上移除。
需要注意的是,在分离数据库之前,应该确保没有其他用户正在使用该数据库,并且应该备份数据库以防止数据丢失。
二、数据库附加数据库附加是指将已经分离的数据库重新附加到SQL Server中,使其在新的服务器上可用。
下面是具体的操作步骤:1. 连接到SQL Server Management Studio(SSMS)。
2. 在对象资源管理器中,右键单击“数据库”节点,并选择“附加”。
3. 在附加数据库对话框中,单击“添加”按钮,并选择要附加的数据文件。
4. 确认数据库文件路径和名称正确无误。
5. 单击“确定”按钮,数据库将会被附加到服务器上,并在对象资源管理器中显示。
在附加数据库之前,应该确保附加的数据库文件没有被损坏,并且在附加过程中不会影响现有的数据库。
三、数据库分离和附加的注意事项1. 在分离数据库之前,应该备份数据库以防止数据丢失。
2. 在数据库附加之前,应该确保附加的数据库文件没有被损坏,并在附加过程中不会影响现有的数据库。
数据库的分离与附加
数据库的分离与附加
将分离后的数据库附加到其他的服务器上,只需要将该数据库的主数据文件和事务日志文件复制到要 附加该数据库的机器上(本例为了考虑实际操作环境,仍然在相同的机器上附加数据库),然后执 行如下操作:
1)在附加该数据库的机器上打开企业管理器,右键单击“数据库”节点,在弹出的快捷菜单中选择“ 所有任务”→“附加数据库”命令,打开“附加数据库”对话框,如图4-31所示。
该任务要求将广播电视大学学生成绩管理系统的RtvuStu数据库从SQL Server上分离,然后 再将其附加到其他SQL Server服务器实例上。
任务目标:掌握分离数据库和附加数据库的方法。
数据库的分离与附加
1.1 数据库的分离 分离数据库的主要操作步骤如下: 1)打开企业管理器,右键单击要分
离的数据库“RtvuStu”,在弹 出的快捷菜单中选择“所有任务 ”→“分离数据库”命令,打开 “分离数据库”对话框,如图430所示。 2)在“分离数据库”对话框中,检 查数据库的状态,如果是“数据 库已就绪,可以分离”,那么此 时可以分离,单击“确定”按钮 ,即可分离数据库。
图4-31 “附加数据库”对话框
数据库基础
2)在“附加数据库”对话框中单击按钮,打开“浏览现有文件”对话框进行搜索,找到相应的要附加 的数据库的MDF文件,单击“确定”按钮,返回“附加数据库”对话框。
3)在“附加为”框内,输入附加后数据库的名称,默认为分离前的名称,选择数据库所有者,单击“ 确定”按钮完成数据库的附加操作。
数据库的分离与附加
数据库基础
数据库的分离与附加
任务描述:SQL Server允许将数据库从一个服务器上分离出来,然后附加到另一台服务器上 ,这种操作称之为分离数据库和附加数据库。这是一种
SQL Server数据库管理教程 第5章
认情况下,SQL Server 2012会将文件存储 于C:\Program Files\Microsoft SQL Server \ MSSQL10.MSSQLSERVER \ MSSQL \ DATA文件夹中,单击“路径”选项右边的 按钮,在弹出的对话框中可为数据文件或日
志文件指定其他路径。
4)在“选项”选项页中,可以定义所创建数据库的排序规则、恢复模 式、兼容级别等选项。在此均保持默认选项。 5)在“文件组”选项页中,可以查看数据库中现有的文件组,也可以 分别通过“添加”和“删除”按钮添加和删除文件组 6)全部设置完毕后,单击“确定”按钮即可完成jw数据库的创建。
3)通过ALTER语句来增加数据库容量。
【例5-5】 使用Transact-SQL语句将jw数据库的主数据文件jw.mdf 的初始大小设置为5 MB。 ALTER DATABASE jw MODIFY FILE (NAME=jw_data, SIZE=5MB)
3.收缩数据库容量
收缩数据库的方式有以下三种。
逻辑名:表示相应数据文件的逻辑名称,它必须在数据库中是唯一的,
且须符合标识符命名规则。
文件类型:其中“数据”表示数据文件,“日志”表示日志文件。 文件组:用于存放数据文件的文件组。默认情况下,数据文件存放于
PRIMARY文件组中,日志文件不属于任何一个文件组。
初始大小:文件的初始大小。需注意的是,主数据文件的初始大小至少
FILENAME='path'
[,SIZE=database_size] [,MAXSIZE=database_maxsize]
[,FILEGROWTH=growth_increment])
[,FILEGROUP filegroup_name [(NAME=datafile_name,
实验:SQL Server管理器的基本操作
实验:SQL Server管理器的基本操作一、实验目的1、理解数据库的基本概念。
2、熟识SQL Server管理器的基本操作。
3、创建和配置SQL Server数据库。
二、实验内容1、以系统管理员的身份创建使用Windows身份验证的登陆账号WinUser;2、以系统管理员的身份创建使用SQL Server身份验证的登陆账号SQLUser,设置可访问数据库tempdb;3、创建数据库“图书管理”;4、练习分离和附加数据库的方法;5、删除数据库。
三、实验步骤1、创建使用Windows身份验证的登陆账号WinUser。
(1)确认登录账号是已存在的Windows XP中的用户账号。
若不是,则立即在操作系统中创建此用户账号(建议密码也是WinUser)。
(2)打开创建登录账号窗口。
在SQL Server Management Studio中,展开“安全性”,在“登录名”上击右键,选择“新建登录名”,打开“新建登录名”对话框。
(3)在“常规”选项中,单击“登录名”输入框右侧的按钮,从列表中选择WinUser账号;在“身份验证”选项区域中,选择“Windows身份验证”单选按钮;其他选择默认(注意默认数据库是master),单击“确定”完成创建。
(4)查看登录账号,WinUser已经存在。
验证:用WinUser账号登录SQL Server。
首先在操作系统中注销当前用户的登录,然后用WinUser账号登录操作系统。
打开SQL Server Management Studio时用此账号WinUser连接SQL Server服务器,此用户可以使用数据库master。
2、创建使用SQL Server身份验证的登陆账号SQLUser,设置可访问数据库tempdb。
(1)打开创建登录账号窗口。
(2)在“常规”选项中,在“登录名”输入框中输入账号SQLUser;在“身份验证”选项区域中,选择“SQL Server身份验证”单选按钮;在“密码”输入框中输入SQLUser;在“数据库”下拉列表中,选择tempdb,其他选择默认。
Sqlserver数据库的迁移使用方法
方法一:分离
1:数据库先分离,之后找到刚刚分离的数据库文件路径,并拷贝(较大给其他人可以考虑压缩),
2 在在Sqlserver工具上来附加刚刚复制,或者别人给的数据库文件(主数据库文明委*.dmf)
方法二:备份还原
其它用户在使用,不可以断了链接,这个时候如下方法
1:将要传递的数据库给备份到桌面,
B:nvarchar 与 varchar的区别
nvarchar,当表中的列为中文的, 例如 nvarchar(4),昵储存一个英文单词'My',和储存四个中文'你好峰哥' 所占用一样多的字节
另外当你的数据库使用的不是简体中文的排序规则,而是使用其他的例如,拉丁的排序,昵这个时候使用varchar,那么就非常容易会乱码,而使用nvarchar就不会乱码
2:在sqlserver工具的实例上点击 还原数据库,进入之后,写上要还原的数据库的名称,(不可以自己先新建数据库,然后想还原他,会报错:不同名称的数据库,或者报错:不是主数据库),....
方法三:sql语句
1:生成,兼容的sql语句脚本(如果是高版本的数据库将要迁移到低版本的,需要选择向下兼容的sql东东),文件名为*.sql;
Байду номын сангаас
而且,下次天新的数据进来时,主键ID会从默认的1开始哦(truncate不触发delete的触发器)
2:我们可以直接将此*.sql文件拖到sqlserver客服端的工具里面,,选择自己电脑上正确的文件路劲(没有需要先创建)
或者注释对应的路劲,我们写上:Create database ***;
3:注意事项,A:我们在分离数据库之后,往往难以找到之前已经分离的数据库路径,比较麻烦
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
分离:
鼠标右键单击所要分离的数据库名,选择“任务”中的“分离”
弹出如下对话框,点“删除连接”,使之打钩,单击“确定”按钮,完成数据库分离。
复制数据库文件
按以下路径,打开文件夹(此为教师机中的路径,学生机可能也是这个路径)
C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data
可以看到两个数据库文件:liumei.mdf 和liumei.ldf
复制这两个文件到你的U盘中
附加:
打开SQL Server 2005,连接后,开始数据库附加工作。
单击数据库对象,选择“附加”,如图所示。
弹出对话框,单击“添加”,通过文件浏览方式,选择你U盘中的数据库文件(liumei.mdf)建议:先将U盘中文件拷贝到硬盘中,这样操作速度会快一些,只是记住上机结束时将数
据库重新分离,再将新的数据库文件拷贝到U盘即可
“确定”后,上次分离的数据库就附加到SQL Server 中了。