hejia0105 发表于 2011-12-12 10:29

创建新实例时,修改tempdb数据库大小

echo "use master"                                                                                                      >${nowpath}/tmp.sql
echo "go"                                                                                                            >>${nowpath}/tmp.sql
echo "disk init name='tmp_dev',physname='/export/home/sybdev/${db_inst}/tmp_dev.dat', vdevno=10, size='3000M', dsync=false" >>${nowpath}/tmp.sql
echo "go"                                                                                                            >>${nowpath}/tmp.sql
echo "alter database tempdb on tmp_dev='3000M'"                                                                  >>${nowpath}/tmp.sql
echo "go"                                                                                                            >>${nowpath}/tmp.sql
cat<< EOF >>${nowpath}/tmp.sql
use tempdb
go

sp_dropsegment system, tempdb, master
go

sp_dropsegment 'default', tempdb, master
go

sp_dropsegment logsegment, tempdb, master
go
EOF
chown ${dbuser}:${dbgroup} ${nowpath}/tmp.sql
su - ${dbuser} -c ". /opt/sybase/SYBASE.sh;isql -S${db_inst} -U${db_user} -P${db_passwd}" < ${nowpath}/tmp.sql

后面的sp_dropsegment 详解:
sp_dropsegment indexes, pubs2

sp_dropsegment indexes, pubs2, dev1

1.如果要删除的段不在备任何表,索引,分区引用,那么你可以删除它
2.如果你没有指定device ,那么这个段将在指定的数据库内被删除。
如果你指定了device,那么这个段将不再映射到数据库设备上,但这个段不会被删除

所以面的三个命令,没有删除段,只是不再映射到数据库设备上,不再使用了。
上面三个命令的意思就是 tempdb的数据库不再往master数据库中写入。
页: [1]
查看完整版本: 创建新实例时,修改tempdb数据库大小