Oracle 12c 非コンテナデータベース作成とLVMの拡張
新機能SQLの検証を始めようとしたところ、プラガブルデータベースでは使用できない機能があることが分かった。
プラガブルデータベースをぶら下げているコンテナデータベースでならできるのかなと思ったけれど、そもそもコンテナデータベースにはローカルユーザを作ることができない。
仕方がないのでもう一つ、非コンテナデータベースのインスタンスを作ることにした。
レスポンスファイルを使って作るのだけれど、ディスク容量が足りないのでボリュームを拡張する必要がある。
ディスク追加
VMWare Playerを使っているので、いったんVMを止めてディスク追加。とりあえず10GB取っておくことに。
ディスク追加したらOS起動。
ディスクの確認とパーティション作成
まずは追加したディスクデバイスの確認。
/dev/sdbで追加されたのが分かる。
# fdisk -l ディスク /dev/sda: 21.5 GB, 21474836480 バイト ヘッド 255, セクタ 63, シリンダ 2610 Units = シリンダ数 of 16065 * 512 = 8225280 バイト セクタサイズ (論理 / 物理): 512 バイト / 512 バイト I/O size (minimum/optimal): 512 bytes / 512 bytes ディスク識別子: 0x000df9d3 デバイス ブート 始点 終点 ブロック Id システム /dev/sda1 * 1 64 512000 83 Linux パーティション 1 は、シリンダ境界で終わっていません。 /dev/sda2 64 2611 20458496 8e Linux LVM ディスク /dev/sdb: 10.7 GB, 10737418240 バイト ヘッド 255, セクタ 63, シリンダ 1305 Units = シリンダ数 of 16065 * 512 = 8225280 バイト セクタサイズ (論理 / 物理): 512 バイト / 512 バイト I/O size (minimum/optimal): 512 bytes / 512 bytes ディスク識別子: 0x00000000 ・・・
パーティションを作成する。
パーティションのIDは「Linux LVM(8e)」。
# fdisk /dev/sdb コマンド (m でヘルプ): n コマンドアクション e 拡張 p 基本パーティション (1-4) p パーティション番号 (1-4): 1 最初 シリンダ (1-1305, 初期値 1): 初期値 1 を使います Last シリンダ, +シリンダ数 or +size{K,M,G} (1-1305, 初期値 1305): 初期値 1305 を使います コマンド (m でヘルプ): t 選択した領域 1 16進数コード (L コマンドでコードリスト表示): 8e 領域のシステムタイプを 1 から 8e (Linux LVM) に変更しました
物理ボリューム(Physical Volume:PV)作成
作成したパーティションをLVMの物理ボリュームとして認識させる。
# pvcreate /dev/sdb1 Physical volume "/dev/sdb1" successfully created
ボリュームグループ(Volume Group:VG)への追加
物理ボリュームをボリュームグループに追加する。
# vgdisplay --- Volume group --- VG Name vg_centos6412c System ID Format lvm2 Metadata Areas 1 Metadata Sequence No 3 VG Access read/write VG Status resizable MAX LV 0 Cur LV 2 Open LV 2 Max PV 0 Cur PV 1 Act PV 1 VG Size 19.51 GiB PE Size 4.00 MiB Total PE 4994 Alloc PE / Size 4994 / 19.51 GiB Free PE / Size 0 / 0 VG UUID wyLgKb-TNxo-zDgs-ukUU-kBiG-BC1d-ht8yfu # vgextend vg_centos6412c /dev/sdb1 Volume group "vg_centos6412c" successfully extended
論理ボリューム(Logical Volume:LV)拡張
追加分だけVGに空きができたので、それを全て使用して論理ボリュームを拡張する。
まず、空いているエクステントを確認。
# vgdisplay --- Volume group --- VG Name vg_centos6412c System ID Format lvm2 Metadata Areas 2 Metadata Sequence No 4 VG Access read/write VG Status resizable MAX LV 0 Cur LV 2 Open LV 2 Max PV 0 Cur PV 2 Act PV 2 VG Size 29.50 GiB PE Size 4.00 MiB Total PE 7552 Alloc PE / Size 4994 / 19.51 GiB Free PE / Size 2558 / 9.99 GiB VG UUID wyLgKb-TNxo-zDgs-ukUU-kBiG-BC1d-ht8yfu
Free PEが2558となっているので、これを全て割り当てる。
追加先のLV名を確認。
# lvdisplay --- Logical volume --- LV Path /dev/vg_centos6412c/lv_root LV Name lv_root VG Name vg_centos6412c LV UUID 0GAbnB-IjTY-uebT-cSXJ-N5f1-shKD-O2dWsd LV Write Access read/write LV Creation host, time centos64-12c, 2013-10-04 06:17:40 +0900 LV Status available # open 1 LV Size 15.63 GiB Current LE 4002 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 256 Block device 253:0 --- Logical volume --- LV Path /dev/vg_centos6412c/lv_swap LV Name lv_swap VG Name vg_centos6412c LV UUID IC8yCS-oyAH-OQ35-YwPc-RCqi-ghPO-CclUcZ LV Write Access read/write LV Creation host, time centos64-12c, 2013-10-04 06:17:42 +0900 LV Status available # open 1 LV Size 3.88 GiB Current LE 992 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 256 Block device 253:1
lv_rootが拡張する対象なので、ここにエクステントを割り当て。
# lvextend -l +2558 /dev/vg_centos6412c/lv_root Extending logical volume lv_root to 25.62 GiB Logical volume lv_root successfully resized
ファイルシステムをリサイズ。
# resize2fs /dev/vg_centos6412c/lv_root resize2fs 1.41.12 (17-May-2010) Filesystem at /dev/vg_centos6412c/lv_root is mounted on /; on-line resizing required old desc_blocks = 1, new_desc_blocks = 2 Performing an on-line resize of /dev/vg_centos6412c/lv_root to 6717440 (4k) blocks. The filesystem on /dev/vg_centos6412c/lv_root is now 6717440 blocks long.
これで10GBの拡張完了。
非コンテナデータベースの作成
DBCAのレスポンスファイルを用意して作成。
コンテナDB用はdbca.rcpで作成していたので、非コンテナはdbca_noncdb.rspにしました。
SIDはそのまま、noncdbに。
それならコンテナのほうはdbca_cdb.rspにして、SIDもcdbにしておけばよかったと今になって反省。
いやまさか非コンテナとコンテナで機能差異があるなんて思っておらず、非コンテナを作るつもりがなかったものでねぇ。。
$ diff dbca.rsp dbca_noncdb.rsp 78c78 < GDBNAME = "orcl" --- > GDBNAME = "noncdb" 205c205 < SID = "orcl" --- > SID = "noncdb" 215c215 < CREATEASCONTAINERDATABASE = true --- > CREATEASCONTAINERDATABASE = false 225c225 < NUMBEROFPDBS = 1 --- > NUMBEROFPDBS = 0 235c235 < PDBNAME = pdb1 --- > PDBNAME =