UJP - 技術情報

Life is fun and easy!

不正IP報告数

Okan Sensor
 
メイン
ログイン
ブログ カテゴリ一覧

     

Sybase データベースの作成

Sybase データベースの作成


0.更新履歴

  • 2001.06.04 新規作成

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つのテンポラリデバイスを定義する.

  • create database文を実行する.

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回起動し,最後のチェックポイント以降でトランザクションログに登録されたレコードを調べる. この時間が最大リカバリ時間より長くなるようであれば,チェックポイントを実行する.



広告スペース
Google