黄泽雄
(民航汕头空管站 技术保障部,广东 揭东 515558)
目前SQL Server 在空管软件信息系统中应用日趋广泛,以汕头空管站为例,拥有SQL Server 数据库的有包括转报系统、航班不正常统计系统、CNMS 等多套系统。而面对数据库的主要维护工作,越来越重视数据的安全性,如何在短时间内可靠安全恢复原有数据库数据成为空管技术保障的一个课题。本文将从实际出发,探讨以SQL Server 数据库为主的数据库备份手段,给相关技术保障维护提供一个参考。
全数据库备份将可以恢复整个数据库,对于数据库完整性来说很关键相对其他方式也较为简单。缺乏灵活性的它耗时较长,所以对于可以容易重新创建数据的数据库、不经常修改的数据库可以不考虑,而对于空管信息化系统来说,这种备份基本不用,因为数据库数据变化较大,例如航班信息处理系统(FIPS)除了主要数据表,其库表变化较大,所以不建议整库备份,对于实际意义也不大。
以某个时间点的全量数据为基础,备份该时刻后的数据。因此该方式运行恢复实际所作备份点以后的数据,而基础需要事务日志备份加以辅助。对于该方式来说,时间和空间消耗较小,应用广泛,在空管系统中常用于SQL 数据的备份。
差异备份是针对完全备份:备份上一次的完全备份后发生变化的所有文件。差异备份过程中,只备份有标记的那些选中的文件和文件夹。它不清除标记,备份后不标记为已备份文件,换言之,不清除存档属性。出于系统稳定性的要求,对于空管信息化系统来说,该方式应用较少,以符合安全保障要求。
与其他数据库一样,日志的备份在增量备份等数据库日常维护中有很多实际意义。对数据库发送的相关事务进行备份,可以备份自上一次备份以来的所有数据库修改,这与差异备份有着根本性的区别。在空管信息化软件中,大量需要日志备份,相关日志备份还将应用于历史数据的查询以及相关不安全事件的调查。
由于采用备份工具备份的各种数据库备份方式大同小异,因此以差异备份为例有如下步骤:而常用的步骤可以如下:首先,在“SQL Server 企业管理器”中使用sa 用户名和口令注册数据库所在的服务器,否则以后执行备份调度的时候,会出现权限不足,导致不能进行备份;其次,开启服务器的调度代理SQL Server Agent 服务;再之,在“SQL Server 企业管理器”中选中数据库,指定一个新的文件backup.bak,选择“完全”进行一次完全备份;最后,通过“备份数据库”窗口,使用“差异备份”,“重写”选项设置为“追加到媒体”,目的文件仍然是前面步骤所指定的backup.bak,并在“调度”选项中设置为每天的8:00(民航采用国际时间,即为UTC0:00),这样,SQL Server 会在每天UTC 0:00 将数据库自上次备份以来发生的变化,以增量备份的方式追加到backup.bak 文件中。
使用SQL Server 触发器,同样可以对SQL 数据库进行备份。以实际工作为例,
首先,建立一个用于插入数据的测试数据表,命名为testATC,另外一个作为备份:testATC_bak
其次,编写备份用的SQL Server 触发器,只有更新或者是插入的时候才触发
最后,测试测试表并跟踪数据变化便可实现数据库备份。这里不再赘述。
在实际工作中,可以通过分离数据库工具或者命令将需要备份的数据库从原SQL Server 中分离出来。再通过附加数据库工具实现数据库的备份。对于用存储过程来分离数据库,如果发现无法终止用户链接,可以使用ALTER DATABASE 命令,并利用一个能够中断已存在链接的终止选项来把数据库设置为SINGLE_USER 模式,设置为SIGLE_USER 代码如下:
ALTER DATABASE [DatabaseName]SET SINGLE_USER WITH ROLLBACK IMMEDIATE 而分离数据库的 CMD 命令?EXEC sp_detach_db DatabaseName。对于附加数据库,可以使用sp_attach_db存储过程,或者使用带有FOR ATTACH 选项的CREATE DATABASE命令,在SQL Server2005 或更高的版本中推荐使用后者,前者是为了向前兼容,它正在逐渐淘汰,而后者更提供更多对文件的控制。
本文根据空管系统信息软件日常维护探讨了几种SQL Server 数据库备份的方法,从实际出发探讨了包括常见数据库备份方式方法、触发器处理方法以及分离数据库方法对于相关的SQL 数据库系统提供一种维护思路,同时也希望能够为相关其他空管信息化数据提供参考。
[1]Abraham Silberschatz,Henry F.Korth,S.Sudarshan DATABASE SYSTEM CONCEPTS(Fourth Edition)[M].高等教育出版社,McGraw-Hill Companies,2002.
[2]郭郑州,陈军红.SQL Server 2008 完全学习手册[M].北京:清华大学出版社,2011.
[3]闪四清.SQL Server2000 数据库管理[M].北京:希望电子出版社,2002.