SQL数据库管理员新手,没人带怎么办?。
20世纪60年代以后,随着计算机在数据管理领域的广泛应用,人们对数据管理技术提出了更高的要求:希望组织面向企业或部门的数据,减少数据冗余,提供更高的数据享受能力,同时要求程序和数据具有更高的独立性。当数据的逻辑结构发生变化时,不涉及数据的物理结构,也不影响应用程序,从而降低应用程序开发和维护的成本。数据库技术就是在这样的应用需求基础上发展起来的。数据库技术有以下特点:*面向企业或部门,以数据为中心组织数据,形成面向所有应用的综合数据库。*采用某种数据模型。数据模型不仅要描述数据本身的特征,还要描述数据之间的关系。*数据冗余小,易于修改和扩展。不同的应用根据处理需求从数据库中获取所需的数据,减少了数据的重复存储,便于添加新的数据结构和维护数据的一致性。*程序和数据高度独立。*有了良好的支持界面,用户可以方便地开发和使用数据库。*统一管理和控制数据,提供数据安全性、完整性和并发控制。数据库的日常维护(参考)数据库的日常维护是系统管理员的重要职责。其内容主要包括以下几个部分:1 .备份系统数据SYBASE系统的备份和恢复机制确保了系统出现故障时重新获得数据的可能性。SQL Server提供了两种不同类型的恢复机制:一种是系统自动恢复,每次系统启动时自动进行,确保系统崩溃前完成的所有事务都写入数据库设备,而所有未完成的事务回滚;另一种是手动恢复,通过DUMP和LOAD命令进行手动备份和恢复。因此,定期备份事务日志和数据库是一项非常重要的日常维护工作。1,备份数据库每个数据库在创建后都要卸载,这样就提供了一个加载基点。之后按照预定的时间段排出。比如每周五卸载数据库。建议一般数据库系统的卸载周期为每周一次。除了按照计划的周期卸载数据库,还需要在每次没有日志的操作后卸载数据库。比如每次都强制运行带NO_LOG的转储TRAN(因为数据库的磁盘溢出);每次都使用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 _ dbtodb _ bk _ de v2,并备份事务日志。如果事务日志与数据库放在同一台设备上,则不应与数据库分开备份。小于4M的主数据库和用户数据库就是这种情况。通常,数据库系统的数据库和日志放在不同的设备上,因此可以使用转储TRAN命令分别备份日志。事务日志备份的周期直接影响数据恢复的程度,建议每天备份。备份事务日志的命令格式为:dump transaction database_name[to dump _ device][with truncate _ only | with no _ log | with no _ truncate],其中database _ name是要备份的事务的数据库名称。Dump_device是备份设备的名称,仅当它包含WITH TRUNCATE_ONLY或WITH NO_LOG子句时,才能备份到该设备。注意:如果您总是使用转储数据库而不是转储TRAN,事务日志将不会刷新,但会变得非常大。对于主数据库和小型数据库,应该在每次转储数据库运行后运行转储事务命令来刷新日志。以下命令将数据库db160的事务日志备份到备份设备:dump transaction DB 160 to DB _ log _ bk _ dev with truncate _ only 3。在至少卸载一次数据库之前卸载事务日志,备份数据库与其日志之间的交互是没有意义的。下图显示了备份数据库及其日志之间的关系。如果周二下午5: 01出现非硬件故障,那么需要做的全部工作就是加载磁带5(见下一节:数据恢复)。由于磁带5刚刚在下午5: 00备份,因此在备份和加载之间的一分钟内只有数据丢失。但是如果在周二下午4: 49到期会怎么样呢?在这种情况下,应该装入磁带1(星期五下午5: 00卸载)。然后,依次装入磁带2、3和4。这样系统会回到周二早上10: 00的状态,周二的大部分工作都会丢失。这个例子显示了频繁卸载事务的重要性。第二,在系统故障的情况下恢复数据库系统。如果用户数据库中存储的设备出现故障,数据库损坏或无法访问,可以通过加载最新的数据库备份和后续的事务日志备份来恢复数据库。假设当前事务日志存在于未损坏的设备上,则带有WITH NO_TRUNCATE选项的DUMP TRANsaction命令会卸载它。若要还原数据库,请按照下列步骤操作:1。如果日志存在于单独的设备上,请使用带有NO_TRUNCATE选项的DUMP TRANsaction命令来卸载损坏的或不可访问的用户数据库事务日志。2.使用以下查询来检查损坏的数据库的设备使用情况。必须为相同的目的分配相同的空间块。以下查询显示了分配给数据库的mydb设备的使用情况和大小:SELECT segmap,size from sys usages where dbid =(SELECT dbid from sysdatabases where name = " mydb ")3 .检查查询的输出。在segmap列中,“3”表示数据分配,“4”表示日志分配。size列表示2K数据块的数量。注意这些信息的顺序、用法和大小。例如,输出为seg map size-310240//实际大小为20M35120//实际大小为10m45120。如果系统报告错误,请使用DBCC DBREPAIR命令的DROPDB选项。5.删除数据库后,使用sp_dropdevice删除损坏的设备。6.用DISK INIT初始化新的数据库设备。7.重建数据库。使用CREATE DATABASE命令从旧的sysusages表中复制所有行,包括第一个逻辑设备。对于上面的例子,命令是:在data dev 1 = 20上创建数据库mydb,在log dev 1 = 108上创建data dev 2 = 10 log,并使用ALTER DATABASE命令重建其余的门户。在此示例中,在datadev1上分配更多空间。命令是:alter database mydb on data dev 1 = 2[page]9。用LOAD DATABASE重新加载数据库,然后用LOAD TRAN加载以前卸载的日志。LOAD DATABASE命令的语法是:LOAD DATABASE DATABASE _ name from dump _ device LOAD transaction命令的语法是:卸载数据库和事务日志的默认权限属于数据库所有者,可以传递给其他用户;加载数据库和事务的权限也属于数据库所有者,但不能传递。2、生成用户信息表,并对信息表进行授权;系统维护人员的另一项日常工作是为用户创建新的信息表,并对其进行授权。创建表和授权表的方法已经讨论过了,这里只写相关的命令语法。创建表的命令是:create table table _ name(Column _ 1 data type[null | not null | identity],Column _ 2...)go alter TABLE _ name add primary key(column _ list)go删除表的命令格式为:DROP TABLE table_namego授权表的命令格式为:GRANT {ALL|permission_list}。在table _ name to user _ name go上,撤消权限的命令格式是revoke { all | permission _ list } on table _ name from user _ name go III。监控系统运行,及时处理系统错误;系统管理员的另一项日常工作是监控系统运行。主要有以下几个方面:1。监控当前用户和进程的信息。使用系统进程:sp_who描述:该命令显示当前系统的所有注册用户和进程信息。下表显示了某个系统的信息。spidstatusloginamehostname blkdbnamecmd-1 runningsacsysv 0 Master select2 Sleeping Null 0主网络句柄3 Sleeping Null 0主死锁调优4 Sleeping Null 0主镜像句柄5 Sleeping Null 0主管家6 Sleeping Null 0主检查点Sleep从左到右显示:进程号、当前状态、注册用户名、主机名、占用的块、数据库名和当前命令。如果在监控过程中发现进程总数接近最大连接数(通过系统过程查看:sp _ configure“user conn”),则应丢弃不活动或不相关的进程,以保证系统的正常运行;此外,它还可以监控非法用户或使用不属于自己使用范围的数据库的用户。2.监视目标占用的空间使用系统进程:sp_spaceused描述:该进程显示当前数据库中一个目标或所有目标占用的行数、数据页数和空间。下表是一个数据库日志表的信息:name row _ total reserved data index _ size unused-。如果发现占用空间过大,转储日志表;对于其他目标,应该扩展空间或清除垃圾数据。3.监视SQL Server统计数据的使用系统进程:sp_monitor描述:sp_monitor显示SQL Server的历史统计数据。下表是某系统的统计:last _ run current _ run秒-。01pm 5678 CPU _ busy IO _ busy idle-16(6)-0% 0(0)-0% 5727(5672)-99% Packets _ received Packets _ sent packet _ errors-21(17)100(97)0(0)Total _ read Total _ write Total _ errors connections-785(366)3654334.确保系统数据安全,定期更改用户密码;为了保证系统数据的安全,系统管理员必须根据系统的实际情况实施一系列的安全措施。其中,定期更改用户密码是一种常见且非常有效的措施。通过调用系统过程sp_password可以更改用户密码。Sp_password的语法是:sp _ passwordcaller_password,new_password [,登录名],其中caller_password是登录密码(旧密码),new_password是新密码和登录名。在百度搜索:数据库的日常维护(参考)相关章节SYBASE存储过程的建立和使用SYBASE dbcc电信企业参与竞争的利器——数据仓库和数据挖掘SCOUNIX下磁带机的安装和备份(存储过程)编写经验和优化措施——SYBASE数据库日志常用数据库系统的比较——SYBASE和SQL server SYBASE FOR LINUX安装和perl连接SYBASESybase数据库应用程序(1)安装SYBASE ASE