dump和bcp

dump用来整备数据库
ps -Al  查看sybase 服务
./isql -S[服务名]  —U[用户名]
 ./isql -Sbcndb -Usa
/opt/sybase/bin
使用命令:
>dump database [数据库名] to "[文件路径+文件名.dat]"
>go
★☆注:多数数据库都会存在备份服务的错误提示,这时只需要重启备份服务就可以了
备份出来的文件使用zip压缩:
# zip [文件名.dat] [文件名.zip]
然后拷贝到想要存放的服务器上
在新的服务器上建设备,建库




load数据库:
>load database [数据库名] from "[文件路径+文件名.dat]"
>go
>online database [数据库名]
>go
看到Database 'kjdbs' is now online.则说明加载成功
可以测试一下连接数据库看是否正常


总结:dump备份只能整体备份一个数据库,且只能从低版本的数据库上向同等或者高版本的数据库上load,不能向下load;在向不同版本的数据库load数据的时候会出现数据转换的提示,没有关系,这是正常的。由于是整库备份,所以服务的server page大小将对load产生影响,不同的server page的服务的数据库将不能进行dump、load备份。


——————————————————————————————————————————


bcp用来备份数据库表


使用命令:
# ./bcp [数据库名]..[表名] out [路径+文件名.dat] -c -S[服务名] -Usa -P[密码]
★☆注:bcp为一个外部工具,所以在工具所在目录下执行,而不是在isql里
将所bcp下来的文件zip压缩
拷到新服务器上
在新服务器上建库,建表
修改库的bulkcopy属性:
>use master
>go
>sp_dboption [数据库名] , "select into/bulkcopy" , true
>go
Database option 'select into/bulkcopy/pllsort' turned ON for database [数据库名].
Running CHECKPOINT on database [数据库名] for option 'select into/bulkcopy/pllsort'
to take effect.
(return status = 0)
1> use [数据库名]
2> go
1> checkpoint
2> go
然后退出isql
执行bcp工具来导入表:
# bcp [数据库名]..[表名] in [路径+文件名.dat] -c -S[服务名] -Usa -P[密码]



常用数据备份格式为:    
bcp  dbname..tablename  out  c:\temp\filename  -Usa  -Ppassword  –Sservername  –c    
即可。    
其中  –U后为SYBASE登录名称,–P后为SYBASE登录口令,–S后为SYBASE服务名称,–c代表使用可见文本方式导出数据    
如果为数据恢复只需要将out  替换为  in  即可。    
 
可用如下方法生成一个可以一次导出一个数据库中所有表的数据的执行脚本。    
编辑一个如下文本文件  文件名称例为  bcpscript:    
use  dbname  选中将要导出数据的数据库    
go    
select  'bcp  dbname..'  +  name  +  '  out  c:\temp\'  +  name  +  '  -Usa  -P  -Ssybcdsrv  -c'  from  sysobjects  where  type  =  'U'  在sysobjects系统表中type为U的表为用户表,系统表为S。    
go    
 
用如下格式执行:    
isql  –Usa  –Ppassword  –Sservername  –i  bcpscript  –o  bcpout.bat    
i参数后为输入文件,o参数后文件为输入文件执行后得到的输出文件。    
执行后可以得到一个后缀名为  BAT  的批处理文件(在unix下则生成一个shell文件并更改相应的执行权限),可直接执行。即在指定的目录下导出了相应的数据文件。一个表的数据为一个文件。如在UNIX下则可不用BAT后缀。    
 
备份得到的数据文件如果需要重新往数据库中恢复,只需要将上面操作步骤中BCP命令中的out  参数换为in参数即可。    
注意:在对正式数据做操作前最好先作一些测试。 
  


总结:bcp是一个用来导出备份单个数据库表的外部工具,表结构和索引在不同版本的数据库不同,所以不同版本之间使用bcp备份表也会存在问题,同样是向下兼容,从sybase12.5上bcp下来的表在sybase11.9上不一定能够导入。由于bcp是将单个表备份,其不受服务的server page影响,但是必须要按照原表的字段,完全一样的建立新表。






===========删除数据库




  当使用drop database无法删除数据库时,可以使用如下方法可以删除:
(以pubs2为例)


       (1)使用isql以sa注册ASE
   (2)设置允许修改系统表
  1>;sp_configure "allow updates",1
  2>;go
   (3)把 要删除的用户数据库置为"suspect"状态
  1>;use master
  2>;go
  1>;begin tran
  2>;go
  1>;update sysdatabases set status=256
  2>;where name="pubs2"
  3>;go
    如果得到(1 row affected),则
  1>;commit
  2>;go
    否则
  1>;rollback
  2>;go
   (4)重启server,并用isql以sa注册。
   (5)删除数据库
  1>;dbcc dbrepair(pubs2,dropdb)
  2>;go
   (6)恢复允许修改系统表
  1>;sp_configure "allow updates",0
  2>;go
   (7)结束
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值