Sybase個人學習筆記(摘錄)

一、SQL Advantage使用
先點擊server,裏面點擊connect連接到sybase服務端,開一個新窗口,寫一些sql執行即可(ctrl+e)


二、啓動和關閉數據庫,查看錶結構
1.看所有的庫
sp_helpdb


2.使用一個庫
use 庫名(注意大小寫)


3.查看用戶下所有表名
select name from sysobjects where type='U'

sp_tables


4.查看錶結構
sp_help 表名(注意大小寫)


5.顯示結果只顯示一行
set rowcount 1
go
輸入你想查詢的sql語句,記得最後要
set rowcount 0
go


6.啓動數據庫
[sybase@rosan128main install]$ pwd
/opt/sybase/ASE-12_5/install
[sybase@rosan128main install]$ startserver -f RUN_rosantech

7.關閉數據庫
先要看啓動了什麼服務
1> select srvname from sysservers
2> go
 srvname                        
 ------------------------------
 SYB_BACKUP                     
 loopback                       
 rosanljw_BS                    
 rosantech                      

(4 rows affected)

關閉備份服務
1> shutdown SYB_BACKUP
2> go

關閉
1> shutdown
2> go

如果關不上
1> sp_lock
2> go
The class column will display the cursor name for locks associated with a cursor
for the current user and the cursor id for other users.
 fid    spid   loid        locktype                     table_id    page       
         row    dbname          class                         
         context                      
 ------ ------ ----------- ---------------------------- ----------- -----------
         ------ --------------- ------------------------------
         ----------------------------
      0     57         114 Sh_intent                       32000114           0
              0 master          Non Cursor Lock               
                                      

(1 row affected)
(return status = 0)
1> kill 57(spid只可以殺除自己會話以外的會話) 殺掉再shutdown就好了

!!!如果關不動,可以用以下命令,慎用
shutdown with nowait



三、dml和ddl
1.建表
use test
go

create table table1
(test varchar(10))
go

--仿照table1建立table2
select * from table1 into table2
go
--------------------------------------------------------------------------------------

--如果不能仿照需要修改一些參數
sp_helpdb db_name    --查看SELECT into選項是否開啓,沒開需要手動開啓
go
 
use master
go

sp_dboption test,'select into',true        --(test爲db_name)
go

checkpoint
go

use test
go

select * from table1 into table2
go



四、用戶管理
1.創建登陸用戶(login)
1> sp_addlogin ljw1911,rosantech,test    --依次爲用戶名,密碼,默認數據庫
2> go
Password correctly set.
Account unlocked.
New login created.
(return status = 0)


2.刪除登陸用戶(login)
1> sp_droplogin ljw1911
2> go

3.創建數據庫用戶(user)
1> sp_adduser ljw1911
2> go
New user added.
(return status = 0)

4.刪除數據庫用戶(user)
1> sp_dropuser ljw1911
2> go


2.4.5 第六頁了




五、sybase ASE參數配置
(1)服務器級配置
使用存儲過程sp_configure配置ASE (和oracle的show parameter很像)
1. 語法
sp_configure [configname[, configvalue] | group_name | non_unique_parameter_fragment]
2. 作用
查詢服務器運行的當前值
設置服務器運行參數

用 "sp_configure mem" 可以查看帶有mem關鍵字的參數的具體配置,然後用 "sp_configure 參數, 值" 來配置新


例1. 配置內存
1)數據庫使用內存
指定ASE擁有的總的共享內存大小
sp_configure“max memory”,nnn(單位爲2K)( HP平臺推薦物理內存的75%,其他平臺80%)
sp_configure‘allocate max shared mem’,1(數據庫服務啓動時就分配內存)(推薦爲1)
2)配置缺省數據緩存的大小和分區
sp_cacheconfig‘default data cache’,’xxxM’
sp_cacheconfig‘default data cache’,’cache_partition=n’
(根據CPU個數以及內存大小確定,需爲2的N次方)
3)配置存儲過程的緩存大小
sp_configure“procedure cache size”,nnn(單位爲2K)

例2. 配置CPU
sp_configure‘max online engines’,n(cpu個數> 2時推薦CPU數目減1)
sp_configure‘number of engines at startup’,n
3. 其他
1). number of devices (用戶自己確定)
指定ASE的可創建和打開的數據庫設備的最大號數
2). number of locks (用戶自己確定)
指定ASE可同時打開的鎖的最大數目
3). number of open objects (推薦8000-20000)
ASE的對象描述的緩存數
4)number of open indexes (推薦2000-5000)
ASE的索引描述的緩存數
5) stack size (如果有超長SQL和多層嵌套,推薦*2)
數據庫堆棧的大小
6). default character set id(推薦使用cp936 –id 171)
數據庫服務器使用的字符集
7). allow updates to system tables
指定系統管理員是否可以更改系統表中的數據
8)row lock promotion HWM,row lock promotion LWM
行鎖升級爲表鎖的閥值
9)page lock promotion HWM,page lock promotion LWM
頁鎖升級爲表鎖的閥值
10) lock scheme
缺省的對錶加的鎖類型(缺省爲頁鎖)


(2)數據庫級配置
使用存儲過程sp_dboption更改數據庫的數據庫選項
1. 語法sp_dboption[dbname, optname, {true | false}]
2. 作用
羅列出所有的數據庫選項
更改某個數據庫的數據庫選項
3. 常見的數據庫選項
trunclog on chkpt自動清日誌(不能再做增量備份)
select into/bulkcopy允許快速BCP,selectinto
ddlin tran允許事務中創建對象

修改完成以後可以通過sp_helpdb查看到

例子:
1> use master
2> go

1> sp_dboptionuserdb, "trunclog on chkpt", true
2> go
數據庫‘userdb'的數據庫選項'trunclog on chkpt'被打開。
在被改變數據庫中運行CHECKPOINT命令。
(return status = 0)

1> use userdb
2> go
1> checkpoint
2> go



六、修改字符集爲中文
1.先進入到中文字符集的目錄,把中文加載一下
[sybase@rosan128main cp936]$ pwd
/opt/sybase/charsets/cp936

[sybase@rosan128main cp936]$ charset -Usa binary.srt cp936
Please enter sa's Password:
Loading file 'binary.srt'.

Found a [sortorder] section.

This is Class-1 sort order.

Finished loading the Character Set Definition.

Finished loading file 'binary.srt'.

1 sort order loaded successfully

2. 修改默認字符集爲中文
首先查一下默認的中文字符集的id
1> select name ,id from syscharsets where name='cp936'
2> go
 name                           id
 ------------------------------ ---
 cp936                          171

查出id爲171,最後修改字符集
1> sp_configure "default character set id",171
2> go
In changing the default sort order, you have also reconfigured SQL Server's
default character set.
 Parameter Name                 Default     Memory Used Config Value
         Run Value   Unit                 Type
 ------------------------------ ----------- ----------- ------------
         ----------- -------------------- ----------
 default character set id                 1           0         171
                   1 id                   static

(1 row affected)
Configuration option changed. Since the option is static, Adaptive Server must
be rebooted in order for the change to take effect.
Changing the value of 'default character set id' to '171' increases the amount
of memory ASE uses by 4 K.
(return status = 0)

最後重啓數據庫使參數生效


七、查看數據庫信息
sp_helpdb        --(查看所有數據庫信息)
go
use test
go
sp_helpdbtest         --(查看test數據庫詳細信息)
go


八、查看ASE的遠程服務器
sp_helpserver
go


九、查看數據庫對象的信息
sp_help            --數據庫對象名字
sp_helpdevice        --設備名字
sp_helpdb
sp_helptext        --存儲過程名字

sp_spaceused         --查看一個當前庫(需要use 數據庫)或表佔所佔用的空間
sp_recompile (+usertable)    --重新編譯存儲過程和觸發器。與該表相關聯的存儲過程和觸發器在第一次運行時,自動重新編譯


十、常用dbcc命令
dbcctraceon(3604)                     --(隨後的dbcc命令結果輸出到屏幕)
dbcctraceon(3605)                     --(隨後的dbcc命令結果輸出到錯誤日誌文件)
dbcccheckalloc[ (database_name[, fix | nofix] ) ]     --(檢查分配頁)
dbcccheckcatalog[ (database_name) ]             --(檢查系統表)
dbcccheckdb[ (database_name[, skip_ncindex] ) ]     --(檢查數據庫)
dbccchecktable( { table_name| table_id}         --(檢查表)
[, skip_ncindex] )
dbcctablealloc( { table_name| table_id}         --(檢查表分配頁)
[, { full | optimized | fast | null }
[, fix | nofix] ] ) |


十一、常用系統表
sysdatabases        --記錄所有數據庫基本信息
sysusages        --數據庫空間分配情況
sysdevices        --數據庫設備信息
syslogins        --數據庫服務器登錄信息
sysusers        --數據庫用戶信息
sysobjects        --數據庫對象表(U 用戶表,P 存儲過程)
sysprocesses        --進程表


十二、日常常規維護(性能優化)
1.更新統計信息
update statistics (+usertable)    --不會對錶上鎖,不影響業務,但比較耗資源 (optdiag)

2.整理數據庫垃圾空間
重建表的聚簇索引
對行鎖表執行reorg
如何加快上述操作 (配置I/O,並行)
注意:以上操作對錶上鎖,另外,必須有足夠的空間來執行(剩餘空間必須爲最大表的1.2倍左右) (sp_spaceusedusertable)

3.重新編譯存儲過程和觸發器
sp_recompile (+usertable)    --與該表相關聯的存儲過程和觸發器在第一次運行時,自動重新編譯


十三、備份和恢復
系統管理員每天必須作數據庫的備份

備份的命令
1.全庫備份
dump database userdb to stripe_device1
stripe on stripe_device2

2.增量備份並刪除日誌
dump transaction userdb to stripe_device

3.僅刪除日誌(沒有備份)
dump transaction userdb with truncate_only

4、日誌滿且truncate_only無法刪除日誌時
dump transaction userdb with no_log(慎用)


恢復的命令
1. load database database_name from stripe_device
恢復整個數據庫

2. load transaction database_name from stripe_device
恢復日誌


十四、幾個常用的存儲過程和命令
sp_who            (查看用戶進程)
sp_lock            (查看數據庫鎖狀況)
sp_help            (查看對象信息)
sp_helpdb        (查看數據庫信息)
sp_helpdevice        (查看設備信息)
sp_spaceused        (查看錶佔用的空間大小)
select @@version    (查看版本號)
dbcc sqltext(@spid)    (查看@spid執行的sql語句)
sp_showplan @spid,null,null,null        (查看@spid的執行計劃)


================================================================================================
************************************************************************************************
================================================================================================
修改server啓動地址及端口:dscp

$dscp
>> open
ok
Session 1 InterfacesDriver>> add test
Service: [ASE]
Transport Type: [tcp]
Transport Address: 158.77.123.200 5000   --注意端口號和ip地址之間用空格分開
Transport Type: [tcp]
Transport Address:
Security Mechanism [] :
HA Failoverserver:
Retry Count:
Retry Delay:
Added test

>> exit

退出後查看 $SYBASE/interfaces 能看到添加到信息

dscp一些基本操作命令
help    查看幫助
list    顯示所有的服務名
read    看具體配置
add    加一個新的
del    刪除已有的
mod    修改已有的

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章