1Sybase数据库系统培训教材文档格式.docx
《1Sybase数据库系统培训教材文档格式.docx》由会员分享,可在线阅读,更多相关《1Sybase数据库系统培训教材文档格式.docx(12页珍藏版)》请在冰点文库上搜索。
![1Sybase数据库系统培训教材文档格式.docx](https://file1.bingdoc.com/fileroot1/2023-5/11/2b779ca2-442b-4bd7-bd8a-11bdc6f30150/2b779ca2-442b-4bd7-bd8a-11bdc6f301501.gif)
定期完成数据库的dbcc检查。
数据库检查会对所用到的用户表加锁,这将会对应用系统产生部分影响,影响情况与数据大小和磁盘IO速度有关。
同时dbcc检查将消耗系统IO资源
配置数据库服务器
配置文件是一个ASCII文本文件,它里面存放配置参数值。
缺省情况,该文件名为<
server_name>
.cfg。
当服务器启动时,配置文件用于分配服务器资源。
在UNIX上,除非特别指明另一个文件,否则使用配置文件$SYBASE/<
在NT上,除非特别指明另一个文件,否则使用配置文件%SYBASE%\<
查看配置值
nsp_configure显示配置参数值:
l语法:
sp_configure["
parameter_name"
|"
group_name"
]
l
例子:
`
sp_configure"
numberofremoteconnections"
Param.NameDefaultMemoryConfigVal.RunVal.
-------------------------------------------
numberof…20332020
l注释:
由于空间原因,有些输出可能被缩写
接口文件
接口文件是一个“地址簿”,它列出每一个已知服务器的名字和地址。
当客户端应用连接一个给定名的服务器时,该客户端:
在接口文件中查找服务器名。
使用给定的地址连接服务器。
管理员必须修改和发布接口文件到每个用户,以便他们能够连接服务器。
接口文件的名字与位置因操作系统的不同而不同。
lUNIX缺省值:
interfaces在$SYBASE_ASE目录。
lNT缺省值:
sql.ini在sybase/ASE-12_0/ini目录。
初始化设备
n设备初始化是设备准备存储并使服务器知道它的过程。
l设备在使用前必须初始化。
n一旦设备完成初始化后,就能用于存储:
l数据库;
l指定数据库对象;
l数据库事务日志。
n设备初始化使用diskinit命令。
l把指定的物理磁盘设备或操作系统文件映射到一个数据库设备名。
l新设备列在master..sysdevices中。
l该设备准备存放数据库。
l只有系统管理员能执行diskinit。
diskinit语法
n语法:
diskinit
name="
logical_device_name"
physname="
physical_name"
vdevno=virtual_device_number,
size=number_of_pages
[,dsync={true|false}]
nUNIX例子:
diskinit
name="
dev_dat_2"
physname="
/dev/rxyla"
vdevno=2,size=5120
或者
size=‘10M’
常用的数据库选项
1.allownullsbydefault
当列属性在createtable语句中没有指定时,该列给予NULL属性(ANSI标准行为)。
2.ddlintran
多数create,drop,和alter命令可在用户定义的事务中执行。
3.selectinto/bulkcopy/pllsort
4.trunclogonchkpt
5.singleuser
一个时刻只能有一个用户访问数据库。
修改数据库选项使用系统存储过程sp_dboption
例如:
修改OIL数据库的selectinto/bulkcopy/pllsort的数据库选项操作方法如下:
usemaster
go
sp_dboption‘OIL’,’selectinto’,’true’
useOIL
checkpoint
扩充数据库大小的命令
n语法:
alterdatabasedatabase_name
[on{default|database_device}[=size]
[,database_device[=size]]...]
[logon{default|database_device}[=size]
[,database_device[=size]]...]
[withoverride]
[forload]
n例子:
alterdatabasepubs2
alterdatabasevendordbondev_dat_1=3
alterdatabaseemployeedbondefault=2
alterdatabasetempdbontempdb_dev=100
n单个数据库创建和扩展例子:
createdatabasesalesdbondev_dat_1=5
alterdatabasesalesdbondev_dat_1=2
alterdatabasesalesdbondev_dat_1=1
备份数据库
数据库备份,或者“转储”,是整个数据库的一个物理备份。
数据与日志都备份。
可靠的备份采用下面命令管理:
dumpdatabase
loaddatabase
备份数据库:
dumpdatabasedatabase_name
tostripe_device[atbackup_server_name]
[stripeonstripe_device[atbackup_server_name]...
[with{blocksize=number_bytes,
capacity=number_kilobytes,
dumpvolume=volume_name,
file=file_name,
[nounload|unload],
retaindays=number_days,
[noinit|init],
notify=client|operator_console}
}]]
dumpdatabasemasterto‘/Sybase/master.dmp’
备份数据库日志:
dumptran[saction]database_name
tostripe_device[atbackup_server_name]
...
[,stripeonstripe_device[atbackup_server_name]
[with{dumpvolume=volume_name,
[dismount|nodismount],
[nounload|unload],
...
[truncate_only|no_log|no_truncate]}]
dumptransactionsalesdbtodump_salesdb_dev
除了截断选项外,dumpdatabase命令语法与dumptransaction命令语法相同。
截断数据库日志:
dumptransactionsalesdbwithtruncate_only
dumptransactionsalesdbwithno_log
DBCC
什么是dbcc?
(DatabaseConsistenecyChecker,简称DBCC)数据库一致性检查
在数据库系统的开发和应用中,必须保证数据库的完整性和一致性。
DBCC是一个实用命令集,用来检查数据库的逻辑一致性及物理一致性。
checktable选项
语法:
dbccchecktable(tablename)
命令举例:
dbccchecktable(oilvouch)
checktable是用来对一个指定的表做检查,确保索引和数据页正确地连接,索引按正确的顺序存储,所有指针的一致性,每页上数据信息的合理性,页偏移的合理性。
checkdb选项
dbcccheckdb(databasename)
dbcccheckdb(OIL)
运行checkdb选项同checktable检查的内容一样,但它是对一指定数据库中的每张表都做这样的检查。
若未指定数据库名,checkdb检查当前的数据库。
checkdb返回的信息,也同于checktable。
tablealloc选项
tablealloc检查指定的表以确保所有页都被正确地分配。
它是checkalloc的缩小版本。
对单张表进行相同的完整性检查。
dbcctablealloc(tablename)
dbcctablealloc(oilvouch)
checkalloc选项
checkalloc是检查指定数据库,看其所有正确分配的页和尚未分配的页的情况。
若未指定数据库名,则checkalloc检查当前数据库。
checkalloc会返回已分配的和使用的空间数量。
dbcccheckalloc(databasename)
dbcccheckalloc(OIL)
indexalloc选项
indexalloc检查指定的索引,确保所有的页都被正确地分配,它是checkalloc的缩小版本,对单独一条索引指定同样的完整性检查。
dbrepair选项
dbrepair(数据库名,dropdb)选项是删除一个受破坏的数据库。
常用的数据库维护命令
修改自己以及其登录帐户的口令
在isql环境下执行:
1>
sp_passwordcaller_password,new_password,login_name
2>
go
例:
sp_password“111111”,”222222”,user1
如何为数据库创建数据库用户?
语法:
sp_adduserloginame[,name_in_db[,grpname]]
举例:
1.sp_addusermargaret
将"
margaret"
增加为数据库用户。
他的数据库用户名与AdaptiveServer的登录名(loginname)相同,并且属于缺省组"
public"
。
查看数据库空间的大小?
sp_helpdb[dbname]
name
db_size
owner
dbid
created
status
--------------
--------
-----
----
------------------
master
5.0
MB
sa
1Jan
01,
1900
no
options
set
model
2.0
3
Jan
pubs2
6
Sep
20,
1995
sybsystemprocs
16.0
4
trunc
log
on
chkp
tempdb
2
select
into/bulkcopy
DisplaysinformationaboutallthedatabasesinAdaptiveServer.
查看当前数据库中的进程信息?
sp_who
输出说明:
fid进程所属于的组,在配置了并行处理的环境中有意义,否则为0
spid进程号。
系统管理员可以在T-SQL命令kill中用该号来停止进程
Status进程状态,正在运行或者休眠
Loginname启动进程的用户登录名或者别名
Hostname数据库驻留的服务器名称
Blk阻塞进程的ID(如果有的话)。
阻塞进程(可能受影响或者拥有排他锁)是占有其他进程所需资源的进程。
Dbname该进程访问的数据库
Cmd该进程正在执行的命令和进程。
条件语句(if或while循环)的求值将返回cond。
如何生成导出数据的bcp脚本?
bcp命令一次只可以把一个表的数据导出来。
要想把所有用户表的数据都导出来,可以生成一个包含多行bcp命令的批处理文件,其中的每行bcp命令导出一个表。
以下是生成这个批处理文件的示例:
a)
编辑一个文本文件select.sql,内容如下:
1>
usepubs2
select"
bcppubs2.."
+name+"
out"
.bcp-Usa-P-c"
fromsysobjectswheretype="
U"
3>
unix环境,
isql
-Usa
-P
-b-iselect.sql
-obcpout
chmod
+x
bcpout
Windows
-obcpout.bat
中石化加油卡项目SYBASE数据库培训(ReplicationServer)
监控复制服务器系统执行
adminhealth命令
n执行命令可以查看复制服务器的当前状态:
adminhealth
系统正常,状态显示如下:
ModeQuiesceStatus
--------------------------------
NORMALFALSEHEALTHY
n系统可疑,状态显示如下:
n
NORMALFALSESUSPECT
adminwho_is_down命令
执行adminwho_is_down命令,可以查看所有复制服务器线程是否处于down状态:
adminwho_is_down
SpidNameStateInfo
----------------------------------------
REPAGENTDownPDS.OIL
RSIUSERDownRRS
恢复REPAGENT的方法
n登陆主点数据库服务器
Isql–Usa–P–Smain_dataserver
n执行存储过程
sp_startrepagent“OIL”--OIL为数据库的名字
恢复connection的方法
n登陆复制服务器
isql–Usa–P–Srs_server
n执行如下命令:
resumeconnectionto‘PDS_OIL’