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进行导入导出,sybase的bcp命令和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

你可能感兴趣的:(C++,c,SQL Server,Sybase,Go)