分类:
2008-07-07 23:57:03
sybase备份有两种方式,一种是对单表进行备份,一种是对整个数据库进行备份
1、单表备份与恢复
只需要使用sybase提高的bcp命令就可以了:
bcp的命令格式:
bcp 数据库名..表名 in/out 文件名字 -Usa –Ppassword -S SERVERNAME –c
解释:
数据库名为要备份的数据库名字
表名为要备份的表的名字
in/out 备份用out,恢复用in
文件名字:备份形成的文件或恢复需要的数据文件,要求包含文件的路径信息
password:sa的口令
servername:如本机器连接多个数据库服务器,则需要指定相应的数据库服务器
2、整个数据库的备份与恢复
这种方式相对比较复杂一点,需要在备份前启动sybase的备份服务,启动方式如下:
startserver -f RUN_SYBASE //启动SYBASE服务
RUN_SYBASE:
#!/bin/sh
#
# Master device path: /home/sybase/data/master
# Error log path: /home/sybase/install/SYBASE.log
# Directory for shared memory files: /home/sybase
# Adaptive Server name: SYBASE
#
/home/sybase/bin/dataserver \
-d/home/sybase/data/master \
-e/home/sybase/install/SYBASE.log \
-M/home/sybase \
-sSYBASE \
startserver -f RUN_SYBASE_BAK //启动sybase备份服务
RUN_SYBASE_BAK:
#!/bin/sh
#
# Error log path: /home/sybase/install/SYB_BACKUP.log
# Maximum number of network connections: 25
# Maximum number of server connections: 20
# Backup Server name: SYB_BACKUP
#
/home/sybase/bin/backupserver \
-e/home/sybase/install/SYB_BACKUP.log \
-N25 \
-C20 \
-SSYB_BACKUP \
备份数据库方法:
dump database 数据库名 to 路径
恢复数据库方法:
load database 数据库名 from 路径
在恢复数据库前需要确保已经存在空的数据库了:
disk init
name="物理设备名",
physname="/home/sybase/data/aa.dat",
vdevno=8, //用sp_helpdevice察看那些no还没有使用
size=5120 (每个单位是2K)
建立物理设备时要关注磁盘空间是否够用:
df -k
create database 数据库名 on 数据名=5120
数据库恢复后,是离线状态,需要手工online:
online database 数据库名
然后就是添加sybase的注册名和数据库的用户名:
sp_addlogin "user","password" //添加注册
go
use 数据库名
go
sp_adduser "user"
go
察看数据库中所有表的方法:
Select name from sysobjects where type='U'
要执行sybase的命令需要先登录sybase
isql -Usa -P