Sybase常用命令

 

 

一、备份和恢复数据库

 

1) 备份过程

 

a、备份前一般先清一下日志,可以使得备份出来的完整数据文件最小

dump tran databasename with truncate_only

b、备份

dump database databasename to "d:databakrr_bak.dat"

 

2) 恢复数据库备份

a) isql连接sql server,命令:isql -Usa -P -S Servername.

b) 恢复数据库使用load database命令。其语法为: load database 数据库名 from 转储设备名

   比如: load database databasename from "d:databakrr_bak.dat"

c)、将恢复的数据库置成 online

isql或者Sql advantage中执行:online database retailration

 

也可以直接在Sybase Central Java Edition图形化客户端下面操作,完成这步工作。

 

二、bcp的用法

 

   除了整库的备份/恢复,对于有大量的数据的物理表,可能经常需要使用bcp进行导入导出,sybasebcp命令和SQL SEVER的类似,其语法大概是:

bcp {[[database_name.][owner].]{table_name | view_name} | "query"}

    {in | out | queryout | format} data_file

    [-m max_errors] [-f format_file] [-e err_file]

    [-F first_row] [-L last_row] [-b batch_size]

    [-q] [-C code_page] [-t field_term] [-r row_term]

    [-i input_file] [-o output_file] [-a packet_size]

    [-S server_name[instance_name]] [-U login_id] [-P password]

    [-T] [-v] [-R] [-k] [-E] [-h "hint [,...n]"]

 

   常用的命令方式如下:

 

1、导出

bcp dbname..tablename out filename -Uusername -P password -Sservername -c -J utf8

2、导入

bcp dbname..tablename in filename -Uusername -P -Sservername -c -J utf8

 

三、修复identity跳跃的办法

 

   sybase中用自增加的数字做表的主键的时候,经常会遇到令人头痛的值跳跃问题,ID从几百跳到几百亿、几千亿。原因是Sybase的每次为 identity 种子预先分一个数字段,如果不进行设置的话这个预分的数字段会非常的大,如果运行中Sybase实例出现问题的话,整个预分的数字段都会弃用,从上个数字段最大值之后接着分。针对这个问题,网上有一些解决办法,最简单的就是在建表语句中加入 "with identity_gap=n",为每个表指定每次预分的数字段的长度:

 

create table TEST(

   OID                  numeric(20)                    identity,

   ITEMCODE             numeric(20)                    not null,

   MONTH                nvarchar(6)                    not null,

   constraint PK_EITEMFHIS primary key (OID)

) with identity_gap=10

 

四、清空数据库日志

 

dump tran databasename with truncate_only

 

五、identity列增加、修改

 

1、允许/不允许插入

set IDENTITY_INSERT tablename on

...

set IDENTITY_INSERT tablename off

 

2、允许/不允许更新

set IDENTITY_UPDATE tablename on

...

set IDENTITY_UPDATE tablename off

 

命令行登录

isql -Sservername -Usa -P

安装字符集

charset -Usa -Ppassword -Sservername binary.srt utf8

charset -Usa -Ppassword -Sservername nocase.srt utf8

设置字符集

sp_configure 'default charac',173

设置排序

sp_helpsort

sp_configure 'default sortorder_id',101

Sybase数据库数据和日志空间不能自动扩展,需要手工管理。

数据库备份恢复

dump database dbname to "c:\\xxx.dmp"    --注意文件生成在数据库服务器端

load database dbname from "c:\\xxx.dmp"   

online database dbname

表数据备份恢复

bcp dbname..tablename {out|in} c:\XXX -Usa -Ppassword –Sservername -Jutf8 –c -y

use dbname

go

select 'bcp dbname..' + name + ' out c:\' + name + ' -Usa -P -Ssname -c' from sysobjects where type = 'U'

go

isql中执行脚本文件

isql -Usa -P -Sservername -Ddbname -iInputfile -oOutputfile

配置Adaptive Server核心参数

sp_configure "max online engines", 1 go

sp_configure "max memory", 393216 go

sp_configure "number of user connections", 300 go

sp_configure "number of open objects", 1500 go

sp_configure "number of open indexes", 1000 go

sp_configure "lock wait period", 300 go

sp_configure "number of devices", 20 go

sp_addserver 'SYB_BACKUP',NULL,'SYB_BACKUP' go

创建数据库

disk init name ="dbname", physname="d:/sybase/data/dbname.dat", size=262144 go

disk init name ="dbname_log", physname="d:/sybase/data/dbname_log.dat", size=524288 go

create database DBNAME on dbname = 512 log on dbname_log = 1024 go

sp_addlogin dbname, dbname,DBNAME,us_english use DBNAME go

sp_changedbowner dbname go

你可能感兴趣的:(Database)