这两天写了一个灵活一点的使用bcp命令针对Sybase IQ数据库的表数据的备份。
问题是,能够导出数据,但是不能将bcp文件导入到数据库中,后来才知道,Sybase IQ不建议使用bcp命令来导出数据,其他数据库比如ASE就支持bcp,使用的时候请把连接工具iqisql换成数据库支持的工具,比如(ASE就好像支持isql)。
作孽啊,不过还是将shell脚本贴出来。
cd /home
mkdir -p bcpdata
cd bcpdata
dbname=**** //这里配置一下就OK:数据库命名
username=**** //数据库用户名
filename=tables_`echo $dbname`_`echo $username`.tmp//根据数据库、用户名生成tmp文件
iqisql -Udba -Psql -S`echo $dbname` -o`echo $filename` <<EOF //这里使用iqisql 连接数据库,对于Sybase其他类型数据库 请用对应的命令行工具比如isql
USE `echo $dbname`
GO
SELECT name FROM sysobjects WHERE type='U' and uid=user_id('`echo $username`') ORDER BY name //这里可以需要修改,最终只需要[color=red]一个表名[/color]就行。
GO
exit
EOF
vi $filename 2>/dev/null <<EOF
:1,2 d
:\$
:-2,. d
:1,\$ <<<
: x
EOF //这段代码是对上面tmp文件进行清洗,最后文件中就是干净的表名
total=`cat $filename| wc -l`
current=0
for table in `cat $filename`
do
current=`expr $current + 1`
echo "*** $current/$total bcpout $table ***"
$SYBASE/OCS-15_0/bin/bcp `echo $dbname`.`echo $username`.$table out `echo $dbname`.`echo $username`.$table.bcp -Udba -Psql -S`echo $dbname` -c //bcp备份,并生成以:数据库.用户名.表名.bcp命名的文件
echo "*** $table done ***"
done
tar cvf `echo $dbname`_`echo $username`_`date +%C%y%m%d-%H%M%.S`.tar `echo $dbname`.`echo $username`*.bcp //打包
rm *.bcp
rm $filename
导入的时候,很简单直接
使用bcp table_name (这里的table名要指定数据库名、用户名即dbname.username.tablename) in filename -Udba -Psql -Sdbname -c (这个c就是character的意思,表示按照字符来进行导出、或导入)
分享到:
相关推荐
sybase数据库查被锁的表
其中,Adaptive Server Enterprise 是一个高性能的关系数据库管理系统,Backup Server 是一个数据备份和恢复工具,Sybase Central 是一个统一的管理平台,Open Server 和 Open Client 是一个提供了多种编程接口的...
轻松导出sybase数据库中的表结构、存储过程、视图、触发器、规则和数据等,用vc做的,欢迎使用。
在这里提供一份Sybase数据库备份方案,给在使用sybase数据库的dba,还是运维,程序员,提供一个sysbase数据库备份的模版,及操作文档,和文档样例
SYBASE数据库备份还原手册
使用方法: 1.解压下载的sqladv-12_5.zip至任意目录下! 2.编辑sqladv-12_5\ini目录下的sql.ini文件,添加想要连接的Sybase...成功连接到Sybase服务器后,查看数据库内的表,点菜单View>Pick Lists>Tables & Columns
HP的数据库备份解决方案全面满足Sybase数据库用户的各种需求,能够提供各种方式的备份,实现从在线备份、打开文件的备份到零停机备份、零影响备份,消除了计划内的停机时间,完全消除了Sybase数据库传统冷备与热备时...
sybase跨平台数据备份工具,解决sybase跨平台备份工具,操作简单。避免繁琐的sql语句
自动实现linux平台下的sybase数据库转储及远程备份.pdf
如何远程备份和还原sybase数据库 方法和步骤细则 是我工作的总结
sybase数据库是不支持group_concat函数的,此文件为sybase存储过程样例,可以将多行信息按标识合并为一行多列。
Sybase数据库系统管理指南(PDG) Sybase数据库系统管理指南(PDG) Sybase数据库系统管理指南(PDG) Sybase数据库系统管理指南(PDG) Sybase数据库系统管理指南(PDG) Sybase数据库系统管理指南(PDG) Sybase数据库系统管理...
1 Sybase概述 1. C/S简介 CS(Client/Server)结构是传统的网络集中共享式数据库的扩充。在CS结构中,应 用程序(客户)在工作站上运行应用程序进行数据处理,服务器程序运行于服务器上以 响应客户的请求并维护数据...
Sybase数据库的备份与灾难恢复 Sybase数据库的备份与灾难恢复
解决方法:使用 BCP 工具备份数据、使用 RESTORE 语句恢复数据。 * 问题:日志文件太大 解决方法:使用 TRUNCATE 语句清空日志文件、使用 BACKUP 语句备份日志文件。 SYBASE 数据库是一个功能强大且灵活的关系...
Sybase数据库安装手册 Sybase数据库安装手册 Sybase数据库安装手册
在windows平台的Sybase SQL Server Manager(数据库管理)平台中选择ServeràGenerate ddl则产生整个数据库服务器的所有信息,如果选择databaseàgenerate ddl则产生所选定数据库的信息,以master库为例,产生的...
sybase数据库扩容详解,详细使用图文的方式一步步讲述了sybase数据库现网扩容的方法。
Sybase数据库定时自动备份与自动远程异地存放方法与实现
为了更好的对数据库进行管理和维护,以便当发生数据库故障后能够迅速进行恢复。特制定备份计划。