快速高效:如何打包mssql数据库? (打包mssql数据库)

要将mssql数据库进行打包,实现高效的备份以及迁移,有几个关键问题需要注意。本文将从以下几个方面为大家详细介绍:

1.数据备份类型的选择

在备份mssql数据库时,主要有三种类型:完全备份、增量备份和差异备份。完全备份即将整个数据库备份,无论是数据还是日志都会被备份。而增量备份和差异备份是对完全备份的补充。

增量备份备份了最近一次完全备份之后所做的所有更改和操作,不包括完全备份后做过的操作。而差异备份则备份了最近一次完全备份之后,所有做过更改和操作的数据。与增量备份相比,差异备份备份的数据更多,因此备份也更慢。

因为差异备份备份的数据更多,一般来说也更安全,建议在备份数据库时优先采用差异备份的方式,之后再进行增量备份。

2.压缩备份文件

压缩备份文件可以减少备份文件的大小,加快备份时间,并节省磁盘空间。mssql数据库可以使用压缩来对备份文件进行压缩,以减少备份文件的大小。在选择压缩类型时,LZ77和LZ-RLE是最常用的两种压缩类型。LZ-RLE压缩是一种简单的压缩方法,只适用于小的大小段。LZ77压缩是一种更高效的压缩方法,可用于大文件。

3.备份的定时策略

为了保证备份的快速高效,同时还要保证数据安全,备份的定时策略也非常重要。对于一般的mssql数据库来说,每日一次完全备份,并在此基础上进行每小时一次的增量备份,可以在保证数据安全的前提下,更大程度地减少备份的时间。

如果在备份数据时需要进行数据迁移,可以选择在备份数据库时将其直接备份到目标服务器上。这样可以避免在备份完成后手动进行数据迁移,大大提高了备份和迁移的效率。

备份是保证数据安全重要的环节,因此在备份数据时需要注意上述关键问题。通过选择合适的备份类型、采用备份文件压缩和定时策略,以及直接备份到目标服务器的方法,可以在节省时间的同时,保证数据库备份和迁移的高效率。

相关问题拓展阅读:

sql数据库如何导出?

1、打开SQL Server,找到需要导出的数据库。

2、在需要导出的数据库上右击,选择任务选项中的导出数据选项。

3、SQL Server导入和导出向导窗口中,单击下一步按钮。

4、选择数据源对话框中,选择数据源选项中的Microsoft OLE DB Provider for SQL Server选项。

5、选择使用SQL Server身份验证,输入

用户名

和密码,选择要导出的数据库,单击下一步。

6、选择目标对话框中,选择目标选项中的Microsoft OLE DB Provider for SQL Server选项。

7、选择使用SQL Server身份验证,输入用户名和密码,单击新建按钮。

8、出现的创建数据库窗口中,在名称处输入一个导出数据库的名字,本例为NewData。

9、可以看到在数据库选项中,多出了一个NewData的名称,单击下一步。

10、指定复制或查询对话框中,选择复制一个或多个表或视图的数据选项,单击下一步。

11、选择源表和源视图对话框中,选择自己要导出的表和视图。

12、运行包对话框中,单击完成按钮。

13、数据就成功导出了。

  一、导出导入SQL Server里某个数据库

  1.在SQL Server企业管理器里选中要转移的数据库,按鼠标右键,选所有任务->备份数据库。

  2.备份 选数据库-完全,

  目的 备份到 按添加按钮

  文件名 在SQL Server服务器硬盘下输入一个自定义的备份数据库文件名(后缀一般是bak)

  重写 选重写现有媒体

  最后按确定按钮。

  如果生成的备份数据库文件大于1M,要用压缩工具压缩后再到Internet上传输。

  3.通过FTP或者remote desktop或者pcanywhere等方法

  把第二步生成的备份数据库文件或者其压缩后的文件传到目的SQL Server数据库,如果有压缩要解压。

  4.目的SQL Server数据库如果还没有此数据库,先创建一个新的数据库;

  然后选中这个新创建的数据库,按鼠标右键,选所有任务->还原数据库

  还原->从设备->选择设备->磁盘->添加(找到要导入的备份数据库文件名)->确定

  还原备份集->数据库-完全

  最后按确定按钮。完全的数据库导入成功了。

  (如果在已经存在的SQL Server数据库上还原数据库可能遇到有还有其它人正在使用它而恢复操做失败,

  可以去看 ->管理->当前活动->锁/对象->找到数据库下锁的进程号->到查询分析器里用kill 进程号杀掉这些锁,然后再做还原)

  注意:如果在原有的目的SQL Server数据库上从备份文件(*.bak)还原数据库会把已经存在的表、存储过程等数据库对象全部替换成最近这次导入的备份数据库里的内容。

  如果一定要还原备份文件(*.bak)里部分数据,需要另外建一个新数据库,其逻辑名称和数量同备份文件(*.bak)里数据库的逻辑名称和数量一致;

  新数据库的物理文件名称取得一定要和备份文件(*.bak)里数据库的物理文件不一样才行。

  二、导出导入SQL Server里某个表

  1.没有防火墙,同一个局域网里或不在同一个局域网里,但通过Internet可以互相访问

在SQL Server企业管理器里选中目的数据库 ,按鼠标右键,选所有任务->导入数据-> 弹出数据转换服务导入/导出向导窗口->下一步->选数据源-> 数据源(用于SQL Server的Microfost OLE DB提供程序)->服务器(可选择局域网内能访问到的所有SQL Server服务器,或者直接输入IP地址)->选择使用windows身份验证还是使用SQL Serve身份验证(输入数据库的用户名和密码)->数据库(可选择上面选中SQL Server服务器上所有权限范围内的数据库)->下一步->选择目的->目的(用于SQL Server的Microfost OLE DB提供程序)->服务器(默认为上一步里选中的导出服务器,也可以选其它局域网内能访问到的所有SQL Server服务器,或者直接输入IP地址)->目的数据库(可选择上面选中SQL Server服务器上所有权限范围内的数据库)->下一步->制定表复制或查询->选从源数据库复制表和视图(也可以选择用一条查询指定要传输的数据)->下一步->选择源表和视图->在要导入的表和视图前面选中源->目的出现同样的表名(可以手工修改成别的表名)->转换->列映射和转换里面可以修改源表和目的表之间字段的对应关系,修改目的表字段的类型和长度等,并可以选择创建目的表,在目的表中增加行,除去并重新创建目的表,启用标志插入等选项->确定->下一步->保存、调度和复制包->时间->立即运行(如果要实现隔一段时间自动导出导入数据,选调度DTS包以便以后执行)->保存(可以不选)->下一步-> >->完成

  正在执行包->图形界面显示创建表及插入记录的步骤和状态->完成

  2.经过防火墙,不在同一个局域网里

  ①、导出表里的数据到文本文件:

  在SQL Server企业管理器里选中目的数据库,按鼠标右键,选所有任务-> 导入数据->弹出数据转换服务导入/导出向导窗口->下一步->选数据源-> 数据源(用于SQL Server的Microfost OLE DB提供程序)->服务器(可选择局域网内能访问到的所有SQL Server服务器)->选择使用windows身份验证还是使用SQL Serve身份验证(输入数据库的用户名和密码)->数据库(可选择上面选中SQL Server服务器上所有权限范围内的数据库)->下一步->选择目的->目的(文本文件)-> 文件名(在自己的电脑硬盘中生成一个自定义的文本文件) ->下一步->制定表复制或查询->选从源数据库复制表和视图(也可以选择用一条查询指定要传输的数据)->下一步->选择目的文件格式->源(选择要导出的表)->用默认的带分隔符->选之一行包含有列名称选项->下一步->保存、调度和复制包->时间->立即运行(如果要实现隔一段时间自动导出到文本文件,选调度DTS包以便以后执行)->保存(可以不选)-> 下一步->>->完成

  正在执行包->图形界面显示表到文本文件的步骤和状态->完成

  如果生成的文本文件大于1M,要用压缩工具压缩后再到Internet上传输。

  ②、通过FTP或者remote desktop或者pcanywhere等方法把

  第①步生成的文本文件或者其压缩后的文件传到目的SQL Server数据库,如果有压缩要解压。

  ③、把文本文件导入目的SQL Server数据库

  直接把文本文件导入目的SQL Server数据库里跟文本文件同名的新表名时,默认的会把所有字段类型都变成字符串。

所以我们要这样做:

在源SQL Server数据库上先生成创建表的sql语句

在SQL Server查询分析器里->选中源数据库里表名->按右键->在新窗口中编写对象脚本->创建->复制下新窗口内创建表名的sql语句到目标SQL Server数据库上查询分析器里执行创建表名的sql语句,生成空表结构。(如果已经存在这样的表名,修改建表的sql语句,在表名后面加上导入时间的年月信息,例如table_0113)

  调用导入/导出工具->弹出数据转换服务导入/导出向导窗口->下一步->选数据源-> 数据源(文本文件)->文件名(已传到目的SQL Server数据库下要导入的文本文件,后缀可以不是*.txt,但是常规文本编辑器能打开的文件,文件类型选全部)->下一步->选择文件格式->用默认的带分隔符->选之一行包含有列名称选项->下一步->制定列分割符->逗号->下一步->选择目的->目的(用于SQL Server的Microfost OLE DB提供程序)->服务器(可选择目标局域网内能访问到的所有SQL Server服务器)-> 选择使用windows身份验证还是使用SQL Serve身份验证(输入数据库的用户名和密码)->数据库(可选择上面选中SQL Server服务器上所有权限范围内的数据库)->下一步->选择源表和视图->修改目的表名为刚才创建的表名->转换(在目的表中追加行) ->下一步->保存、调度和复制包->时间->立即运行(如果要实现隔一段时间自动把文本文件导入,选调度DTS包以便以后执行)->保存(可以不选)-> 下一步->>->完成

  正在执行包->图形界面显示文本文件到表的步骤和状态->完成

如果要更改导入时间的年月信息的表名,例如table_0113到原来的表名,在企业管理器里把原来的表名改成table_old_0113,table_0113改名成table。这会对应用程序里频繁访问的表照成一定的中断。

  注意:源表上的建的索引和主键约束不能用上面介绍的1和2方法转移过来,还需要手工来建索引和主键。

  标志种子和not null的约束可以继承过来。

  导入视图时会把源视图里所有的真实数据导入成一个新表,而不是视图。

  三、SQL Server存储过程或用户定义的函数导出导入

  1、导出存储过程或用户定义的函数成*.sql文件

  在SQL Server企业管理器里选中源数据库,存储过程->单选或者多选中要转移的存储过程->用户定义的函数->单选或者多选中要转移的函数->按鼠标右键,选所有任务->生成SQL脚本->确定->在自己的电脑硬盘中生成一个自定义的*.sql文件->保存->正在生成SQL脚本->成功

  2、如果目的数据库经过防火墙,不在同一个局域网里,要通过FTP或者remote desktop或者pcanywhere等方法把第1步生成的*.sql文件传到目的SQL Server数据库服务器上。

  3、用查询分析器进入SQL Server目的数据库,从菜单里选文件->打开->打开查询文件->选中第1步生成的*.sql文件->点执行查询的绿色倒三角型快捷键->查询窗口里会出现执行后的消息(有时候可能因为存储过程和用户定义的函数之间有一定的依赖关系,会报一些错。

  更好先执行用户定义的函数的*.sql文件,再执行存储过程的*.sql文件)

  四、ORACLE数据库里表导入SQL Server数据库

  1、在目的SQL Server数据库服务器上安装ORACLE Client软件或者ORACLE ODBC Driver. 在$ORACLE_HOME\network\admin\tnsnames.ora里配置ORACLE数据库的别名(service name)。

  具体配置方法可以参考本站文章:客户端连服务器的注意事项

  2、在WIN2023或者win2023服务器->管理工具->数据源(ODBC)->系统DSN(本机器上NT域用户都可以用)->添加->ORACLE ODBC Driver->完成->data source name 可以自定义,我一般填ORACLE数据库的sid标志,description里可以填ORACLE数据库详细描述,也可以不填->data source service name 填第1步定义的ORACLE数据库别名->OK。

  (用户DSN和文件DSN也可以类似配置,但使用的时候有一些限制)

  3、SQL Server的导入和导出数据工具里->选数据源-> 数据源(其它(ODBC数据源))->选第2步在ODBC里定义的系统DSN source name,用户名密码处填写ORACLE系统的用户名和密码->下一步->选择目的,选SQL Server数据库(跟上面第二点讲的一致,就不重复了)。

  注意:在ORACLE表和SQL Server表之间’转换’那步很重要,可以改变默认的字段数据类型,如image->text,decimal->int

  五、SQL Server数据库里表导入ORACLE数据库

  方法一.导出目的选通过ODBC数据源里定义的ORACLE数据库, 注意ORACLE里表名都是大写的.我一般在ORACLE这边先生成好表结构,再选择SQL SERVER源表往ORACLE目的表里追加数据.数据传输速度比方法二慢.

  方法二.从SQL Server数据库导入数据到ORACLE数据库可以选择用Windows下ORACLE9i企业或者个人版数据库做中转。

  之一步:查看需要备份的数据库

  登入SQL Server Management Studio后,在右侧打开树状图可以看到相关数据库。

  第二步:数据库脱机

  选中需要备份的数据库后,选中“任务”->“脱机”,脱机时候,必须关掉表、查询等。

  第三步:确认脱机成功

  脱机这一步很重要,因为不脱机,直接复制这两个文件会报错,所以必须得脱机。请确保出线一下提示界面,才能保证脱机成功。

  第四步:复制备份文件

  进入你的数据库安装目录,相对位置如“\Microsoft SQL Server\MSSQL.1\MSSQL\Data”文件夹,在这个文件夹内,选择你要复制的数据库文件(.mdf和.ldf),然后粘贴到你需要备份的地方即可。

方法一:选择需要导出的数据库右键——导出

方法二:(方法一不成功时候的方法)

选择需要导出的数据库,单击右键——任务——分离——勾选删除链接和保全……——确定

之后直接去数据库所在的根目录复制粘贴到你想要存放的目录底下

两种方法:一种做出.bak的备份文件,一种直接把数据库文件拷贝出来。

方法2:分离、附加

步骤:1、鼠标右键选中要导出的数据库–》任务–》分离

、到C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data目录下面拷贝你的数据库对应的文件.****.mdf,****.log

、要用的时候直接ManagementStudio–》数据库–》附加–》找到你备份的***.mdf的附加后就可以用了。

关于打包mssql数据库的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。


数据运维技术 » 快速高效:如何打包mssql数据库? (打包mssql数据库)