(1) 备份数据库和事务日志
备份数据库的语法为:
dump database database_name to dump_device
例如:
dump database tele114 to db114
备份事务日志的语法为:
dump transaction database_name to dump_device
[with truncate_only | with no_log | with no_truncate]
前两项在日志中删除提交的事务,后一项不删除。
在备份数据库前的所有事务日志备份都是没有意义的。我们一般不经常备份数据库,但我们要经常备份事务日志。这是因为备份事务日志比备份数据库需要更少的时间和存储空间。
(2)恢复用户数据库
要恢复已被破坏的数据库,可以按如下步骤进行:
· 用带no_truncate选项的dump命令卸出用户数据库事务日志。
· 用和被破坏的数据库的同样的结构建立一个新的数据库。
· 用load命令重新装入数据库和事务日志。
装入数据库的语法为:
load database database_name
from file_name
装入事务日志的语法为:
load transaction database_name
from file_name
例:数据库备份
1> dump db_name to file_name
2> go
数据库恢复
1> load db_name from file_name
2> go
日志备份
1> dump transaction db_name to file_name
2> go
日志恢复
1> load transaction db_name from file_name
2> go
日志删除
1> dump transaction db_name with truncate_only
2> Go
(3)master数据库的恢复
A、保存系统表的拷贝:sysdatabases、sysdevices、sysusages、sysloginroles和Syslogins。
B、转储主设备上的用户数据库。
C、关闭SQL Server并使用buildmaster建立新的master数据库或主设备。
Buildmaster -m ...仅重建master数据库
Buildmaster ...重建主设备
D、已单用户模式启动SQL Server( Master-Recover
Startserver -f RUN_服务器名 -m
E、若master数据库用alter database 命令扩展过,严格重建它在sysusages中的分配。
F、若Backup Server 的网络名(接口文件中的名字)不是SYB_BACKUP,在sysservers中改动网络名。
Update sysservers set srvnetname="PRODUCTION_BSRV" where srvname="SYB_BACKUP"
G、使用showserver查看,检查确保Backup Server正运行,若有必要,重启Bakup Server
H、装载master的备份。
Load database master from 'master.bak'
Load database执行成功后,SQL Server 自动关闭。
I、若自master的上次转储以来增加过数据库设备,执行disk reinit命令以重建sysdevices。
J、若执行了disk reinit,或自上次转储以来使用过create database或alter database,执行disk refit 重建sysusages和sysdatabases表,执行完毕后SQL Server自动关闭。
K、检查一致性:比较sysusages和sysdatabases的备份和新的联机版本,对每个数据库执行dbcc checkalloc, 并检查每个数据库中重要的表;若发现错误重新执行disk reinit和disk refit。
L、若恢复了整个主设备,则恢复model数据库。
Cd $SYBASE/scripts
Setenv DSQUERY 服务器名
Isql -Usa -P口令 -S服务器名 M、重新装载所有受影响的用户数据库。
N、恢复服务器用户ID。
O、以多用户模式重新启动SQL Server。
(4)恢复model 数据库
Buildmaster -d/设备名 -x
(5)恢复sybsystemproces数据库
A、删除sybsystemproces数据库(若物理磁盘损坏,删除设备,使用Disk init 重建设备)
B、重建数据库
Create database sybsystemporces on 设备名=数据库大小
C、恢复数据库
Cd $SYBASE/scripts
Setenv DSQUERY 服务器名
Isql -Usa -P口令 -S服务器名 九、几个实用程序
1、bcp
以用户指定的形式将数据库表拷贝到操作系统文件中,或从操作系统文件中拷贝一个数据库表。提供了在数据库表和操作系统文件之间传递数据的一个方便、快速的方法。
bcp [[database-name.]owner.]table_name {in|out} datafile [各种开关]
其中,table_name是想要拷贝的数据库表名;{in/out}为拷贝方向,in表示从文件到数据库的拷贝,out表示从数据库到文件的拷贝;datafile是操作系统文件的全路径名。
常用的开关有:
-f formatfile----存有上次使用bcp处理同一表时得到的应答文件的全路径名,格式文件名的扩展名为.fmt。使用格式文件,省去了再重复回答前面的问题。
-U username----允许用户指定一个注册名。
-P password----允许用户指定当前的SQL Server口令。如果未使用-P选项,bcp将提示输入一个口令。
-S Server----允许用户指定与其相连的SQL Server的名字。
例:在客户端备份tele114数据库中code_1th表,按照code_1th.fmt的格式
c> bcp tele114..code_1th out code_1th.txt -杅code_1th.fmt 朥sa 朠
2、 isql
与SQL Server交互的SQL句法分析器。
isql [各种开关]
常用的开关有:
-U username----允许用户指定一个注册名。
-P password----允许用户指定当前的SQL Server的口令。
-S Server----允许用户指定与其连接的SQL Server的名称。
-i输入文件
-o输出文件
终止一条命令:go
清除查询缓冲:reset
调用编辑器:vi
执行一条操作系统命令:!!命令
退出isql:quit或exit
3、showserver
显示当前在本机上正在运行的SQL Server。
showserver
4、startserver
启动SQL Server。
startserver [各种开关]
常用的开关有:
-f runserverfile----指定一个运行服务器文件名,每次重启SQL Server时,以这个文件为参考。在我们的实际机器上,这个文件名为RUN_SYBASE或RUN_SYB_BACKUP。
-m ----以单用户的方式启动SQL Server。这个方式用于恢复master数据库。
5、syman
显示联机的库例程,系统过程及实用程序手册。
syman [keyword]
syman实用程序的联机文本文件存放在$SYBASE下的doc子目录中。
6、dbcc 数据库一致性检查
Dbcc 用来检查一个数据库的逻辑一致性和物理一致性。通常在下面的情况下使用dbcc:
x 常规数据库维护
x 确定当一个系统错误后可能损坏的范围
x 在备份数据库之前
x 怀疑数据库受到损坏。
dbcc有两个主要功能:可检查分配表结构(命令checkalloc、tablealloc和Indexalloc);可检查页链接和页级、行级上的数据指针。
只有表属主可以用checktable、fix-text和reindex选项执行dbcc命令。只有数据库属主可以使用checkdb、checkalloc、checkcatalog、indexalloc和tablealloc选项。只有系统管理员可以使用dbrepair选项
dbcc命令的完整语法格式如下:
Dbcc
{checktable({表明|表标识}[,Skip_ncindex])|
Checkdb [(数据库名[,skip_ncindex])]|
Checkalloc [(数据库名[,fix|nofix])]|
Talbealloc ({表明|表标识}[,{full|optimized|fast|null}[,fix|nofix]]))|
Indexalloc ({






