sybase数据库备份
在win7客户端上使用isql连接linux服务器上的sybase数据库。
备份使用mp
database
数据库名
to
备份路径
恢复使用
load
database
数据库名
from
备份路径
② 如何恢复用mp备份的sybase数据库,在LINUX系统下。
load database A from '\u\databak\a.dmp'
online database A
注:
A --数据库的名。
a\databak\u.dmp --mp下来的库,保存在服务器上的路径和文件名。
load 之前,要求没有用户联接到A库。
load之后,原有的数据被覆盖,无法恢复。
③ sybase怎么备份某张表的数据
1,确保备份服务器bs的空间足够存放远程数据库服务器ds的备份文件。
df -k (unix)
df -h (linux)
2.检查备份服务器bs的interfaces文件是否正常
sample_bs_backup
master tcp ether 132.230.99.2 4200
query tcp ether 132.230.99.2 4200
3.启动备份服务器bs的backupServer服务
startserver -f RUN_sample_bs_backup >> sample_bs_backup.log
4.在数据库服务器ds的interfaces文件添加备份服务器bs的ip和端口信息,名字须根备份服务器bs的interfaces文件保持一致
sample_bs_backup
master tcp ether 132.230.99.2 4200
query tcp ether 132.230.99.2 4200
5.检查数据库服务器ds的interfaces文件是否正常
sample_ds_backup
master tcp ether 132.230.99.1 4200
query tcp ether 132.230.99.1 4200
6.启动数据库服务器ds的backupServer服务
startserver -f RUN_sample_ds_backup >> sample_ds_backup.log
7.连接数据库服务器ds的数据服务,添加备份服务器sample_bs_backup到master..sysservers表中。
执行 sp_addserver sample_bs_backup,null;
或者
print 'sample_bs_backup' ;
exec sp_addserver sample_bs_backup, sql_server, sample_bs_backup;
exec sp_serveroption sample_bs_backup, 'timeouts', true;
exec sp_serveroption sample_bs_backup, 'net password encryption', false;
exec sp_serveroption sample_bs_backup, 'readonly', false;
exec sp_serveroption sample_bs_backup, 'rpc security model A',true ;
go
并用以下命令用于查看是否添加成功
sp_helpserver;
8. 连接数据库服务器ds的数据库服务,进行备份
isql -Usa -Ssample_ds -P123456
mp database tacdb to "/backup/sybase/20100519db.dmp" at sample_bs_backup
备份完成!
若是还原是数据库,则执行:
load database tacdb from '/backup/sybase/20100519tacdb.dmp' at sample_bs_backup
9. 备份完毕后,连接数据库服务器ds的数据库服务,删除备份服务
sp_dropserver sample_bs_backup
10,删除数据库服务器ds的interfaces文件关于sample_bs_backup的配置
sample_bs_backup
master tcp ether 132.230.99.2 4200
query tcp ether 132.230.99.2 4200
说明:
1.经与SYBASE公司数据库支持工程师联系,跨平台的数据库mp和load是无法进行的,就像我这种情况——从UNIX服务器上mp出来的数据库,无法load到Windows服务器上的数据库中。只能通过bcp来进行。
2.不同版本的数一据库之间无法进行mp和load。
④ Sybase数据库备份方案有多少种
分数据结构和数据记录做两次备份
在一般情况下,生产机的数据库都比较庞大,而实验机则相对较小,难以在实验环境中以load命令恢复工作机的内容。所以,在工作实践中,我们摸索出了第二种全量备份方案。
1、数据结构备份
在windows平台的Sybase SQL Server Manager(数据库管理)平台中选择ServeràGenerate ddl则产生整个数据库服务器的所有信息,如果选择databaseàgenerate ddl则产生所选定数据库的信息,以master库为例,产生的文件主要包括:config.ddl(配置)、devices.ddl(设备)、 database.ddl(数据库)、logins.ddl(用户)、remote.ddl(远程)、cache.ddl(缓冲)、 segment.ddl()、group.ddl(用户组)、user.ddl(用户)、default.ddl(确省)、rule.ddl(规则)、 udt.ddl、table.ddl(表)、view.ddl(视图)、proc.ddl(存储过程)、triger.ddl(触发器)。
2、数据记录备份
将数据库各表以Sybase自代的bcp(bulk )工具的方式导成一定格式的文本文件,命令格式:
bcp 表名 out 路径名 文件名 -c -t 分隔符 -u (用户名)-p(密码)-S(服务器名)
如果将一个数据库中的所有表都做一个bcp备份,就需要针对每一个表都做一次bcp,在一般情况下,一个数据库有100多个表,工作量比较大。可以利用数据库中的系统表信息做一个bcp备份脚本。原理是每一个用户表在系统表中都有信息记载,可以通过isql语句查询得到。现举一例说明:
1)、先编辑一个名为mkbcpout.sql的文件,内容如下:
select "echo bcp '"+name+" out ……………………'
"+"bcp "+name+" out ./+"name+".table -c -t '|' -Uuser -Ppassword -S SERVER" from sysobjects where type='U'
go
2)、执行isql命令,以此文件作为输入,执行结果输出到另外一个文件里:
isql -Uuser -Ppassword -S server -I mkbcpout.sql -O bcpout
3)、对bcppout文件稍微修改,增加可执行权限
chmod +x bcpout
4)、执行bcpout,导出数据文本
./bcpout
3、数据库恢复
业务生产机可能为小型机,而实验开发环境的硬件环境为PC server,安装好win nt或SCO unix下的Sybase服务器后,根据需要创建空间足够大的数据库和tempdb(系统临时数据库),创建数据库用户,并将其更改为此数据库的所有者,要注意两点:1)此数据库允许bcp拷贝,2)此数据库自动清除log。命令格式为:
1> sp_dboption databasedbname ,"select into/bulk",true
2> go
1> sp_dboption databasename,"trunc log on chkpt",true
2> go
上述两个配置可能与生产机的配置不同。
然后以新创建的数据库用户登录,导入数据结构,注意要首先导入表结构,然后才是存储过程、触发器等等。命令格式:
1、 isql -Uusername -Ppassword -I table.ddl -o error.log.table
2、 isql -Uusername -Ppassword -I proc.ddl -o error.log.proc
……
为了提高bcp导入数据的速度,需要将比较大的表的索引和主键删除,否则的话,每bcp进一条数据,数据库都自动写一条log日志,记载此数据的上一条和下一条记录,确定本记录在此表中的准确位置,一是影响bcp速度,二是数据库的log飞速膨胀。数据库的自动清除log功能只有在一个事务结束后才起作用。
准备工作做完后,开始倒入数据记录。使用类似做bcpout的方法做一个bcpin的脚本,然后执行:
./bcpin |tee error.bcpin
使用tee管道输出的目的是让计算机完整记录下倒入过程,自动存入error.bcpin文件中,待倒入结束后,我们只需要检查日志文件,不需要一直紧盯着计算机屏幕。
所有工作做完之后,不要忘记重新将删除的主键和索引建上。
如果有现成的数据库,只需要单纯地导入数据记录,则首先将数据库中所有用户表(也就是所有type="U"的表)清空,命令格式:
1> truncate table tablename
2> go
当然最好也是利用做bcpout脚本的做一个truncate脚本,通过执行此脚本将所有用户表清空。然后的数据导入、处理索引和主键的过程与上面类似。
三、利用做bcp备份脚本的方法做数据库碎片整理
Sybase数据库作为联机事务处理应用服务器,每天应用程序都对数据库做大量的插入、修改和删除等操作,不可避免的在数据库的物理存储介质上留下页碎片和扩展单元碎片,从而影响数据库的存储效率和运行速度。具体表现为:业务繁忙时出现死锁(dead lock),数据库的输入/输出资源被大量占用,业务处理速度慢。其解决办法是:
1、 清空数据库中的所有表,命令格式:
isql -Uusername -Ppassword -I truncate.sql -o error.truncate
2、 删除所有表的索引和主键
isql -Uusername -Ppassword -I dropindex.sql -o error.dropindex
3、 导入数据
./bcpin
4、 添加索引和主键
isql -Uusername -Ppassword -I addindex.sql -o error.addindex
5、 更新数据库状态
1> update statistics tablename
2> go
上述操作都是针对数据库中的所有用户表进行的,利用做bcp备份脚本的方法做出相应的脚本,使繁琐的数据库维护变得简便易行,还克服了直接使用isql语句操作风险大、没有操作日志的毛病。
笔者在实际工作中,使用第一种方法对生产机做日常全量备份,日终通过unix的crontab定时批量作业(具体做法请参考《中国金融电脑》2001年第10期有关crontab的文章)bcp出全部数据。使用高档PC server 搭建模拟运行环境,在需要的情况下导入生产机数据,处理运行中后台server的各种问题,待研究出解决办法后再在生产机上做相应调整,这样做风险小,效果好。
⑤ 如何实现远程备份SYBASE数据库
收藏推荐 备份数据库操作是保证应用系统安全、稳定运行的必要手段。人民银行各类业务系统基本上都采用了sybase数据库作为主流数据库,而备份Sybas。数据库就成为系统管理员每天必做的工作之一。在大多数情况下,备份Sybase数据库的方法是利用sybase的bep命令或mp命令。 利用b叩命令的优点是可以在中心机房以外的远端机将数据库数据备份到远端机,而且由于只需记录少量日志,速度极快;缺点是只备份了数据库的数据,并没有备份数据库的表结构,如果数据库的表结构和数据遭到严重破坏,并已不可自动修复,恢复时就必须首先重建数据的表结构,然后才能利用bcp out命令恢复数据库的数据。此外还需手工截断日志,以免因日志空间不足使得数据库不能正常运行。由于上述缺点,一般Sybase的备份策略不能只利用b叩命令。 mp命令一般可以在中心机房的数据库服务器上执行,也可以在远端机上利用sybase的客机端软件来执行;可以将数据库备份到服务器磁带上,......(本文共计3页) 如何获取本文>>
⑥ sybase 备份恢复问题
是ASE吧?两台机子的数据库版本保证一致,两方都要 ≥ 12.5.4,只有这样才能相互mp/load,并且流程很复杂,官方有文档,sybase都不能保证数据一致。如果两边版本不一致,使用bcp吧,或者使用PB的pipe。
⑦ sybase数据库备份出错
这个可能是你客户端与服务端的字符集设置不一致导致的,具体你可以看下locales.dat中的字符集是设置成cp850还是iso_1
⑧ sybase怎么恢复已经备份的数据库
先建好数据库,然后还原,既可用sybase Central图形界面还原,也可以用load语句还原
1,,用语句还原:
使用sybase advantage或其它工具执行下列语句
load datebase 数据库名 from '备份路径/备份文件名'
例如 load datebase test from 'E:\backup\test.dmp'
还原完成后还必须执行online操作,数据库才能正常访问,语句是:
online datebase 数据库名
2,用sybase Central图形界面还原
在Central中,展开相应的数据库服务结点——Databases——找到按照第二步建立的数据库,右击该数据库选择Restore,选择恢复的数据库,选择还原整个数据库,选择恢复数据库所示用的设备,在弹出的Select Dump Devices窗口中选择Explicit mp device,在Physical Path中输入你的备份文件的存放路径,点击OK就可以了。
⑨ SYBASE 数据库备份
Sybase的备份方法有很多种。
以Sybase 12.5版本为例,介绍两种常用的方法如下:
1、全库备份:Dump方式。
备份:
Dump database XXX to "D:/backup/xxx.dmp"
恢复:
Load database XXX from "D:/backup/xxx.dmp"
前提条件是Backup Server服务要启动。
2、表方式备份:bcp方式。
备份出来:
bcp 数据库名..表名 out d:\backup\表名.txt -S服务名 -U用户名 -P口令 -c -t,
恢复入库:
bcp 数据库名..表名 in d:\backup\表名.txt -S服务名 -U用户名 -P口令 -c -t,