论文部分内容阅读
摘要:数据库日常维护工作是系统管理员的重要工作,也是企业现代化办公的重要组成部分,笔者认为通过以下手段可以更好的加强数据库系统的维护管理。
关键词:计算机 数据库 维护管理
1 备份系统数据
SYBASE系统的备份与恢复机制保证了在系统失败时重新获取数据的可能性。SQL Server提供了两种不同类型的恢复机制:一类是系统自动完成的恢复,这种措施在每次系统启动时都自动进行,保证了在系统瘫痪前完成的事务都写到数据库设备上,而未完成的事务都被回退;另一类是人工完成的恢复,这是通过DUMP 和LOAD命令来执行人工备份和恢复工作。因此定期备份工作事务日志和数据库具有十分重要的意义。
1.1 备份数据库 每一个数据库都应在创建之后卸出,从而提供一个装入基点。在此之后按排定的时间周期表卸出。除了按计划周期卸出数据库之外,还需在每次运行没有日志的操作后卸出数据库。
1.1.1 每次强制地运行了DUMP TRAN WITH NO_LOG (因为数据库的磁盘空溢出);
1.1.2 每次用Sp_dboption允许select into/bulkcopy 做快速拷贝,或用SELECT INTO命令创建一个永久性的表,或使用了WRITETEXT命令。
卸出数据库的命令为:
DUMP DATABASE database_name
TO dump_device
database_name 是要卸出的数据库名称,dump_device是卸出设备的名称,用系统过程Sp_helpdevice 可以获得设备的信息。
以下的命令可以用来卸出数据库my_db :
DUMP DATABASE my_db
TO db_bk_dev
1.2 备份事务日志 如果事务日志与数据库放在同一个设备上,则事务日志不应与数据库分开备份,master数据库和小于4M的用户数据库就是这种情况。一般数据库系统的数据库和日志分别放在不同的设备上,因此,可以用DUMP TRAN命令单独备份日志。
备份事务日志的命令格式为:
DUMP TRANsaction database_name
[TO dump_device]
[WITH TRUNCATE_ONLYWITHNO_LOGWITH NO_TRUNCATE]
其中database_name是要备份事务的数据库名称,dump_device是备份设备名称,仅当包含了WITH TRUNCATE_ONLY或 WITH NO_LOG 子句时,才可以备份到设备。
2 系统失败时恢复数据库系统
如果用户数据库存储的设备失效,从而数据库被破坏或不可存取,通过装入最新的数据库备份以及后来的事务日志备份可以恢复数据库。假设当前的事务日志存在于一个并没有毁坏的设备上,带着WITH NO_TRUNCATE选项的DUMP TRANsaction命令卸出它。
要恢复数据库按如下步骤去做:
2.1 如果日志存在于一个分离的设备上,用带着NO_TRUNCATE DUMP TRANsaction命令卸出被毁坏的或者不可存取的用户数据库事务日志。
2.2 用下面的查询检查设备分配已毁坏数据库的设备使用情况。必须为同一目的赋同样的空间块。
下面的查询显示了分配给数据库mydb设备使用和尺寸情况:
SELECT segmap,size FROMsysusages
WHERE dbid=(SELECT dbid FROM sysdatabases WHER
E name= “mydb”)
2.3 检查查询的输出。在segmap列的 ‘3’代表数据分配,‘4’代表日志分配。size列代表2K数据块的数目。注意此信息的次序、使用和尺寸部分。例如,输出为:
segmapSize
--------------------------
310240//实际尺寸为:20M
35120//实际尺寸为:10M
45120//实际尺寸为:10M
31024//实际尺寸为:2M
42048//实际尺寸为:4M
2.4 用DROP DATABASE命令删除毁坏设备上的数据库。如果系统报错,用DBCC DBREPAIR命令的DROPDB 选项。
2.5 删除数据库后,用Sp_dropdevice 删除毁坏了的设备。
2.6 用DISK INIT 初始化新的数据库设备
2.7 重建数据库。用CREATE DATABASE命令从老的 sysusages 表拷贝所有的行,并包含第一逻辑设备。
对上例,命令为:
CREATE DATABASE mydb
ON datadev1=20,datadev2=10
LOG ON logdev1=10
2.8 用ALTER DATABASE 命令重建其余入口。在此例中,在datadev1上分配更多的空间,命令为:
ALTER DATABASE mydb ON datadev1=2
2.9 用LOAD DATABASE 重新装入数据库,然后用LOAD TRAN 装入前面卸出的日志。
LOAD DATABASE 命令语法是:
LOAD DATABASE database_name
FROM dump_device
LOAD TRANsaction 命令的语法是:
LOAD TRANsaction database_name
FROM dump_device
卸出数据库和事务日志的缺省权限归数据库所有者,且可以传递给其他用户;装载数据库和事务的权限也归数据库所有者,但不能传递。
3 系统运行状况监视
3.1 监视系统运行情况,主要包括以下几个方面:
监视当前用户以及进程的信息
使用系统过程:sp_who
说明:该命令显示当前系统所有注册用户及进程信息,如下表是某系统的信息。
SpidStatusLoginamehostnameblkdbnamecmd
---------------------------------------------------------------
1RunningSascosysv0MasterSELECT
2SleepingNULL0MasterNETWORK HANDLE
3SleepingNULL0MasterDEADLOCK TUNE
4SleepingNULL0MasterMIRROR HANDLER
5SleepingNULL0MasterHOUSEKEEPER
6SleepingNULL0MasterCHECKPOINT SLEEP
从左向右依次显示:进程号、当前状态、注册用户名、主机名、占用块数、数据库名以及当前命令。如果监视时发现进程总数接近最大连接数(用系统过程:Sp_configure “user conn”查看)时,应下掉不活动或无关进程,以保证系统正常运做;另外亦可监视非法用户或用户使用不属于自己使用范围的数据库等情况。
3.2 监视目标占用空间情况
使用系统过程:sp_spaceused
说明:该过程显示行数、数据页数以及当前数据库中由某个目标或所有目标所占用的空间。如下表是某数据库日志表的信息:
NameRow_totalreserveddataIndex_sizeunused
SyslogsNot avail32KB32KB0KBNot avail
日常要监视的主要目标有:用户数据库、数据库日志表(syslogs)以及计费原始数据表等。如果发现占用空间过大,对日志表要进行转储;对其他目标则应扩充空间或清楚垃圾数据。
监视 SQL Server 统计数字
使用系统过程:sp_monitor
说明:sp_monitor 显示SQL Server 的历史统计数字,下表是某系统的统计数字:
Last_runCurrent_runSeconds
May 13 2000 1:27PMMay 13 2000 3:01PM5678
CPU_busyIO_busyIdle
---------------------------------------------------------------
16(6)-0%0(0)-0%5727(5672)-99%
Packets_receivedPackets_sentPacket_errors
21(17)100(97)0(0)
Total_readTotal_writeTotal_errorsConnections
785(366)311(113)0(0)3(2)
上表依次给出该系统本次运行统计的上一次时间、本次时间、间隔秒数、CPU占用、IO占用、收发包情况、系统读入写出情况等信息。
4 保证系统数据安全
为保证系统数据的安全,系统管理员必须依据系统的实际情况,执行一系列的安全保障措施。其中,周期性的更改用户口令是比较常用且十分有效的措施。
更改用户口令是通过调用系统过程Sp_password 来实现的。Sp_password 的语法为:
Sp_password caller_password,new_password [,loginame]
其中caller_password 是登录口令(老口令),new_password是新口令,loginame是登录名称。
通过本文论述的上述方法,可以有效保证计算机数据库的高效运行,提升现代化企业的信息化、自动化办公效率。
关键词:计算机 数据库 维护管理
1 备份系统数据
SYBASE系统的备份与恢复机制保证了在系统失败时重新获取数据的可能性。SQL Server提供了两种不同类型的恢复机制:一类是系统自动完成的恢复,这种措施在每次系统启动时都自动进行,保证了在系统瘫痪前完成的事务都写到数据库设备上,而未完成的事务都被回退;另一类是人工完成的恢复,这是通过DUMP 和LOAD命令来执行人工备份和恢复工作。因此定期备份工作事务日志和数据库具有十分重要的意义。
1.1 备份数据库 每一个数据库都应在创建之后卸出,从而提供一个装入基点。在此之后按排定的时间周期表卸出。除了按计划周期卸出数据库之外,还需在每次运行没有日志的操作后卸出数据库。
1.1.1 每次强制地运行了DUMP TRAN WITH NO_LOG (因为数据库的磁盘空溢出);
1.1.2 每次用Sp_dboption允许select into/bulkcopy 做快速拷贝,或用SELECT INTO命令创建一个永久性的表,或使用了WRITETEXT命令。
卸出数据库的命令为:
DUMP DATABASE database_name
TO dump_device
database_name 是要卸出的数据库名称,dump_device是卸出设备的名称,用系统过程Sp_helpdevice 可以获得设备的信息。
以下的命令可以用来卸出数据库my_db :
DUMP DATABASE my_db
TO db_bk_dev
1.2 备份事务日志 如果事务日志与数据库放在同一个设备上,则事务日志不应与数据库分开备份,master数据库和小于4M的用户数据库就是这种情况。一般数据库系统的数据库和日志分别放在不同的设备上,因此,可以用DUMP TRAN命令单独备份日志。
备份事务日志的命令格式为:
DUMP TRANsaction database_name
[TO dump_device]
[WITH TRUNCATE_ONLYWITHNO_LOGWITH NO_TRUNCATE]
其中database_name是要备份事务的数据库名称,dump_device是备份设备名称,仅当包含了WITH TRUNCATE_ONLY或 WITH NO_LOG 子句时,才可以备份到设备。
2 系统失败时恢复数据库系统
如果用户数据库存储的设备失效,从而数据库被破坏或不可存取,通过装入最新的数据库备份以及后来的事务日志备份可以恢复数据库。假设当前的事务日志存在于一个并没有毁坏的设备上,带着WITH NO_TRUNCATE选项的DUMP TRANsaction命令卸出它。
要恢复数据库按如下步骤去做:
2.1 如果日志存在于一个分离的设备上,用带着NO_TRUNCATE DUMP TRANsaction命令卸出被毁坏的或者不可存取的用户数据库事务日志。
2.2 用下面的查询检查设备分配已毁坏数据库的设备使用情况。必须为同一目的赋同样的空间块。
下面的查询显示了分配给数据库mydb设备使用和尺寸情况:
SELECT segmap,size FROMsysusages
WHERE dbid=(SELECT dbid FROM sysdatabases WHER
E name= “mydb”)
2.3 检查查询的输出。在segmap列的 ‘3’代表数据分配,‘4’代表日志分配。size列代表2K数据块的数目。注意此信息的次序、使用和尺寸部分。例如,输出为:
segmapSize
--------------------------
310240//实际尺寸为:20M
35120//实际尺寸为:10M
45120//实际尺寸为:10M
31024//实际尺寸为:2M
42048//实际尺寸为:4M
2.4 用DROP DATABASE命令删除毁坏设备上的数据库。如果系统报错,用DBCC DBREPAIR命令的DROPDB 选项。
2.5 删除数据库后,用Sp_dropdevice 删除毁坏了的设备。
2.6 用DISK INIT 初始化新的数据库设备
2.7 重建数据库。用CREATE DATABASE命令从老的 sysusages 表拷贝所有的行,并包含第一逻辑设备。
对上例,命令为:
CREATE DATABASE mydb
ON datadev1=20,datadev2=10
LOG ON logdev1=10
2.8 用ALTER DATABASE 命令重建其余入口。在此例中,在datadev1上分配更多的空间,命令为:
ALTER DATABASE mydb ON datadev1=2
2.9 用LOAD DATABASE 重新装入数据库,然后用LOAD TRAN 装入前面卸出的日志。
LOAD DATABASE 命令语法是:
LOAD DATABASE database_name
FROM dump_device
LOAD TRANsaction 命令的语法是:
LOAD TRANsaction database_name
FROM dump_device
卸出数据库和事务日志的缺省权限归数据库所有者,且可以传递给其他用户;装载数据库和事务的权限也归数据库所有者,但不能传递。
3 系统运行状况监视
3.1 监视系统运行情况,主要包括以下几个方面:
监视当前用户以及进程的信息
使用系统过程:sp_who
说明:该命令显示当前系统所有注册用户及进程信息,如下表是某系统的信息。
SpidStatusLoginamehostnameblkdbnamecmd
---------------------------------------------------------------
1RunningSascosysv0MasterSELECT
2SleepingNULL0MasterNETWORK HANDLE
3SleepingNULL0MasterDEADLOCK TUNE
4SleepingNULL0MasterMIRROR HANDLER
5SleepingNULL0MasterHOUSEKEEPER
6SleepingNULL0MasterCHECKPOINT SLEEP
从左向右依次显示:进程号、当前状态、注册用户名、主机名、占用块数、数据库名以及当前命令。如果监视时发现进程总数接近最大连接数(用系统过程:Sp_configure “user conn”查看)时,应下掉不活动或无关进程,以保证系统正常运做;另外亦可监视非法用户或用户使用不属于自己使用范围的数据库等情况。
3.2 监视目标占用空间情况
使用系统过程:sp_spaceused
说明:该过程显示行数、数据页数以及当前数据库中由某个目标或所有目标所占用的空间。如下表是某数据库日志表的信息:
NameRow_totalreserveddataIndex_sizeunused
SyslogsNot avail32KB32KB0KBNot avail
日常要监视的主要目标有:用户数据库、数据库日志表(syslogs)以及计费原始数据表等。如果发现占用空间过大,对日志表要进行转储;对其他目标则应扩充空间或清楚垃圾数据。
监视 SQL Server 统计数字
使用系统过程:sp_monitor
说明:sp_monitor 显示SQL Server 的历史统计数字,下表是某系统的统计数字:
Last_runCurrent_runSeconds
May 13 2000 1:27PMMay 13 2000 3:01PM5678
CPU_busyIO_busyIdle
---------------------------------------------------------------
16(6)-0%0(0)-0%5727(5672)-99%
Packets_receivedPackets_sentPacket_errors
21(17)100(97)0(0)
Total_readTotal_writeTotal_errorsConnections
785(366)311(113)0(0)3(2)
上表依次给出该系统本次运行统计的上一次时间、本次时间、间隔秒数、CPU占用、IO占用、收发包情况、系统读入写出情况等信息。
4 保证系统数据安全
为保证系统数据的安全,系统管理员必须依据系统的实际情况,执行一系列的安全保障措施。其中,周期性的更改用户口令是比较常用且十分有效的措施。
更改用户口令是通过调用系统过程Sp_password 来实现的。Sp_password 的语法为:
Sp_password caller_password,new_password [,loginame]
其中caller_password 是登录口令(老口令),new_password是新口令,loginame是登录名称。
通过本文论述的上述方法,可以有效保证计算机数据库的高效运行,提升现代化企业的信息化、自动化办公效率。