存档
生成响应记录文件:
setupConsole.exe -options-record c:\ase1503responsefile-record.txt
根据响应记录文件的内容进行ASE 15.0.3的静默安装:
setupConsole.exe -silent -options c:\ase1503responsefile-record.txt -W SybaseLicense.agreeToLicense=true -G replaceExistingResponse="yesToALL"
响应记录文件c:\ase1503responsefile-record.txt内容在此下载
响应记录文件中对ASE 15.0.3默认安装过程进行的改动有:
1.安装目录:d:\sybase
2.定制安装
3.追加了3个组件选项:Job Scheduler、Chinese Language Module、Shared
4.安装开发版
5.启用remember password选项
6.不配置新服务器
初始化数据设备1
disk init
name='pmdb_dat1',
physname='/export/home/sybdata/HUAWEIU2000/pmdb_dat1.dat',
size='8000m'
go
初始化日志设备1
disk init
name='pmdb_log1',
physname='/export/home/sybdata/HUAWEIU2000/pmdb_log1.dat',
size='8000m'
go
初始化数据设备2
disk init
name='pmdb_dat2',
physname='/export/home/sybdata/HUAWEIU2000/pmdb_dat2.dat',
size='16000m'
go
创建数据库pmdb
create database pmdb on pmdb_dat1='8000m',pmdb_dat2='16000m' log on pmdb_log1='8000m'
go
添加job
use sybmgmtdb
go
sp_sjobcreate @name='jname=job_clear_log_of_pmdb',@option='jdesc=truncate the log of database pmdb every hour,jproperties=shared'
go
use sybmgmtdb
go
sp_sjobcmd @name='jname=job_clear_log_of_pmdb',@option='add',@text='
use pmdb
dump tran pmdb with no_log
go'
go
添加调度
use sybmgmtdb
go
sp_sjobcreate @name='sname=sche_clear_log_of_pmdb',@option='repeats=1hours,starttime=00:00,endtime=23:59'
go
添加预定作业
在为数据库配置自动扩展时,提示需要增加参数:stack size的大小。
执行下面的SQL语句,使得用户数据库pmdb的default段的阈值为:1000m
sp_dbextend 'set','threshold',pmdb,'default','1000m'
go
但是返回下面的错误:
Msg 3626, Level 17, State 4:
Server 'syb1503', Procedure 'sp_exec_SQL', Line 49:
The transaction was aborted because it used too much stack space. Either use
sp_configure to increase the stack size, or break the query into smaller pieces.
spid: 27, suid: 1, hostname: LIUZHENFU, application name: isql
Msg 19206, Level 16, State 1:
Server 'syb1503', Procedure 'sp_exec_SQL', Line 53:
sp_dbxt_ins_db_seginfo: Execute immediate SQL failed. SQL statement is: insert
#syssegments(dbname, inserted_by, segment, name, status) select
'pmdb','sp_dbxt_set_extend_db', segment, name, status from pmdb.dbo.syssegments
(return status = 1)
那就按照提示做吧。 将stack size参数的大小配置为:130KB
sp_configure "stack size",130000
go
此参数:stack size是静态参数,需要重启ASE服务器。
ASE 15.7 新增了命令可以将数据库对象的所有权从一个所有者移交给另一个所有者。
比如将表customer的所有权从dbo移交给bill,使用命令: alter table dbo.customer modify owner bill
不仅仅限于表,还有其它数据库对象包括:视图、存储过程、用户定义函数、默认值、规则、自定义数据类型、加密密钥等;
一次性可以授予多个数据库对象:
1、将 bill 拥有的所有表的所有权都移交给 eric:
alter table bill.* modify owner eric preserve permissions
2、将 bill 拥有的所有对象的所有权都移交给 eric:
alter all bill.* modify owner eric preserve permissions
preserve permissions:针对这些对象的所有显式授予或撤消的权限都将被保留,并且权限的 grantor 将更改为新的所有者。-------------------------------------------------------------------------------------------------------------------------------------------------------
以下提供的方法适用于低于ASE 15.7的版本!
和SQL Server很相似,Sybase ASE数据库有一些未认证的DBCC命令。日常的维护过程中,需要一些Sybase认证的、公开的DBCC命令来完成,比如:检查数据库或者表的一致性、物理存储分配一致性、重建索引等等。对于这些公开的DBCC命令,Sybase公司是提供技术支持保障的。那些未公开的也就是未认证的DBCC命令,仅限Sybase内部工程师使用;Sybase公司不提供技术支持也不会对于此产生的问题负责。
所以,不要在生产环境上使用未认证的DBCC命令。在测试环境上研究学习使用倒是可以的。
需要记住的是:没人对这些未认证的DBCC产后的后果负责。
本篇介绍一个用来关闭或者重启某个用户数据库的未认证DBCC命令:dbcc dbreboot。顺便介绍一个修改对象所有者的方法。因为在ASE中对象的所有权是不能移交的,其它用户只有使用权。这点和中国土地权方面很类似吗?美国人信奉私有制,怎么设计出来这个数据库实现思路?呵呵,有点扯远了~~~
这边的测试环境是ASE15.0.3,我不确定从哪个ASE版本开始支持这个dbcc dbreboot命令的。
首先用isql连接到ASE15.0.3数据库,先打开在屏幕显示输出信息的选项,
dbcc traceon(3604)
go
先来查看一下dbcc dbreboot的用法:
例:有表
--sybase
create table t_test(
mydate datetime)
go
--oracle
create t_test(mydate date)
方法1:在sybase侧建立视图,然后从导出视图(此方法舍弃了毫秒部分)
create view v_test as
select
convert(varchar(10),pst_exec_stime,111)+' '+convert(varchar(9),pst_exec_stime,8) mydate
from t_test
go
ASE有个可选数据库:sybsyntax,此数据库是帮助信息数据库,数据库不大。安装完该数据库sybsyntax后,可以在isql或其它客户端工具上在线查看T-SQL以及命令、dbcc等命令的语法。
如:
1> sp_syntax "update statistics"
2> go
Syntax Help
------------------------------------------------------------------------------
Transact-SQLupdate statistics table_name
[ [index_name] | [( column_list ) ] ]
[using step values]
[with consumers = consumers ]
update index statistics table_name [index_name]
[using step values]
[with consumers = consumers ](return status = 0)
安装步骤如下:
第一步:为数据库sybsyntax初始化设备:sybsyntaxdev
该数据库不大,并且以后几乎为”只读“数据库,除非你自己往里面添加帮助信息
linux x86 平台上的 ASE15.5 的 dat文件,拷贝到windows x86 平台上的ASE15.5中,是可以使用的。
只需要简单的修改master.dat中的device路径即可。 通过更改sysdevices的phyname来实现。
将sysdatabases系统表中status - 64
之后, 利用dbcc checkdb,dbcc checkalloc,dbcc checkcatalog 检查各个数据库。 没有错误。
说明: linux平台和windows平台的dat文件是通用的。 迁移时只拷贝数据库设备文件就能完成。
因为linux x86/x64以及windows都是小字节序(little endian)的,理论上linux x86及windows平台上的设备文件是可以通用的。
上面说的方法建议通过Sybase官方的做法:
quiesce database
mount database