这两天写了一个灵活一点的使用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的意思,表示按照字符来进行导出、或导入)
分享到:
相关推荐
- **UNIX平台**:通过shell脚本启动或关闭数据库服务。 ##### 2.6 使用交互式管理工具 isql isql 是一个命令行工具,用于执行SQL命令和存储过程。 ##### 2.7 安装 OpenClient OpenClient 是一套用于连接Sybase...
1.3 **采用操作系统直接输出到当前运行端**:通过操作系统命令(如shell脚本)来完成数据导出,适用于需要结合操作系统功能的情况。 1.4 **采用BCP程序批量导出**:BCP(Bulk Copy Program)是Sybase提供的一个实用...
7. **Shell脚本与Sybase ASE的交互:** 如何通过Shell脚本调用存储过程,处理查询结果,以及在数据库操作和系统操作之间传递数据。 8. **安全和权限管理:** 在Shell脚本中设置合适的用户权限,确保对数据库的操作...
总结一下,安装Sybase ASE 15在CentOS上涉及多个步骤,包括系统更新、安装依赖、运行安装脚本、配置实例、初始化数据库和设置服务启动。每个环节都需要细心操作,确保所有必需的组件都已就绪,才能确保安装的顺利...
了解 Sybase 数据库的备份和恢复机制至关重要,通常采用 `dump` 方法进行备份。 - **备份**:使用 `dump` 命令对数据库进行备份。 - **恢复**:通过 `restore` 命令恢复数据库。 #### 八、重启服务器检查设置 ...
另外,使用T-SQL语句(如xp_cmdshell)可以执行操作系统命令,如删除目录或创建目录,这在数据库维护和自动化脚本中非常有用。 总的来说,SQL Server初级知识涵盖数据库的基础概念、数据库的创建和管理、数据查询...
在管理和维护方面,SQL Studio提供了全面的工具,包括数据库备份、性能监控、安全性设置以及通过Tcl或SQL Shell(SQSH)进行脚本化的任务自动化。同时,对于数据库管理员(DBA)来说,理解SQLJ(SQL in Java)和PHP...
- **设置sybase数据sp_dboption参数**:确保增量备份可以在数据库在线状态下使用。 ##### 2. SQL脚本与shell脚本设置 - **创建脚本文件夹**:使用`mkdir`命令在`/home/sybase`目录下创建脚本文件夹。 - **编写shell...
传统数据整合依赖大量手工编码,如存储过程、Pro*C、Shell脚本等,不仅耗时且易出错。DataStage的出现,大幅减少了手动编码需求,同时提升了数据整合的效率与可维护性。其核心功能在于从多样化的数据源中抽取数据,...
1. 定期备份:脚本可以设置定时任务,自动备份数据库,确保数据安全。 2. 快速恢复:在数据丢失或系统故障时,利用备份脚本进行快速恢复。 3. 性能监控:监控ASE服务器的CPU使用率、内存占用、磁盘I/O等,及时发现并...
Oracle数据库是全球广泛使用的数据库产品之一,由Oracle公司开发,其竞争对手包括IBM的DB2、Sybase ASE和Informix等。Oracle提供了全面的解决方案,包括RDBMS(关系型数据库管理系统)、中间件、Application Server...