`
histan
  • 浏览: 15477 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

总结工作中的Sybase数据库(二)

阅读更多
使用命令方式操作sybase数据库

本文包括用命令方式启动和关闭数据库,创建数据库,备份数据库和导出数据库结构四大部分。
(一)        启动和关闭数据库
²        UNIX平台:
以Sybase安装帐户身份登录;或以root登录,执行以下命令进入Sybase 帐户。
# su - sybase
启动ASE:
$cd install 或 $cd ASE-12_?/install (进入相应子目录, ?为小版本号)
$ startserver –f RUN_ServerName (ServerName为你的服务器名)

检查ASE运行:
$cd install 或 $cd ASE-12_0/install (进入相应子目录)
$ showserver

停止ASE:
$ isql –Usa –P<password>; -S<ServrName>; (isql -Usa -Pmima -Sserver)
shutdown
go
&sup2; 
   
   windows平台:
进入sybase的安装目录,$\Sybase\install,然后运行RUN_Servername.bat即可,其中Servername为相应的主机名。

(二)         创建数据库部分
创建数据库分为以下两部:
1.        建数据库设备
建数据库设备的语法是:
disk init
name = “device_name”,
physname = “physicalname”,
vdevno = “virtual_device_number,
size = number_of_blocks
go
以建testdb数据库设备为例:
disk init
name = “testdb”,
physname = “c:\Sybase\data\testdb.dat”,
vdevno = 3,
size = 5120
go
就把数据库设备建好了,空间大小为10M。
注意四点:
&sup2;        vedvno表示数据库设备号,建设备时要根据数据库不同而加以修改,查看vedvno号的命令是:sp_helpdevice,可以看到已经使用了的数据库设备号,新建的数据库设备号只要比最大已经使用了的设备号多一就可。
&sup2;        查看当前系统支持建多少数据库的命令是:sp_configure “number of devices”。
&sup2;        设size的大小时,512表示1M大小,所要建数据库的大小依此比例类推。因为disk init 将数据库设备分成包含256个2K的分配单元,总计1/2M,故512就表示1M。
2.        创建数据库
创建数据库的语法是:
create database database_name
[on {default|database_device}[=size]
    [,database_device[=size]…]
[log on database_device [=size]
    [,database_device [=size]]…]
[with override]
[for load]
go



数据库数据部分和日志部分建在同一数据库设备上以建example数据库为例:
create database example
on testdb = 8
log on testdb = 2
with override
go
就把example数据库建好了,此数据库将数据部分放在testdb数据库设备上,分配8M空间大小;将事务日志也放在testdb数据库设备上,分配2M空间大小。
数据库数据部分和日志部分建在不同数据库设备上以建test数据库为例:
create database test
on test1 = 8
log on test2 = 2
go
就把test数据库建好了,此数据库将数据部分放在test1数据库设备上,分配8M空间大小;将事务日志也放在test2数据库设备上,分配2M空间大小。
注意:
&sup2;        with override是回收利用事务日志用的,在空间比较紧张的情况下,会自动重复利用事务日志空间。只有数据部分和事务日志部分放在同一数据库设备上才能使用。
&sup2;        建议在创建功数据库时,数据库的数据部分和事务日志部分分开在不同的数据库设备上创建,这样做有如下好处:
·        可以单独地备份(back up)transaction log 
·        防止数据库溢满
·        可以看到log空间的使用情况。[dbcc checktable (syslogs)] 
·        可以镜像log设备



(三)        备份数据库部分
备份数据库用命令方式有两种方式:BCP与DUMP。BCP能在不同的平台上对数据库中的数据进行备份,但是BCP只能导出数据库中的数据,不能导出表的结构。DUMP能导出数据库的结构与数据,但是不能在不同平台之间进行备份。下面分别介绍:
1.        BCP
使用BCP命令可以一次导出一个表,也可以一次导出整个数据库。
&sup2;        一次导出一个表的方法
以nbcredit数据库中的zljd_mpqyxx为例。
Bcp nbcredit..zljd_mpqyxx out c:\zljd_mpqyxx  -Usa –Pxxx –Sxxx –c
导入时把out 改为in即可。
&sup2;        一次导出整个数据库的方法
以nbcredit数据库为例。
先在c:\下创建一个命名为data_for_db的文件夹,编辑一个文本文件script.txt,保存在c:\下,内容如下:
use nbcredit
go
select "bcp nbcredit.."+name+" out c:\data_for_db\"+name+" -Usa -Pxxx -c" from sysobjects where type="U"
go
注意:BCP的参数“-c”表示文本方式,“-n”表示二进制方式。
在windows上执行如下命令:isql –Usa –Pxxx –b –i script.txt –o bcpout.bat就会在c:\看到一个bcpout.bat批处理文件,执行它就可。
在unix上执行如下命令:isql  -Usa   -P  -b -i script.txt  -o bcpout
            chmod  +x   bcpout
2.        DUMP
以nbcredit 数据库为例。
Dump database nbcredit to “d:\nbcredit.dat”
Load database nbcredit from “d:\nbcredit.dat”
注意:
&sup2;        load 数据库后,还要用ONLINE DATABASE nbcredit命令后,数据库才能用。
&sup2;        DUMP数据库前要启动备份服务器。
&sup2;        如果数据量大于2G的话,得用如下方法备份:
dump database nbcredit to “d:\nbcredit1.bat”
stripe on “d:\nbcredit2.bat”
stripe on “d:\nbcredit3.bat”
go
恢复时用如下方法:
load database nbcredit from “d:\nbcredit1.dat”
stripe on “d:\nbcredit2.bat”
stripe on “d:\nbcredit3.bat”
go


(四)        导出数据库表结构部分
在不同平台上导数据时,只能用BCP命令,但是BCP命令不能导出数据库表结构,所以需进行数据库表结构的导出。
&sup2;        在sybase12.5版本以上,可以用如下方式导出表结构:
ddlgen –Usa –Pxxx –Ddb_name –Sxxx:port –Ooutput_file
其中db_name指所要导出的数据库名。

&sup2;        低于sybase12.5版本的,得进行执行脚本的方式导出表结构。脚本文件内容如下:
use sybsystemprocs
go

if object_id('dbo.sp_ddl_create_table') is not null
    drop procedure sp_ddl_create_table
    print "Dropping sp_ddl_create_table"
go

create proc sp_ddl_create_table
as

-- Creates the DDL for all the user tables in the
-- current database

select  right('create table ' + so1.name + '(' + '
', 255 * ( abs( sign(sc1.colid - 1) - 1 ) ) )+
        sc1.name + ' ' +
        st1.name + ' ' +
        substring( '(' + rtrim( convert( char, sc1.length ) ) + ') ', 1,
        patindex('%char', st1.name ) * 10 ) +
        substring( '(' + rtrim( convert( char, sc1.prec ) ) + ', ' + rtrim(
        convert( char, sc1.scale ) ) + ') ' , 1, patindex('numeric', st1.name ) * 10 ) +
        substring( 'NOT NULL', ( convert( int, convert( bit,( sc1.status & 8 ) ) ) * 4 ) + 1,
        8 * abs(convert(bit, (sc1.status & 0x80)) - 1 ) ) +
        right('identity ', 9 * convert(bit, (sc1.status & 0x80)) ) +
        right(',', 5 * ( convert(int,sc2.colid) - convert(int,sc1.colid) ) ) +
        right(' )
' + 'go' + '
' + '
', 255 * abs( sign( ( convert(int,sc2.colid) - convert(int,sc1.colid) ) ) -
1 ) )
from    sysobjects so1,
        syscolumns sc1,
        syscolumns sc2,
        systypes st1
where so1.type = 'U'
and sc1.id = so1.id
and st1.usertype = sc1.usertype
and sc2.id = sc1.id
and sc2.colid = (select max(colid)
                from syscolumns
                where id = sc1.id)
order by so1.name, sc1.colid
go

if object_id('dbo.sp_ddl_create_table') is not null
begin
    grant execute on sp_ddl_create_table to public
    print "Created sp_ddl_create_table"
end
else
    print "Failed to create sp_ddl_create_table"
go


查看具体某数据库表结构方法如下,以查看nbcredit数据库表结构为例:
编辑脚本文件script.txt,保存在c:\,内容如下:
use nbcredit
go
sp_ddl_create_table
go
然后执行以下语名:isql –Usa –Pxxx –b –i script.txt –o scriptout.txt
其中scriptout.txt文件的内容即为整个数据库表结构。

Unix平台下建库


01.disk init name='tempdbdev', physname='/home/sybase/data/tempdbdev.dat',
02.    size="500M"
03.go                                解释:初始化一个名叫"tempdbdev"的设备,会在data下生成一个tempdbdev.dat'的文件,大小为500M
04.
05.alter database tempdb on tempdbdev = 500
06.go                                 解释:添加一个数据库到这个设备上,大小为500M
07.
08.disk init name='cddbdev', physname='/home/sybase/data/cddb.dat',
09.    size="2000M"
10.go
11.disk init name='cddblogdev', physname='/home/sybase/data/cddblog.dat',
12.    size="2000M"
13.go
14.sp_addumpdevice  'disk',  cddb,  '/home/exbadm/db.bak/cddb'
15.go                                解释:添加一个名为cddb的磁盘备份设备,其物理名称为/home/exbadm/db.bak/cddb
16.
17.sp_addlogin exbadm, exbadm
18.go                                解释:添加一个数据库登录exbadm,密码为exbadm
19.
20.--创建cddb
21.
22.
23.create database cddb on cddbdev = 2000 log on cddblogdev = 500
24.go                              解释:创建一个名为cddb的数据库在cddbdev设备上,大小为2000M,同时,log存放在cddblogdev设备上大小500M
25.
26.sp_modifylogin exbadm, defdb, cddb
27.go                              解释:授权exbadm用户访问cddb
28.
29.use cddb
30.go
31.
32.sp_adduser exbadm
33.go                              解释:给cddb数据库添加了一个用户exbadm
34.
35.grant all to exbadm
36.go                              解释:将cddb数据库的所有权限都赋给了exbadm用户
37.
38.use master             解释:如果后续还有针对其他非cddb数据库操作的话,需要先切换回master数据库,以免出现权限不足等问题
39.go


分享到:
评论

相关推荐

    Sybase数据库教程.doc

    【Sybase数据库教程】 ...总结,Sybase数据库教程涵盖了C/S架构的基础知识,强调了其在数据库管理中的优势,以及Sybase系统的关键组成部分。通过学习,读者将能理解和运用Sybase构建高效、可靠的数据库解决方案。

    SYBASE数据库安装举例

    1. 拷贝 SYBASE 安装程序至要安装的服务器硬盘中 2. 执行 SETUP 安装程序,并选择语言和同意协议 3. 选择典型安装和配置所有的 SERVER 4. 配置主服务和其他服务 5. 修改主设备大小、主数据库大小、系统过程设备大小...

    Sybase数据库更换字符集方法,解决中文乱码问题

    本文将详细介绍如何在Sybase数据库中更换字符集,以解决中文乱码问题。 #### 更换字符集步骤详解 1. **检查当前字符集:** - 使用`Sybase Central`工具连接到`master`数据库。 - 执行查询命令`SELECT id, name ...

    sybase数据库系统配置

    #### 二、Sybase数据库服务配置要点 在优化Sybase数据库性能时,首先需要关注的是数据库服务本身的配置参数。以下是一些关键配置项及其作用: 1. **LocksScheme**:锁方案设置,通常推荐使用`allpages`模式。该...

    rationl robot 连接 sybase 数据库的代码

    在实际工作中,使用Rational Robot连接Sybase数据库的应用场景非常广泛,例如: - **自动化测试**:在进行Web应用的功能性测试时,可以通过Rational Robot读取或修改数据库中的数据,验证应用的逻辑是否正确。 - **...

    SYBASE数据库备份还原手册

    ### SYBASE数据库备份还原手册知识点解析 #### 一、SYBASE数据库备份与恢复的重要性 - **备份的意义**:SYBASE数据库备份是确保数据安全的重要手段之一。通过定期备份,可以在数据库遭遇物理损坏(如硬盘故障)、...

    sybase数据库 bcp问题总结

    BCP 是 Sybase 数据库中的一个重要工具,用于导入和导出数据,但是如果不正确地使用 BCP,可能会出现各种错误和问题。 一、 BCP 错误 在使用 BCP 时,可能会遇到各种错误,例如: * ct_connect():network packet...

    jconn3 sybase数据库连接

    描述中提到"网上这个太小众了,共享给大家",暗示jconn3可能不太常见,但对需要连接到Sybase数据库的开发者来说是有价值的资源。 **jconn3详解:** jconn3是SAP公司为Java应用程序提供的一种Sybase数据库连接驱动...

    Sybase数据库备份方案

    ### Sybase数据库备份方案知识点详解 #### 一、概要:数据备份的重要性 在现代信息系统中,数据被视为企业的核心资产之一。确保数据的安全性和完整性对于维护业务连续性和稳定性至关重要。在Sybase数据库环境下,...

    如何远程备份和还原sybase数据库

    如何远程备份和还原sybase数据库 方法和步骤细则 是我工作的总结

    Sybase数据库备份与恢复.pdf

    5. sp_helpdb存储过程:sp_helpdb是Sybase数据库中的系统存储过程,用于获取数据库的详细信息。管理员在规划备份策略时,可以使用该存储过程来获取数据库的大小、位置和状态等信息,以便更好地安排备份计划。 6. sp...

    SYBASE数据库日志详解[借鉴].pdf

    **SYBASE数据库日志详解** SYBASE SQL Server数据库系统依赖于事务日志来跟踪和确保数据的完整性和一致性。事务日志是数据库的关键组件,它记录了所有改变数据库状态的操作,这对于恢复和故障排查至关重要。本文将...

    03还原Sybase数据库文档.pdf

    3. 查看 master 数据库中的 syscharsets 表,检查字符集是否已经安装成功。 4. 在 Sybase 的属性中,设置系统字符集为 CP936。 六、总结 Sybase 数据库的还原过程相对复杂,需要准备好备份文件,创建数据库驱动和...

    SYBASE数据库的创建

    总结起来,创建SYBASE数据库涉及安装配置环境、编写SQL脚本创建数据库、设置用户权限、定义表结构和索引、以及制定备份恢复策略。这个过程需要对数据库管理和SQL语言有深入的理解,同时也需要根据业务需求灵活调整。...

    sybase12.5数据库调优

    在IT领域,数据库调优是一项至关重要的工作,特别是对于Sybase Adaptive Server Enterprise (ASE) 12.5这样的企业级数据库管理系统而言。调优的目标是为了提高数据库的性能,确保系统在处理大量数据请求时能够保持...

    C#连接sybase解决中文乱码办法

    例如,在C#应用程序中连接Sybase数据库进行数据查询时,如果Sybase数据库中的中文字符采用的是GBK编码,而C#应用程序默认使用的是UTF-8编码,那么查询结果中的中文字符就会显示为乱码。 ### 二、解决方案 针对C#...

    sqlDbx 连接Sybase数据库

    标题“sqlDbx 连接Sybase数据库”指的是使用sqlDbx工具来连接到Sybase数据库,这在数据库管理和开发过程中是非常常见的操作。sqlDbx是一款功能强大的SQL客户端,它支持多种数据库系统,包括Sybase的ASE(Adaptive ...

    sybase数据库安装.docx

    Sybase Adaptive Server Enterprise(ASE),简称Sybase数据库,是企业级的关系型数据库管理系统,以其高性能和稳定性著称。在本文中,我们将深入探讨如何进行Sybase ASE 12.5数据库的4k安装,以充分利用其优势。 ...

    Sybase数据库系统管理指南

    《Sybase数据库系统管理指南》是一本专注于 Sybase 数据库管理系统运维与优化的专业书籍。Sybase 是一款功能强大的关系型数据库管理系统,广泛应用于金融、电信、制造业等领域,因其高效、稳定和安全的特性受到业界...

    Sybase数据库的安全性控制策略

    在Sybase数据库中,安全性控制策略是至关重要的,它旨在保护数据免受未经授权的访问,同时确保用户在访问数据时的效率。Sybase的安全机制基于一个分层的结构,这使得安全控制更加精细化和有效。 首先,Sybase的安全...

Global site tag (gtag.js) - Google Analytics