Discuz!官方免费开源建站系统

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

Sybase Ase 12.5 for Linux 的使用

[复制链接]
tiredboy 发表于 2006-4-3 13:18:02 | 显示全部楼层 |阅读模式
转:www.uplinux.net/bbs
作者:田逸(sery@163.com)
《开放系统世界》2005年11期

安装好sybase数据库服务器以后,没有什么比使用这个数据库最重要的事情了。

一、创建数据库
但是在开始之前,很有必要定义用户数据库所需要的存储区域,而不要在服务器默认的主设备(master)上创建用户数据库.

创建数据库设备:通过sybase安装过程创建了master和sybsystemprocs,所有其他的数据库设备则是通过  disk  init  命令来创建。我们必须保证sybase的用户对欲创建的设备的目录具有读写权限,否则就无法创建成功。先以sybase用户登陆linux系统(数据库是以sybase用户安装的,关于安装和初试配置,请参照“Redflag  Server  4搭建sybase”一文),进入sybase用户的主目录  /opt/sybase,创建目录userdata;启动数据库服务,用sybase的isql连接数据库,然后执行disk  init  来完成此项操作。

[sybase@sybase  sybase]$  cd  ASE-12_5/install
[sybase@sybase  install]$  ./startserver            //启动sybase服务器
[sybase@sybase  sybase]$  cd
[sybase@sybase  sybase]$  mkdir  userdata        //创建目录用于存放用户数据库
[sybase@sybase  sybase]$  cd  /OCS-12_5/bin
[sybase@sybase  bin]$  ./isql  –U  sa  –S  SYBASE  //连接数据库服务器,我的数据//库服务器名称为SYBASE,sa
//密码为空
[sybase@sybase  bin]$  ./isql  -U  sa  -S  SYBASE      //下面是回显
保密字:  
Msg  2401,  Level  11,  State  2:
Server  'SYBASE':
Character  set  conversion  is  not  available  between  client  character  set  'gb18030'
and  server  character  set  'iso_1'.
No  conversions  will  be  done.
Msg  4017,  Level  16,  State  1:
Server  'SYBASE':
Neither  language  name  in  login  record  'chinese'  nor  language  name  in  syslogins
'<NULL>'  is  an  official  language  name  on  this  SQL  Server.    Using  server-wide
default  'us_english'  instead.                                //回显到此,进入客户操作模式
1>disk  init                                      //如果输错了,按“Ctrl”+”back  space”删除
2>name=userdev,                          //命名最好便于识别为佳
3>physname=”/opt/sybase/userdata/userdev.dat”,          //要用绝对路径  
4>size=”500M”
5>go

1>disk  init                                        //给日志文件分配设备
2>name=logdev,
3>physname=”/opt/sybase/userdata/logdev.dat”,
4>size=”50M”
5>go

更改默认设备:如本文开头部分所言,为了防止用户数据库被分配到数据库系统主设备master上,应该在安装完数据库后修改默认设备—安装完sybase  ASE后,master是唯一的默认设备。Sybase建议,master设备只应该提供给系统数据库而不是用户数据库。因此,对于用户数据库,我们应当单独创建设备,并且把用户设备设置成默认状态。上一步我们已经创建了用户设备“userdev”和“logdev”.其过程如下:
1>sp_diskdefault    ‘master’,  ‘defaultoff’    //取消master的默认设备资格
2>go                                                         
1>sp_diskdefault    ‘userdev’,  ‘defaulton’    //设定uerdev为默认设备
2> go
1>sp_diskdefault    ‘logdev’,  ‘defaulton’      //设定logdev为默认设备
2>go
在后面创建用户数据库的过程中,如果不指定数据库设备,则该用户数据库理所当然地创建在默认设备。

创建数据库:本数据库创建在设备  userdev上,而在分开的设备(logdev)上创建数据库日志。
1>create  database  mydatabase      //创建一个名为mydatabase的数据库
2>on  userdev  =  “50M”                    //数据库的存储空间为50M,数据库设备      
                                                    //是userdev,而不是master
3>log  on  logdev=”10M”                          //日志文件的存储空间为10M
4>go
也可以用命令  create  database  mydatabase  来创建用户数据库mydatabase,这个数据库也会默认的创建在设备userdev上,日志文件也创建在userdev,但不幸的的是,用户创建的这个数据库将只有2M的容量,恐怕这不是创建者所期望的。因此,不管是Sybase还是我本人,都强烈建议使用上表的过程创建用户数据库,以便于这个数据库可以满足真实的应用场景。创建完数据库后,我们很想知道创建的这个数据库到底是怎么一个状况?通过系统存储过程-sp_helpdb来获得数据库的各种信息。下面是我的某个sybase服务器的范例
在创建用户数据库时,应该预留足够大的空间,以便能够保留将来输入的所有数据。但是也不要把数据库定义得太大,以免在将来恢复数据时产生麻烦。究竟需要定义多大的空间才算合适,这需要数据库管理员多次试验才可以决定的。一个经验是-低估一个数据库的大小比高估要好,如果数据库空间太小了,可以很容易的扩充数据库的空间,如果空间过大,则非常麻烦。这里,我们来修改一下前面创建的数据库的空间大小,过程如下:

1>alter  database  mydatabase
2>on  userdev=”1024M”                              //由50M变成1G
3>log  on  logdev=”50M”                              //由10M变成50M
4>go

二、数据库的管理
设置数据库管理员密码:在安装完sybase  ASE数据库后,数据库管理员的默认管理员密码为空,基于安全考虑,必须为数据库管理员账号设置密码。先以账号sybase登录系统,然后启动Sybase数据库,用isql连接数据库服务器(操作过程如前面“创建数据库设备”一节),接着执行下面的操作:

1>sp_password  null  ,  dr5623H        //设置新密码为“dr5623H”
2>go
在退出数据库,下一次客户端连接数据库时,提示用户输入密码。

      用户和授权:sybase  ASE服务器提供一种严密的体系来保障数据的安全,并且使数据的保护级别达到非常精细的程度。在通常情况下,数据库服务器不是只给一个用户sa来使用,为了让数据库满足实际需求,需要在  sybase  数据库里添加账号/用户,为添加的用户分配适合的权限。这个操作分以下几步进行:
1、 添加数据库系统的注册账号。执行存储过程sp_addlogin来完成数据库注册账号的添加,如  exec  sp_addlogin  sery  ,  d7#W6g  ,  mydatabase  表示添加一个注册账号sery,密码是“d7#W6g”,登录到默认数据库为“mydatabase”。这个操作执行完毕后,将在master数据库的syslogins表中增加一行纪录。添加数据库系统注册账号属于服务器级的安全,换句话说就是这个账号只能连接数据库服务器,但没有访问用户数据库的权力。
2、 添加数据库用户。执行存储过程sp_adduser将用户直接添加到数据库,添加数据库用户属于数据库级的安全,这时才可以以用户的身份访问用户数据库。这个操作执行完毕后,将在允许访问的数据库的sysusers表中添加纪录。
3、 授权。能够访问数据库但并不意味可以访问其中的数据,有时需要具备单个数据库对象的相应许可,才可以选取、更改数据库所属表中的数据信息或执行一个存储过程。这是属于对象访问级的安全。授权的格式为:  grant    <权限列表>  on  <表名>    to  <角色/用户>。这个操作执行完毕后,会向sysprotects表中添加纪录。
接着,我们通过下面的事例来总结这3个步骤:
[sybase@sybase  sybase]$  cd  ASE-12_5/install
[sybase@sybase  install]$  ./startserver            //启动sybase服务器
[sybase@sybase  sybase]$  cd  /OCS-12_5/bin
[sybase@sybase  bin]$  ./isql  –U  sa  –S  SYBASE  –P  dr5623H  
1>sp_addlogin  sery  ,  d7#W6g  ,  mydatabase
2>go
1>use  mydatabase
2>go
1>sp_adduser  sery
2>go
1>  grant  select  ,insert,  update  on  custom  to  sery  
2>  go
1>shutdown
2>go
[sybase@sybase  bin]$  ./isql  –U  sery  –S  SYBASE  –P  d7#W6g    //以用户sery登录数
//据库mydatabase
1>
为了便于维护和管理数据库,最好让注册名和数据库用户名使用相同的名称。另外,注册用户的删除、数据库用户的删除以及授权的删除都是比较简单的了,请参照下面的操作:
1>revoke  select  ,insert,  update  on  custom  from  sery
2>go
1>sp_dropuser  sery
2>go
1>sp_droplogin  sery
2>go
要注意的是,上述操作除用户sery登录数据库外,都是在sa下完成的。

三、备份和恢复
灾难的发生是不可预料的,作为数据库管理员,可以通过备份数据来抵御这些风险。创建备份和还原计划可能需要大量的时间和精力,但这是值得的,否则一旦灾难发生,后果真的不堪设想。因此定期备份数据库是一个重要的任务,也是一个极好的习惯。

备份的策略和类型:一天备份一次数据库和备份多次事务日志是个值得推荐的选择,实际上,很多系统管理员也是这样执行的。数据库备份是完全备份,而事务日志的备份是增量备份,在做一个恢复备份计划时,将完全备份和增量备份结合起来是十分必要的。

备份:在ASE10以前的版本,备份是由数据库服务器直接执行,这会对导致大量的系统资源争用而引起服务器处理性能下降。备份服务器是服务器上的一个单独Open  server应用程序,该程序可以直接访问数据库设备,在数据库服务器运行一个备份服务器  backup  server,定会带来很多额外的好处。所幸的是我们在安装  sybase  ASE  12_5时已经把备份服务器默认安装好了,这里只需要启用它(.以sybase用户登陆系统,执行命令  #/opt/sybase/ASE-12_5/install/startserver  –r  RUN_SYBASE_BACKUP启动sybase备份服务器)。
备份的过程还是有点繁复,我们还是分步骤来进行吧!
1、创建备份存储设备。为安全起见,最好把数据库备份到另外的磁盘,为此,准备一个大的硬盘,分好区后(一个分区)把它挂接到文件系统,再进行创建设备的操作。当然sybase也支持直接使用原始设备。
[sybase@root  /]#  mkdir  –p  /sybbackup
[sybase@root  /]#  chown    sybase.sybase  /sybbackup
[sybase@root  /]#  mount  /dev/sdc1  /sybbackup      //挂接新的硬盘分区到///sybbackup
[sybase@root  /]#  su  sybase
[sybase@sybase  sybase]$  cd  /sybbackup
[sybase@sybase  sybbackup]$  touch  bk_mydatabase.dat
[sybase@sybase  sybbackup]$  touch  bk_log.dat

[sybase@sybase  sybase]$  cd  ASE-12_5/install
[sybase@sybase  install]$  ./startserver            //启动sybase服务器
[sybase@sybase  sybase]$  cd  /OCS-12_5/bin
[sybase@sybase  bin]$  ./isql  –U  sa  –S  SYBASE  –P  dr5623H
1>sp_addumpdevice  ‘disk’,‘bk_mydatabase’,‘/sybbackup/bk_sybbackup.dat’
1>go                      //创建备份设备bk_mydatabase
1>sp_addumpdevice    ‘disk’  ,  ‘bk_log’  ,  ‘/sybbackup/bk_log.dat’
2>go                      //日志文件的存储位置
2、备份数据库。使用dump  database    命令备份数据库数据。
1>dump  database  mydatabase  to  ‘bk_mydatabase’  with  init
2>go
3、 备份事务日志。使用命令dump  transaction.
1>dump  transaction  mydatabase  to  ‘bk_log’
2>go
如果有多个数据库,则需要多次执行备份数据库和备份事务日志操作。备份完成后,非常有必要对备份数据进行验证,如果不这样做将可能发生可怕的后果。笔者在此建议把备份文件多做几份拷贝,放置在不同的地理位置,就算某天失火把服务器和备份烧毁了也可起死回生。

数据库恢复:可能需要经常备份数据库和事务日志,但不必经常进行数据库恢复操作。只有在数据库发生意外、数据库移植、试验等情况下才需要进行恢复操作。与备份相对应,恢复也可分几步进行。需要注意的是,在数据库恢复期间,不要让用户连接数据库。
1、 创建数据库。与要恢复的数据库同名,如果是原数据库损坏,需要先把数据库删除,然后再创建同名数据库。
2、 恢复数据库。使用命令load  database命令来恢复数据库。
1>load  database  mydatabase  from  ‘bk_mydatabase’2>go
3、 恢复事务日志。使用命令load  transaction命令来恢复事务日志。
1>load  transaction  mydatabase  from  ‘bk_log’
2>go
4、 联机数据库。事务日志装载完毕之后,才可以使数据库成为联机状态。  
1>online  database  mydatabase
2>go

转贴地址:http://www.uplinux.net/bbs/viewt ... &extra=page%3D1
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|Discuz! 官方站 ( 皖ICP备16010102号 )star

GMT+8, 2024-12-27 18:48 , Processed in 0.023194 second(s), 3 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表