|
Sybase データベースの作成
Sybase データベースの作成
0.更新履歴
1.はじめに
このドキュメントは,データベースの作成手順を説明するものである.
2.データベースファイルの作成
データベースの内容を保存するために,ディスク上にデバイスを作成する.
Sybaseでいうデバイスとは,Oracleのデータベースファイル(表領域)に該当するものである
3.Disk init
デバイスは,disk initコマンドで作成する.
Disk Initは次の文法となる.
DISK INIT
NAME = "Device_Name",
PHYSNAME = "Physical_name",
VDEVNO = virtual_device_number,
SIZE = number of pages
|
項目 |
説明 |
Device_Name
|
SQL Serverが参照する名前. |
Physical_name
|
物理ファイル名. |
virtual_device_number
|
仮想デバイスの番号を付ける. この番号は0〜255までで,0はシステムデバイスが利用している. |
number of pages
|
デバイスのサイズを指定.sizeは2K単位となり,単位は512の倍数で指定する. |
3.1.仮想デバイスを増やす
C:\>isql -Usa -P -SSYBASE01
1> DISK INIT
2> NAME = "user_dev01",
3> PHYSNAME = "e:\sybase_dev\user_dev01.dat",
4> VDEVNO = 10,
5> SIZE = 10240
6> go
Msg 5146, Level 16, State 1:
Line 1:
The VDEVNO of 10 is out of range. The maximum VDEVNO allowed is 9.
1>
|
- 指定した仮想デバイス番号の10は,最大値の9をオーバーしているため作成できないというエラーになる.
- 現在の設定値を調べる.
1> sp_configure "number of device"
2> go
Parameter Name Default Memory Used Config Value
Run Value
------------------------------ ----------- ----------- ------------
-----------
number of devices 10 #4 10
10
(1 row affected)
(return status = 0)
1>
|
- デバイス数が10となっているので,masterデバイスが使っている0からカウントすると,9までの数値しか使えない.
- デバイス数を20個に増やす.
1> sp_configure devices,20
2> go
Parameter Name Default Memory Used Config Value
Run Value
------------------------------ ----------- ----------- ------------
-----------
number of devices 10 #4 20
10
(1 row affected)
Configuration option changed. Since the option is static, Adaptive Server mus
be rebooted in order for the change to take effect.
(return status = 0)
1> sp_configure "number of device"
2> go
Parameter Name Default Memory Used Config Value
Run Value
------------------------------ ----------- ----------- ------------
-----------
number of devices 10 #4 20
10
(1 row affected)
(return status = 0)
1>
|
- Adaptive Serverをリブートしないと設定値が変更されていないことを確認する.
- isqlを終了し,サービスの再起動を行う.
1> quit
C:\>net stop "Sybase SQLServer _ SYBASE01"
Sybase SQLServer _ SYBASE01 サービスを停止中です.
Sybase SQLServer _ SYBASE01 サービスは正常に停止されました。
C:\>net start "Sybase SQLServer _ SYBASE01"
Sybase SQLServer _ SYBASE01 サービスを開始します..
Sybase SQLServer _ SYBASE01 サービスは正常に開始されました。
C:\>
|
1> sp_configure "number of device"
2> go
Parameter Name Default Memory Used Config Value
Run Value
------------------------------ ----------- ----------- ------------
-----------
number of devices 10 #8 20
20
(1 row affected)
(return status = 0)
1>
|
- user_dev01〜user_dev02と,ログデバイス,作業用デバイスを作成して,そのファイルが作成されているか確認する.
C:\>isql -Usa -P -SSYBASE01
1> DISK INIT
2> NAME = "user_dev01",
3> PHYSNAME = "e:\sybase\user_dev01.dat",
4> VDEVNO = 10,
5> SIZE = 102400
6> go
1> DISK INIT
2> NAME = "user_dev02",
3> PHYSNAME = "e:\sybase\user_dev02.dat",
4> VDEVNO = 11,
5> SIZE = 102400
6> go
1> DISK INIT
2> NAME = "log_dev01",
3> PHYSNAME = "e:\sybase\log_dev01.dat",
4> VDEVNO = 12,
5> SIZE = 102400
6> go
1> DISK INIT
2> NAME = "temp_dev01",
3> PHYSNAME = "e:\sybase\temp_dev01.dat",
4> VDEVNO = 13,
5> SIZE = 102400
6> go
1> !!dir e:\sybase_dev
[sh:dir e:\sybase_dev]
ドライブ E のボリューム ラベルがありません。
ボリューム シリアル番号は 446D-DCE9 です
e:\sybase_dev のディレクトリ
2001/06/04 21:45 <DIR> .
2001/06/04 21:45 <DIR> ..
2001/06/04 21:44 209,715,200 log_dev01.dat
2001/06/04 21:45 209,715,200 temp_dev01.dat
2001/06/04 21:43 209,715,200 user_dev01.dat
2001/06/04 21:43 209,715,200 user_dev02.dat
4 個のファイル 838,860,800 バイト
2 個のディレクトリ 487,391,232 バイトの空き領域
1>
|
- sysdevices表を参照して,デバイスの状態を表示する.
1> SELECT name,status,cntrltype,low,high FROM sysdevices
2> go
name status cntrltype low high
------------------------------ ------ --------- ----------- -----------
log_dev01 2 0 201326592 201428991
master 3 0 0 25599
sysprocsdev 2 0 16777216 16807935
tapedump1 16 3 0 20000
tapedump2 16 3 0 20000
temp_dev01 2 0 218103808 218206207
user_dev01 2 0 167772160 167874559
user_dev02 2 0 184549376 184651775
(8 rows affected)
1>
|
- Status
- 2 -> 物理ディスク
- 16 -> ダンプデバイス(テープまたはディスク)
- cntrltype
- 0 -> データベースデバイス
- 3 -> テープのダンプデバイス
4.Create Database
作成したデバイスの上に,データベースを作成する.
ここでは,2つのデバイスをユーザ領域とし,1つのログデバイス,1つのテンポラリデバイスを定義する.
1> CREATE DATABASE user_db
2> ON user_dev01 = 200,
3> user_dev02 = 200
4> LOG ON
5> log_dev01 = 200
6> go
CREATE DATABASE: ディスク 'user_dev01' に 102400 ページを割り付けています。
CREATE DATABASE: ディスク 'user_dev02' に 102400 ページを割り付けています。
CREATE DATABASE: ディスク 'log_dev01' に 102400 ページを割り付けています。
1>
|
- このデータベースでは,ユーザ領域としてuser_dev01とuser_dev02を,それぞれ200MBつづ,つまり400MBのユーザ領域を確保している.
- また,log_dev01デバイスをログ用のデバイスとし,200MB分の領域としている.
- ログデバイスを単独のデバイスとしておくことで,dump transactionが実行できるなどの利点がある.
- ログデバイスの設定を確認する.
1> use user_db
2> go
1> sp_helplog
2> go
データベース 'user_db' では、デバイス 'log_dev01' でログが開始されます。
(return status = 0)
1>
|
1> ALTER DATABASE tempdb
2> ON temp_dev01 = 200
3> go
ディスク temp_dev01 でデータベースを 102400 ページ分拡張しています。
1>
|
5.データベースオプションを設定する
- チェックポイントのイベントが発生した時に,トランザクションログを切り捨てる設定を行う.
- デフォルトのままにしておくと,dump transactionを行うまでトランザクションログは増えつづける.
- データベースオプションを実行する場合,masterデータベースで処理を行う.
1> use master
2> go
1> sp_dboption "user_db","trunc log on chkpt",true
2> go
データベース 'master'
のログ・セグメント内の使用可能な空き領域が非常に少なくなっています。このデータベー
スに今後行われる変更は、領域が使用できて、ログが正常にダンプされるようになるまで
中断 です。
Msg 1105, Level 17, State 4:
Procedure 'sp_dboption', Line 525:
'logsegment'セグメントが満杯か空き領域がないので、database 'master'のobject
'syslogs'に領域を割り付けできません。syslogs
の領域不足の場合は、トランザクションログをダンプしてください。それ以外は、ALTER
DATABASEかsp_extendsegmentでセグメントのサイズを増やしてください。
'user_db' データベースに対してデータベース・オプション 'trunc log on chkpt' が
ON になりました。
変更されたデータベースで CHECKPOINT コマンドを実行してください。
(return status = 0)
1>
|
- ログデバイス領域が足りないとの事.
- トランザクションログをダンプし,再度設定する.
- sp_dboptionを設定した後は,checkpointを実行する.
1> dump transaction user_db with no_log
2> go
1> sp_dboption "user_db","trunc log on chkpt",true
2> go
'user_db' データベースに対してデータベース・オプション 'trunc log on chkpt' が
ON になりました。
変更されたデータベースで CHECKPOINT コマンドを実行してください。
(return status = 0)
1> checkpoint
2> go
1>
|
- バルクコピーコマンド(bcpコマンド)やSELECT INTO文を使えるようにする.
1> sp_dboption "user_db","select into/bulkcopy",true
2> go
'user_db' データベースに対してデータベース・オプション 'select
into/bulkcopy/pllsort' が ON になりました。
変更されたデータベースで CHECKPOINT コマンドを実行してください。
(return status = 0)
1> checkpoint
2> go
1>
|
6.データベース設定を変更する
利用しているメモリや,接続ユーザ数を変更する.
ここで設定するオプションは,静的なパラメータのため,設定後有効にするには再起動が必要となる.
6.1.メモリ容量の設定
- Adaptive ServerがOSから割り当てられる2KB単位のメモリ容量を設定する.
- "Memory Used"では,1KB単位で表示されていることに注意する.
- デフォルト値(プラットホーム依存)〜2147483647
- この値を設定し間違える(total memoryよりキャッシュの方が大きい等)と,AdaptiveServerが起動しなくなるので,ほかのメモリ使用量との兼ね合いを考慮する.
1> sp_configure "total memory"
2> go
Parameter Name Default Memory Used Config Value
Run Value
------------------------------ ----------- ----------- ------------
-----------
total memory 14336 28672 14336
14336
(1 row affected)
(return status = 0)
1> sp_configure "total memory",30000
2> go
Parameter Name Default Memory Used Config Value
Run Value
------------------------------ ----------- ----------- ------------
-----------
total memory 14336 28672 30000
14336
(1 row affected)
設定オプションが変更されました。このオプションは静的なので、変更を反映するために
Adaptive Server をリブートしてください。
(return status = 0)
1>
|
6.2.同時ユーザ接続数を設定する.
- Adaptive Serverに接続できるユーザ数(コネクション数)で,アプリケーション数ではない.
- デバイスやネットワークリスナ等も数に含まれる.
- デフォルト値25,5〜2147483647
1> sp_configure "number of user connections"
2> go
Parameter Name Default Memory Used Config Value
Run Value
------------------------------ ----------- ----------- ------------
-----------
number of user connections 25 1667 25
25
(1 row affected)
(return status = 0)
1> sp_configure "number of user connections",200
2> go
Parameter Name Default Memory Used Config Value
Run Value
------------------------------ ----------- ----------- ------------
-----------
number of user connections 25 1667 200
25
(1 row affected)
設定オプションが変更されました。このオプションは静的なので、変更を反映するために
Adaptive Server をリブートしてください。
(return status = 0)
1>
|
6.3.ロック数を設定する.
- 1ユーザに対して20ロック程度として考える.
- ある一時点で発生しているロック数は,sp_lockで確認できる.
- ロック数が少ないと,AdaptiveServerは不安定になる.
- しかし,ロック数が多すぎると,メモリを消費する.
- デフォルト値(5000) 1000〜2147483647
1> sp_configure "number of locks"
2> go
Parameter Name Default Memory Used Config Value
Run Value
------------------------------ ----------- ----------- ------------
-----------
number of locks 5000 586 5000
5000
(1 row affected)
(return status = 0)
1> sp_configure "number of locks",200000
2> go
Parameter Name Default Memory Used Config Value
Run Value
------------------------------ ----------- ----------- ------------
-----------
number of locks 5000 586 200000
5000
(1 row affected)
設定オプションが変更されました。このオプションは静的なので、変更を反映するために
Adaptive Server をリブートしてください。
(return status = 0)
1>
|
6.4.キャッシュサイズを設定する.
- Adaptive Serverが,いろいろな項目でメモリを確保した後にキャッシュとして確保するエリアの割合を設定する.
- ここで指定されたキャッシュは,データキャッシュとプロシージャキャッシュになる.
- デフォルト値は20で,1〜99%まで指定できる.
- 開発中は50%としておいて,アプリケーションが安定したら20%に戻すような運用が望ましいらしい.
1> sp_configure "procedure cache percent"
2> go
Parameter Name Default Memory Used Config Value
Run Value
------------------------------ ----------- ----------- ------------
-----------
procedure cache percent 20 4026 20
20
(1 row affected)
(return status = 0)
1> sp_configure "procedure cache percent",10
2> go
Parameter Name Default Memory Used Config Value
Run Value
------------------------------ ----------- ----------- ------------
-----------
procedure cache percent 20 4026 10
20
(1 row affected)
設定オプションが変更されました。このオプションは静的なので、変更を反映するために
Adaptive Server をリブートしてください。
(return status = 0)
1>
|
6.5.パフォーマンスモニタの設定(WindowsNTのみ)
- Windows版の場合,パフォーマンスモニタの設定を変更したほうがよいかもしれない.
- パフォーマンスモニタで監視する場合は,ONにし,監視しない場合はOFFにしたほうが良い.(監視するとオーバヘッドがでて,ちょっとだけ重たいと考えられる)
- 設定値が1がONで0がOFFになる.デフォルトはON(1)である.
1> sp_configure "SQL Perfmon Integration",0
2> go
Parameter Name Default Memory Used Config Value
Run Value
------------------------------ ----------- ----------- ------------
-----------
SQL Perfmon Integration 1 0 0
1
(1 row affected)
設定オプションが変更されました。このオプションは静的なので、変更を反映するために
Adaptive Server をリブートしてください。
(return status = 0)
1>
|
6.6.チェックポイントのタイミング
1> sp_configure "recovery interval in minutes"
2> go
Parameter Name Default Memory Used Config Value Run Value
------------------------------ ----------- ----------- ------------ -----------
recovery interval in minutes 5 0 5 5
(1 row affected)
(return status = 0)
1> sp_configure "recovery interval in minutes",10
2> go
Parameter Name Default Memory Used Config Value Run Value
------------------------------ ----------- ----------- ------------ -----------
recovery interval in minutes 5 0 10 10
(1 row affected)
設定オプションが変更されました。オプションは動的なので、SQL Server を再起動する必
要はありません。
(return status = 0)
1>
|
- 最大リカバリ時間を10分に設定している.
- これで,Adaptive Serverは,最大10分で修復できるようにチェックポイントを自動的に行う.
- チェックポイントタスクは,1分に1回起動し,最後のチェックポイント以降でトランザクションログに登録されたレコードを調べる. この時間が最大リカバリ時間より長くなるようであれば,チェックポイントを実行する.
|
|