WEB开发网
开发学院数据库Sybase Shell脚本实现sybase数据备份 阅读

Shell脚本实现sybase数据备份

 2008-05-16 15:10:09 来源:WEB开发网   
核心提示:首先感谢诸位对此文的兴趣,现解释如下:一、导出用户数据库中的表,Shell脚本实现sybase数据备份(2),将其置入文件 tables.tmp 中,isql -Usa -Ppas -Sserver -otables.tmp <<-EOFUSE database_nameGOSELECT name FROM

首先感谢诸位对此文的兴趣,现解释如下:

一、导出用户数据库中的表,将其置入文件 tables.tmp 中。

isql -Usa -Ppas -Sserver -otables.tmp <<-EOF
USE database_name
GO
SELECT name FROM sysobjects WHERE type='U' ORDER BY name
GO
exit
EOF

二、编辑 tables.tmp ,因 tables.tmp 中首两行和末三行,

是我们不要的东西。前次的有小小错,现更正如下:

vi tables.tmp </dev/null
:1,2 d   (删首两行)
:$     (到末行)
:-2,. d   (删末三行)
:1,$ <<<  (清各行左侧空格,即各行顶左。当然一个 < 也够用,1,$ 也可换成 % )
: x
EOF

至如 <使它们不在屏上显示,哈哈、、、就用它了。

找本书看看,再在 SHELL 下,带 <键入上述脚本,你就会有收获的。EOF 可用其他字母,但前后必须一致。

三、导出用户数据库各表中的数据

total=`cat tables.tmp|wc -l`  (总表数)
current=0            (当前的第 n 张表)
for table in `cat tables.tmp`  (将文件 tables.tmp 中的表名依次赋给 table)
do
current=$current+1
echo "*** $current/$total bcpout $table ***"
bcp database_name..$table out $table.bcp -Usa -Ppas -Sserver -Jiso_1 -c
echo "*** $table done ***n"
done
rm tables.tmp

上一页  1 2 

Tags:Shell 脚本 实现

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接